user-mode-linux Networking

 

- Hay que compilar como modulo la opcion del kernel:

 

Universal TUN/TAP device driver support

 

- Insertamos el modulo TUN/TAP:

 

insmod tun

 

- Creamos la dispositivo TUN/TAP:

 

tunctl -u uiduser

 

donde uiduser es el uid del usuario que utilizará el dispositivo TUN/TAP.

 

- Configuramos la IP de l dispositivo:

 

ifconfig tap0 10.5.222.53 netmask 255.255.255.0 broadcast 10.5.222.255

 

ponemos la misma ip de nuestra interfaz.

 

- Configuramos la tabla de rutas y permitimos el forwarding:

 

bash -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'

route add -host 10.5.222.58 dev tap0

bash -c 'echo 1 > /proc/sys/net/ipv4/conf/tap0/proxy_arp'

arp -Ds 10.5.222.58 eth0 pub

 

10.5.222.58 será la ip que debemos de asignar a nuestra interfaz de red de nuestra maquina virtual.

 

- El dispositivo /dev/net/tun debe tener permisos de escritura para el usuario que ejecutará el UML (user-mode-linux). Para evitar dar permisos a todo el mundo lo que hacemos es meter al usuario dentro de un grupo de usuarios a los que se les permita el acceso a estos dispositivos, y darle los permisos adecuados a /dev/net/tun:

 

chgrp gid /dev/net/tun

chmod 660 /dev/net/tun

 

- Ejecutamos nuestro sistema virtual:

 

linux ubd0=root_fs_woody devfs=nomount rw eth0=tuntap,tap0

 

- Para eliminar el dispositivo TUN/TAP:

 

tunctl -d tap_device

 

- Solo tienes que configurar los parámetros de red en la maquina virtual (IP, gateway, dns,...), y tendrás la red funcionando.