Do Guia para administração de redes na camada IP com Linux :
One method for preventing ARP flux involves the use of
net/ipv4/conf/$DEV/arp_filter
. In short, the use of arp_filter causes the recipient (in the case below, real-server) to perform a route lookup to determine the interface through which to send the reply, instead of the default behaviour (shown above), replying from all Ethernet interfaces which receive the request.The arp_filter solution can have unintended effects if the only route to the destination is through one of the network cards.
Assim, o arp_filter trabalha consultando as tabelas de roteamento para determinar qual interface deve ser usada para enviar pacotes ao host solicitante. Se sua tabela de roteamento tiver uma única rota padrão como esta:
default dev eth0 src 192.168.0.10
então ele sempre enviará respostas ARP em eth0, independentemente de a eth0 ter o IP correspondente ou não.
Uma possível solução (não testei isso) é configurar o encaminhamento da política de origem que seleciona a interface de saída com base no IP de origem:
echo 10 eth0 >> /etc/iproute2/rt_tables
echo 11 eth1 >> /etc/iproute2/rt_tables
ip route add 192.168.0.0/24 dev eth0 table eth0
ip route add 192.168.0.0/24 dev eth1 table eth1
ip rule add from 192.168.0.10 lookup eth0
ip rule add from 192.168.0.11 lookup eth1