Linux
可以在 Linux 伺服器的 2 個網路介面上設置 MASQUERADE 嗎?
有一個帶有 3 個網路介面的 Linux 伺服器,
eth0, eth1, eth2
. 此伺服器已開啟 IP 轉發。
- eth0 連接到 10.0.1.0/24。它的IP是
10.0.1.1
。- eth1 連接到 172.16.1.0/24。它的IP是
172.16.1.1
。伺服器 A 可以在 172.16.1.2 ping 路由器 C。- eth2 連接到 192.168.1.0/24。它的IP是
192.168.1.1
。伺服器 A 可以在 192.168.1.2 ping 伺服器 B。- 路由器 C 能夠路由到 172.16.2.0/24 和 172.16.3.0/24。
[10.0.1.0/24] | 172.16.2.0/24------| | [C]------172.16.1.0/24------[A]------192.168.1.0/24------[B] 172.16.3.0/24------|
我們在 eth0 設置了 MASQUERADE。當伺服器 B (192.168.1.2) 連接到 10.0.1.0/24 時,IP MASQUERADE 將發生在 eth0。
我們可以在 eth1 設置 MASQUERADE 嗎?可以在 Linux 中將 MASQUERADE 設置在 1 個以上的網路介面上嗎?
是的,有多個
MASQUERADE
規則很好。通常,每個規則都會匹配從特定介面發出的數據包,例如:iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
第一條規則匹配出去的數據包
eth0
,而第二條規則匹配出去的數據包eth1
。