Configurar un Bridge para las máquinas virtuales.

Publicado el sáb 06 septiembre 2008

En post de virtualización express indiqué que en una de las etapas debemos seleccionar el tipo de red entre "Red Virtual" o "Dispositivo compartido".
La diferencia entre ellos es que "Red Virtual" genera una red y a cada máquina virtual en ella le asigna una IP de dicha red haciendo NAT hacia la red doméstica. "Dispositivo compartido" por otra parte no deja la tarjeta de red de la máquina virtual "conectada directamente" a tu red doméstica (la IP es asignada por tu router).
Puede ser que quieras utilizar la opción de "Dispositivo compartido" pero que el menú no te muestre ninguno. Para ello deberás generar un bridge.

  1. Desactivemos NetworkManager

/etc/init.d/NetworkManager stop
chkconfig NetworkManager off

  1. Creamos los scripts de red

script para eth0: /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
HWADDR=00:16:76:D6:C9:45 #MAC de eth0
ONBOOT=yes
BRIDGE=br0

script para el bridge br0: /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0
TYPE=Bridge
BOOTPROTO=dhcp
ONBOOT=yes

  1. Configuramos iptables para que haga forward de todo el tráfico a br0

echo "-I FORWARD -m physdev --physdev-is-bridged -j ACCEPT" > /etc/sysconfig/iptables-forward-bridged
lokkit --custom-rules=ipv4:filter:/etc/sysconfig/iptables-forward-bridged

  1. Reiniciamos los servicios

/etc/init.d/network restart
/etc/init.d/libvirtd restart

Ahora ya podemos configurar nuestra máquina para que use el bridge. Puede que sea necesario crear la máquina como root para que el bridge esté disponible.

UPDATE:
Para que lo anterior funcione bien, iptables debe desactivarse antes de realizar las acciones antes señaladas. Para apagar iptables debemos ejecutar:

/etc/init.d/iptables stop