Eu posso pensar em uma maneira de fazer isso, que é a seguinte.
- Defina dois endereços IP em seu NIC como 10.0.0.1 & 10.0.0.2. Isso deve ser fácil e direto. Isso pode ser feito usando
ifconfig
. - Configure o roteamento baseado em origem, de forma que cada IP de origem seja roteado para um dos gateways padrão. Este link pode ajudar você.
- Finalmente, você pode dizer ao seu aplicativo para usar
bind
um dos endereços 10.0.0.1 ou 10.0.0.2. Dessa forma, você pode escolher um dos gateways, dependendo do IP de origem selecionado. Para testar isso, você pode usar a opçãotelnet
with-b source_ip
.
Aqui estão os comandos que usei anteriormente para ativar o roteamento baseado em origem:
$ sudo ip rule add from 10.0.0.2 tab 1 priority 500
$ sudo ip route add default via 10.0.0.101 dev eth0 tab 1
$ sudo ip route flush cache
Se você tiver o gateway padrão definido como 10.0.0.100, isso deve funcionar para você. Os pacotes enviados de 10.0.0.1 devem ser enviados para o gateway padrão, e os pacotes enviados de 10.0.0.2 devem ser enviados para o segundo gateway 10.0.0.101 conforme as instruções acima.