Eu tenho um sistema com várias interfaces. Eu isolei todas essas interfaces umas das outras usando algumas opções de sysctl e tabelas e regras de roteamento.
Cada interface possui sua própria tabela de roteamento, definindo uma rota padrão.
Cada tabela de roteamento tem um conjunto de 4 regras que definem quais pacotes devem ir para qual tabela.
Para simplificar, digamos que eu tenha eth0 (192.168.1.1) e eth1 (192.168.1.2) .
from
192.168.1.1tableeth0to
192.168.1.1tableeth0iif eth0
table eth0oif eth0
table eth0
Para eth2 , é o mesmo.
As opções sysctl são:
net.ipv4.conf.all.arp_filter = 1
net.ipv4.conf.all.arp_ignore = 2
net.ipv4.conf.all.arp_announce = 1
net.ipv4.conf.all.rp_filter = 1
Isso funciona de maneira excelente para 99% dos casos de uso previstos, mas um falha. Se um pacote for gerado a partir de um soquete não vinculado, como responder a um cliente UDP usando "sendto", a chamada falhará com "Rede Inacessível". Se um endereço IP específico for ligado antes de chamar o sendto, a chamada será bem-sucedida conforme o esperado.
Falta de configurar uma rota padrão abrangente para situações como essas, há algo que possa ser feito usando o roteamento de políticas (por exemplo, iptables, regra ip) para resolver esse problema?
Obrigado
Tags networking iptables routing linux udp