Ich arbeite an Centos 7 und habe problematisches Verhalten beim Einstellen der Netzwerkschnittstelle von DHCP auf statische IP-Konfiguration.
Ich bearbeite /etc/resolv.conf
und führe systemctl restart network.service
die Änderungen aus, die ich vorgenommen habe, und eine generische Datei wird erstellt:
cat /etc/resolv.conf
# Generated by NetworkManager
# No nameservers found; try putting DNS servers into your
# ifcfg files in /etc/sysconfig/network-scripts like so:
#
# DNS1=xxx.xxx.xxx.xxx
# DNS2=xxx.xxx.xxx.xxx
# DOMAIN=lab.foo.com bar.foo.com
HINWEIS: PEERDNS = "yes" in der ifcfg-ens160-Datei.
PEERDNS =, wobei eine der folgenden Optionen lautet: yes - Ändern Sie /etc/resolv.conf, wenn die DNS-Direktive festgelegt ist. Wenn Sie DHCP verwenden, ist Ja die Standardeinstellung.
nein - Ändern Sie nicht /etc/resolv.conf.
Entnommen von hier: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/3/html/Reference_Guide/s1-networkscripts-interfaces.html
Ich denke, es hat etwas damit zu tun, aber es funktioniert gut, wenn auf DHCP eingestellt wird. Ich gehe davon aus, dass /etc/resolv.conf
es erfolgreich sein wird , wenn es automatisch konfiguriert wird.
Eine Problemumgehung besteht darin, /etc/resolv.conf
nach dem Neustart des Dienstes zu bearbeiten .
Ich möchte jedoch das Verhalten verstehen und wissen, wie ich verhindern kann, dass die Datei auf diese Standardfehlermeldung zurückgesetzt wird.
DNS{1} = x.x.x.x, DNS{2}=x.x.x.x
systemctl
toolDNS{1,2}=<address>, where <address> is a name server address to be placed in /etc/resolv.conf if the PEERDNS directive is set to yes.
bin ich Wette bereit , dass dieifcfg
Datei auf dem CentOS6.2 bauen Sie den DNS - Server erwähnen hat definiert oderPEERDNS="no"
./etc/resolv.conf
und geschriebenPEERDNS=yes
. Wie kann es sein, dass es vorher funktioniert hat?Antworten:
Sie mischen wahrscheinlich den Klassiker
/etc/init.d/network
(der übersetzt wirdnetwork.service
) mitNetworkManager.service
. Während erwartet wird, dass diese teilweise nebeneinander existieren, ist es viel besser, nur einen von ihnen auszuwählen und den anderen anzuhalten und zu deaktivieren .In jedem Fall ist es besser, nicht
/etc/resolv.conf
direkt zu schreiben, sondern Dateien/etc/sysconfig/network
und / oder/etc/sysconfig/network-scripts/ifup-*
Dateien richtig zu konfigurieren .Sie sollten entweder DHCP aktivieren oder die Nameserver manuell einstellen
/etc/sysconfig
.Beispiel (DHCP):
Beispiel (statisch):
Wenn Sie wirklich
/etc/resolv.conf
direkt einstellen möchten und sicherstellen möchten, dass NetworkManager es nicht überschreibt, können Sie es in einrichten/etc/NetworkManager/NetworkManager.conf
.In Bezug auf Ihre zusätzliche Frage zur Anzahl der Nameserver sollten Sie niemals mehr als einen oder zwei Nameserver benötigen
/etc/resolv.conf
. Sie sollten nicht viel vom libc-Resolver-Verhalten erwarten, es versucht nur, die Nameserver der Reihe nach zu verwenden, und es kommt zu langen Verzögerungen, wenn Sie nicht mehr genannte Nameserver in der Liste haben.Ich kenne Ihre Gründe nicht, mehr als drei Nameserver zu verwenden. Aber wenn es eine ist, müssen Sie auf jeden Fall einen lokalen Forwarding DNS - Server wie konfigurieren ungebundenen oder dnsmasq und Punkt
/etc/resolv.conf
zu127.0.0.1
. Für die beste Erfahrung mit dynamischer Konfiguration sollten Sie in diesem Fall NetworkManager verwenden.NetworkManager mit dnsmasq wird seit langem unterstützt und ist die Standardeinstellung unter Ubuntu und möglicherweise anderen Distributionen.
NetworkManager mit ungebundener Qualität ist in den neuesten NetworkManager-Versionen in Alpha-Qualität und benötigt derzeit auch einen DNSSEC-Trigger, da der Hauptanwendungsfall darin besteht, die DNSSEC-Validierung auf dem lokalen Host bereitzustellen.
Sowohl dnsmasq und ungebundene Plugins konfigurieren ,
/etc/resolv.conf
umnameserver 127.0.0.1
für Sie und jeder von ihnen konfiguriert den jeweiligen lokalen DNS - Server.quelle
Verwenden Sie dhclient.conf, um die Nameserver anzugeben. Sie haben eine genaue Kontrolle über die Reihenfolge der Nameserver-Einträge und entsprechen der "Red Hat-Methode" zur Konfiguration des Netzwerks.
dhclient.conf existiert standardmäßig nicht, aber Sie können es erstellen:
Resultierende resolv.conf:
Getestet mit Vagrant:
Weiterführende Literatur:
quelle
Ich würde empfehlen, das NetworkManager-GUI-Tool zu verwenden, um resolv.conf mit permanenten Werten zu konfigurieren - die nach dem Neustart des Netzwerks erhalten bleiben:
Oder:
Fügen Sie Ihre DNS-Server, Suchdomänen usw. hinzu:
Stellen Sie nun sicher, dass diese Werte nach dem Neustart des Netzwerks noch definiert sind:
quelle