Si bien soy bastante nuevo en XEN (que se ejecuta en Ubuntu 14.04), no he tenido ningún problema real hasta ahora. He configurado mi red mediante puentes y eso ha funcionado bien para muchas máquinas diferentes hasta ahora. Normalmente puedo encontrar mis respuestas en alguna parte, pero esta vez me he quedado corto y busco ayuda.
Tengo una máquina virtual cliente (DomU) que estoy intentando configurar con una gran cantidad de IP y me está dando muchos problemas. Aquí está la configuración:
La máquina host tiene dos NIC, una se usa para xenbr0 privado (10.10.10.x) y la otra simplemente está conectada en puente para IPS público (digamos xyz*) xenbr1:
A continuación se muestra mi /etc/networking/interfaces
archivo del anfitrión:
iface eth0 inet manual
auto xenbr0
iface xenbr0 inet static
bridge_ports eth0
address 10.10.10.112
netmask 255.255.255.0
network 10.10.10.0
broadcast 10.10.10.255
gateway 10.10.10.1
auto eth1
iface eth1 inet manual
auto xenbr1
iface xenbr1 inet manual
bridge_ports eth1
bridge_maxwait 1
En la máquina virtual del cliente también se utilizan dos NIC puenteados /etc/networking/interfaces
:
auto eth0
iface eth0 inet static
address x.y.z.170
netmask 255.255.255.240
broadcast x.y.z.175
gateway x.y.z.161
auto eth1
iface eth1 inet static
address 10.10.10.155
netmask 255.255.255.0
broadcast 10.10.10.255
auto eth0:1
iface eth0:1 inet static
address x.y.z.162
netmask 255.255.255.240
broadcast x.y.z.175
auto eth0:2
iface eth0:2 inet static
address x.y.z.163
netmask 255.255.255.240
broadcast x.y.z.175
auto eth0:3
iface eth0:3 inet static
address x.y.z.164
netmask 255.255.255.240
broadcast x.y.z.175
etc…. up to 8 alaises.
En mi archivo de configuración xen tengo:
vif = [ 'bridge=xenbr0', 'bridge=xenbr1' ]
Planeo eliminar las IP locales de la VM una vez que todo esté configurado y funcionando.
Estoy usando alias ya que estoy tratando de mover esto de una máquina básica a una VM. Con el tiempo se solucionará el uso excesivo de IPS, pero por diversas razones no puedo hacerlo todavía. De todos modos, cuando inicio la máquina virtual, solo se puede hacer ping a algunas de las IP a menos que haga un archivo arping -U -I eth1 x.y.z.162
, etc. para cada dirección IP. Entonces las cosas al menos parecen responder, pero la ruta no funciona realmente correctamente. Puedo hacer ssh y navegar a las IP a través de http, pero los sitios virtuales no funcionan correctamente (es decir, solo me envía a uno e ignora los demás) y al reiniciar bind y algunos otros servicios no responden correctamente. Es como si el enrutamiento no estuviera configurado correctamente y mientras las IP responden, realmente no es la IP solicitada la que responde, sino otra IP.
Sin embargo, esto es sólo en ALGUNOS de los IPS adicionales. Cuando reinicio, la ruta que solucionó el comando arp se pierde. Entonces Bind y algunos otros servicios en la VM no funcionarán. Ejecuto el comando arp y todo vuelve a funcionar.
Creo que la crítica es solo una curita, pero no soluciona el problema real. Dado que exactamente el mismo sistema funciona en una máquina básica, estoy casi seguro de que el problema está en la configuración de mi red XEN y no en la configuración del conmutador o el sistema operativo que estoy intentando migrar.
Para aislar aún más el problema, configuré un invitado Ubuntu 14.04 limpio con múltiples IP usando la configuración más moderna (y no depreciada de alias de IP) que se muestra a continuación en el /etc/networking/interfaces
archivo de VM:
auto eth0
allow-hotplug eth0
iface eth0 inet static
address x.y.z.110
netmask 255.255.255.240
broadcast x.y.z.175
gateway x.y.z.161
iface eth0 inet static
address x.y.z 162
netmask 255.255.255.240
broadcast x.y.z.175
iface eth0 inet static
address x.y.z 163
netmask 255.255.255.240
broadcast x.y.z.175
and on with the other IPS
Todos con los mismos resultados. ¿Qué me estoy perdiendo? Cualquier ayuda sería apreciada.
Respuesta1
Descubrí cuál era mi problema y lo publicaré aquí por si alguien se encuentra con un problema similar.
En mi configuración de Xen no ingresé una dirección MAC. Es decir, tuve:
vif = [ 'bridge=xenbr0', 'bridge=xenbr1' ]
Cuando necesitaba algo como:
vif = [ 'bridge=xenbr0', 'mac=00:11:5e:5n:2c:1c,bridge=xenbr1' ]
El enrutamiento para la dirección MAC no expiró de inmediato, por lo que ejecutar este comando ARP para cada IP solucionó el enrutamiento:
arping -U -I eth1 x.y.z.162
Supongo que cada vez que la VM se iniciaba tenía una nueva dirección MAC y solo algunas de las tablas de enrutamiento se actualizaban cuando se iniciaba la VM.
Ahora que la dirección MAC no cambia, todo está bien.
Respuesta2
Intente intercambiar configuraciones de interfaz en DomU. De acuerdo con su configuración de Dom0, debe usar eth0 para IP privadas y eth1 para públicas en su DomU.