Utilizando dos tarjetas de red del dom0 en el domU

Imagen de Epe

Este documento es una "mejora" a: http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5.4/html/Virtualization_Guide/chap-Virtualization-Pre_Red_Hat_Enterprise_Linux_5.4_Xen_networking.html

Supongamos que tenemos dos tarjetas de red en nuestro hardware, en nuestro dom0.

Supongamos que quiero que ambas tarjetas actúen como DOS switches diferentes. Es decir, quiero que ambos switches (tarjetas) se conecten a redes diferentes.

Por defecto Xen utiliza la tarjeta eth0 para el primer bridge que le llama xenbr0 e ignora las tarjetas adicionales que puedas tener.

Lo que haremos es reconfigurar los scripts de xen para que al levantar xend arranque un segundo bridge: xenbr1 asociado a eth1

Quedaría así:

eth0 es xenbr0
eth1 es xenbr1

por supuesto puedes modificar el script para tantos bridges como necesites.

Yo asumo que tanto eth0 como eth1 ya están configurados normal, cada tarjeta con ips de sus respectivas redes (que no sean de la misma red!!)

Entonces los pasos son los siguientes:
1- Si deseas lees http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5.4/html/Virtualization_Guide/chap-Virtualization-Pre_Red_Hat_Enterprise_Linux_5.4_Xen_networking.html

2- crear una copia de: /etc/xen/scripts/network-bridge


cp /etc/xen/scripts/network-bridge /etc/xen/scripts/network-bridge.xen

3- vi /etc/xen/xend-config.sxp y comentar:

#(network-script network-bridge)

Agregar justo debajo:

(network-script network-xen-multi-bridge)

quedaría así:


#(network-script network-bridge)
(network-script network-xen-multi-bridge)

Lo que estoy es cambiando el script de arranque de la red de xen, por uno llamado network-xen-multi-bridge

4- Crear el siguiente archivo:

vi /etc/xen/scripts/network-xen-multi-bridge

Que contenga lo siguiente:

#!/bin/sh
# network-xen-multi-bridge
# Exit if anything goes wrong.
set -e
# First arg is the operation.
OP=$1
shift
script=/etc/xen/scripts/network-bridge.xen
case ${OP} in
start)
$script start vifnum=1 bridge=xenbr1 netdev=eth1
$script start vifnum=0 bridge=xenbr0 netdev=eth0
;;
stop)
$script stop vifnum=1 bridge=xenbr1 netdev=eth1
$script stop vifnum=0 bridge=xenbr0 netdev=eth0
;;
status)
$script status vifnum=1 bridge=xenbr1 netdev=eth1
$script status vifnum=0 bridge=xenbr0 netdev=eth0
;;
*)
echo 'Unknown command: ' ${OP}
echo 'Valid commands are: start, stop, status'
exit 1
esac

A este script le doy derechos de ejecución:


chmod +x /etc/xen/scripts/network-xen-multi-bridge

Y listo. Reinicio el xend:

service xend restart

y ya estará lista la segunda red. Lo puedes comprobar si haces:

ifconfig

verás algo así:

