Xen Setup · 2 min read · Feb 10, 2026
La Configuración Perfecta de Xen 3.0.3 Para Debian Sarge - Página 5
4.5 Crear Una Red Local Virtual Desde Las Máquinas Virtuales (Opcional)
(Este capítulo es opcional. Lo que se describe aquí solo funciona si instalaste Xen desde las fuentes.)
En este capítulo quiero crear una red virtual con mis máquinas virtuales, es decir, una red que es diferente de la red de dom0.
Puedes encontrar un dibujo de lo que quiero hacer aquí: http://wiki.xensource.com/xenwiki/XenNetworkingUsecase#head-7f23d0f2248cb0c70458f9339b4405e2b1bfc271
Hice lo mismo con Xen 2.0.7 aquí: https://www.howtoforge.com/perfect_xen_setup_debian_ubuntu_p6. Sin embargo, la forma de lograr esto con Xen 3 ha cambiado completamente. Xen 3 configura todas las reglas de firewall, gateways, etc. automáticamente. Además, ya no necesitamos ninguna interfaz de red ficticia para nuestra red virtual. Es importante saber que Xen 3 asigna gateways de la red 10.x.x.x a nuestras máquinas virtuales, por lo que es una buena idea también asignar direcciones IP de la red 10.x.x.x a nuestras máquinas virtuales. Si les das direcciones IP de la red 192.168.3.x (como hicimos con Xen 2.0.7 en https://www.howtoforge.com/perfect_xen_setup_debian_ubuntu_p6), entonces tus máquinas virtuales no tendrán acceso a internet.
Así que le daremos a vm01 la dirección IP 10.0.0.1 y a vm02 la dirección IP 10.0.0.2.
Primero editamos /etc/xen/xend-config.sxp y deshabilitamos el puenteo y habilitamos NAT (traducción de dirección de red) en su lugar:
vi /etc/xen/xend-config.sxp| [...] #(network-script network-bridge) #(vif-script vif-bridge) (network-script network-nat) (vif-script vif-nat) [...] |
Luego cambiamos los archivos de configuración de vm01 y vm02:
/etc/xen/vm01-config.sxp:
vi /etc/xen/vm01-config.sxp| name="vm01" kernel="/boot/vmlinuz-2.6-xenU" root="/dev/hda1" memory=32 disk=['file:/vserver/images/vm01.img,hda1,w','file:/vserver/images/vm01-swap.img,hda2,w'] vif=[ 'ip=10.0.0.1' ] dhcp="off" hostname="vm01.example.com" ip="10.0.0.1" netmask="255.0.0.0" gateway="10.0.0.254" extra="3" |
/etc/xen/vm02-config.sxp:
vi /etc/xen/vm02-config.sxp| name="vm02" kernel="/boot/vmlinuz-2.6-xenU" root="/dev/hda1" memory=32 disk=['file:/vserver/images/vm02.img,hda1,w','file:/vserver/images/vm02-swap.img,hda2,w'] vif=[ 'ip=10.0.0.2' ] dhcp="off" ip="10.0.0.2" netmask="255.0.0.0" gateway="10.0.0.254" hostname="vm02.example.com" extra="3" |
Después apaga vm01 y vm02:
xm shutdown vm01
xm shutdown vm02Espera unos segundos y controla con xm list que vm01 y vm02 se hayan apagado. Luego reinicia el sistema:
shutdown -r nowSi vm01 y vm02 no se inician automáticamente al arrancar, inícialos ahora:
xm create /etc/xen/vm01-config.sxp
xm create /etc/xen/vm02-config.sxpAhora deberías poder hacer ping a vm02 desde vm01 y viceversa, y también deberías poder hacer ping a dom0 y a los hosts en internet.
Ahora supongamos que tenemos un servidor web en el puerto 80 en vm01 y un servidor de correo en el puerto 25 en vm02. Como están en su propia red (10.x.x.x), no podemos acceder a ellos desde el exterior a menos que reenviemos estos puertos a la vm correspondiente. Podemos crear las reglas de reenvío de puertos necesarias en dom0 con la ayuda de iptables:
iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 80 -j DNAT --to 10.0.0.1:80
iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 25 -j DNAT --to 10.0.0.2:25Si ahora nos conectamos a dom0 en el puerto 80, seremos reenviados a vm01. Lo mismo ocurre para el puerto 25 y vm02.
Por supuesto, las reglas de reenvío se pierden cuando reiniciamos dom0. Por lo tanto, ponemos las reglas en /etc/network/if-up.d/iptables, que se ejecuta automáticamente cuando el sistema arranca:
vi /etc/network/if-up.d/iptables| #!/bin/sh ### Reenvío de Puertos ### iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 80 -j DNAT --to 10.0.0.1:80 iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 25 -j DNAT --to 10.0.0.2:25 |
Ahora tenemos que hacer que ese script sea ejecutable:
chmod 755 /etc/network/if-up.d/iptablesSiempre que necesites reglas adicionales de reenvío de puertos, ejecútalas en el shell de dom0 y luego añádelas a /etc/network/if-up.d/iptables para que estén disponibles incluso después de un reinicio.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.