Encaminador

Para que Xen se comporte como un encaminador, hay que descomentar las líneas:
(network-script network-route)
(vif-script     vif-route)

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

Cuando se inicia un domU, xend ejecuta (dentro de dom0) vif-route, que: En la figura 4 puede verse de forma esquemática como quedan conectados los dominios tras configurar el dom0 como un encaminador.
Figura: A través de un encaminador se conecta un domU a la misma red que el dom0, pero a nivel de red
Image router
La salida de ifconfig en el dom0 es (obviando el dispositivo de loopback (127.0.0.1):
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:73 errors:0 dropped:0 overruns:0 frame:0
       TX packets:47 errors:0 dropped:0 overruns:0 carrier:0
       collisions:0 txqueuelen:1000 
       RX bytes:6681 (6.5 KiB)  TX bytes:4766 (4.6 KiB)
       Interrupt:3 Base address:0xc000 

vif1.0 Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF  
       inet addr:192.168.0.64 Bcast:192.168.0.255 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:1719 errors:0 dropped:0 overruns:0 frame:0
       TX packets:1726 errors:0 dropped:19 overruns:0 carrier:0
       collisions:0 txqueuelen:0 
       RX bytes:93686 (91.4 KiB)  TX bytes:131506 (128.4 KiB)
y la de route -n:
Kernel IP routing table
Destination     Gateway         Genmask         Flags  Iface
192.168.0.100   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 192.168.0.100 es la dirección IP asignada al domU.

En el domU hay que poner como gateway el mismo que tenga el dom0, en este caso 192.168.0.1

Cuando las tramas salen por eth0, tienen la misma dirección MAC, para todas las direcciones IP. Dependiendo de la configuración del equipo esto puede ser un problema, que puede solucionarse incluyendo en el script network-route la línea:

echo 1 >/proc/sys/net/ipv4/conf/eth0/proxy_arp
Desde un equipo externo podremos comprobar que aparecen dos direcciones IP asociadas a la misma dirección MAC:
ranec:~# cat /proc/net/arp

IP address       HW address            Mask     Device
192.168.0.64     00:40:D0:65:B2:84     *        eth1
85.136.XX.X      00:05:00:E3:4D:DB     *        eth0
192.168.0.100    00:40:D0:65:B2:84     *        eth1
Es decir, cuando disponemos de varias direcciones IP dentro del mismo rango, tendremos que optar por utilizar una configuración de puente o una de encaminador, dependiendo de si el equipo al que estamos conectando nos acepta o no diferentes direcciones MAC, para las diversas direcciones IP. En el primer caso trabajaremos en el nivel de enlace de la pila TCP/IP y en el segundo caso en el nivel de red.

Alberto Molina Coballes 2007-05-17