NAT

No existe documentación oficial sobre la configuración de redes con NAT en Xen, así que lo que se explica a continuación es fruto simplemente de nuestra experiencia al configurarlo. Pueden existir por tanto, errores o inexactitudes.

Para que Xen utilice NAT, hay que descomentar las líneas:

(network-script network-nat)
(vif-script     vif-nat)
En este caso, el dom0 estará conectado a dos subredes diferentes, típicamente a una con direcciones públicas en eth0 y otra con direcciones privadas en vif#?.0. A través del mecanismo de traducción de direcciones NAT, irá cambiando las direcciones origen/destino de cada paquete de forma adecuada.

Cuando se lanza xend, se ejecuta el script network-nat, que:

Cuando se inicia un domU, xend ejecuta (dentro de dom0) vif-nat, que:

El esquema es exactamente igual al de la figura 4, aunque ahora las direcciones IP de los domU no están en el mismo rango que la dirección IP ``externa'' del dom0.

La salida de ifconfig en el dom0 es:

eth0   Link encap:Ethernet  HWaddr 00:40:D0:65:B2:84  
       inet addr:192.168.0.64 Bcast:192.168.0.255 Mask:255.255.255.0
       inet6 addr: fe80::240:d0ff:fe65:b284/64 Scope:Link
       UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
       RX packets:3946 errors:0 dropped:0 overruns:0 frame:0
       TX packets:2915 errors:0 dropped:0 overruns:0 carrier:0
       collisions:0 txqueuelen:1000 
       RX bytes:5385321 (5.1 MiB)  TX bytes:219429 (214.2 KiB)
       Interrupt:3 Base address:0xc000 

lo     Link encap:Local Loopback  
       inet addr:127.0.0.1  Mask:255.0.0.0
       inet6 addr: ::1/128 Scope:Host
       UP LOOPBACK RUNNING  MTU:16436  Metric:1
       RX packets:8 errors:0 dropped:0 overruns:0 frame:0
       TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
       collisions:0 txqueuelen:0 
       RX bytes:560 (560.0 b)  TX bytes:560 (560.0 b)

vif1.0 Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF  
       inet addr:10.0.0.128 Bcast:0.0.0.0 Mask:255.255.255.255
       inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link
       UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
       RX packets:1 errors:0 dropped:0 overruns:0 frame:0
       TX packets:3 errors:0 dropped:3 overruns:0 carrier:0
       collisions:0 txqueuelen:0 
       RX bytes:42 (42.0 b)  TX bytes:230 (230.0 b)
y la de route -n:
Kernel IP routing table
Destination     Gateway         Genmask         Flags  Iface
10.0.0.1        0.0.0.0         255.255.255.255 UH     vif1.0
192.168.0.0     0.0.0.0         255.255.255.0   U      eth0
0.0.0.0         192.168.0.1     0.0.0.0         UG     eth0
donde podemos ver que la ruta a través de vif1.0 es hacia una máquina (etiqueta ``H'') con IP 10.0.0.1 y no un segmento de red.

Alberto Molina Coballes 2007-05-17