CentOS 8:兩個外部網路適配器,兩個 ISP - 路由問題

CentOS 8:兩個外部網路適配器,兩個 ISP - 路由問題

給定:一台配備三個網路介面卡的 CentOS 8 電腦。

eth0、eth2:外部,連接兩個不同的ISP
eth1:面向家庭網路(內部網路)

任務:允許從任一 ISP 存取某些內部服務。服務有好幾個,下面我只提到SSH。

在下面的配置中:
IP1:第一個 ISP (ISP1) 的外部 IP,分配給 eth0
Gateway1:ISP1 提供的網關 IP
Network1,Netmask1:與 IP1 相關
IP2:第二個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/網路腳本/route-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/network-scripts/rule-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

SNAT 適用於源自 eth1 的流量:

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

現在的情況:

  1. 從eth0轉發的所有服務均正常運作。
  2. 所有源自 Intranet 的流量均正常傳出並回傳。
  3. 所有從 eth2 存取服務的嘗試都會逾時。

/var/log/messages 中沒有明顯的提示(例如有關「火星 IP」的抱怨)。

我在這裡有點不知所措,非常歡迎所有的建議。

相關內容