Cada vez que configuro br0 para que se inicie automáticamente al arrancar, el sistema se bloquea, generalmente en una línea que dice algo como "esperar 2 segundos para que br0 esté listo" o "vinculado a xxxx a br0 - renovación en xxxx" (es decir durante la secuencia de arranque, antes de que se hayan inicializado las interfaces gráficas).
Usando Debian Sid con KVM y virt-manager. No tengo problemas para poner en funcionamiento el puente una vez que se inicia, y funciona de maravilla. El problema es que quiero que se conecte automáticamente a br0, tal como lo haría con una interfaz normal. No creo que sea una idea tan ridícula, pero tampoco tengo mucha experiencia en redes Linux.
Probé casi todas las configuraciones de /etc/network/interfaces que encontré, y todas causan que se cuelgue al arrancar o no inician br0 automáticamente. Lo único que no he explorado exhaustivamente son los comandos "pre-up" y "post-down" que he visto ocasionalmente, pero tengo la impresión de que no son necesariamente necesarios. Debido a que el sistema se bloquea por completo y se niega a seguir arrancando, es bastante complicado forzarlo a reiniciarse, iniciar una distribución de rescate y eliminar cualquier configuración en el archivo de interfaces cada vez.
He podido hacer que se inicie automáticamente colocando "ifup br0" en /etc/rc.local, pero esto causa algunos otros problemas, como que los recursos compartidos no se conectan y VNC no se inicia. Si bien aún no he llegado a esa etapa, me preocupa que mis invitados no puedan arrancar una vez que los configuro para que se inicien automáticamente si estoy usando este método.
Respuesta1
Esto parece no ser una solución, pero parece funcionar. Lo que hice fue crear dos archivos de interfaz: interfaces_eth0 e interfaces_br0. Luego agregué
cp "/etc/network/interfaces_br0" "/etc/network/interfaces"
service networking restart
cp "/etc/network/interfaces_eth0" "/etc/network/interfaces"
a /etc/rc.local
Debian arrancará, mis recursos compartidos se conectarán y mis invitados tendrán acceso a la red, incluso cuando estén configurados para iniciarse automáticamente.
Respuesta2
Otra solución que parece estar funcionando hasta ahora implica lo siguiente. Creé un script en /etc/init.d/network_fix que contiene lo siguiente:
### BEGIN INIT INFO
# Provides: network_fix
# Required-Start: $remote_fs $syslog $network
# Required-Stop: $remote_fs $syslog $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Fix network for KVM
# Description: Resolve bridging bug causing hang on boot.
### END INIT INFO
#! /bin/sh
# /etc/init.d/blah
#
cp -f /etc/network/interfaces_br0 /etc/network/interfaces
ifdown br0 eth0 eth1
ifup br0
cp -f /etc/network/interfaces_none /etc/network/interfaces
exit 0
Y luego actualicé mi init.d con update-rc.d
. /etc/network/interfaces_none
contiene únicamente loopback y /etc/network/interfaces_br0
contiene lo siguiente:
auto lo
iface lo inet loopback
auto eth1
allow-hotplug eth1
iface eth1 inet dhcp
auto br0
iface br0 inet dhcp
bridge_ports eth1
bridge_stp off
En este punto, había agregado una NIC adicional, por lo tanto eth1
.