Configuraciones de red en sistemas virtuales
Alberto Molina Coballes <
[email protected]>
Jos´e Domingo Mu ˜noz Rodr´ıguez <
[email protected]>
IES Gonzalo Nazareno. Dos Hermanas (Sevilla)
16 de septiembre de 2006
Resumen
En este documento se describe las diferentes configuraciones de red ele-
mentales que pueden utilizarse en Xen 3.0 y VMware Server 1.0. Esta docu-
mentaci´on se elabor´o para el curso M´aquinas virtuales para la puesta en marcha
de un portal educativo organizado por el CEP de Sevilla en Septiembre de 2006.
1
1.
Introducci´on
En este art´ıculo se explican los aspectos principales de las configuraciones de
red que pueden tener lugar entre las m´aquinas virtuales hu´esped y el anfitri´on.
Hay bastantes aspectos comunes en el tratamiento que hacen al respecto Xen y
VMware Server, aunque es conveniente exponerlos de forma separada.
2. Xen 3.0
Lo explicado en esta secci´on puede encontrarse de forma m´as extensa en la
parte relativa a redes del wiki de Xen [1].
Existen tres configuraciones elementales de red en Xen:
Puente (bridge)
Encaminador (router)
NAT
Pueden construirse configuraciones mucho m´as complejas a partir de ´estas,
pero en principio hay que decidirse por utilizar una de ellas, modificando de
forma adecuada el fichero /etc/xen/xen-config.sxp
2.1. Puente
Para utilizar un puente debemos tener desmomentadas las siguientes l´ıneas
en el fichero de configuraci´on de Xen:
(network-script network-bridge)
(vif-script vif-bridge)
Los pasos que en realidad se realizan son:
Cuando se lanza xend, se ejecuta el script network-bridge, que:
Crea un nuevo puente llamado xenbr0.
La interfaz real eth0 se echa abajo.
Se copian la direcci´on IP y MAC de eth0 a la interfaz virtual veth0.
Se renombra la interfaz real como peth0
Se renombra la interfaz virtual como eth0
peth0 y vif0.0 se conectan al puente xenbr0.
Se levantan xenbr0, peth0, eth0 y vif0.0.
Cuando se inicia un domU, xend (que est´a corriendo en dom0) ejecuta el script
vif-bridge, que:
Conecta vif<id#>.0 to xenbr0
Levanta vif<id#>.0
2
Donde id# es el n ´umero de identificaci´on del domU.
En la figura 1 puede verse de forma esquem´atica como quedan conectados los
dominios tras configurar un puente en Xen con un domU.
Figura 1: A trav´es del puente se conecta un domU a la misma red que el dom0,
utilizando su interfaz de red
La salida de ifconfig en este caso es:
eth0
lo
HWaddr 00:40:D0:DD:B2:84
Link encap:Ethernet
inet addr:192.168.0.68 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::240:d0ff:fe65:b284/64 Scope:Link
UP BROADCAST RUNNING MULTICAST
Metric:1
RX packets:13 errors:0 dropped:0 overruns:0 frame:0
TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1248 (1.2 KiB)
TX bytes:810 (810.0 b)
MTU:1500
Mask:255.0.0.0
Link encap:Local Loopback
inet addr:127.0.0.1
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING
MTU:16436
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)
Metric:1
peth0
Link encap:Ethernet
HWaddr FE:FF:FF:FF:FF:FF
3
inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link
UP BROADCAST RUNNING NOARP MULTICAST
RX packets:12 errors:0 dropped:0 overruns:0 frame:0
TX packets:21 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1674 (1.6 KiB)
Interrupt:3 Base address:0xc000
TX bytes:3450 (3.3 KiB)
MTU:1500
Metric:1
HWaddr FE:FF:FF:FF:FF:FF
Link encap:Ethernet
inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link
UP BROADCAST RUNNING MULTICAST
Metric:1
RX packets:7 errors:0 dropped:0 overruns:0 frame:0
TX packets:14 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:810 (810.0 b)
TX bytes:1338 (1.3 KiB)
MTU:1500
Link encap:Ethernet
HWaddr FE:FF:FF:FF:FF:FF
inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST
RX packets:14 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1142 (1.1 KiB)
TX bytes:468 (468.0 b)
MTU:1500
Metric:1
vif0.0
xenbr0
Donde podemos observar que la interfaz de red real peth0 no tiene una direc-
ci´on MAC real, la tiene eth0. Cuando se le a ˜nade un nuevo dominio, la interfaz
eth0 del nuevo dominio tendr´a una direcci´on MAC real (con Xen como fabrican-
te). Es decir, el comportamiento conjunto de todo es como varias m´aquinas reales
conectadas a un switch, con peth0 equivalente a la conexi´on de salida del switch.
Esta configuraci´on es ´util por ejemplo cuando la m´aquina se encuentra en
una red local y podemos utilizar todas las direcciones IP que queramos dentro
del mismo rango.
2.2. 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:
Activa el bit de forward en dom01
Cuando se inicia un domU, xend ejecuta (dentro de dom0) vif-route, que:
Copia la direcci´on IP de eth0 a vif<id#>.0
Levanta vif<id#>.0
1/proc/sys/net/ipv4/ip forward
4
A ˜nade una ruta est´atica en el domU, apuntando a la interfaz vif<id#>.0
En la figura 2 puede verse de forma esquem´atica como quedan conectados los
dominios tras configurar el dom0 como un encaminador. La salida de ifconfig
Figura 2: A trav´es del puente se conecta un domU a la misma red que el dom0,
utilizando su interfaz de red
en el dom0 es:
eth0
lo
HWaddr 00:40:D0:65:B2:84
Link encap:Ethernet
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
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)
Interrupt:3 Base address:0xc000
TX bytes:4766 (4.6 KiB)
MTU:1500
Mask:255.0.0.0
Link encap:Local Loopback
inet addr:127.0.0.1
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING
MTU:16436
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)
Metric:1
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
5
inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link
UP BROADCAST RUNNING MULTICAST
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)
MTU:1500
Metric:1
y la de route -n:
Kernel IP routing table
Gateway
Destination
0.0.0.0
192.168.0.100
192.168.0.0
0.0.0.0
192.168.0.1
0.0.0.0
Flags
Genmask
255.255.255.255 UH
255.255.255.0
0.0.0.0
U
UG
Iface
vif1.0
eth0
eth0
Donde 192.168.0.100 es la direcci´on 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´on MAC, para to-
das las direcciones IP. Dependiendo de la configuraci´on del equipo esto puede ser
un problema, que puede solucionarse inclyendo 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´on MAC:
ranec:˜# cat /proc/net/arp
IP address
192.168.0.64
85.136.XX.X
192.168.0.100
HW address
00:40:D0:65:B2:84
00:05:00:E3:4D:DB
00:40:D0:65:B2:84
Mask
*
*
*
Device
eth1
eth0
eth1
Es decir, cuando disponemos de varias direcciones IP dentro del mismo rango,
tendremos que optar por utilizar una configuraci´on de puente o una de encami-
nador, 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.
2.3. NAT
No existe documentaci´on oficial sobre la configuraci´on de redes con NAT en
Xen, as´ı que lo que se explica a continuaci´on es fruto simplemente de la experien-
cia al configurarlo. Deben existir por tanto gran cantitud de errores o inexactitu-
des.
Para que Xen utilice NAT, hay que descomentar las l´ıneas:
6
(network-script network-nat)
(vif-script
vif-nat)
En este caso, el dom0 estar´a conectado a dos subredes diferentes, t´ıpicamen-
te a una con direcciones p ´ublicas en eth0 y otra con direcciones privadas en
vif<#?.0>. A trav´es del mecanismo de traducci´on de direcciones NAT, ir´a cam-
biando las direcciones origen/destino de cada paquete de forma adecuada.
Cuando se lanza xend, se ejecuta el script network-nat, que:
Activa el bit de forward en dom0
Cuando se inicia un domU, xend ejecuta (dentro de dom0) vif-nat, que:
Pone una direcci´on IP en vif<id#>.0, correspondiente al rango de la subred
que se defina en domU2
Levanta vif<id#>.0
A ˜nade las reglas de iptables correspondientes para hacer NAT.
El esquema es exactamente igual al de la figura 2, aunque ahora las direccio-
nes IP de los domU no est´an en el mismo rango que la direcci´on IP “externa” del
dom0.
La salida de ifconfig en el dom0 es:
eth0
lo
HWaddr 00:40:D0:65:B2:84
Link encap:Ethernet
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
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)
Interrupt:3 Base address:0xc000
TX bytes:219429 (214.2 KiB)
MTU:1500
Mask:255.0.0.0
Link encap:Local Loopback
inet addr:127.0.0.1
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING
MTU:16436
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
Comentarios de: Configuraciones de red en sistemas virtuales (0)
No hay comentarios