Linux

可以在 Linux 伺服器的 2 個網路介面上設置 MASQUERADE 嗎?

  • November 25, 2021

有一個帶有 3 個網路介面的 Linux 伺服器,eth0, eth1, eth2. 此伺服器已開啟 IP 轉發。

  1. eth0 連接到 10.0.1.0/24。它的IP是10.0.1.1
  2. eth1 連接到 172.16.1.0/24。它的IP是172.16.1.1。伺服器 A 可以在 172.16.1.2 ping 路由器 C。
  3. eth2 連接到 192.168.1.0/24。它的IP是192.168.1.1。伺服器 A 可以在 192.168.1.2 ping 伺服器 B。
  4. 路由器 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

引用自:https://serverfault.com/questions/528277