有一个Linux服务器有3个networking接口, eth0, eth1, eth2 。 此服务器中已启用IP转发。
10.0.1.1 。 172.16.1.1 。 服务器A可以ping 172.16.1.2的路由器C. 192.168.1.1 。 服务器A可以ping 192.168.1.2的服务器B.
[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的多个networking接口上设置MASQUERADE可以吗?
是的,可以有多个MASQUERADE规则。 通常情况下,每个规则将匹配出去特定接口的数据包,例如:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
第一个规则匹配eth0数据包,第二个匹配eth1数据包。