El sistema de virtualización Xen, por defecto configura tanto la Dom0 como las DomU bajo la misma interfaz de red (eth0). En caso de necesitar configurar dos interfaces de red distintas dentro de una misma DomU, o separar cada DomU en una tarjeta de red distinta, hay que realizar ciertos cambios en la configuración.
En este caso vamos a configurar Xen para que una DomU pueda tener dos tarjetas de red virtuales. Para ello debemos crear un nuevo bridge que trabaje con la segunda interfaz de red (eth1).
La configuración inicial de xen es tener un bridge xenbr0 trabajando con la interfaz eth0. Lo que vamos a hacer es crear un nuevo bridge para que trabaje con la interfaz eth1 (xenbr1). Para ello, creamos un nuevo
script dentro de «/etc/xen/scripts/» que levante los dos bridges en el arranque de xen:
$ vim /etc/xen/scripts/network-interfaces #!/bin/sh "/etc/xen/scripts/network-bridge" "$@" vifnum=0 netdev=eth0 bridge=xenbr0 "/etc/xen/scripts/network-bridge" "$@" vifnum=1 netdev=eth1 bridge=xenbr1
Modificamos el fichero /etc/xen/xend-config.sxp para que utilice este nuevo script:
#(network-script network-bridge) (network-script network-interfaces)
Reiniciamos xen para que coja los cambios:
$ /etc/init.d/xend restart
Y vemos que ya ha levantado el nuevo bridge:
eth0 Link encap:Ethernet HWaddr 00:0D:60:0F:DE:D6 inet addr:192.168.0.152 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::20d:60ff:fe0f:ded6/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:955 errors:0 dropped:0 overruns:0 frame:0 TX packets:31 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:133768 (130.6 KiB) TX bytes:10239 (9.9 KiB) eth1 Link encap:Ethernet HWaddr 00:0D:60:0F:DE:D7 inet addr:192.168.0.106 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::20d:60ff:fe0f:ded7/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:4738 errors:0 dropped:0 overruns:0 frame:0 TX packets:2545 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:460725 (449.9 KiB) TX bytes:382897 (373.9 KiB) 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:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) peth0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 RX packets:1148 errors:0 dropped:0 overruns:0 frame:0 TX packets:188 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:165286 (161.4 KiB) TX bytes:26313 (25.6 KiB) Interrupt:16 Memory:ed6f0000-ed700000 peth1 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 RX packets:4795 errors:0 dropped:0 overruns:0 frame:0 TX packets:2569 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:494437 (482.8 KiB) TX bytes:395195 (385.9 KiB) Interrupt:17 Memory:ed4f0000-ed500000 vif0.0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 RX packets:31 errors:0 dropped:0 overruns:0 frame:0 TX packets:955 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:10239 (9.9 KiB) TX bytes:133768 (130.6 KiB) vif0.1 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 RX packets:2589 errors:0 dropped:0 overruns:0 frame:0 TX packets:4782 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:389945 (380.8 KiB) TX bytes:463629 (452.7 KiB) vif2.0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 RX packets:157 errors:0 dropped:0 overruns:0 frame:0 TX packets:837 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:32 RX bytes:12788 (12.4 KiB) TX bytes:111812 (109.1 KiB) vif2.1 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 RX packets:13 errors:0 dropped:0 overruns:0 frame:0 TX packets:605 errors:0 dropped:348 overruns:0 carrier:0 collisions:0 txqueuelen:32 RX bytes:580 (580.0 b) TX bytes:88879 (86.7 KiB) virbr0 Link encap:Ethernet HWaddr 00:00:00:00:00:00 inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0 inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:48 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:9812 (9.5 KiB) xenbr0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 RX packets:985 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:130103 (127.0 KiB) TX bytes:0 (0.0 b) xenbr1 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 RX packets:1119 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:150720 (147.1 KiB) TX bytes:0 (0.0 b)
Una vez levantado el bridge, ya podemos configurarlo en la máquina virtual que queramos, accedemos a su fichero de configuración y cambiamos la línea del vif (los ficheros de configuración de las máquinas virtuales por defecto los tenemos en /etc/xen o /etc/xen/auto):
Antes:
vif = [ "mac=00:16:3e:01:d0:7a,bridge=xenbr0" ]
Después:
vif = [ "mac=00:16:3e:01:d0:7a,bridge=xenbr0", "mac=00:16:3e:01:d1:7a,bridge=xenbr1" ]
Tras esta modificación, si arrancamos la máquina virtual ya podremos configurar la segunda interfaz de red.