¿Cómo darle conectividad de red a mis invitados KVM?

¿Cómo darle conectividad de red a mis invitados KVM?

Soy completamente nuevo en KVM y en la idea de la virtualización, pero he estado leyendo sobre ello durante un par de días y jugando con él durante las últimas horas.

Crear, instalar, clonar, etc., todo parece genial. Pero los invitados que hago terminan con "red inalcanzable" cuando intento hacer ping a 8.8.8.8

Estoy usando CentOS 6.5 tanto para el anfitrión como para los invitados.

ifconfig en el invitado:

lo    Link encap:Local Loopback  
      inet addr:127.0.0.1  Mask:255.0.0.0
      inet6 addr: ::1/128 Scope:Host
      UP LOOPBACK RUNNING  MTU:16436  Metric:1
      RX packets:0 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:0 (0.0 b)  TX bytes:0 (0.0 b)

Entiendo que probablemente aquí es donde radica el problema: supongo que debería haber un dispositivo eth0. ¿Por qué no está ahí?

código de instalación:

virt-install \
--virt-type kvm \
--name sebweb2 \
--ram 16384 \
--cdrom /var/ISOs/CentOS-6.5-x86_64-minimal.iso \
--disk /var/lib/libvirt/images/sebweb2.img,format=qcow2 \
--network bridge=br0 \
--nographics \
--os-type linux \
--os-variant rhel6 \
--vcpus 12

Ifconfig del anfitrión:

br0   Link encap:Ethernet  HWaddr 16:AC:2D:A6:98:40
      inet addr:xxx.yyy.zzz.217  Bcast:xxx.yyy.zzz.255  Mask:255.255.255.0
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:92172 errors:0 dropped:0 overruns:0 frame:0
      TX packets:58463 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0
      RX bytes:5428257 (5.1 MiB)  TX bytes:71953860 (68.6 MiB)

eth0  Link encap:Ethernet  HWaddr 16:AC:2D:A6:98:40
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:117592 errors:0 dropped:0 overruns:0 frame:0
      TX packets:79097 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000
      RX bytes:8766798 (8.3 MiB)  TX bytes:73073312 (69.6 MiB)
      Memory:fbc00000-fbd00000

lo    Link encap:Local Loopback
      inet addr:127.0.0.1  Mask:255.0.0.0
      UP LOOPBACK RUNNING  MTU:16436  Metric:1
      RX packets:92 errors:0 dropped:0 overruns:0 frame:0
      TX packets:92 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0
      RX bytes:8172 (7.9 KiB)  TX bytes:8172 (7.9 KiB)

virbr0 Link encap:Ethernet  HWaddr 51:54:00:39:CA:A7
      inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:2 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:128 (128.0 b)  TX bytes:0 (0.0 b)

vnet0 Link encap:Ethernet  HWaddr 54:FE:00:F1:31:95
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:256 errors:0 dropped:0 overruns:1 carrier:0
      collisions:0 txqueuelen:500
      RX bytes:0 (0.0 b)  TX bytes:20835 (20.3 KiB)

vnet1 Link encap:Ethernet  HWaddr 54:FE:00:CD:CD:C4
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:11 errors:0 dropped:0 overruns:0 frame:0
      TX packets:1307 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:500
      RX bytes:2722 (2.6 KiB)  TX bytes:110215 (107.6 KiB)

¿Alguna otra información relevante que deba proporcionar?

¡Gracias!

Respuesta1

Si "ifconfig -a" en el invitado no muestra un eth0, ejecute "virt-manager" en el host para obtener una GUI agradable para editar los parámetros de la máquina virtual en lugar de hacerlo en la línea de comando. A través de esa GUI puede agregar una interfaz de red si la necesita.

Una vez que tenga un eth0 en el invitado, deberá especificar los parámetros de la interfaz en el archivo /etc/sysconfig/network-scripts/ifcfg-eth0. Asegúrese de especificar una puerta de enlace predeterminada con la palabra clave "GATEWAY". Aquí hay un script ifcfg de muestra para la especificación manual de parámetros (en lugar de usar DHCP). Por supuesto, deberá proporcionar los valores correctos de IPADDR, NETWORK, NETMASK y GATEWAY para su red.

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.1.110
NETWORK=192.168.1.0
NETMASK=255.255.255.0
GATEWAY=192.168.1.1

Para que los cambios en ifcfg-eth0 entren en vigor, ejecute "reinicio de red de servicio".

Respuesta2

hacer "brctl show" en el host

para verificar que su máquina virtual esté conectada al puente br0 y dado que su br0 tiene una IP pública (supongo que ya que lo comentó), asigne una IP pública a su máquina virtual invitada con la puerta de enlace adecuada.

o

elimine su interfaz virtual de br0 y agréguela a virbr0.

en el anfitrión

brctl delif br0 vifname 

brctl addif virbr0 vifname 

habilite dhcp en su invitado configurandoBOOTPROTO=dhcp.

Obtendrá una dirección IP en 192.168.122.0 y debería poder acceder al exterior, siempre que tenga las reglas NAT correctas creadas por libvirt.

información relacionada