CentOS 7-Netzwerkdienst kann nicht gestartet werden

23

Ich kann den CentOS 7 "Netzwerk" -Dienst nicht starten, nachdem der "NetworkManager" -Dienst deaktiviert und entfernt wurde. Wenn ich den Netzwerkdienststatus überprüfe, wird der folgende Fehler angezeigt:

#systemctl status network.service
network.service - LSB: Bring up/down networking
   Loaded: loaded (/etc/rc.d/init.d/network)
   Active: failed (Result: exit-code) since Fri 2015-01-16 22:30:46 GMT; 38s ago
  Process: 4857 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=1/FAILURE)

Jan 16 22:30:46 localhost.localdomain network[4857]: RTNETLINK answers: File exists
Jan 16 22:30:46 localhost.localdomain network[4857]: RTNETLINK answers: File exists
Jan 16 22:30:46 localhost.localdomain network[4857]: RTNETLINK answers: File exists
Jan 16 22:30:46 localhost.localdomain network[4857]: RTNETLINK answers: File exists
Jan 16 22:30:46 localhost.localdomain network[4857]: RTNETLINK answers: File exists
Jan 16 22:30:46 localhost.localdomain network[4857]: RTNETLINK answers: File exists
Jan 16 22:30:46 localhost.localdomain network[4857]: RTNETLINK answers: File exists
Jan 16 22:30:46 localhost.localdomain systemd[1]: network.service: control process exited, code=exited status=1
Jan 16 22:30:46 localhost.localdomain systemd[1]: Failed to start LSB: Bring up/down networking.
Jan 16 22:30:46 localhost.localdomain systemd[1]: Unit network.service entered failed state.

In früheren CenOS-Versionen schien es keine Probleme zu geben, vom "NetworkManager" -Dienst zum Netzwerkdienst zu wechseln. Irgendwelche Ideen, was das Problem verursacht und wie es behoben werden kann?

Hinweis: Ich habe yum erase verwendet, um den Netzwerkverwaltungsdienst zu entfernen.

Hier weitere Infos wie angefragt:

/etc/sysconfig/network-script/ifcfg-enp8s0
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=enp8s0
UUID=453a07fe-1b07-4f29-bc32-f2168e50706a
ONBOOT=yes
HWADDR=XXXXXXXXXXX
MACADDR=XXXXXXXXXX
PEERDNS=yes
PEERROUTES=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes

/etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

/etc/resolv.conf
; generated by /usr/sbin/dhclient-script
search customer.marples.midcity.lan
nameserver 10.241.128.1
Gazel
quelle
Da ich wegen meiner schlechten Reputation keinen Kommentar abgeben kann, poste ich dies als Antwort, was NICHT beabsichtigt ist. <br/> <br/> Können Sie Folgendes posten: <br/> <br/> /etc/sysconfig/network-script/ifcfg-eth0<br/> /etc/hosts<br/> /etc/resolv.conf<br/> <br/> Möglicherweise möchten Sie Ihre konfigurierten Routen für diese bestimmte Netzwerkkarte überprüfen (gefunden in /etc/sysconfig/network-scripts/route-<interface>), da dies zu ähnlichen Fehlern führen kann. <br/> <br/> Hast du versucht ifdown eth0und ifup eth0statt systemctl (re)start network? Haben Sie deaktiviert / deinstalliert Network Managermityum remove
Mosh Pit
Hallo, danke für die Nachlieferung. Ich habe meine Frage-Infos oben aktualisiert, schau mal. Ja, ich habe yum erase verwendet, um den NetworkManager-Dienst zu entfernen. Ich habe weder ifdown eth0 noch ifup eth0 ausprobiert, obwohl meine Netzwerkverbindung noch aktiv ist, obwohl der Netzwerkmanager-Dienst entfernt wurde und der Netzwerkdienst nicht gestartet werden kann.
Gazel
Sie haben HWADDR=XXXXXXXXXXX UND MACADDR=XXXXXXXXXX in Ihrer Schnittstellenkonfiguration. Dies scheint falsch zu sein, da es so aussieht, als ob es dasselbe sein soll. Versuchen Sie eines der Dinge, die ich empfohlen habe (Kommentieren dieses Teils in Ihrer Konfiguration), starten Sie neu und versuchen Sie es erneut. Erzwingt diese CentOS 7 Box SELinux? Führen Sie dieses System auf einer Hardware oder in einer virtuellen Umgebung aus? hostsund resolv.confsehen soweit gut aus.
Mosh Pit
Ursprünglich habe ich den MAC in der Benutzeroberfläche des NetworkManagers gefälscht, also hat er den falschen MACADDR zusätzlich zum echten HWADDR hinzugefügt. Deshalb ist er dort. Sollte ich die MACADDR-Leitung entfernen? Der SELinux-Status lautet "Aktiviert". Ich lasse es auf einer Hardware laufen.
Gazel
Versuchen Sie zu kommentieren HWADDRund / oder MACADDRherauszunehmen, was meiner Meinung MACADDRnach ausreichen sollte. Starten Sie die gesamte Box neu und prüfen Sie, ob das Netzwerk ordnungsgemäß funktioniert. Wenn Sie es nicht benutzen IPv6, nehmen Sie den Mist mit. Sie können Ihren HWADDR auch überprüfen, indem Sie sicherstellen cat /sys/class/net/ens192/address, dass er ordnungsgemäß eingerichtet ist.
Mosh Pit

