我有一个带有2个NIC的网关机器:具有公共IP的eth0和具有私有IP的eth1 。
在eth0我有4个公有IP别名,我想NAT公共IP到私有IP,我用DNAT来做这个uisng iptables。
1.1.1.2 -> 10.10.10.2 1.1.1.3 -> 10.10.10.3 1.1.1.4 -> 10.10.10.4
规则
-A PREROUTING -d 1.1.1.2 -p tcp -j DNAT --to-destination 10.10.10.2 -A PREROUTING -d 1.1.1.3 -p tcp -j DNAT --to-destination 10.10.10.3 -A PREROUTING -d 1.1.1.4 -p tcp -j DNAT --to-destination 10.10.10.4
现在我可以使用DNAT访问内部IP,但无法通过此私有IP与外部networking连接。
我怎样才能做到这一点? SNAT能做多个IPS吗?
似乎是你忘了添加化妆舞会规则。
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
这是一种SNAT。 它将源LAN IPreplace为源自LAN机器的路由器的外部IP包。 因此,外部机器知道发送数据包的人。
我想这是可以做到的。 只需指定-s <int ip>和--to-source <ext ip>
iptables -t nat -A POSTROUTING -s 10.10.10.2 -i eth1 -j SNAT --to-source 1.1.1.2