Os novos convidados do KVM não podem acessar a LAN externa

5

Eu tenho um host KVM (em 192.168.0.10 ) que atualmente tem um guest KVM em funcionamento (em 192.168.0.12 ). Na tentativa de instalar um novo guest KVM hoje, cheguei a um problema em que a rede do novo guest funciona apenas parcialmente.

As únicas coisas que posso acessar do novo convidado são recursos dentro da rede. Tentar acessar quaisquer outros recursos de rede (incluindo aqueles que passaram pelo gateway) resulta em 100% de perda de pacotes para o destino.

Os convidados se conectam por meio de uma ponte em br0 que usa eth2 para acessar a rede.

A rede do host funciona como esperado, e a rede do outro (apenas um, atualmente) convidado, também conectando através da mesma ponte, funciona. Fechar o convidado em funcionamento não resolve o problema.

Ambos os convidados recebem seus dados de rede pelo DHCP.

A execução de tcpdump do host na interface virtual para o convidado mostra o convidado tentando se comunicar com o mundo externo e obtendo apenas respostas do host e do gateway.

Anfitrião

O convidado com o problema está atualmente se conectando por meio de vnet0 .

# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 00:1e:4f:34:dc:79 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 00:1e:4f:34:dc:7b brd ff:ff:ff:ff:ff:ff
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP qlen 1000
    link/ether 00:15:17:6a:fb:ee brd ff:ff:ff:ff:ff:ff
13: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
    link/ether 00:15:17:6a:fb:ee brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.10/24 brd 192.168.0.255 scope global br0
    inet6 fe80::215:17ff:fe6a:fbee/64 scope link
       valid_lft forever preferred_lft forever
24: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UNKNOWN qlen 500
    link/ether fe:54:00:fc:0f:07 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fc54:ff:fefc:f07/64 scope link
       valid_lft forever preferred_lft forever
25: vnet1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UNKNOWN qlen 500
    link/ether fe:54:00:89:8e:17 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fc54:ff:fe89:8e17/64 scope link
       valid_lft forever preferred_lft forever
# ip route
default via 192.168.0.202 dev br0
192.168.0.0/24 dev br0  proto kernel  scope link  src 192.168.0.10
# cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto br0
iface br0 inet dhcp
    bridge_ports    eth2
    bridge_stp      off
    bridge_maxwait  0
    bridge_fd       0
# brctl show
bridge name bridge id       STP enabled interfaces
br0     8000.0015176afbee   no      eth2
                            vnet0
                            vnet1

Convidado não profissional

Observe que o convidado que não trabalha usa busybox ip .

# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisk pfifo_fast qlen 1000
    link/ether 52:54:00:fc:0f:07 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.27/24 scope global eth0
    inet6 fe80::5054:ff:fefc:f07/64 scope link
       valid_lft forever preferred_lft forever
# ip route
default via 192.168.0.202 dev eth0
192.168.0.0/24 dev eth0  src 192.168.0.27

Convidado de trabalho

# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:89:8e:17 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.12/24 brd 192.168.0.255 scope global eth0
    inet6 fe80::5054:ff:fe89:8e17/64 scope link
       valid_lft forever preferred_lft forever
# ip route
default via 192.168.0.202 dev eth0
192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.12

Tanto o host quanto os convidados executam o Debian Wheezy.

Eu não vejo nenhuma configuração incorreta nos detalhes postados, especialmente tendo em mente que o mesmo método de configuração funcionou recentemente para instalar o outro convidado KVM (e continua a funcionar mesmo agora). Qual poderia ser a causa desse problema e como posso corrigi-lo?

    
por Chris 03.08.2013 / 17:41

1 resposta

4

O STP deve estar ativado na ponte usada para máquinas virtuais KVM.

Corrija isso no seu arquivo /etc/network/interfaces :

    bridge_stp      on

Habilite-o em tempo de execução sem reiniciar o serviço de rede:

# brctl stp br0 on
    
por 03.08.2013 / 17:53