Dado: um computador com CentOS 8 com três adaptadores de rede.
eth0, eth2: externa, conectada a dois ISPs diferentes
eth1: voltada para rede doméstica (intranet)
A tarefa: permite acessar determinados serviços internos de qualquer ISP. Existem vários serviços, menciono apenas o SSH abaixo.
Nas configurações abaixo:
IP1: IP externo no primeiro ISP (ISP1), atribuído à eth0
Gateway1: IP do gateway fornecido pelo ISP1
Rede1,Netmask1: relacionado ao IP1
IP2: IP externo no segundo ISP (ISP2), atribuído à eth2
Gateway2: IP do gateway fornecido pelo ISP2
Network2,Netmask2: relacionado ao IP2
LocalSSHIP: IP na intranet (eth1) onde o servidor SSH está rodando
Seguem as configurações atuais. Tabelas de roteamento:
echo "200 isp1" >> /etc/iproute2/rt_tables
echo "201 isp2" >> /etc/iproute2/rt_tables
Políticas de roteamento:
/etc/sysconfig/network-scripts/route-eth0
Network1 dev eth0 src IP1 table isp1
default via Gateway1 dev eth0 table isp1
/etc/sysconfig/network-scripts/route-eth2
Network2 dev eth2 src IP2 table isp2
default via Gateway2 dev eth2 table isp2
Regras de roteamento:
/etc/sysconfig/network-scripts/rule-eth0
from IP1/32 table isp1
/etc/sysconfig/network-scripts/rule-eth2
from IP2/32 table isp2
trechos do iptables. Tráfego externo encaminhado para o servidor SSH local de ambas as interfaces:
iptables -A PREROUTING -t nat -i eth0 -p tcp -d IP1 --dport 22 -j DNAT --to LocalSSHIP:22
iptables -A PREROUTING -t nat -i eth2 -p tcp -d IP2 --dport 22 -j DNAT --to LocalSSHIP:22
iptables -A FORWARD -p tcp -d LocalSSHIP --dport 22 -j ACCEPT
eth0 é o gateway padrão:
$ ip route
default via Gateway1 dev eth0 proto static metric 100
default via Gateway2 dev eth2 proto static metric 101
...
regra $ ip
0: from all lookup local
32764: from IP2 lookup isp2
32765: from IP1 lookup isp1
32766: from all lookup main
32767: from all lookup default
O SNAT é aplicado ao tráfego originado da eth1:
iptables -t nat -A POSTROUTING -i eth1 -o eth0 -j SNAT --to-source IP1
Situação atual:
- Todos os serviços encaminhados da eth0 estão funcionando normalmente.
- Todo o tráfego originado da intranet sai e volta normalmente.
- Todas as tentativas de acessar serviços da eth2 expiram.
Não há dicas óbvias em /var/log/messages (como reclamações sobre "IPs marcianos").
Estou um pouco perdido aqui, todos os conselhos seriam muito bem-vindos.