定义
SNAT:源地址转换:目标地址不变,重新改写源地址,并在本机建立NAT表项,当数据返回时,根据NAT表将目的地址数据改写为数据发送出去时候的源地址,并发送给主机目前大多都是解决内网用户用同一个公网地址上网的情况
DNAT:目标地址转换:和SNAT相反,源地址不变,重新修改目标地址,在本机建立NAT表项,当数据返回时,根据NAT表将源地址修改为数据发送过来时的目标地址,并发给远程主机
原理
同filter表一样,nat表也有三条缺省的”链
(1)PREROUTING:目的DNAT。规则:把从外来的访问重定向到其他的机子上,比如内部SERVER,或者DMZ。因为路由时只检查数据包的目的ip地址,所以必须在路由之前就进行目的PREROUTING转换
(2)POSTROUTING:源SNAT。规则:在路由以后在执行该链中的规则。系统先路由——>再过滤(FORWARD)——>最后才进行POSTROUTING SNAT地址翻译其match 源地址是翻译前的。
工作机制
SNAT的数据流向过程
首先进入prerouting,发现不是本网段的地址,而后开始查找路由表(查找路由的过程在prerouting和forword之间),于是经过forword链进行转发,在通过postrouting时进行NAT转换。在这个流程中,NAT转换的步骤在postrouting链上实现,之所以不再prerouting上做nat是因为数据包在进来之前,还不知道是本网段地址还是外网地址