首页 > SNAT和DNAT的区别

SNAT和DNAT的区别

最近的工作跟路由器网络有关,接触到SNAT和DNAT的相关概念,但是这两者有点傻傻分不清楚,虽然网上的定义一搜一大把,但是不知道大家能否结合实际用例来讲解下,让我等菜鸟能够明白它的含义?


SNAT: 是设置内网的设备经过防火器(路由器等)接入到互联网时,按内网设备的不同IP地址、对应选择不同的外网接口(电信、联通等)。即根据源IP地址在网络出口进行对应设置。
DNAT: 是设置外网(互联网)用户访问-->我们防火墙的外网IP所提供的服务(http ssh ftp等)时,将防火墙外网IP提供的服务映射回防火墙的DMZ服务器或者内网服务器。


可以简单地这样理解它们:

SNAT: Source Network Address Translation,是修改网络包源ip地址的。
DNAT: Destination Network Address Translation,是修改网络包目的ip地址的。

明白了这些后,要再知道使用它们的原因,也就是你什么时候要修改源ip地址,什么时候修改目的ip地址。我拿iptables举个例子。

修改源ip地址的目的一般都是为了让这个包能再回到自己这里,所以在iptables中,SNAT是在出口,也即POSTROUTING链发挥作用。

修改目的ip地址的原因一般就是为了改变包发送的目的地,让包走出去,而不是留下来,所以在iptables中,DNAT是在入口,也即PREROUTING链中发挥作用,以便让包进入FORWARD表。

具体讲来就有些复杂了,感兴趣的话可以看下iptables的两篇文章

学习使用iptables 和iptables入门 ,分开来只讲SNAT和DNAT是没多少意义的,主要还得看实战。

【热门文章】
【热门文章】