Bridge no obtiene IP a través de DHCP en el arranque

8

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 br0en 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-managerlo hice cuando agregué br0este diálogo:

captura de pantalla de virt-manager que muestra br0 en la pestaña Interfaces de red

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 br0arranque?

Relacionado:

Notas:

  • brctl showstp br0muestra que la demora de reenvío se establece en 2.00. brctl setfd br0 0muestra el mismo error que ifup br0. Parece que virt-manager especificó un no válido DELAY=0parabr0 .
  • Después de encontrar las entradas importantes en los registros, parece que systemdestá tratando de obtener una IP br0antes de que ingrese al estado de reenvío.
  • Abrí el error 8086 en CentOS bugtracker.
Jonathon Reinhart
fuente
1
Actualización : Eliminar STP=yesde mi configuración me permite ganar esta condición de carrera.
Jonathon Reinhart

Respuestas:

1

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, luegochkconfig network on

Sí, chkconfig funciona en EL7.

suprjami
fuente
1
"Simplemente elimine la configuración de libvirt," ¿Cómo hago esto? ¿Por qué virt-manager pudo crear tan fácilmente una configuración tan rota?
Jonathon Reinhart
0

Su enlace físico no está activo cuando comienza su puente. Agregue un retraso a su interfaz física.

Nils
fuente