有一个带有 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
规则很好。通常,每个规则都会匹配从特定接口发出的数据包,例如:第一条规则匹配出去的数据包
eth0
,而第二条规则匹配出去的数据包eth1
。