Estou preso a esse problema há alguns dias. Eu estou executando um convidado Ubuntu 14.04 em cima de um host PowerKVM (PowerKVM é KVM em Power Systems da IBM, então basicamente é apenas KVM.). Não consigo fazer com que a rede de ponte funcione. Eu não posso nem pingar o gateway padrão. Meu palpite é que há algo errado no arquivo de configuração XML.
Aqui estão os arquivos.
Host KVM
localhost:/root # ifconfig -a
brenP3p5s0f3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.16.229.200 netmask 255.255.255.192 broadcast 172.16.229.255
inet6 fe80::42f2:e9ff:fe5d:61bb prefixlen 64 scopeid 0x20<link>
ether 40:f2:e9:5d:61:bb txqueuelen 0 (Ethernet)
RX packets 40709 bytes 3013319 (2.8 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 38 bytes 6015 (5.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enP3p5s0f0: flags=4098<BROADCAST,MULTICAST> mtu 1500
ether 40:f2:e9:5d:61:b8 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 252
enP3p5s0f1: flags=4098<BROADCAST,MULTICAST> mtu 1500
ether 40:f2:e9:5d:61:b9 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 253
enP3p5s0f2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.16.229.199 netmask 255.255.255.192 broadcast 172.16.229.255
inet6 fe80::42f2:e9ff:fe5d:61ba prefixlen 64 scopeid 0x20<link>
ether 40:f2:e9:5d:61:ba txqueuelen 1000 (Ethernet)
RX packets 36345 bytes 4200608 (4.0 MiB)
RX errors 0 dropped 2 overruns 0 frame 0
TX packets 23689 bytes 12817261 (12.2 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 252
enP3p5s0f3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::42f2:e9ff:fe5d:61bb prefixlen 64 scopeid 0x20<link>
ether 40:f2:e9:5d:61:bb txqueuelen 1000 (Ethernet)
RX packets 32473 bytes 2927091 (2.7 MiB)
RX errors 0 dropped 3080 overruns 0 frame 0
TX packets 364 bytes 78478 (76.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 253
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 108802 bytes 28022560 (26.7 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 108802 bytes 28022560 (26.7 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:7b:a3:23 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr1: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.121.1 netmask 255.255.255.0 broadcast 192.168.121.255
ether 52:54:00:1e:11:18 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0-nic: flags=4098<BROADCAST,MULTICAST> mtu 1500
ether 52:54:00:7b:a3:23 txqueuelen 500 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr1-nic: flags=4098<BROADCAST,MULTICAST> mtu 1500
ether 52:54:00:1e:11:18 txqueuelen 500 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Tabela de roteamento do host
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.16.229.193 0.0.0.0 UG 0 0 0 enP3p5s0f2
169.254.0.0 0.0.0.0 255.255.0.0 U 1004 0 0 enP3p5s0f2
169.254.0.0 0.0.0.0 255.255.0.0 U 1039 0 0 brenP3p5s0f3
172.16.229.192 0.0.0.0 255.255.255.192 U 0 0 0 enP3p5s0f2
172.16.229.192 0.0.0.0 255.255.255.192 U 0 0 0 brenP3p5s0f3
192.168.121.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr1
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
O arquivo XML do convidado (parte da interface) salvo no host.
localhost:/root # virsh edit ubuntu01
<interface type='bridge'>
<mac address='52:54:00:b8:bd:eb'/>
<source bridge='brenP3p5s0f3'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
O arquivo XML da rede em ponte salvo no host:
localhost:/root # cat /etc/libvirt/qemu/networks/bridged.xml
<network>
<name>bridged</name>
<uuid>01ebaa45-0034-4a3f-8d57-fe67e03130b6</uuid>
<forward mode='bridge'/>
<bridge name='brenP3p5s0f3'/>
</network>
Convidado
Eu não posso copiar / colar porque não posso ssh (dado que é inacessível) e o console no virsh de alguma forma não funciona. No entanto, quando inicio a VM, não vejo nenhum endereço IP definido. Então o que fiz foi o seguinte:
ifconfig eth0 172.16.229.201 netmask 255.255.255.192 up
ip route add default via 172.16.229.193
O padrão gw é o mesmo também para o host. A máscara de rede que uso é a mesma para o convidado e o host.
PROBLEMA: quando eu faço ping no gateway padrão, recebo o erro "Destination Host Unreachable". Quando eu pingar-me 172.16.229.201, posso ping com sucesso.
Uma atualização: um comportamento engraçado acontece ao tentar tcpdump o endereço IP do padrão gw: Eu recebo algo como:
ARP, Request who-has 10.10.10.6 tell 10.10.10.105, length 46
ARP, Request who-has 10.10.10.6 tell 10.10.10.102, length 46
ARP, Request who-has 10.10.10.252 tell 10.10.10.253, length 46
IP 10.10.10.2.1985 > 224.0.0.102.1985: HSRPv1
Várias linhas como essa. Não tenho ideia de onde são tirados esses endereços IP. A coisa "engraçada" é que eu obtenho a mesma saída pelo tcpdump na interface da bridge no Host! Então parece que o tcpdump está acessando a rede de alguma forma do guest! Caso contrário, não posso explicar por que as linhas são as mesmas. Quero enfatizar que esses endereços IP privados que começam com 10 não são atribuídos em nenhum lugar da minha sub-rede.
Alguma ideia?
Obrigado antecipadamente!
Tags linux kvm-virtualization