Configurar direcciones IP públicas en máquinas virtuales KVM

12

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: Topología de la red.

He intentado de varias maneras, como agregar un puente de Linux brctly 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?

desconectarse
fuente
Intente agregar un segundo adaptador a las máquinas virtuales y conéctelas a la red interna del servidor.
shcherbak
¿Qué red interna del servidor? de todos modos quiero la configuración de la pregunta, si es posible.
cierre de sesión el
Supongamos que esto ayudará: [KVM - Crear una máquina virtual con 2 interfaces de puentes] ( askubuntu.com/questions/581771/… ), [Puente de red KVM con dos NIC] ( serverfault.com/questions/130134/… )
shcherbak
una vez más, preferiría tener solo una interfaz por VM, si es posible.
cierre de sesión el
Ayer respondí una pregunta similar sobre Debian KVM Host & Guest. unix.stackexchange.com/questions/245073/… - aparte de los detalles menores de la configuración de la interfaz, debería ser similar en centos.
cas

Respuestas:

4

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:

  1. Identificar las interfaces de VM KVM. Probablemente los nombres de las interfaces comienzan convnet*

En este ejemplo vnet0yvnet1

  1. Cree un puente de Linux con:

    brctl addbr virbr1

  2. 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).

brctl addif virbr1 vnet0
brctl addif virbr1 vnet1
brctl addif virbr1 eth0
  1. Configure la interfaz del servidor físico que no tiene una dirección IP asignada:

En CentOS 6.5, edite el archivo /etc/sysconfig/network-scripts/ifcfg-eth0con estos contenidos:

DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
NAME=eth0
TYPE=Ethernet
IPV6INIT=no
USERCTL=no
  1. Configure el puente físico del servidor para que tenga una dirección IP:

En CentOS 6.5, edite el archivo /etc/sysconfig/network-scripts/ifcfg-virbr1con estos contenidos:

DEVICE=virbr1
BOOTPROTO=none
ONBOOT=yes
IPADDR=<physical_server_public_ip_address>
NETMASK=<physical_server_public_ip_netmask>
GATEWAY=<physical_server_gateway_ip_address>
NAME=virbr1
TYPE=Ethernet
IPV6INIT=no
USERCTL=no
NM_CONTROLLED=no
DNS1=<physical_server_primary_dns_server_ip_address>
DNS2=<physical_server_secondary_dns_server_ip_address>
  1. Reinicie la red del servidor físico:

service network restart

NOTA: debe recuperar la conectividad de red del servidor físico (a través de la interfaz y el puente)

  1. Configure la interfaz de red de las máquinas virtuales KVM:

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.

desconectarse
fuente