Ich verwende CentOS 7. Ich verwende NetworkManager nicht und habe es tatsächlich deinstalliert.
Mein System soll br0
beim Booten eine IPv4-Adresse über DHCP erhalten . Wenn ich mich anmelde, hat es jedoch keine Adresse.
Meine Konfiguration:
# pwd
/etc/sysconfig/network-scripts
# cat ifcfg-enp5s0
DEVICE=enp5s0
ONBOOT="yes"
BRIDGE=br0
# cat ifcfg-br0
DEVICE=br0
ONBOOT=yes
TYPE=Bridge
BOOTPROTO=dhcp
STP=on
DELAY=0
Beachten Sie, dass ich diese Bridge nicht manuell konfiguriert habe. virt-manager
tat dies, als ich br0
diesen Dialog hinzufügte :
Relevant journalctl --boot | grep '\(\<br0\>\|enp5s0\)'
und Kontext:
Jan 08 21:04:32 jonathon-centos7 kernel: r8169 0000:05:00.0 enp5s0: link down
Jan 08 21:04:32 jonathon-centos7 kernel: IPv6: ADDRCONF(NETDEV_UP): enp5s0: link is not ready
Jan 08 21:04:32 jonathon-centos7 kernel: r8169 0000:05:00.0 enp5s0: link down
Jan 08 21:04:32 jonathon-centos7 kernel: device enp5s0 entered promiscuous mode
Jan 08 21:04:32 jonathon-centos7 network[947]: Bringing up interface enp5s0: [ OK ]
...
Jan 08 21:04:32 jonathon-centos7 network[947]: Bringing up interface br0:
Jan 08 21:04:32 jonathon-centos7 kernel: IPv6: ADDRCONF(NETDEV_UP): br0: link is not ready
...
Jan 08 21:04:34 jonathon-centos7 kernel: r8169 0000:05:00.0 enp5s0: link up
Jan 08 21:04:34 jonathon-centos7 kernel: IPv6: ADDRCONF(NETDEV_CHANGE): enp5s0: link becomes ready
Jan 08 21:04:34 jonathon-centos7 kernel: br0: port 1(enp5s0) entered listening state
Jan 08 21:04:34 jonathon-centos7 kernel: br0: port 1(enp5s0) entered listening state
//// (Note: 2 second delay here, with no other events)
Jan 08 21:04:36 jonathon-centos7 avahi-daemon[957]: Registering new address record for fe80::f66d:4ff:fe3b:c24e on enp5s0.*.
Jan 08 21:04:36 jonathon-centos7 kernel: br0: port 1(enp5s0) entered learning state
///// (Too soon!)
Jan 08 21:04:38 jonathon-centos7 network[947]: Determining IP information for br0... failed; no link present. Check cable?
Jan 08 21:04:38 jonathon-centos7 network[947]: [FAILED]
Jan 08 21:04:38 jonathon-centos7 systemd[1]: network.service: control process exited, code=exited status=1
Jan 08 21:04:38 jonathon-centos7 systemd[1]: Failed to start LSB: Bring up/down networking.
Jan 08 21:04:38 jonathon-centos7 systemd[1]: Unit network.service entered failed state.
...
Jan 08 21:04:38 jonathon-centos7 kernel: br0: topology change detected, propagating
Jan 08 21:04:38 jonathon-centos7 kernel: br0: port 1(enp5s0) entered forwarding state
Jan 08 21:04:38 jonathon-centos7 kernel: IPv6: ADDRCONF(NETDEV_CHANGE): br0: link becomes ready
Jan 08 21:04:39 jonathon-centos7 avahi-daemon[957]: Registering new address record for fe80::f66d:4ff:fe3b:c24e on br0.*.
Jan 08 21:04:41 jonathon-centos7 avahi-daemon[957]: Registering new address record for 2605:a000:1315:8119:f66d:4ff:fe3b:c24e on br0.*.
Jan 08 21:04:41 jonathon-centos7 avahi-daemon[957]: Withdrawing address record for fe80::f66d:4ff:fe3b:c24e on br0.
///// (Here's where I entered `ifup br0`)
Jan 08 22:43:30 jonathon-centos7 dhclient[5009]: DHCPDISCOVER on br0 to 255.255.255.255 port 67 interval 6 (xid=0x25f649b7)
Jan 08 22:43:31 jonathon-centos7 dhclient[5009]: DHCPREQUEST on br0 to 255.255.255.255 port 67 (xid=0x25f649b7)
Jan 08 22:43:34 jonathon-centos7 avahi-daemon[957]: Joining mDNS multicast group on interface br0.IPv4 with address 10.0.1.128.
Jan 08 22:43:34 jonathon-centos7 avahi-daemon[957]: New relevant interface br0.IPv4 for mDNS.
Jan 08 22:43:34 jonathon-centos7 avahi-daemon[957]: Registering new address record for 10.0.1.128 on br0.IPv4.
Jan 08 23:43:17 jonathon-centos7 dhclient[5124]: DHCPREQUEST on br0 to 10.0.1.1 port 67 (xid=0x25f649b7)
Nachdem das System gestartet und ich angemeldet bin, kann ich ein Terminal öffnen und:
# ifup br0
set forward delay failed: Numerical result out of range
Determining IP information for br0... done.
Und dann bin ich mit meinem Netzwerk verbunden.
Warum kann ich br0
beim Booten keine IP erhalten ?
Verbunden:
- Ethernet-Brücke mit DHCP [CentOS-Formulare]
Anmerkungen:
brctl showstp br0
zeigt, dass die Vorwärtsverzögerung auf 2,00 eingestellt ist.brctl setfd br0 0
zeigt den gleichen Fehler wieifup br0
. Es scheint, dass virt-manager ein ungültigesDELAY=0
für angegeben hatbr0
.- Nachdem Sie die wichtigen Einträge in den Protokollen gefunden haben, scheint es, dass
systemd
versucht wird, eine IP zu erhalten,br0
bevor sie in den Weiterleitungsstatus eingetreten ist. - Ich habe den Fehler 8086 im CentOS-Bugtracker geöffnet .
STP=yes
aus meiner Konfiguration kann ich diese Rennbedingung gewinnen.Antworten:
Ihre Bridge wird nicht von den Netzwerk-Initskripten gesteuert, sondern von libvirt. Die Bridge sollte hochgefahren werden, wenn der libvirtd-Dienst hochgefahren wird.
Ich würde nicht so rennen. Ich würde die Brücke vom Netzwerk initscript steuern lassen und keine Brücke in der libvirt-Konfiguration haben.
Die ifcfg-Dateien, die Sie jetzt haben, sind in Ordnung. Entfernen Sie einfach die Konfiguration aus libvirt und stellen Sie sicher, dass Sie diese Dateien noch haben
chkconfig network on
Ja, chkconfig funktioniert auf EL7.
quelle
Ein Zitat von http://www.microhowto.info/howto/persistently_bridge_traffic_between_two_or_more_ethernet_interfaces_on_redhat.html :
Das Deaktivieren von STP scheint der Weg zu sein, um es zum Laufen zu bringen.
quelle
Ihre physische Verbindung ist nicht aktiv, wenn Ihre Brücke startet. Fügen Sie Ihrer physischen Schnittstelle eine Verzögerung hinzu.
quelle