xenbr0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF
UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
RX packets:801 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:116109 (113.3 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:61236 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:4675108 (4.4 MiB) TX bytes:0 (0.0 b)

ves? xenbr0 y xenbr1

Configuración de las máquinas virtuales para usar ambas tarjetas
Ahora, las máquinas virtuales que configures, vendrán configuradas para usar la primera red, si haces por ejemplo un cat /etc/xen/cos01 (pensando que así se llame tu máquina virtual) verás lo siguiente:

.
vif = [ "mac=00:16:36:62:9d:9b,bridge=xenbr0" ]
.

Si no viene bridge=xenbr0 eso es porque es por defecto, no te preocupes.

Si quieres usar ambos switches (tarjetas de red) simplemente modificas esta linea y la dejas así:

.
vif = [ "mac=00:16:36:62:9d:9b,bridge=xenbr0","mac=00:16:36:6e:93:9b,bridge=xenbr1" ]
.

Lo que estoy indicando es lo siguiente:
eth0 tiene de MAC 00:16:36:62:9d:9b y está conectada al switch virtual llamado xenbr0 (a la eth0)
eth1 tiene de MAC 00:16:36:6e:93:9b y está conectada al switch virtual llamado xenbr1 (a la eth1)

Apagas y enciendes la máquina virtual.

Y listo,ahi tienes un equipo domU conectado a ambos switches, a ambas redes. Al arrancar por primera vez la máquina virtual, eth1 estará configurada para usar dhcp, te tocará dentro de la máquina virtual configurar eth1 para no usar dhcp si es que en la red donde está eth1 no hay servidor de dhcps. Eso es normal como siempre se hace.

Comentarios

Efectivamente me falla, aunq

Imagen de Tonny

Efectivamente me falla, aunq no e cambiado el MUT ni nada antes había probado con este how to http://www.debian-administration.org/articles/470
Y veo que en sí hace lo mismo, luego de cambiar por el script que crea los puentes reinicio y el dom0 no reconoce ni eth0 ni eth1
le pongo ifup eth0 y me dice q no existe el dispositivo, reinicio con el kernel normal no el xen y funcionan las tarjetas
es raro.

Al ejecutar manualmente el

Imagen de Tonny

Al ejecutar manualmente el script


dom0:~# /etc/xen/scripts/network-bridge.xen start vifnum=1 bridge=xenbr1 netdev=eth1
Waiting for peth1 to negotiate link...
Ignoring unknown interface xenbr1=xenbr1.

anula la interfaz eth1

dom0:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:24:81:fb:9b:7e
inet addr:192.168.1.181 Bcast:192.168.1.255 Mask:255.255.255.0
...

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
...

peth1 Link encap:Ethernet HWaddr 00:24:81:fb:9b:7f
inet6 addr: fe80::224:81ff:fefb:9b7f/64 Scope:Link
...


lo detengo y aparece nuevamente


dom0:~# /etc/xen/scripts/network-bridge.xen stop vifnum=1 bridge=xenbr1 netdev=eth1
ifdown: interface xenbr1 not configured


dom0:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:24:81:fb:9b:7e
inet addr:192.168.1.181 Bcast:192.168.1.255 Mask:255.255.255.0
...
eth1 Link encap:Ethernet HWaddr 00:24:81:fb:9b:7f
inet addr:190.95.196.150 Bcast:190.95.196.151 Mask:255.255.255.248
...
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
...

Creo que hay un problema al

Imagen de Tonny

Creo que hay un problema al generar los bridge con el script de XEN, pero no se en donde
e hecho esto y me ha funcionado ahora no se si este correcto o si exista algún riesgo en dejar la eth1 que está de lado de internet en modo promiscuo
Alguna sugerencia ???

#!/bin/sh
# network-xen-multi-bridge

brctl addbr xenbr0
brctl addif xenbr0 eth0
ifconfig eth0 0.0.0.0 promisc up
ifconfig xenbr0 XX.XX.XX.XX up #IP de la LAN

brctl addbr xenbr1
brctl addif xenbr1 eth1
ifconfig eth1 0.0.0.0 promisc up
ifconfig xenbr1 XX.XX.XX.XX up #IP de la WAN

Que tal amigos... Perdón por

Imagen de NEO

Que tal amigos...

Perdón por no responder antes, esque ando de vacaciones :=)

Verás a mi me falla fijo cuando utilizo varias tarjetas de red, en Gigabit Ethernet y los switchs o routers son marca patito (osea de dlink no configurables para abajo).
Por defecto suelen venir los MTU en 1500 me parece, le tienes que bajar 4 bits por cada interface que tengas por cada MV que los utilice.
A un nivel mas bajo (no me acuerdo que capa) se mandan unos bits de inicio, comprobación, total y parada, como normalmente viene seteado en 1500 y a veces las N máquinas virtuales que tienes utilizan la trama completa y se pasa este valor haciendo que se inhiba la red. A mi me ha pasado, lo he comprobado a puro dolor jeje.
Cuando usas equipos switchs/routers mas decentes estos se dan cuenta de esto y no fallan, también le puedes aumentar el MTU en esos conmutadores (en teoría)
A mi me toco poner 4 NICs una vez y me costó mucho trabajo, es mas el XEN que venía con Centos 5.1 en esas epocas no soportaba mas de 3. No se como vaya la movida ahora.

La verdad es que a mi me ha costado un poco llegar a esta deducción, he buscado en el internet y he encontrado gente que cree lo mismo, pero podría ser otra cosa, la verdad no tengo mas pruebas que las que he realizado y han dado resultado :=). Conozco gente que dice que no le falla nunca nada en la red con el XEN, pero casi siempre utilizan un solo interface de red o solo usan redes virtualizadas. Yo expuse aquí mismo mis inquietudes para alguien que tenga los mismos problemas puede revisar el foro :=)

Suerte a todos
y gracias de nuevo por el aporte :=)

NEO

hola... tengo una pregunta ta

hola... tengo una pregunta ya yengo los 2 puentes

xenbr0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF
UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
RX packets:646 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:66215 (64.6 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:3922 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:389613 (380.4 KiB) TX bytes:0 (0.0 b)

en el fichero de configuracion de /etc/xen/Centos01 tengo

vfb = [ "type=vnc,vncunused=1,keymap=es" ]
disk = [ "phy:/dev/dsk/Centos01,xvda,w" ]
vif = [ "mac=00:16:36:61:65:93,bridge=xenbr1,script=vif-bridge" ]

vi que la mac que se muestra arriba pertenece a la eth0 de la maquina virtual....
mi pregunta es para utilizar los 2 puentes desde mi maquina virtual que mac address debo anteponer cuando ponga bridge=xenbr0...? y si tengo que crear otra tarjeta "fìsica" en la maquina virtual como lo hago...?

-=[ Markokainero ]=-

Pon cualquier MAC inclusive

Imagen de Tonny

Pon cualquier MAC inclusive hay un script en python que te genera una mac aleatoria

http://kennethreitz.com/blog/generate-a-random-mac-address-in-python/

lo que hay que tomar en cuenta es que debe iniciar con 00:16:3e que son la máquinas de XEN

Páginas