Estou confuso com o comportamento estranho de bridge / arp no Linux. De alguma forma, parece filtrar solicitações ARP direcionadas, ao passo que deve encaminhá-las para a outra extremidade da ponte. Para testar, eu corro o seguinte comando em uma estação de trabalho na mesma rede:
arping -t 00:de:ad:be:ef:00 xx.xx.xx.102
O endereço xx.xx.xx.102 não existe em nenhum lugar da rede, nem o endereço MAC (obviamente: P)
Se o servidor estiver configurado sem ponte, o resultado esperado ocorre: um tcpdump
no modo promíscuo vê as solicitações ARP de entrada na interface. O mesmo para outras máquinas na rede. Isso estabelece que a infraestrutura de rede está funcionando, ou seja, não é um problema no switch.
Agora, se eu adicionar eth0
a uma interface de ponte, ele deixará de funcionar: tcpdump
não mostrará mais essas solicitações ARP, não em eth0
, nem em br0
! É como se as solicitações fossem filtradas em algum lugar, mas estou completamente perplexo sobre onde isso deveria acontecer.
Mais interessante, esta é uma máquina wheezy do Debian. Uma squeeze machine não mostra esse comportamento. Ambas possuem cartões Broadcom usando o driver tg3
. Alguma coisa mudou nos núcleos da série 3.2 em comparação com a série 2.6 no que diz respeito à filtragem de ponte ou MAC ou algo assim?