Solicitação ARP com endereço IP incorreto

5

Eu tenho um problema estranho com um roteador Linux.

A configuração é assim:

host1   ===  Linux router   ===   host2
a.b.c.d --- a.b.c.e/g.h.i.j --- g.i.h.k

A cada cinco minutos, o host1 tenta alcançar o host2.

Se o host2 estiver desativado, o roteador Linux fará uma solicitação ARP para a.b.c.d em a rede esquerda com o endereço g.h.i.j (ou seja, da rede no lado direito). Depois de receber o endereço MAC do host1, o roteador envia um Pacote inacessível para ICMP com g.h.i.j como endereço do remetente.

Se o host2 estiver ativo, tudo está bem. O roteador faz a solicitação ARP com seu endereço a.b.c.e.

No roteador eu tenho

$ uname -a
Linux pfc 3.6.9-voyage #1 SMP Tue Dec 11 09:53:27 HKT 2012 i586 GNU/Linux

Não há proxy_arp envolvido.

O problema é: aos meus olhos, a rota não deve usar o endereço IP da rede da direita para a solicitação ARP. Ou estou faltando alguma coisa aqui?

    
por Mathias Weidner 16.01.2014 / 11:08

1 resposta

6

Por padrão, o kernel do Linux não se força a usar o endereço IP atribuído a uma interface específica para uso em solicitações ARP nessa interface. O racional - como me parece - é que todos os endereços IP atribuídos a qualquer interface no mesmo host pertencem a esse host, portanto, não importa qual endereço é usado em uma solicitação ARP.

Experimente sysctl -w net.ipv4.conf.all.arp_announce=2 e dê uma olhada na respectiva documentação do kernel :

arp_announce - INTEGER
    [...]
    2 - Always use the best local address for this target. [...]
    
por 23.01.2015 / 13:06