在之前介绍网络层时,我们有提到过对于IPv4协议来讲,IP地址不够的问题。NAT(网络地址转)技术则是当前解决IP地址不够用的重要手段,它是路由器的一个重要功能。
1.NAT技术的作用
(1)NAT可以将私有IP对外通信时转化为全局IP,即NAT就是将私有IP与全局IP相互转化的技术
(2)很多家庭,学校,公司内部采用每个终端设置私有IP,而在路由器或必要的服务器设置全局IP
(3)全局IP要求唯一性,但是私有IP不需要,在不同局域网出现相同的私有IP是没有影响的
2.NAT技术的IP转化过程
如上图,客户端为10.0.0.10的A要向目的地址为163.221.120.9的主机发数据。即私有IP要去找全局IP,需要经过NAT技术的转化。所以NAT路由器将A的地址转换成了全局IP202.244.174.37。同样的,若163.221.120.9的主机要向A客户机发数据时,NAT路由器则会给将目的地址202.244.174.37转化为10.0.0.10。
NAT路由器内部有一张自动生成的,用于地址转换的表。当第一次10.0.0.10向163.221.120.9发送数据时就在表中生成了它们的映射关系。上述的转化就是建立在该表上完成的,这样就不会担心从外网返回局域网时找不到对应的客户端。
3.NAPT技术
若是在同一局域网下,有多台主机都访问同一个外网服务器,那么对于服务器返回的数据中,目的IP都是相同的,那么NAT路由器就不确定这个数据包到底是发给局域网中的哪一个主机。所以这里有了NAPT来解决这个问题,通过IP+port来建立这个关联关系。即在上述的NAT路由器中维护的表中添加每个主机对于的端口号,这样数据返回时就知道具体是返回给局域网的哪台主机了
这种关联关系也是有NAT路由器自动维护的。例如在TCP情况下,当连接建立时就会生成这个表项;当连接断开时,就会删除这个表项。
4.NAT技术的缺陷
由于NAT的实现都要依赖于上述过程提到的表,所以会有诸多的限制:
(1)无法从NAT外部向内部服务器建立连接。因为全局IP不知道局域网中的信息,但是私有IP可以看到全局IP的信息
(2)y转化表的生成和销毁都需要额外的开销
(3)通信过程中,一旦NAT设备异常,即使存在热备,所有的TCP连接也会断开
5.NAT和代理服务器
路由器往往具有NAT设备的功能,通过NAT技术进行中转,完成子网设备和其他子网设备的通信过程。
代理服务器看起来与NAT设备类似,客户端向代理服务器发送请求,代理服务器将请求发给真正要请求的服务器;等服务器返回结果后,代理服务器又把结果传回给客户端。代理服务器还可以分为正向代理和反向代理。
但是NAT与代理服务器的区别也有以下几点:
(1)NAT设备是网络基础设备之一,解决的是IP不足的问题;代理服务器则更贴近具体应用,比如可以通过代理服务器翻墙,另外像迅游这样的加速器,也是使用代理服务器
(2)NAT工作在网络层,直接对IP地址进行替换;代理服务器则往往工作在应用层
(3)NAT一般在局域网的出口部署;代理服务器可以在局域网做,也可在广域网,也可以跨网
(4)NAT一般集成在防火墙,路由器等硬件设备上;代理服务器则是一个软件程序,需要部署在服务器上
来源:CSDN
作者:阿瑾呐
链接:https://blog.csdn.net/Lycorisradiata__/article/details/81538477