CentOS 8: 2 つの外部ネットワーク アダプター、2 つの ISP - ルーティングの問題

CentOS 8: 2 つの外部ネットワーク アダプター、2 つの ISP - ルーティングの問題

与えられた: 3 つのネットワーク アダプターを備えた CentOS 8 搭載コンピューター。

eth0、eth2: 外部、2つの異なるISPに接続
eth1: ホームネットワーク(イントラネット)に接続

タスク: いずれかの ISP から特定の内部サービスにアクセスできるようにします。サービスは複数ありますが、以下では SSH についてのみ説明します。

以下の設定では、
IP1: 最初の ISP (ISP1) の外部 IP、eth0 に割り当てられています。
Gateway1: ISP1 によって提供されるゲートウェイの IP、
Network1、Netmask1: IP1 に関連します。 IP2:
2 番目の ISP (ISP2) の外部 IP、eth2 に割り当てられています。
Gateway2: ISP2 によって提供されるゲートウェイの IP、
Network2、Netmask2: IP2 に関連します。
LocalSSHIP: SSH サーバーが稼働しているイントラネット (eth1) の IP

現在の設定は次のとおりです。ルーティング テーブル:

echo "200 isp1" >> /etc/iproute2/rt_tables
echo "201 isp2" >> /etc/iproute2/rt_tables

ルーティングポリシー:
/etc/sysconfig/network-scripts/route-eth0

Network1 dev eth0 src IP1 table isp1
default via Gateway1 dev eth0 table isp1

/etc/sysconfig/ネットワークスクリプト/ルート-eth2

Network2 dev eth2 src IP2 table isp2
default via Gateway2 dev eth2 table isp2

ルーティングルール:
/etc/sysconfig/network-scripts/rule-eth0

from IP1/32 table isp1

/etc/sysconfig/ネットワークスクリプト/ルール-eth2

from IP2/32 table isp2

iptables スニペット。両方のインターフェースからローカル SSH サーバーに転送される外部トラフィック:

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はデフォルトゲートウェイです:
$ ip route

default via Gateway1 dev eth0 proto static metric 100 
default via Gateway2 dev eth2 proto static metric 101 
...

$ 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

eth1 から発信されるトラフィックには SNAT が適用されます。

iptables -t nat -A POSTROUTING -i eth1 -o eth0 -j SNAT --to-source IP1

現在の状況:

  1. eth0 から転送されるすべてのサービスは正常に動作しています。
  2. イントラネットから発信されるすべてのトラフィックは正常に送受信されます。
  3. eth2 からサービスにアクセスしようとするすべての試行がタイムアウトになります。

/var/log/messages には明らかなヒントはありません (「martian IP」に関する苦情など)。

私は少し困惑しています。あらゆるアドバイスをいただければ幸いです。

関連情報