sábado, 6 de septiembre de 2008

Configurar un Bridge para las máquinas virtuales.

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
  2. 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

  3. 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
  4. 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

No hay comentarios: