本文主要是介绍NAT,DNAT,SNAT和双向NAT,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
NAT是一种地址转换技术,既可以将内网地址变成外网地址,反之亦可,相关概念如下图:
NAT根据使用场景来分主要可以分为以下3种:
DNAT
SNAT
双向NAT
DNAT,D的单词是destination,意思为目的地,所以很容易理解这个类型的NAT,就是将目的地址进行转换,常用在外网>内网的转换
SNAT,S的单词是source,意思为源,所以和上面一样,就是一个将源地址进行转换的技术,常用在内网>外网
双向NAT,关于这个技术的应用我查了许多资料,其中有一种说法是说这个技术主要是用在当内网和外网主机IP冲突的时候,但是还有一种说法是说此技术主要用在服务器在内网的情况下,且内网用户需要通过审计设备访问内网服务器,我个人比较偏向后者。
双向NAT理解起来也很简单,就是不仅对源地址进行转换,也对目的地址进行转换,转换源和目的过程拿下面的栗子举例
此时外网用户需要访问到内网的服务器,所以DNAT是此时生效,而内网用户也想访问内网,但是我们想让流量收到防火墙的审计,内网用户首先会进行DNAT,再进行SNAT,也就是先将目的地址转换为内网地址,出去的时候才会考虑要不要将源地址转换为服务器地址。
(具体的理解可以结合linux的nat表内含的三条链,prerouting postrouting output,DNAT是在prerouting阶段,SNAT是postrouting阶段)
这篇关于NAT,DNAT,SNAT和双向NAT的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!