Antworten:

30

Wenn Sie in Centos7.0 NetworkManager deaktivieren, wird ein DHCP-Client ausgeführt, der für NetworkManager konfiguriert ist. Das verursacht die Fehlermeldung, RTNETLINK answers: File existswenn der networkDienst gestartet wird.

Der veraltete dhclientProzess hat den zusätzlichen "Vorteil", dass nach Ablauf der Lease Ihre dhclientWillenskraft nachlässt, da er NetWorkManager nicht erreichen kann und somit Ihre IP-Adresse entfernt.

Wenn Sie grepdafür sind, werden Sie feststellen, dass es auf eine NetWorkManager-Konfigurationsdatei verweist.

[root@host ~]# ps -ef | grep dhc
root      1865   792  0 Apr28 ?        00:00:00 /sbin/dhclient -d -sf \
 /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-eno1.pid -lf\
 /var/lib/NetworkManager/dhclient-c96e56d3-a4c9-4a87-85ca-93dc0ca268f2-eno1.lease\
 -cf /var/lib/NetworkManager/dhclient-eno1.conf eno1

Sie können also den beenden dhclientund erst dann Ihren Netzwerkdienst starten.

Hans Dann
quelle
Ja, dhclient zu töten hat das Problem für mich behoben. Danke
MichaelZ
6
Ich habe auch nicht genug Reputation, um Kommentare abzugeben, aber ich wollte Hans 'Antwort unterstützen und hinzufügen, dass ich das Bootproto in meinen ifcfg-Dateien auf "none" ändern musste. Der dhclient wurde nur aufgerufen, wenn versucht wurde, das Netzwerk neu zu starten, und das Beenden des dhclient-Prozesses half nicht, da ein anderer an seiner Stelle erscheinen würde. Das Ändern der ifcfg-Dateien löste mein Problem.
onlyanegg
5

Ein IP-Konflikt verursacht ebenfalls diesen Fehler. Versuchen Sie : systemctl stop network, dann ifup eth0.

spoovy
quelle
1

Ein Fehler beim Abrufen einer IP-Adresse vom DNS führt ebenfalls zu diesem Fehler, wie ich gerade festgestellt habe. In der Tat sieht es so aus, als würde ein Fehler im Netzwerk diesen Fehler verursachen. Dies scheint ein Problem mit CentOS 7 zu sein, da es hier einen sehr schlechten Fehler gibt.

MikeKulls
quelle
1

Wie bereits erwähnt, tritt dieser Fehler bei Problemen beim Einrichten des Netzwerks auf: IP-Konflikt, Routing-Probleme usw.

