![libvirtd - Fazendo com que o vps use a ponte existente](https://rvso.com/image/617283/libvirtd%20-%20Fazendo%20com%20que%20o%20vps%20use%20a%20ponte%20existente.png)
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 show
recebo 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 ifconfig
o 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 show
nã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.