Você pode definir rotas no Linux com base no endereço IP de origem. Embora seja possível no Linux vincular-se a uma interface específica, é muito incomum. O roteamento baseado no IP de origem permitirá que você crie um gateway padrão por interface de saída. Como o soquete para o servidor que está em campo, as solicitações podem ser vinculadas a um IP, isso garantirá que as respostas sejam enviadas da mesma interface em que entraram. (Se o servidor estiver atendendo no endereço curinga ( 0.0.0.0
) e não vinculado a uma interface específica, você não poderá usar esse método. Ele ainda deve ser possível usando o módulo conntrack e as marcas iptables, mas Eu não vou entrar nisso aqui.
Você pode fazer isso criando outra tabela de roteamento usando o comando ip
.
O '10' aqui é arbitrário.
# 10.0.0.1 = gateway for the secondary interface
# 10.0.0.10 = ip address for the secondary interface eth1
ip route add default via 10.0.0.1 dev eth1 table 10
ip rule add from 10.0.0.10 table 10
Se você estiver vinculado a vários endereços ou tiver o dhcp, poderá criar uma base de regras na sub-rede
ip route add default via 10.0.0.1 dev eth1 table 10
ip rule add from 10.0.0.0/8 table 10
Se tiver certeza de que o servidor está vinculado a um dispositivo, outro gateway padrão com uma métrica mais alta será suficiente.
ip route add default via 10.0.0.1 dev eth1 metric 2