iptables配置 --NAT转换

iptables nat原理

同filter表一样,nat表也有三条缺省的“链”(chains):

1)PREROUTING:目的DNAT规则

把从外来的访问重定向到其他的机子上,比如内部SERVER,或者DMZ
因为路由时只检查数据包的目的ip地址,所以必须在路由之前就进行目的PREROUTING DNAT
系统先PREROUTING DNAT翻译 --> 再过滤(FORWARD) --> 最后路由。
路由和过滤(FORWARD)中match的目的地址,都是针对被PREROUTING DNAT之后的。

2)POSTROUTING :源SNAT规则

在路由以后再执行该链中的规则。
系统先路由 --> 再过滤(FORWARD)--> 最后进行POSTROUTING SNAT 地址翻译其 match源地址是翻译前的。

3)OUTPUT 定义对本地产生的数据包的目的NAT规则

内网访问外网:

-j SNAT

源网络地址转换,SNAT就是重写包的源IP地址

SNAT 只能用在nat表的POSTROUTING链里

-j MASQUERADE

用于外网口public地址DHCP动态获取的(如ADSL

图片.png

固定public 地址(外网接口地址)的最基本内访外SNAT

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to 你的eth0地址

多个内网段SNAT,就是多条SNAT语句即可

iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE

外网访问内网 : –J DNAT

DNAT:目的网络地址转换,重写包的目的IP地址

典型的DNAT的例子:

iptables配置 --NAT转换_第1张图片
图片.png

你可能感兴趣的:(iptables配置 --NAT转换)