Tengo un servidor físico que ejecuta CentOS 6.5 con una interfaz conectada a Internet (con una dirección IP pública). Dentro de este servidor tengo dos máquinas virtuales creadas con KVM a través de libvirt con una interfaz cada una. Quiero asignar una dirección IP pública a cada VM y continuar usando la conexión con el servidor físico.
Esta imagen ilustra lo que tengo en negro y lo que quiero en azul: .
He intentado de varias maneras, como agregar un puente de Linux brctl
y conectar la interfaz física del servidor y las dos interfaces virtuales de VM, pero no funcionó y perdí la conectividad con el servidor físico.
Estoy abierto a usar puentes de Linux o redes de libvirt.
¿Cómo puedo obtener direcciones IP públicas en máquinas virtuales y en el servidor físico?
Respuestas:
Finalmente encontré la forma correcta de lograr el objetivo de la pregunta. Implica un puente de Linux, porque no pude resolver el problema con la red libvirt.
Pasos:
vnet*
En este ejemplo
vnet0
yvnet1
Cree un puente de Linux con:
brctl addbr virbr1
Adjunte la interfaz física y las interfaces de VM KVM al nuevo puente:
ADVERTENCIA: si está conectado al servidor físico a través de la red (SSH, Telnet, etc.), perderá la conexión. Use un terminal o un método alternativo (como otra interfaz con conectividad).
En CentOS 6.5, edite el archivo
/etc/sysconfig/network-scripts/ifcfg-eth0
con estos contenidos:En CentOS 6.5, edite el archivo
/etc/sysconfig/network-scripts/ifcfg-virbr1
con estos contenidos:service network restart
NOTA: debe recuperar la conectividad de red del servidor físico (a través de la interfaz y el puente)
Esto depende del sistema operativo de las máquinas virtuales. De todos modos, debe incluir la dirección IP, la máscara de red y la puerta de enlace predeterminada, al menos. Obviamente, los servidores DNS completarán la configuración.
Todas estas configuraciones son estáticas y podrían ser sustituidas por la asignación de DHCP. En este caso, las direcciones MAC del puente y las interfaces KVM VM podrían ser útiles.
fuente