Por padrão, o Linux usa o modelo "host fraco" no IPv4; isto é, ele responde às solicitações de ARP para qualquer endereço atribuído ao sistema , mesmo que tenham vindo de uma interface diferente.
Assim, quando o roteador transmite uma solicitação ARP para .115
, seu host o recebe por meio de ambas as interfaces, envia respostas por meio de ambos e o roteador recebe a resposta pela Ethernet primeiro.
Existem dois ajustes sysctl para alterar este comportamento:
-
net.ipv4.conf.*.arp_filter
Descrito em Documentação /networking/ip-sysctl.txt:1032 .
1 - Allows you to have multiple network interfaces on the same subnet, and have the ARPs for each interface be answered based on whether or not the kernel would route a packet from the ARP'd IP out that interface (therefore you must use source based routing for this to work).
-
net.ipv4.conf.*.arp_ignore
Descrito em Documentação /networking/ip-sysctl.txt:1082 .
1 - reply only if the target IP address is local address configured on the incoming interface
Por exemplo, você pode definir o seguinte em sysctl.d
:
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.all.arp_ignore = 1
(Note que não estou completamente certo de qual configuração é adequada em qual situação).