-
Cara, consegui!
São algumas poucas e boas regras hehehe, o problema é que a gente não seguiu a lógica da conexão. A gente conseguia conexão com a porta, mas não obtia resposta pois conectávamos pelo link 2 mas os pacotes saíam pelo link 1.
Eu comentei sobre o servidor PostgreSQL. Eu preciso que este servidor receba conexões exclusivamente pelo link 2 que é dedicado ao serviço postgres. Tive que redirecionar todo o tráfego da máquina para o link 2 para que funcionasse o postgres. Para que só o tráfego do postgres fosse feito pelo link 2 e todo o restante pelo link 1, fiz da seguinte forma:
iptables -t mangle -A POSTROUTING -p tcp --sport 5432 -s 192.168.1.102/32 -j MARK --set-mark 1
iptables -t mangle -A PREROUTING -p tcp --sport 5432 -s 192.168.1.102/32 -j MARK --set-mark 1
iptables -t mangle -A PREROUTING -p tcp --dport 5432 -j MARK --set-mark 1
iptables -t mangle -A INPUT -p tcp --dport 5432 -j MARK --set-mark 1
iptables -t mangle -A OUTPUT -p tcp --sport 5432 -s 192.168.1.102/32 -j MARK --set-mark 1
iptables -t mangle -A FORWARD -p tcp --sport 5432 -s 192.168.1.102/32 -j MARK --set-mark 1
iptables -t mangle -A FORWARD -p tcp --dport 5432 -j MARK --set-mark 1
#
ip rule add fwmark 1 lookup <TABELA-DE-ROTEAMENTO-LINK2>
Agora, dessa forma está funcionando! Todo o tráfego sai pelo link 1, que é o geral da internet e o tráfego da porta 5432 entra e sai pelo link 2.
Tenta fazer e posta o resultado! Não esqueça que o postgres só faz conexão pela tcp, se a conexão que você quer fazer exigir conexão udp, duplica as linhas tcp e troca por udp na segunda hehehe.
Abraços!