Suponho que você esteja executando o Linux e, além disso, que esteja utilizando uma distribuição baseada no RedHat / CentOS. Outras Unix e distribuições exigirão etapas semelhantes - mas os detalhes serão diferentes.
Comece testando (observe que isso é muito semelhante à resposta de @ Peter. Estou assumindo o seguinte:
- eno0 é isp0 e possui o gateway padrão geral
- eno1 é isp1 e possui o intervalo IP / 192.168.1.2/24 com gateway 192.168.1.1
Os comandos são os seguintes:
$ echo 200 isp1 >> /etc/iproute2/rt_tables
$ ip rule add from eno1 table isp1
$ ip route add default via 192.168.1.1 dev eno1 table isp1
O firewall não está envolvido de forma alguma. Os pacotes de resposta sempre eram enviados do IP correto - mas anteriormente eram enviados pela interface errada. Agora, esses pacotes do IP correto serão enviados pela interface correta.
Supondo que o procedimento acima funcionou, agora você pode tornar a regra e as alterações de rota permanentes. Isso depende de qual versão do Unix você está usando. Como antes, estou assumindo uma distribuição Linux baseada em RH / CentOS.
$ echo "from eno1 table isp1" > /etc/sysconfig/network-scripts/rule-eno1
$ echo "default via 192.168.1.1 dev eno1 table isp1" > /etc/sysconfig/network-scripts/route-eno1
Teste se a alteração de rede é permanente:
$ ifdown eno1 ; ifup eno1
Se isso não funcionou, nas versões posteriores do RH / CentOS você também precisa seguir uma das duas opções:
- Não use o NetworkManager.service padrão ; Use network.service . Eu não explorei as etapas exatas necessárias para isso. Eu imagino que envolve os comandos chkconfig ou systemctl padrão para ativar / desativar serviços.
- Instale o pacote NetworkManager-dispatcher-routing-rules
Pessoalmente, prefiro instalar o pacote de regras, pois é a abordagem mais simples e com suporte:
$ yum install NetworkManager-dispatcher-routing-rules
Outra forte recomendação é habilitar a filtragem arp, pois isso evita outros problemas relacionados às configurações de rede dupla. Com o RH / CentOS, adicione o seguinte conteúdo ao arquivo /etc/sysctl.conf:
net.ipv4.conf.default.arp_filter=1
net.ipv4.conf.all.arp_filter=1