Com base em este artigo Altere para:
sysctl -w net.ipv4.conf.all.arp_ignore=1
sysctl -w net.ipv4.conf.all.arp_announce=2
sysctl -w net.ipv4.conf.all.arp_filter=1
Eu tenho um servidor com 2 NICs com um endereço IP na mesma sub-rede, é assim que meu / etc / network / interfaces se parece:
auto eth0
iface eth0 inet static
address 192.168.2.155
gateway 192.168.2.51
netmask 255.255.255.0
dns-nameservers 192.168.2.180
dns-domain exaple.com
auto eth1
iface eth1 inet static
address 192.168.2.156
netmask 255.255.255.0
Então a ideia é que eth0 com ip 192.168.2.155 é a interface de 'gerenciamento' com conectividade à internet. O eth1 NIC com IP 192.168.2.156 será usado para se comunicar com dispositivos internos.
Agora, quando configuro isso com um sistema padrão, e tento pingar a eth1 em 192.168.2.156 com outros dispositivos na LAN, esses pacotes não estão sendo recebidos pela eth1 como seria de se esperar, mas pela eth0, eu verifiquei isso executando tcpdump -i eth1 icmp
e não pode ver pacotes entrando. O cliente que está fazendo o ping está recebendo uma resposta, mas a partir do endereço NIC / MAC errado.
Agora eu descobri que esse fenômeno é chamado de 'ARP flux' e até bons artigos descrevendo como resolvê-lo, o problema é que nenhuma dessas soluções parece funcionar para mim. Este artigo parece dar a melhor explicação e correção, executando os seguintes comandos :
sudo sysctl -w net.ipv4.conf.all.arp_announce=1
sudo sysctl -w net.ipv4.conf.all.arp_ignore=2
sudo sysctl -w net.ipv4.conf.all.rp_filter=0
Isso parece fazer algo, pois eu começo a receber pacotes no eth1, mas ele desativa completamente qualquer comunicação no endereço eth0 e IP 192.168.2.155.
Alguma outra ideia sobre o que eu poderia tentar?
Com base em este artigo Altere para:
sysctl -w net.ipv4.conf.all.arp_ignore=1
sysctl -w net.ipv4.conf.all.arp_announce=2
sysctl -w net.ipv4.conf.all.arp_filter=1
Tags networking server ethernet