Debian verwendet niemals die Router-Gateway-Adresse in resolv.conf

Debian verwendet niemals die Router-Gateway-Adresse in resolv.conf

Debian verwendet niemals die Router-Gateway-Adresse in resolv.conf

Wie kann ich Debian so einrichten, dass die Router-Gateway-Adresse (Nameserver 192.168.1.1) in /etc/resolv.conf nicht angezeigt wird, wenn ich den Computer neu starte oder ausführe (verwenden Sie niemals den Router als Domänennamen-Resolver) /sbin/dhclient?

Ich verwende nur eine Zeile in /etc/dhcp/dhclient.conf

prepend domain-name-servers x.x.x.x,y.y.y.y,z.z.z.z;

Dies ist meine /etc/network/interfaces-Datei:

 auto eth0 
 iface eth0 inet static

 address 192.168.1.170
 netmask 255.255.255.0
 network 192.168.1.0
 broadcast 192.168.1.255
 getaway 192.168.1.1
 up route add -net default gw 192.168.1.1 netmask 0.0.0.0 eth0

 dns-nameservers x.x.x.x y.y.y.y z.z.z.z

Wenn ich /sbin/dhclient /etc/init.d/networking restart ausführe

meine /etc/resolv.conf enthält:

nameserver x.x.x.x
nameserver y.y.y.y
nameserver z.z.z.z
nameserver 192.168.1.1

Antwort1

Bereinigen Sie zunächst Ihre Konfiguration. Soll Ihre eth0Schnittstelle mit einer statischen IP-Adresse oder mit DHCP konfiguriert werden? Wenn statisch, warum führen Sie dann aus dhclient? Wenn DHCP, warum werden /etc/network/interfacesstatische IP-Parameter und iface eth0 inet staticanstelle von aufgelistet iface eth0 inet dhcp? Außerdem gibt es keinen Grund, über Ihren Befehl eine Standardroute hinzuzufügen, up routeda Sie die Standardroute bereits als gatewayParameter angegeben haben.

Beachten Sie, dass prepend domain-name-serversDNS-Server, wie der Name schon sagt, zur Liste hinzugefügt werden, die vom DHCP-Server bereitgestellt wird. Sie werden dadurch nicht ersetzt.

Ich empfehle, dass Sie, anstatt nach der dhclientAnpassung der zu verwendenden Nameserver zu fragen, resolvconfstattdessen das Framework verwenden. resolvconfEs koordiniert alle möglichen Quellen für DNS-Nameserverinformationen (einschließlich separater DHCP-Clients, die auf einer oder mehreren Netzwerkschnittstellen ausgeführt werden, lokaler DNS-Server, die Sie als Resolver verwenden möchten, und statischer Konfiguration) und zentralisiert die Erstellung einer einzigen zusammenhängenden /etc/resolv.confDatei. Das ist viel besser, als mehrere verschiedene Dinge verwalten zu lassen /etc/resolv.confund sie dabei übereinander trampeln zu lassen.

Installieren Sie das resolvconfPaket, falls es noch nicht installiert ist. Dadurch wird dhclinentdas direkte Bearbeiten der /etc/resolv.confDatei durch automatisch deaktiviert.

Ihre Anforderung ist nun, dass Sie die vom DHCP-Server bereitgestellten Nameserver nicht verwenden möchten. Kommentieren Sie daher die Zeile mit dem Wert eth*in aus /etc/resolvconf/interface-order. Kommentieren Sie unbedingt auch die letzte Zeile der Datei mit dem Wert aus *, da dieser sonst eth0trotzdem berücksichtigt wird.

Als nächstes möchten Sie stattdessen eine Reihe statisch bereitgestellter Nameserver verwenden. Da diese systemglobal sind (nicht mit dem Status einer bestimmten Schnittstelle verknüpft), können Sie sie als Nameserver in der lo-Schnittstelle hinzufügen /etc/network/interfaces:

iface lo inet loopback
    dns-nameservers x.x.x.x y.y.y.y z.z.z.z

Und ifdown lo; ifup lodies dann zu aktivieren.

Antwort2

Noch ein Punkt: getaWeg 192.168.1.1 sollte g seinWeg 192.168.1.1 (weshalb Sie wahrscheinlich die Standardroute hinzufügen mussten, damit irgendetwas funktioniert?)

Antwort3

Wenn Sie es irgendwie vermeiden können, verwenden Sie Ihr Gateway überhaupt nicht als Resolver.

Sie weisen bekanntermaßen Fehler beim DNS-Proxying auf – siehe RFC 5625.

Sie haben eine perfekt funktionierende Linux-Box – legen Sie einfach eine Kopie von BIND oder noch besser „Unbound“ darauf ab.

ObDisclaimer – ich habe dieses RFC geschrieben.

verwandte Informationen