Vinculação a uma interface de rede específica em um servidor Linux com vários gateways

Vinculação a uma interface de rede específica em um servidor Linux com vários gateways

Estou tentando executar um programa de servidor em minha máquina local. Possui 2 rotas para a Internet:

  • 10.0.0.1/24on eth0é o gateway e a sub-rede na interface com a conexão mais rápida; no entanto, um firewall me impede de acessar qualquer servidor vinculado a portas TCP.
  • 10.8.0.1/24on eth1é o gateway e a sub-rede na interface mais lenta; no entanto, estou no controle do dispositivo de gateway e consigo encaminhar a porta com êxito por meio dele e o servidor fica visível na Internet.

Na minha máquina, tenho estas rotas:

default via 10.0.0.1 dev eth0 src 10.0.0.x metric 203 default via 10.8.0.1 dev eth1 metric 800 10.8.0.0/24 dev eth1 proto kernel scope link src 10.8.0.y 10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.x metric 203

É evidente que a rota via eth0teria prioridade em circunstâncias normais; entretanto, para que meu servidor seja encaminhado por porta, ele precisa usar o gateway padrão na eth1interfacesemredirecionando todo o outro tráfego através da mesma interface.

O que tentei até agora foi vincular o servidor ao endereço, 10.8.0.yo que significa que ele só aceitaria conexões cujo destino fosse esse endereço IP. No entanto, não funcionou para direcionar o tráfego na direção oposta. Verifiquei usando tcpdump -i eth1 -p 25561que as conexões de entrada estão sendo recebidas, mas ao monitorar ambas eth0e eth1não vejo uma resposta de saída. A conexão atingirá o tempo limite no cliente remoto ao não receber resposta.

Alguém mais tentou fazer algo semelhante e pode fornecer algumas dicas sobre como preciso configurá-lo?

informação relacionada