Como mencionado anteriormente, a única maneira pela qual você realmente conseguirá realizar o que está tentando fazer é usar o roteamento de políticas - ele permitirá que você configure várias tabelas de roteamento. Sem "virtualizar" a tabela de roteamento, por si só, você não conseguirá realmente obter o resultado desejado, já que não pode ter dois NICs com IPs na mesma sub-rede dentro da mesma tabela de roteamento. Você pode ter apenas um gateway padrão ativo em uma tabela de roteamento por vez e sempre tentará sair da interface especificada.
Isso exigirá que seu kernel linux suporte o roteamento de políticas. Você também precisará dos utilitários iproute2 (provavelmente incluídos na sua distribuição ou instalados através do gerenciamento de pacotes).
Aqui estão algumas referências decentes que encontrei:
Como automatizar tudo na inicialização depende da distribuição Linux usada.
Divulgação completa - eu copiei a maior parte do primeiro link que postei. Eu testei um pouco em uma VM e ela pareceu funcionar, mas sua milhagem pode variar, especialmente porque você já está fazendo NAT e modelagem de tráfego.
Se você tem os utilitários iproute2 em seu sistema, pode configurar a nova tabela de roteamento. Em / etc / iproute2 / rt_tables, você adicionaria algo semelhante à seguinte linha:
1 servers
Isso efetivamente cria uma nova tabela de roteamento chamada "servidores" (para este exemplo, pelo menos). Para configurar sua tabela de roteamento, você precisará definir a rota de sub-rede local e sua rota padrão.
ip route add 187.x.x.224/29 dev eth2 src 187.x.x.227 table servers
ip route add default via 187.x.x.225 dev eth2 table servers
Ele deve ser configurado, mas você precisará adicioná-lo ao roteamento de políticas usando o comando ip rule :
ip rule add from 187.x.x.227/32 table servers
ip rule add to 187.x.x.227/32 table servers
Depois de fazer tudo isso, você poderá executar ip rule show e ver os conjuntos de regras de roteamento de políticas acima das regras padrão da tabela de roteamento. Você pode então executar o cache de liberação da regra ip para garantir que as alterações sejam confirmadas.