【网络】NAT、代理服务、内网穿透(1)

云掣YunChe3周前行业资讯88

1.NAT技术

NAT(Network Address Translation,网络地址转换)技术,是解决IP地址不足的主要手段,并且能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。


1.1NAT技术背景

在IPv4协议中,IP地址数量不足是一个大问题,而NAT技术就是当前解决IP地址不够用的主要手段,是路由器的一个重要功能。


在进行对外通信时,NAT能够将私有IP经过一系列替换操作最终转为全局IP,也就是说,NAT是一种将私有IP和全局IP相互转化的技术方法。


装有NAT软件的路由器叫做NAT路由器,所有使用私有IP的主机在和外界通信时,都要在NAT路由器上将其私有IP转换成全局IP。

大部分学校、家庭、公司内部每个终端设置的IP都是私有IP,而只在出口路由器(再外层就是公网)或必要的服务器上设置全局IP。

1.2NAT IP转换过程

假设某个局域网当中有A、B、C三台主机,在公网当中有一台服务器,以主机A访问公网中的这台服务器为例,我们来看看数据包在传输过程中IP地址的转换过程。


(1)数据包从局域网到公网的过程


主机A向服务器发起数据请求的过程中,数据包中IP地址的转换过程如下:


刚开始,该数据包当中的源IP地址就是主机A的私有IP地址,目的IP地址就是服务器的公网IP地址。

当数据包经过NAT路由器时,路由器会将该数据包的源IP地址替换成自己的WAN口IP地址,此时该数据包的源和目的IP地址就都是公网IP了。

该数据包在互联网中经过各种路由转发,最终到达服务器主机。

服务器收到主机A的数据请求并处理后,就会对主机A发来的请求进行响应。

(2)数据包从公网到局域网的过程


服务器向主机A进行响应的过程中,数据包中IP地址的转换过程如下:


刚开始,该数据包当中的源IP地址就是服务器的公网IP地址,目的IP地址就是路由器的WAN口IP地址。

数据包在互联网中经过各种路由转发,到达主机A所在局域网的NAT路由器,此时路由器会根据**“地址转换表”**将该数据包的目的IP地址替换成主机A的私有IP地址。

最终路由器就会将该数据包转发给局域网中的主机A。

image-20240810171723768

需要注意的是,因为主机A向服务器发起数据请求时,该数据包当中的源IP地址被替换成了NAT路由器的WAN口IP地址,相当于是该路由器代替主机A向服务器发起了数据请求,因此服务器发出的响应数据包的目的IP地址应该是NAT路由器的WAN口IP地址。


1.3NAPT

(1)地址转换表


当局域网当中的主机要访问外网时,NAT路由器会将这些数据包的源IP地址替换成自己的WAN口IP地址。


当外网发来响应数据时,报文的目的IP地址是NAT路由器的WAN口IP地址,但是此时报文还没有到达真正要去的主机,所以此时NAT路由器内部会维护一张**“地址转换表”**,根据该地址转换表将目的IP地址替换为目的主机的私有IP地址。


该转换表中维护的是局域网中主机的私有IP,与其对应访问的外网当中的某个公网IP之间的映射关系,这份映射互为键值。


当局域网中的主机第一次向外网发起数据请求时,就会生成表中的映射关系。


比如在TCP建立连接时,会建立对应的映射关系,在TCP断开连接后,就会删除对应的映射关系。


在刚才的例子中,主机A第一次向服务器发起数据请求时,路由器中就会建立以下映射关系。

image-20240810172302887

当NAT路由器收到服务器向主机A发来的响应数据时,就可以通过查表得知该响应数据是发送给局域网当中的主机A的。


但如果转换表中维护的只是局域网中主机的私有IP,与其对应访问的外网当中的某个公网IP之间的映射关系,那么就会出现某些问题。


如果局域网中的主机A和主机B同时都在访问该服务器,那么此时转换表中就会建立如下两对映射关系:

image-20240810172418232

此时这张转换表只能保证从左到右的唯一性,而不能保证从右到左的唯一性,当服务器发来响应数据时,该数据包中的目的IP地址都是路由器的WAN口IP,此时NAT路由器就无法判断该数据包应该转发给主机A还是主机B,此时就需要用到NAPT技术。

(2)NAPT


NAPT(Network Address Port Translation,网络地址端口转换),可以将多个内部地址映射为一个合法公网地址。


