Dado: una computadora con CentOS 8 y tres adaptadores de red.
eth0, eth2: externo, conectado a dos ISP diferentes
eth1: frente a la red doméstica (intranet)
La tarea: permite acceder a ciertos servicios internos desde cualquiera de los ISP. Hay varios servicios, a continuación solo menciono SSH.
En las configuraciones siguientes:
IP1: IP externa en el primer ISP (ISP1), asignada a eth0
Gateway1: IP de la puerta de enlace proporcionada por ISP1
Network1,Netmask1: relacionada con IP1
IP2: IP externa en el segundo ISP (ISP2), asignada a eth2
Gateway2: IP de la puerta de enlace proporcionada por ISP2
Network2,Netmask2: relacionada con IP2
LocalSSHIP: IP en la intranet (eth1) donde se ejecuta el servidor SSH
A continuación se muestran las configuraciones actuales. Tablas de enrutamiento:
echo "200 isp1" >> /etc/iproute2/rt_tables
echo "201 isp2" >> /etc/iproute2/rt_tables
Políticas de enrutamiento:
/etc/sysconfig/network-scripts/route-eth0
Network1 dev eth0 src IP1 table isp1
default via Gateway1 dev eth0 table isp1
/etc/sysconfig/network-scripts/ruta-eth2
Network2 dev eth2 src IP2 table isp2
default via Gateway2 dev eth2 table isp2
Reglas de enrutamiento:
/etc/sysconfig/network-scripts/rule-eth0
from IP1/32 table isp1
/etc/sysconfig/network-scripts/rule-eth2
from IP2/32 table isp2
fragmentos de iptables. Tráfico externo reenviado al servidor SSH local desde ambas 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 es la puerta de enlace predeterminada:
$ ip route
default via Gateway1 dev eth0 proto static metric 100
default via Gateway2 dev eth2 proto static metric 101
...
$ regla 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
SNAT se aplica al tráfico que se origina en eth1:
iptables -t nat -A POSTROUTING -i eth1 -o eth0 -j SNAT --to-source IP1
Situación actual:
- Todos los servicios reenviados desde eth0 funcionan normalmente.
- Todo el tráfico que se origina en la intranet sale y regresa normalmente.
- Todos los intentos de acceder a los servicios desde eth2 expiran.
No hay sugerencias obvias en /var/log/messages (como quejas sobre "IP marcianas").
Estoy un poco perdido aquí, todos los consejos serían bienvenidos.