O convidado KVM não pode se conectar ao host, mas funciona vice-versa

2

Eu tenho o debian 7 na minha máquina host e executo um KVM vm nele.

A configuração de rede dos meus anfitriões é esta (as partes relevantes):

br0       Link encap:Ethernet  HWaddr 68:b5:99:ae:8f:11  
          inet addr:77.244.244.123  Bcast:77.244.245.239 Mask:255.255.255.248
          inet6 addr: fe80::6ab5:99ff:feae:8f11/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:762056 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:44471912 (42.4 MiB)  TX bytes:690 (690.0 B)

eth1      Link encap:Ethernet  HWaddr 68:b5:99:ae:8f:11  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2329129 errors:0 dropped:0 overruns:0 frame:0
          TX packets:156844 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2035457148 (1.8 GiB)  TX bytes:15978289 (15.2 MiB)
          Memory:ef060000-ef07ffff 

A interface do meu host para acesso à internet:

eth0      Link encap:Ethernet  HWaddr 68:b5:99:ae:8f:10  
          inet addr:146.255.255.123  Bcast:146.255.62.175  Mask:255.255.255.240
          inet6 addr: 2a02:1b8:10:68:6ab5:99ff:feae:8f10/64 Scope:Global
          inet6 addr: fe80::6ab5:99ff:feae:8f10/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:19692653 errors:0 dropped:0 overruns:0 frame:0
          TX packets:46873952 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:3070321406 (2.8 GiB)  TX bytes:44921402181 (41.8 GiB)
          Memory:ef000000-ef01ffff 

Meu host usa eth0 como Interface para conexão com a internet, meu sistema operacional convidado KVM usa br0 , que inclui eth1 . A interface eth0 é intencionalmente não parte da ponte.

Informações adicionais sobre a ponte:

bridge name   bridge id          STP enabled  interfaces
br0           8000.68b599ae8f11  no           eth1
                                              vnet0

Meu host pode alcançar o convidado pela rede, mas meu convidado não pode se conectar à máquina host. Tenho certeza de que estou sentindo falta de algo muito simples, mas não consegui encontrar uma resposta em nenhum lugar.

Só para fornecer o máximo de informações possível, aqui está também a configuração das minhas interfaces de convidados:

eth0      Link encap:Ethernet  HWaddr 52:54:00:02:98:b7  
          inet addr:77.244.244.123  Bcast:77.244.245.239  Mask:255.255.255.248
          inet6 addr: fe80::5054:ff:fe02:98b7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:26969 errors:0 dropped:22761 overruns:0 frame:0
          TX packets:2344 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2019925 (1.9 MiB)  TX bytes:331567 (323.7 KiB)

Meu host tem as seguintes regras iptables (que devem ser completamente irrelevantes para a comunicação guest / host na minha opinião):

G-NET // root@net:/home/geruetzel# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:53
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:53
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:67
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:67

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:68

Agradeço qualquer ajuda que você possa me dar - obrigado antecipadamente!

    
por geruetzel 11.12.2015 / 09:40

1 resposta

2

Acontece que você está usando o mesmo endereço IP para o lado do host da ponte do que para o convidado. (É impossível ver isso a partir da sua pergunta, pois você usou xx.xx para ocultar parte dos endereços IP; só saiu em um dos comentários.)

O endereço IP da bridge é usado pelo host. Quando uma interface física como eth0 é adicionada a uma ponte, ela não deve ter um endereço IP e deve ser definida como modo promíscuo para que possa receber tráfego para qualquer um dos endereços IP da ponte.

O endereço IP do convidado para uma ponte é definido dentro do próprio convidado como para uma situação normal do tipo eth0 .

Da mesma forma que dois dispositivos em uma rede devem ter endereços IP diferentes, o convidado e o host devem ter endereços IP diferentes. Para reafirmar isso explicitamente: você NÃO DEVE ter o mesmo endereço IP para host e guest.

Estou impressionado que seu host e convidado possam se comunicar com essa configuração; Eu me pergunto se, quando o seu anfitrião pensou que estava se comunicando com seu convidado, ele estava se comunicando com ele mesmo.

Aqui está um exemplo reduzido, com base na configuração da minha rede doméstica (não estou no trabalho agora):

Host (192.168.1.253/24)

$ brctl show brINT
bridge name     bridge id               STP enabled     interfaces
brINT           8000.009c029758d6       no              eth1
                                                        vnet1

$ ip addr show dev brINT
5: brINT: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
    link/ether 00:9c:02:97:58:d6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.253/24 brd 192.168.1.255 scope global brINT

$ ip addr show dev eth1
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master brINT state UP qlen 1000
    link/ether 00:9c:02:97:58:d6 brd ff:ff:ff:ff:ff:ff

Convidado (192.168.1.15/24)

$ ip addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether 52:54:00:3c:75:33 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.15/24 brd 192.168.1.255 scope global eth0
    
por 12.12.2015 / 16:23