Dispositivo de bridge Linux e problemas de ARP no Hyper-V

1

A seguinte configuração:

Eu depuro com tcpdump -e -n -i eth1 em ambos os convidados.

Executando arping -I br0 10.0.2.0 -s 10.0.1.0 no convidado 1.

convidado 1:

13:10:51.933237 [guest1-br0-mac] > Broadcast, ethertype ARP (0x0806), length 42: Request who-has 10.0.2.0 (Broadcast) tell 10.0.1.0, length 28

convidado 2: nada!

(É o mesmo ao contrário).

Em execução arping -I eth1 10.0.2.0 -s 10.0.1.0 no convidado 1 (eth1 em vez de br0):

convidado 1:

13:13:57.593789 [guest1-eth1-mac] > Broadcast, ethertype ARP (0x0806), length 42: Request who-has 10.0.2.0 (Broadcast) tell 10.0.1.0, length 28

convidado 2:

13:13:57.594041 [guest1-eth1-mac] > Broadcast, ethertype ARP (0x0806), length 42: Request who-has 10.0.2.0 (Broadcast) tell 10.0.1.0, length 28
13:13:57.594111 [guest2-br0-mac] > [guest1-eth1-mac], ethertype ARP (0x0806), length 42: Reply 10.0.2.0 is-at [guest2-br0-mac], length 28

O convidado 2 parece responder, mas essa resposta não retorna ao convidado 1.

Eu não entendo duas coisas:

  1. Por que existe uma diferença entre usar br0 e eth1 como interface de origem? O dispositivo de bridge não deve encaminhar a transmissão arp para eth1 ?

  2. Qual poderia ser a razão para perder a resposta do convidado 2 no segundo teste?

    $ brctl show
    bridge name  bridge id          STP enabled  interfaces
    br0          8000.0123456789AB  no           eth1
    

Por favor, me diga quais informações adicionais você precisa.

    
por S1lentSt0rm 06.09.2016 / 16:13

1 resposta

1

Ativar "spoofing de endereço MAC" no Hyper-V resolveu o problema! Eu me sinto tão bobo, eu perdi dois dias descobrindo isso ...

Explicação:

1. Pergunta: Quando o spoofing de endereço MAC é proibido no Hyper-V, então o endereço MAC de origem no quadro Ethernet deve mach o endereço MAC das interfaces. Ao enviar a solicitação arp da interface br0 , esse não é o caso e o Hyper-V descarta o quadro.

2. Pergunta: Este é essencialmente o mesmo problema. Usando eth1 como interface de origem, a solicitação agora alcança com sucesso eth1 no outro convidado e, a partir daí, br0 . br0 agora responde a solicitação, mas o quadro é descartado novamente pelo Hyper-V, porque o endereço de origem não corresponde ao endereço mac de eth1 .

O spoofing de endereços MAC pode ser ativado nas configurações do adaptador de rede virtual. Consulte também este artigo da technet .

    
por 06.09.2016 / 18:41