Think before you speak, read before you think.

iptables的Source NAT和Masquerading

来自于

Linux iptables Pocket Reference

Source NAT(SNAT) 是用来在多台电脑之间分享上网的,充当gateway的电脑用SNAT(同时开启connection tracking)来重写内外网之间的包。向外去的包被打上gateway的IP地址。当外部响应后,会建立到网关IP的连接,网关接收到这些包后,网关截获到这些包后,把目标地址转到成正确的内部电脑上。

因为SNAT 是在包离开内核之前接受修改了它的地址和/或端口,在NAT表中表现为POSTROUTING.

在iptables中有两种实现SNAT的方式:

目标操作为SNAT,在网关ip是固定的时候

iptables -t nat -A POSTROUTING -o eth1 -j SNAT

而使用MASQUERADE是防止掉线后再连接ip地址发生变化的出现。

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

如果用ip的方式全部转发给192.168.1.16可用

/sbin/iptables -t nat -A POSTROUTING -j SNAT --to-source 192.168.1.16

forwarder 机器

-A PREROUTING -p tcp -m tcp --dport 30101 -j DNAT --to-destination 74.12.20.82:443
-A POSTROUTING -d 74.12.20.82/32 -p tcp -m tcp --dport 443 -j MASQUERADE

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *