libvirtd: conseguir que vps utilice el puente existente

libvirtd: conseguir que vps utilice el puente existente

He estado trabajando para ejecutar KVM en CentOS 6.4 y encontré un problema. Después de leer varios documentos en línea sobre cómo configurar un puente para que se conecten los vps e intentar realizar manualmente los cambios necesarios, finalmente encontréEste artículolo que demuestra una forma automágica de hacerlo:

virsh iface-bridge eth1 br0

Ahora cuando lo hago brctl showme sale lo siguiente:

bridge name     bridge id               STP enabled     interfaces
br0             8000.001b78bb915a       yes             eth1

Todo pinta bien hasta el momento. En la configuración de mi dominio tengo la siguiente construcción de red:

<interface type='network'>
  <mac address='52:54:00:a3:dd:2c'/>
  <source network='br0'/>
  <model type='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>

Sin embargo, cuando intento iniciar el dominio sigo recibiendo el siguiente error:

error: Failed to start domain service-a-2
error: Network not found: no network with matching name 'br0'

Después de buscar un poco más, descubrí que puedo enumerar las redes disponibles para el hipervisor emitiendo lo siguiente:

$ ->  virsh net-list --all

Pero en mi caso está vacío. Entonces encontréEste artículoque demuestra cómo configurar para usar un puente existente, por lo que mi configuración se ve así:

<network>
  <name>br0</name>
  <forward mode="bridge"/>
  <bridge name="br0" />
</network>

Lo agregué al hipervisor mediante virsh net-define /tmp/br0.xml. Luego inicié la red y mi dominio, pero ahora, cuando emito ifconfigel comando, veo la entrada vnet0:

vnet0     Link encap:Ethernet  HWaddr FE:54:00:A3:DD:2C
inet6 addr: fe80::fc54:ff:fea3:dd2c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  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:500
RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

Lo cual no tiene sentido, ¿no debería el dominio utilizar el puente br0 existente? ¿Se crea un nuevo túnel vnetX (?) para cada vps iniciado por el hipervisor?

Respuesta1

Esto tiene mucho sentido. Lo que sucede cuando configura un puente es un dispositivo puente ficticio sin nada conectado ( brctl showno aparecerá ninguna NIC debajo).

Cuando conecta el puente a una interfaz física, aparecerá como una de las interfaces conectadas al puente y a través de la cual en realidad pasará el tráfico real, pero esa es solo una interfaz del puente. Cuando inicia una máquina virtual, aparece un dispositivo tap, que también debe estar conectado al conmutador, para que el conmutador pueda tener dos interfaces y mover el tráfico entre las dos. Simplemente piense en el puente como un conmutador de red, donde la VM está conectada (el grifo es ese dispositivo vnet0) y la NIC real también está conectada. Se pueden conectar más máquinas virtuales a este puente; todo su tráfico irá a la red a través de la NIC física que haya conectado al puente.

información relacionada