Não é possível fazer com que a rede de um convidado do PowerKVM funcione

1

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!

    
por Andrea 15.01.2015 / 23:12

0 respostas