Ich habe eine minimale Installation von CentOS 7.
Ich habe den Netzwerkmanager deaktiviert, da ich mein Netzwerk auf die "alte Schule" einrichten möchte.
systemctl stop NetworkManager
systemctl disable NetworkManager
chkconfig network on
service network restart
Meine Netzwerkkonfiguration (/ etc / sysconfig / network-scripts / ifcfg-ens4) sieht folgendermaßen aus:
DEVICE="ens4"
TYPE="Ethernet"
NOZEROCONF="yes"
PERSISTENT_DHCLIENT="1"
BOOTPROTO="dhcp"
DEFROUTE="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
NAME="ens4"
ONBOOT="yes"
NM_CONTROLLED="no"
Meine DHCP-Lease-Datei sieht folgendermaßen aus:
lease {
interface "ens4";
fixed-address 144.76.190.238;
option subnet-mask 255.255.255.255;
option routers 144.76.190.224;
option dhcp-lease-time 86400;
option dhcp-message-type 5;
option domain-name-servers 8.8.8.8,8.8.4.4;
option dhcp-server-identifier 144.76.190.224;
option host-name "hello.example.com";
option domain-name "example.com";
renew 2 2014/10/21 05:44:47;
rebind 2 2014/10/21 15:04:03;
expire 2 2014/10/21 18:04:03;
}
Mein Problem ist nun, dass das Feld "Router" vom DHCP von CentOS 7 ignoriert zu werden scheint. IP, Netzmaske und Hostname werden korrekt festgelegt, aber meine Standardroute wird nicht festgelegt (leer).
Wie Sie sehen können, verwende ich die Netzmaske 255.255.255.255, sodass die Gateway-IP "außerhalb" meines Netzwerks liegt. Dafür wird eine zusätzliche Route benötigt. Wenn ich diese manuell ausführe:
route add -host 144.76.190.224 dev ens4
route add default gw 144.76.190.224
Dann funktioniert alles gut:
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 144.76.190.224 0.0.0.0 UG 0 0 0 ens4
144.76.190.224 0.0.0.0 255.255.255.255 UH 0 0 0 ens4
Alle anderen von mir getesteten Linux-Distributionen, einschließlich Centos 6, funktionieren einwandfrei und legen diese beiden Routen automatisch vom DHCP aus fest.
Meine Frage lautet also: Warum wird es in CentOS 7 nicht automatisch eingestellt? Hat sich etwas geändert und ich musste dem DHCP-Client einige zusätzliche Flags hinzufügen, damit es funktioniert?
Es scheint, dass CentOS 6 dhclient Version 4.1.1-P1 und CentOS 7 4.2.5 verwendet. Vielleicht haben sie etwas zwischen diesen Versionen geändert?
UPDATE 1:
Ich habe mir die Versionshinweise von dhclient angesehen und diese für 4.0.0 gefunden:
"Das dhclient-Skript wurde aktualisiert, um eine Host-Route für das Standard-Gateway zu erstellen, wenn die angegebene Subnetzmaske für eine IPv4-Adresse a / 32 war. Dadurch kann der Client in" Captive "-Netzwerkumgebungen arbeiten, in denen der Betreiber keine Clients möchte direkt übersprechen. "
Das hätte also schon vor langer Zeit funktionieren sollen. Vielleicht hat CentOS 7 es aus dem "dhclient-script" entfernt?
UPDATE 2:
Ich habe die Datei "/ sbin / dhclient-script" von einer CentOS 6-Installation auf den CentOS 7-Server kopiert. Jetzt funktioniert alles gut. Ich werde untersuchen, welche Änderungen sie vorgenommen haben, aber es scheint, dass sie einen Fehler in CentOS 7 eingeführt haben.
UPDATE 3:
Ich habe das Problem herausgefunden. Sie haben in der neuen Version von / sbin / dhclient-script einen (dummen) Ping-Check hinzugefügt, der versucht, das Gateway vor dem Hinzufügen zu pingen. Da ich Pings in meiner Firewall auf dem DHCP-Server blockiere, hat sie nicht geantwortet und daher hat das dhclient-Skript keine Standardroute hinzugefügt.
/etc/sysconfig/network
Inhalt? Hast du was drin/etc/sysconfig/network-scripts/route-ens4
?Antworten:
Stellen Sie sicher, dass der DHCP-Server auf Ping reagiert. Andernfalls setzt das Skript / sbin / dhclient die Standardroute nicht korrekt.
Diese zusätzliche "Prüfung" scheint späteren Versionen von dhclient hinzugefügt oder speziell in CentOS 7 hinzugefügt worden zu sein. Die Ping-Prüfung ist in CentOS-Versionen vor 7 nicht vorhanden.
quelle
Vielleicht haben Sie bereits ein Standard-Gateway eingerichtet
/etc/sysconfig/network/routes
?Wenn nicht, können Sie zumindest konfigurieren, dass das, was Sie manuell weiterleiten, automatisch in dieser Datei ausgeführt wird:
quelle
/etc/sysconfig/network-scripts
(ich verwirre diese immer)Ich hatte dieses Problem gerade bei einer Neuinstallation eines CentOS 7 VMWare-Gasts und es war darauf zurückzuführen, dass ich zuvor eine DHCP-Reservierung für diesen Gast in VMWare Workstation eingerichtet hatte unter:
C: \ ProgramData \ VMware \ vmnetdhcp.conf
Das Update besteht also darin, die beiden Zeilen in der conf-Datei, die sich auf den CentOS-Server beziehen, zu kommentieren oder zu entfernen:
Speichern Sie die Datei (als Administrator), starten Sie den VMWare-DHCP-Dienst auf dem Host neu und führen Sie dann einen
network service restart
Vorgang unter CentOS durch. Sie haben jetzt ein Gateway, um ins Internet zu gelangen. Sie müssen jedoch auchyum update
das Problem mit der DHCP-Reservierung ohne Gateway beheben. Wenn Sie die Reservierung zuvor wieder hinzufügen, hat sie beim nächsten Neustart kein Gateway. Sobald die Aktualisierungen abgeschlossen sind, sollte das Problem behoben sein. Fügen Sie daher die obigen Zeilen wieder zur conf-Datei hinzu und starten Sie den VMWare-DHCP-Dienst erneut, damit Ihre Reservierung wieder hergestellt und Sie festgelegt sind.Dies ist nur bei der Ersteinrichtung von CentOS der Fall. Es ist also nur schmerzhaft, dass einmal nach einer Neuinstallation. Trotzdem mache ich VMWare-Schnappschüsse.
Für die Aufzeichnung ist mein NetworkManager aktiviert. Wenn jemand einen dauerhaften Weg kennt, um dies nach einer Neuinstallation zu vermeiden, teilen Sie dies bitte mit. Es wird möglicherweise in einem späteren Update von CentOS behoben, da
yum update
es behoben ist.Es ist eine spezifische Situation, aber keine ungewöhnliche Situation. Ich habe diese Antwort meistens gepostet, weil ich wahrscheinlich in Zukunft wieder hier sein werde, um mich daran zu erinnern, was ich getan habe. Aber ich habe einige Stunden damit verbracht, also hilft es hoffentlich auch jemand anderem.
quelle
Ich hatte dieses Problem. Ich habe eine CentOS 7-VM aus einer VMware-Vorlage bereitgestellt
Die Antwort bezüglich '/ etc / sysconfig / network / route' hat mir geholfen, indem sie einen großen Hinweis gegeben hat!
Der 'Option Router', obwohl in /var/lib/dhclient/dhclient--eth0.lease festgelegt, wurde nicht wirksam, als ich die Ausgabe des Routenbefehls betrachtete und nur Knoten in meinem Subnetz erreichen konnte
Ich konnte manuell ein Gateway in meinem /etc/sysconfig/network-scripts/ifcfg-eth0.cfg einrichten, und das würde gut funktionieren
Letztendlich fand ich eine Datei namens / etc / sysconfig / network, die ein Standard-Gateway enthielt
Als ich dieses Gateway auskommentierte und meinen Netzwerkdienst neu startete, war alles in Ordnung
quelle