![为线路网络配置 iptables](https://linux22.com/image/101199/%E4%B8%BA%E7%BA%BF%E8%B7%AF%E7%BD%91%E7%BB%9C%E9%85%8D%E7%BD%AE%20iptables.png)
我有一个设置,由 3 台 linux (CentOS) 机器组成:
所有直连的机器都能互相ping通。
我正在尝试设置 iptable 规则,使 VM3 能够 ping VM1,反之亦然,然后将 VM1 连接到互联网,并使所有 3 台机器都能够访问互联网。
我已经启用了ip转发
net.ipv4.ip_forward = 1
我在VM2中添加了两条iptables规则
-A FORWARD -i eth1 -o eth2 -j ACCEPT
-A FORWARD -i eth2 -o eth1 -j ACCEPT
我已经在网关 /etc/sysconfig/network 中设置了默认值
VM3 - 172.16.61.1
VM2 - 172.16.60.1
在 VM3 中我运行了命令
> ip route get 172.16.60.1
172.16.60.1 via 172.16.61.1 dev eth1 src 172.16.61.2
然而,这并没有使它发挥作用。你能帮助我吗?
答案1
要允许 VM3 访问 VM1,您需要在链MASQUERADE
中的 nat 表中添加一条规则POSTROUTING
。例如
iptable -A POSTROUTING -o eth1 -j MASQUERADE
这基本上会将 VM3 置于 VM3 的 NAT 后面