Imprimir

Acceder a Internet desde Qemu con tun/tap

Configurar el acceso a Internet desde Qemu no es nada sencillo. Hay varios sistemas, veamos cómo lo he conseguido usando tun/tap.

  1. Cargamos el módulo tun en el kernel:
    # modprobe tun

    Esto hace que tengamos disponible en el ordenador real la interfaz tap0, que actuará como gateway para la máquina virtual. Si hacemos:

    $ ifconfig -a

    comprobaremos que tap0 no aparece, a pesar de que la opción -a muestra todas las interfaces, incluso las down. No aparecerá hasta que no arranque Qemu.

  2. Comprobamos que existe el script /etc/qemu-ifup, cuyo contenido es:
    #!/bin/sh
    sudo -p "Password for $0:" /sbin/ifconfig $1 192.168.0.9

    Qemu, con la opción -net tap, ejecuta el script /etc/qemu-ifup, que configura la IP de tap0 (192.168.0.9). El nombre del dispositivo de red (tap0, tap1...) lo pasa como parámetro ($1).

  3. Configuramos el enrutamiento (192.168.0.6 es la IP de eth0):
    # route add -host 192.168.0.6 gw 192.168.0.9

    y hacemos masquerading NAT:

    # iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    # echo 1 > /proc/sys/net/ipv4/ip_forward
  4. Ejecutamos Qemu como root para no tener problemas de acceso a tap0:
    # qemu -m 512 -cdrom /dev/cdrom -boot c /mnt/sarge.iso -net nic -net tap
  5. Una vez lanzado Qemu, comprobamos:
    1. que aparece tap0 y tiene la IP correcta:
      $ ifconfig
    2. que IPtables tiene el masquerading configurado:
      $ iptables -t nat -nvL
    3. el enrutamiento:
      $ route
  6. La configuración de la red en la máquina virtual será:
    • IP: 192.168.0.6
    • gateway: la IP de tap0, 192.168.0.9
    • DNS: el mismo que en el ordenador real.

Terminado, ya tenemos acceso a Internet desde la máquina virtual.

Deja un comentario