DD-WRT bedient zusätzliche DNS-Server anstelle der IP-Adresse des Routers

9

Ich habe einen DD-WRT-Router (mit DD-WRT v24SP2-MULTI (21.03.11) std) mit DNSMasq eingerichtet, um bestimmte Domänen in interne Adressen aufzulösen und alles andere durchzuleiten. Der Router selbst ist so konfiguriert, dass er die öffentlichen DNS-Server von Google zum Auflösen von Adressen verwendet.

Mein Setup-Bildschirm sieht folgendermaßen aus:

DDWRT-Setup-Bildschirm

Mein Problem ist, dass ein DHCP-Client beim Herstellen einer Verbindung den Router sowie die beiden DNS-Server von Google als zugewiesene DNS-Server erhält:

Von DHCP zugewiesene DNS-Server

Dies ist ein Problem, da drahtlose Clients manchmal versuchen, eine Domäne aufzulösen, die auf eine interne IP-Adresse verweisen soll, und stattdessen eine externe IP-Adresse erhalten, da ihre Anfrage aus irgendeinem Grund 8.8.8.8an den Router gesendet wird .

Ich möchte nicht, dass der Router etwas anderes als seine eigene IP als DNS-Server bereitstellt. Ist das möglich?

0x6A75616E
quelle
1
Ich kann mich irren, aber da dies der Abschnitt zur Konfiguration des DHCP-Servers ist, weisen Sie Ihren Router ausdrücklich an, diese Google-Server als DNS-Optionen für Clients bereitzustellen. Sie möchten diese aus der Liste entfernen und dann den Router so konfigurieren, dass er seine eigenen DNS von Google erhält. Vielleicht ist die folgende Antwort der richtige Weg, dies zu tun.
Horatio
Wenn ich diese entferne, stellt der Router die Server bereit, die er vom ISP über DHCP erhalten hat.
0x6A75616E
Sie sagen in Ihrem Beitrag und in Ihren Kommentaren mehrere Male "aus welchem ​​Grund auch immer". Dies ist der Grund, warum 8.8.8.8 an die Clients übergeben wird. Weil du es gesagt hast. Wenn Sie nicht möchten, dass dies gemeldet wird, müssen Sie es entfernen. Wenn Ihr Router ein DNS-Server ist, versuchen Sie NUR die Adresse Ihres Routers.
Horatio
@horatio, nicht wirklich .. Mein Punkt ist, warum der DHCP-Server überhaupt zusätzliche DNS-Adressen ausgibt. Wenn dnsmasq auf dem Gerät ausgeführt wird und bestimmte Regeln für die Namensauflösung angewendet werden, wird dieser Zweck durch die Bereitstellung zusätzlicher DNS-Server (neben dem Router selbst) zunichte gemacht.
0x6A75616E
Dieser Abschnitt enthält eine Liste der DNS-Server , die an Clients ausgegeben werden sollen, die DHCP-Informationen anfordern.
Horatio

Antworten:

7

Es ist gut, dass Sie DNSMasq verwenden.

Sie können die gewünschten Einstellungen auf der Registerkarte Dienste (> Dienste) im Feld DNSMasq> Zusätzliche DNSMasq-Optionen konfigurieren. Zunächst möchten Sie jedoch diese statischen DNS-Felder löschen. Statische DNS-Felder unter "Setup> Basic Setup"

Fügen Sie dem DNSMasq-Optionsfeld Folgendes hinzu:

dhcp-option= option:dns-server, 192.168.10.10 # DHCP option 006

server = 8.8.8.8 # DNSMasq will use these servers for forwarding the DNS requests that it can't serve
server = 8.8.4.4
palswim
quelle
Das scheint für mich perfekt funktioniert zu haben. Sehr dumme Frage. Welcher Teil dieser ersten Zeile gibt die DHCP-Option 006 an? Option: DNS-Server?
Residualfail
@ Residualfail: Ja; Ich denke, Sie können es auch numerisch angeben, option:dns-serverentspricht aber der DHCP-Option 006.
Palswim
1
Scheint, als hätte ich zu früh gesprochen. Es sieht nicht so aus, als würde DNS nach dem Herunterfahren meiner internen DNS auf Googles DNS zurückgreifen. = (
Restfehler
4

Informationen von der offiziellen DD-WRT-Website: http://www.dd-wrt.com/wiki/index.php/OpenDNS

Es scheint, dass Sie die verbleibenden DNS-Server auf nicht routbare IPs einstellen können (in meinem Fall 10.0.0.0& 10.0.0.1), und es wird die DNS-Server Ihrer ISPs mit diesen nicht routbaren ausdrücken. Bisher scheint es für mich ohne Verzögerung zu funktionieren, auf die nicht vorhandenen DNS-Server zu warten.

CarlserversC
quelle
Es wird keine Verzögerung geben, da nicht routbare Adressen sofort vom Netzwerkstapel gelöscht werden. Es verursacht einen geringen Overhead und ist ein Hack, aber es sollte keine Probleme in der realen Welt geben.
Jemand
3

Ich benutze DDWRT nicht, also ist dies eine halbe Frage / eine halbe Antwort.

Das Handbuch DNSMasq als DHCP-Server sagt im Abschnitt "Zusätzliche DNSMasq-Optionen":

In der Weboberfläche für DNSMasq gibt es einige zusätzliche Optionen, die Sie festlegen können, indem Sie sie unter Zusätzliche DNSMasq-Optionen auf der Registerkarte "Dienste" eingeben.

Wenn Sie die DNS-Server von Ihrem Internetdienstanbieter aus passieren möchten, können Sie die folgenden Parameter verwenden:

dhcp-option=6, x.x.x.x, y.y.y.y

Dabei ist xxxx = DNS1 JJJJ = DNS2

Dies scheint zu bedeuten, dass das Übergeben der ISP-Server optional ist. Das Auffinden und Löschen der obigen Zeile sollte sie daher deaktivieren.

harrymc
quelle
1
Ich würde dhcp-option = 6,192.168.10.10 setzen, um diese IP-Adresse als DNS-Server-IP an DHCP-Clients zu übergeben.
als
1
Danke für den Zeiger. Ich habe das sowohl auf uDHCPd (dem DNS-Daemon, den ich auf ddwrt verwendet habe) als auch auf DNSMasq (darauf umgeschaltet) versucht, aber ohne Erfolg :(. Es
liefert weiterhin
In diesem Fall sollten Sie die Frage möglicherweise in den DD-WRT-Foren veröffentlichen .
Harrymc
2

Wenn Sie nicht möchten, dass Clients externes DNS erreichen, geben Sie ihre Adressen nicht in Ihre DHCP-Serverkonfiguration ein.

Ich nehme an, Sie wollten (möglicherweise schneller) die DNS-Server von Google in einer Konfiguration eines externen DHCP-Clients hinzufügen (wobei DNSMASQ die DNS-Client-Einstellungen übernehmen würde).

Extra:

Sie müssen der WAN-Verbindungskonfiguration zusätzliche (alle) DNS-Server hinzufügen. DNSMasq wird sie verwenden und niemals würde ein DHCP-Client vom Anbieter erwerben.

ZaB
quelle
Vielen Dank für Ihren Beitrag, aber das macht im Kontext der Frage nicht viel Sinn. DNSMasq leitet DNS-Anforderungen von Clients an echte DNS-Server weiter und kann einige Antworten im laufenden Betrieb ändern. Wenn ich die DNS-Server aus der Konfiguration entfernt habe, kehrt der Router nur zu den vom ISP zugewiesenen Servern zurück. Sie beantworten meine Frage mit "Fix Ihre Konfiguration", aber die Frage selbst lautet "Wie man die Konfiguration repariert".
0x6A75616E
2

Eine typische Konfigurationsoption für DD-WRT besteht darin, dem Router das Weiterleiten von DNS außerhalb der primären DNS-Server des Internetdienstanbieters zu ermöglichen. was du erfolgreich gemacht hast; Da die Anforderungen jedoch vom CLIENT-Computer generiert werden, der AUCH mit dem Router verbunden ist, wird die bevorzugte Reihenfolge immer dem konfigurierten DNS auf dem Client-Computer und dann dem Router zugewiesen.

Was Sie beschreiben, ist, dass der Client mit Ihrem Router verbunden ist, was korrekt ist, aber sein DNS zeigt Ihrem Router IP + 2 andere DNS-Einstellungen an. Überprüfen Sie den Client-Computer und stellen Sie sicher, dass die IPV4-Einstellungen so eingestellt sind, dass die DNS-Serverkonfiguration dynamisch aus der Verbindung abgerufen und nicht manuell konfiguriert wird:

Client konfigurieren

Stellen Sie dann sicher, dass Ihr DD-WRT-Router ordnungsgemäß eingerichtet ist:

Router konfigurieren

In Ihrer obigen Konfiguration haben Sie auch einige Probleme. Sie haben den DHCP-Adressbereich so eingestellt, dass er bei beginnt 200und endet 255. Ich würde empfehlen, dass Sie dies so ändern, dass es bei 200 beginnt und bei endet 254. Lassen Sie die 255-Adresse aus, da es sich bei normalen Konfigurationen *.*.*.255um eine Broadcast-Adresse handelt und nicht um eine normale IP-Adresse, die zum Zuweisen zum zugeordneten Client verwendet werden soll.

Ich habe die lokalen DNS-Einstellungen hervorgehoben, weil Sie Ihre festgelegt haben 127.0.0.1. Dies bedeutet, dass Sie einen lokalen DNS-Server auf dem Router ausführen . Wenn dies nicht der Fall ist, ändern Sie es in 0.0.0.0oder eine richtige Adresse für einen lokalen DNS-Server in Ihrem Netzwerk.

Sie werden feststellen, dass bei der Konfiguration von Server und Client auf diese Weise nur die DNS-IP-Adresse des Routers angezeigt wird. Alle Anforderungen werden über die dem Router zugeordneten DNS-Server weitergeleitet.

Hinweis zum lokalen DNS-Server Wenn Sie möchten, dass der Router lokalen IP-Adressen bestimmte lokale Adressen zuordnet, können Sie diese zu den DNSMasq-Konfigurationsoptionen im entsprechenden DD-WRT-Bildschirm hinzufügen oder einen lokalen DNS-Server verwenden und eine geeignete IP-Adresse für eingeben dieser Server (normalerweise ein statischer Server im Rahmen des Netzwerks). Auf diese Weise ist die Reihenfolge der Auflösung zuerst der lokale Server, dann die 2 externen. Dennoch sehen nur die Clients die Router-IP als DNS-Server.

zackrspv
quelle
Vielen Dank für Ihre Antwort! Ich habe sichergestellt, dass auf allen Clients im Netzwerk keine DNS-Server fest codiert sind. Tatsächlich kommt 192.168.10.10 (der Router selbst) in jedem Fall als erster DNS-Server zurück, der getroffen wird. Was passiert ist, dass einige Computer zufällig auf die sekundären DNS-Server zugreifen, die DHCP derzeit bereitstellt. Ich habe eine Million Dinge ausprobiert und es sieht einfach so aus, als gäbe es keine Möglichkeit, sie nur selbst bedienen zu lassen. Ich könnte am Ende einige andere dnsmasq-Instanzen auf einem anderen Computer ausführen und es als dns2 und dns3 verwenden. So ein Hack! lol. Nochmals vielen Dank.
0x6A75616E
2

Ich hatte ein ähnliches Problem, nachdem mein Router gestorben war und ich einen geflashten WRT160N zum Laufen bringen musste.

Ich habe eine Box, die als lokaler DNS-Server unter 192.168.2.30 in meinem Netzwerk fungiert. Grundsätzlich möchte ich, dass DHCP diese Adresse nur als DNS-Server ausgibt. Ich möchte nicht, dass DNS irgendwo anders hingeht.

Ich verwende "Firmware: DD-WRT v24-sp2 (19.12.10) mini"

Es scheint keine Rolle zu spielen, welche Kombination von DNSMasq-Einstellungen, DHCP-Einstellungen, lokalem DNS oder was auch immer ich verwende. Wenn DNS-Server 2 und DNS-Server 3 leer sind oder mit DNS-Server 1 übereinstimmen, besteht DD-WRT darauf, die DNS-Server von Comcast für diese Spots zu verteilen. Ich möchte dies nicht, da 192.168.2.30 für nicht lokale Abfragen an OpenDNS weitergeleitet wird.

Ich schreibe dies als Fehler in dieser (inzwischen) ziemlich alten Version von DD-WRT ab und werde meinen eigenen DHCP-Server unter 192.168.2.30 installieren / konfigurieren und DHCP auf dem Router deaktivieren.

LawrenceC
quelle
1
Das ist eigentlich keine schlechte Idee ... Ich könnte einfach DHCP auf einer anderen Box einrichten und aufhören, mit ddwrt herumzuschrauben.
0x6A75616E
1
Dieses Problem besteht immer noch in meinem Build vom Februar 2016, scheint eine Funktion zu sein. Ich lasse den Router fallen und werde dafür auf einen Linux-PC zurückkehren. Leute, die Router-Software erstellen, sollten wirklich ein besseres Verständnis für die Datenschutzprobleme haben, die mit diesem unerwarteten, ungewöhnlichen und verantwortungslosen Verhalten der GUI verbunden sind. Wenn ich selbst Sachen hacken muss, macht es wirklich keinen Sinn, ein vergleichsweise kompliziertes und begrenztes System zu verwenden. Und wenn Sie DNS und DHCP bereits auf einem anderen Computer ausführen, was bleibt dann für den Router übrig? Paket schieben?
Jemand
1

Ein paar Jahre zu spät hinzugefügt, weil ich auf diese Suche nach einer Antwort gestoßen bin ... Ich habe meinem Pi-Hole virtuelle Schnittstellen hinzugefügt, um zwei weitere IP-Adressen zu verarbeiten.

eth0 192.168.10.10
eth0.1 192.168.10.11
eth0.2 192.168.10.12

Dies ermöglichte es mir, alle 3 Boxen mit lokalen Adressen zu füllen und sie so zu verteilen, dass meine Maschinen sie nicht treffen, obwohl der dd-wrt-Router 5, 3 lokale und die 2 vorgelagerten ISP-DNS verteilt.

Dave
quelle
0

Mit einer weniger hackigen Methode einschalten: Wenn es Ihr LAN und Ihr DNS ist, sind sicher einige Adressen übrig, damit der DNS drei IPs abhört.

Der Vorteil, nicht routbare Adressen zu haben, sollte in der Praxis irrelevant sein, aber zumindest verlassen Sie sich nicht darauf, dass etwas kaputt geht und der Router darauf reagiert. Sie können nie sicher sein, ob sich das eines Tages nicht ändern wird.

Jemand
quelle