Überprüfen Sie Ihre Gateway-Einstellungen, um sicherzustellen, dass Ihre Gateways ordnungsgemäß eingerichtet sind und die Dinge so sind, wie sie sein müssen, /etc/syscofig/networkund /etc/sysconfig/network-scripts/ifcfg-*überprüfen Sie, /etc/sysconfig/network-scripts/route-*ob doppelte IP-Adressen vorliegen. Routen, die über " Wenn der Speicher mir dient" festgelegt wurden, können jetzt in beiden Gateways ifcfg-*und in route-*Dateien eingerichtet werden. Vergewissern Sie sich daher, dass keine Überschneidungen oder Überschneidungen auftreten.

Droopy4096
quelle
1

Dies scheint auch zu geschehen, wenn Sie eine Schnittstelle manuell konfigurieren, die nicht mit dem Netzwerk verbunden ist.

Aryeh
quelle
1

Auch ich habe dies heute auf einer geklonten virtuellen CentOS 7.2-Maschine erlebt. So habe ich es behoben.

systemctl disable NetworkManager
systemctl enable network

Suchen Sie die MAC-Adresse der Schnittstelle über den Befehl /sbin/ifconfig -aund hängen Sie diese an /etc/sysconfig/network-scripts/ifcfg-<interface_name>. Sie können die folgenden Befehle für die erste Schnittstelle verwenden.

nic_file=`ls /etc/sysconfig/network-scripts/ifcfg-e*`
ifconfig -a | grep ether | awk '{ print $2 }' | sed 's/.*/HWADDR=&/' >> ${nic_file}

Feuern Sie dann reboot, um den Server neu zu starten

vikas027
quelle
0

Sehen Sie in Netzwerk-Skripten nach, ob es keine andere Schnittstelle gibt, die network.service zum Absturz bringen könnte

Führen Sie eine ifconfig aus und notieren Sie sich die Schnittstelle. Vergleichen Sie mit den Dateien in Netzwerk-Skripten. Befinden sich mehr Dateien in Netzwerkskripten als Schnittstellen in ifconfig, können Sie die zusätzlichen nutzlosen Dateien löschen und anschließend ein System-Neustart des Netzwerks durchführen.

Nicolas Guérinet
quelle
0

Hatte dieser Fehler nach dem Klonen eines virtuellen Servers, wurde dem Klon eine neue Hardware-Adresse (MAC) zugewiesen, und die Netzwerkadapter-Konfiguration hatte weiterhin die alte.

Die Zeile sieht wie folgt aus: HWADDR = 00: 00: 00: 00: 00

WhoIsRich
quelle
0

Ich bin auf dieses Problem gestoßen, bei dem der Server mich RTNETLINK answers: File existsauch nach dem Entfernen des Netzwerkmanagers weiterhin informiert und meine gesamte Netzwerkkonfiguration dreimal überprüft hat.

Es scheint, dass eine IP auf einem anderen Server aktiv war und dass der Server ICMP filtert (also kein Ping), als erstes habe ich es versucht. Verlassen Sie sich also nicht auf Ping, um zu testen, ob eine IP aktiv ist oder nicht!

Beim Start gibt das Netzwerkskript diesen Befehl aus (ändern Sie Ihren Entwickler und Ihre IP-Adresse)

/sbin/arping -c 2 -w 3 -D -I eth0 10.196.132.206

Was uns sagt, dass eine MAC-Adresse mit dieser IP verknüpft ist und das Netzwerkskript ( ifupoder systemctl start network) fehlschlägt

Alban M
quelle
0

Ich bin auch auf ähnliche Probleme gestoßen. Um die Konfigurationsdateien (ifcfg-ensxxxx) wie folgt zu ändern, geben Sie hier die Bildbeschreibung ein

  • Liste auskommentiert "UUID = xxxx-xxxx"
  • Neue Option hinzufügen: NM_CONTROLLED=noZeigt an, dass diese Schnittstelle mit dieser Konfigurationsdatei eingerichtet wird, anstatt vom Network Manager-Dienst verwaltet zu werden.

Referenz: So konfigurieren Sie eine statische IP-Adresse unter CentOS 7

Colin Chen
quelle