CentOS 8: dos adaptadores de red externos, dos ISP: problemas de enrutamiento

CentOS 8: dos adaptadores de red externos, dos ISP: problemas de enrutamiento

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:

  1. Todos los servicios reenviados desde eth0 funcionan normalmente.
  2. Todo el tráfico que se origina en la intranet sale y regresa normalmente.
  3. 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.

información relacionada