Estoy ejecutando CentOS 7. No estoy ejecutando NetworkManager, y en realidad lo he desinstalado.
Se supone que mi sistema adquiere una dirección IPv4 a través de DHCP br0
en el arranque. Sin embargo, cuando inicio sesión, no tiene dirección.
Mi configuracion:
# 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
Tenga en cuenta que no configuré este puente manualmente; virt-manager
lo hice cuando agregué br0
este diálogo:
Relevante journalctl --boot | grep '\(\<br0\>\|enp5s0\)'
y contexto:
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)
Después de que se inicie el sistema y haya iniciado sesión, puedo abrir una terminal y:
# ifup br0
set forward delay failed: Numerical result out of range
Determining IP information for br0... done.
Y luego estoy conectado a mi red.
¿Por qué no puedo obtener una IP para el br0
arranque?
Relacionado:
- Puente Ethernet con dhcp [formularios CentOS]
Notas:
brctl showstp br0
muestra que la demora de reenvío se establece en 2.00.brctl setfd br0 0
muestra el mismo error queifup br0
. Parece que virt-manager especificó un no válidoDELAY=0
parabr0
.- Después de encontrar las entradas importantes en los registros, parece que
systemd
está tratando de obtener una IPbr0
antes de que ingrese al estado de reenvío. - Abrí el error 8086 en CentOS bugtracker.
STP=yes
de mi configuración me permite ganar esta condición de carrera.Respuestas:
Su puente no está siendo controlado por los initscripts de la red, está siendo controlado por libvirt. El puente debería aparecer cuando aparezca el servicio libvirtd.
No correría así. Haría que el puente fuera controlado por la red initscript, y no tengo puente en la configuración de libvirt.
Los archivos ifcfg que tienes ahora están bien. Simplemente elimine la configuración de libvirt, asegúrese de que todavía tenga esos archivos, luego
chkconfig network on
Sí, chkconfig funciona en EL7.
fuente
Una cita de http://www.microhowto.info/howto/persistently_bridge_traffic_between_two_or_more_ethernet_interfaces_on_redhat.html :
Desactivar STP parece ser la forma de hacerlo funcionar.
fuente
Su enlace físico no está activo cuando comienza su puente. Agregue un retraso a su interfaz física.
fuente