[daily] SNAT和DNAT

SNAT,DNAT,MASQUERADE都是NAT
MASQUERADE是SNAT的一个特例
SNAT是指在数据包从网卡发送出去的时候,把数据包中的源地址部分替换为指定的IP,这样,接收方就认为数据包的来源是被替换的那个IP的主机
MASQUERADE是用发送数据的网卡上的IP来替换源IP,因此,对于那些IP不固定的场合,比如拨号网络或者通过dhcp分配IP的情况下,就得用MASQUERADE
DNAT,就是指数据包从网卡发送出去的时候,修改数据包中的目的IP,表现为如果你想访问A,可是因为网关做了DNAT,把所有访问A的数据包的目的IP全部修改为B,那么,你实际上访问的是B

因为,路由是按照目的地址来选择的,因此,DNAT是在PREROUTING链上来进行的,而SNAT是在数据包发送出去的时候才进行,因此是在POSTROUTING链上进行的

http://blog.51cto.com/sxj007/110924

https://andyyoung01.github.io/2017/03/29/Linux%E7%BD%91%E7%BB%9C%E7%9A%84SNAT%E5%92%8CDNAT/

还有一个问题是: 只做SNAT的时候,回包是被自动的DNAT了吗?

应该确实一下iptables的使用,好好学习一下。

原文地址:https://www.cnblogs.com/hugetong/p/8759699.html