wohootk 发表于 2019-8-15 15:11

小白也能懂技术——nat地址转换科普

IP地址只有32位,满打满算只有42.9亿个地址,还要去掉保留地址、组播地址,能用得只有36亿左右,IPv4很早就被列强瓜分完毕,感谢有NAT这项技术苦苦支撑,我们还可以继续在互联网遨游。公司局域网、机构局域网、个人局域网可以使用私网IPv4地址(10.0.0.0/8,172.16.0.0/12,192.168.0.0/16),然后在各个局域网的边界WAN口使用一个或多个公网IPv4进行一对多的转换。如果是一对一转换,那压根节省不了IPv4地址空间;所以一般NAT都是一对多的,即一个公网IPv4映射多个私网IPv4,那问题来了,NAT设备如何区分不同的私网IPv4 的host呢?NAT使用基于session 转换规则:对于TCP/UDP 使用Host 's 私有IPv4 + Port <------> NAT 公网IPv4 + Port对于ICMP使用Host 's 私有IPv4 + session ID <------> NAT 公网IPv4 + session ID规则其实非常好理解,由于session ID 在NAT设备上是独一无二的,所以NAT可以很容易区别局域网内部的不同host。至于其它传输协议,NAT使用的也是类似session ID 的转换规则,即使用可以将不同host 轻易分辨出来的字段做键值(KEY),动态创建映射表项,做双向的地址+ KEY 的转换。何时使用NAT?因为NAT能够减少在网络环境中所需的公共IP地址需求,因此当两家公司重复内部地址合并时,这一技术是很有帮助的。当组织改变其Internet服务供应商(ISP),但网络管理员不想改变内部地址方案时,NAT也是一个很好用的工具。以下是应用NAT的场景:用户需要访问Internet但主机没有全球唯一的IP地址用户更改ISP需要对网络重新编号用户需要合并地址重复的内网通常NAT应用于边界路由器。例如,下图中NAT应用于企业连接到Internet的路由器上:https://www.xinruiyun.cn/ms-mcms/upload/1/editor/1565748394640.pngNAT实现细节:下图中,主机10.1.1.1将报文发送到有NAT功能的边界路由器。路由器将源IP地址识别为内部本地IP地址,在报文中转换源IP地址,并在NAT表中记录此次转换。配有新转换源地址的报文发送到外部接口。外部主机将报文发送给目的主机并且NAT路由器通过NAT表将内部全局IP地址转换回内部本地IP地址。https://www.xinruiyun.cn/ms-mcms/upload/1/editor/1565748403930.pngPAT方式中,所有内部主机都转换为一个IP地址。如下图所示,除了内部本地IP地址和内部全局IP地址以外,还多了一个端口号。端口号帮助路由器识别哪一台主机应当收到返回数据。路由器使用来自各主机的源端口好来区别他们各自发出的数据。注意当报文离开路由器时有一个目标端口号80,而HTTP服务器将报文发回时目的端口号为1026。从而允许NAT转换路由器区别NAT表中的主机然后将目的IP地址转换回内部本地地址。本例中,端口号在传输层用户识别本地主机。如果必须要使用真实全局IP地址来识别源主机,那就只能通过静态NAT,并且会用光所有地址。PAT允许我们在传输层识别主机,从而理论上一个真实IP地址可被65,000台主机共享。https://www.xinruiyun.cn/ms-mcms/upload/1/editor/1565748415391.png想了解更多的小伙伴可以阅读《一文讲述NAT服务与防火墙技术》https://www.xinruiyun.cn/nat/1971.html
页: [1]
查看完整版本: 小白也能懂技术——nat地址转换科普