当局域网中的主机向外网发送数据时,路由器会将该数据包的源IP地址替换为自己的WAN口IP地址,并建立该主机私有IP与其对应访问的公网IP之间的映射关系。


但如果局域网中的多台主机同时访问同一个外网服务,当路由器收到外网发来的响应数据时,路由器无法判断该响应数据应该转发给局域网中的哪台主机,因为该局域网中所有主机的数据包都由路由器代替发送了,因此发来的响应数据包的目的IP地址都是路由器的WAN口IP地址。


于是NAPT在建立转换表的映射关系时,除了建立局域网中私有IP与其对应访问的公网IP之间的映射关系外,还会加上一个由NAT路由器选定的端口号。


此时当局域网中的多台主机同时访问同一个外网服务时,虽然外网发来的响应数据的目的IP地址都是路由器的WAN口IP,但发给局域网中不同主机的响应数据对应的目的端口号是不同的,此时路由器就能通过IP+Port的方式来区分发给不同主机的数据包。


比如局域网中的主机A和主机B都在访问同一个服务器,并且它们访问服务器时采用的端口号都是1025。


假设主机A发送的数据包先到达路由器,此时路由器将数据包的源IP地址替换成自己的WAN口IP地址,由于路由器用于访问该服务器的1025号端口没有被使用,因此该数据包的源端口号可以不变。

当主机B发来的数据包到达路由器时,路由器同样将数据包的源IP地址替换成自己的WAN口IP地址,但此时路由器用于访问该服务器的1025号端口已经被主机A使用了,因此路由器会重新选定一个端口号对数据包的源端口号进行替换(比如1026)。

此时转换表中就会建立如下两队映射关系:

image-20240810172720546

此时这张转换表既能保证从左到右的唯一性,也能保证从右到左的唯一性。


因此NAPT技术就是NAT路由器通过维护一张**“地址转换表”**,该表中记录源IP、源端口和目的IP、目的端口的对应关系,通过查表得到数据转发的目的地。


1.4NAT技术的缺陷

NAT技术进行私有IP和公网之间的替换,主要就是依赖NAT路由器当中维护的网络地址转换表,但这张转换表也体现出了NAT的一些缺陷:


无法从NAT外部向内部服务器建立连接,因为外部无法知道内部的私网IP,也就无法主动与内部服务器建立连接。


转换表的生成和销毁都需要额外开销。


通信过程中一旦NAT设备异常,即使存在热备,所有的TCP连接也都会断开。





免责申明:

本文转载自网友公开分享,若有侵权,请联系我们删除!


相关文章

如何重塑IT运维核心竞争力?可观测运维这么做!

如何重塑IT运维核心竞争力?可观测运维这么做!

随着云计算、大数据、人工智能等新兴技术的兴起及运用,无论是通讯、金融、教育,还是交通、政府、企业等行业,都得到飞速发展,但在高速发展的同时,各行业巨大的 IT 维护和管理成本也在与日俱增,存在监控工具...

IPV6的相关网络问题

IPV6的相关网络问题

一.什么是NAT64转换NAT64(Network Address Translation 64)是一种网络地址转换技术,它主要被设计用来促进IPv4和IPv6两种网络协议之间的通信。随着IPv4地址...

【网络】NAT、代理服务、内网穿透(2)

【网络】NAT、代理服务、内网穿透(2)

2.代理服务器代理服务器(Proxy Server)的功能就是代理网络用户去取得网络信息,代理服务器又分为正向代理和反向代理。(1)正向代理正向代理,是一个位于客户端和目标服务器之间的服务器,客户端并...

运维监控体系总结

总结归纳运维工作中的监控内容。监控目标:明白监控的重要性以及使用监控要实现的业务目标通常包括以下三点:对目标系统进行实时监控监控可以实时反馈目标系统的当前状态 目标系统硬件、软件、业务是否正常、目前处...

Gartner权威报告解读|应用可观测性列为2023年重要战略技术趋势!

Gartner于今日发布企业机构在2023年需要探索的十大战略技术趋势。Gartner杰出研究副总裁Frances Karamouzis表示:“为了在经济动荡时期增加企业机构的盈利,首席信息官和IT高...

网络】DNS协议、ICMP协议

网络】DNS协议、ICMP协议

1.DNS协议DNS(Domain Name System,域名系统)协议,是一个用来将域名转化为IP地址的应用层协议。1.1DNS背景TCP/IP中通过IP地址和端口号的方式,来确定网络中一个主机上...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。