sem conexão com a internet para um convidado kvm. O que pode estar errado?

1

Eu configurei um convidado kvm win7 em um host debian. Tem sido instalado e funcionando há algum tempo, mas eu não tinha feito muito com isso. O que eu fiz (com certeza) foi baixar putty .

Hoje eu queria tentar deixar o putty acessar o host, então tive que atualizar as regras do firewall. Depois disso, eu não tinha mais conexão com a internet do hóspede. A reversão das alterações também não ajudou. Então eu me pergunto por que eu não tenho mais acesso à Internet do hóspede. Eu sinceramente não consigo descobrir o porquê.

Acrescento aqui as seguintes informações que provavelmente serão de interesse:

regras de iptable atuais: link

kvm guest xml: link

qemu cmd que executa o convidado: link

ifconfig: link

Ifconfig mostra 2 interfaces virtuais: virbr0 que eu espero e vnet0 que eu não sei como é configurado e por quê. Ele é destruído e reaparece junto com virbr0 toda vez que eu corro virst net-destroy default e inicio novamente.

agradeço antecipadamente por sua ajuda.

EDIT: anexando a tabela de roteamento do kernel também:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0   <external IP of Host>  0.0.0.0        UG    0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
195.251.61.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
    
por nass 28.09.2014 / 22:42

2 respostas

4

Então, para obter conexão com a Internet para o convidado, eu tive que adicionar o seguinte

  1. nat table

    -A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535
    -A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p udp -j MASQUERADE --to-ports 1024-65535
    -A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -j MASQUERADE
    -A POSTROUTING -s 192.168.122.0/24 -o eth0 -j SNAT --to-source <the host's ip>
    

então eu mascaro todos os pacotes de saída que deixam o host com ip da sub-rede guest.

  1. filter table

    -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
    -A FORWARD -s 192.168.122.0/24 -i virbr0 -j ACCEPT
    

Também permito pacotes da virbr0 para a internet. Em seguida, permita que as respostas sejam encaminhadas de volta para virbr0 (estabelecido, relacionado).

  1. filter table novamente:

    -A INPUT -s 192.168.122.0/24 -i virbr0 -j ACCEPT
    

finalmente, permita que o convidado acesse serviços executados no host.

    
por 29.09.2014 / 17:57
0

Você pode verificar o endereço IP da rota padrão?

> route PRINT -4
IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      172.16.57.2    172.16.57.210     10

Você deve ter um endereço de gateway válido para a rede 0.0.0.0 (ou seja, deve ter uma resposta de ping com êxito)

    
por 28.09.2014 / 23:20