libvirtd - Fazendo com que o vps use a ponte existente

libvirtd - Fazendo com que o vps use a ponte existente

Tenho trabalhado para fazer o KVM rodar no CentOS 6.4 e me deparei com um problema. Depois de ler vários documentos on-line sobre como configurar uma ponte para o vps se conectar e tentar fazer manualmente as alterações necessárias, finalmente me deparei comEste artigoque demonstra uma maneira automática de fazer isso:

virsh iface-bridge eth1 br0

Agora, quando faço isso, brctl showrecebo o seguinte:

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

Tudo parece bem até agora. Na configuração do meu domínio, tenho a seguinte construção de rede:

<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>

No entanto, quando tento iniciar o domínio, recebo o seguinte erro:

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

Depois de mais pesquisas, descobri que posso listar as redes disponíveis para o hipervisor emitindo o seguinte:

$ ->  virsh net-list --all

Mas no meu caso, está vazio. Então eu encontreiEste artigoque demonstra como configurar para usar uma ponte existente, então minha configuração se parece com:

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

Eu o adicionei ao hipervisor por meio de virsh net-define /tmp/br0.xml. Então iniciei a rede e meu domínio, mas agora, quando emito ifconfigo comando, vejo a 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)

O que não faz sentido, o domínio não deveria usar a ponte br0 existente? Um novo túnel vnetX (?) É criado para cada vps iniciado pelo hipervisor?

Responder1

Isso está fazendo todo o sentido. O que acontece quando você configura uma ponte é um dispositivo de ponte fictício sem nada conectado ( brctl shownão listará nenhuma NIC).

Quando você conecta a ponte a uma interface física, ela aparecerá como uma das interfaces conectadas à ponte, e através da qual de fato passará o tráfego real, mas essa é apenas uma interface da ponte. Quando você inicia uma VM, ela vem com um dispositivo tap, que também deve ser conectado ao switch, para que o switch possa ter duas interfaces e mover o tráfego entre as duas. Pense na ponte como um switch de rede, onde a VM está conectada (a torneira é aquele dispositivo vnet0) e a NIC real também está conectada. Mais VMs podem ser conectadas a esta ponte, todo o tráfego irá para a rede através da NIC física que você conectou à ponte.

informação relacionada