在网络通信过程中,很多时候需要通过公网(Internet)通信,双方都需要通过公网可以识别的马甲进行识别和通信,由于“产能”不足,可用马甲越来越少。
尽管IPv6可以从根本上解决IPv4地址数量不足的问题,但当前众多网络设备和网络应用大多是基于IPv4的。为了在有限的资源下保证双方正常通信,随之引入了NAT地址转换技术,利用公共马甲(公网IP地址)进行通信,从而缓解马甲库存不足的问题。
01什么是NAT地址转换NAT(Network Address Translation,网络地址转换)是一种在公网和私网之间进行IP地址转换的技术,它允许将一个网络地址映射到另一个网络地址。NAT技术通过IP数据报文头中的IP地址转换或者端口号转换,来达到地址重用的目的,可以有效地节约Internet公网地址,所有内部主机使用有限的合法地址都可以连接到Internet网络。02NAT是如何工作的
在连接内部网络与外部网络的路由器上,NAT将主机的私网地址转换为公网地址,通过公网地址响应外部网络寻址。
NAT工作方式主要包括:一对一地址转换、一对多地址转换。
一对一地址转换
前面提到,在网络通信过程中的通信双方通过马甲相互识别和通信,一对一地址转换是在内部主机对外访问时,经过路由器“包装”,将内部主机的马甲(IP地址)变为可以在外部网络上自由通行的公共马甲,不要以为内部主机换了个马甲就不认识了,其实内部主机的IP地址与一个外部合法的IP地址对应,保持一对一的关系。如果内部主机马甲过多,当所有的公共马甲都被占用后,其他内部主机就无马甲可换,将无法对外访问。当内部网络主机想要访问外部主机时,私网地址和公网地址是一一对应的,通信过程如下:
- 内部主机发送通信请求到外部网络,NAT设备检查内部主机发送的数据包,获取私网地址(源IP地址)。
- 通过NAT地址表查询与私网地址对应的公网地址,并将数据包内的源IP地址替换为公网地址。
- NAT设备将替换后的数据包根据目的地址发送至外部网络。
- 外部网络对其所接收的数据包进行响应,将响应数据包返回至NAT设备。
- NAT设备根据NAT地址表将目的地址还原为内部主机的私网地址,并将响应数据包返回至对应的内部主机。
一对多地址转换
一对多地址转换是在内部主机对外访问时,将内部主机的带标识的马甲变为外部网络上的带标识的公共马甲,即内部主机地址及端口号与一个外部合法的IP地址及某个传输层的端口号相对应。这样当公共马甲资源不够,无法实现和内部主机的马甲一一对应时,多台内部主机可以共用一个公共马甲对外访问。一对多地址转换使内部主机通过路由器外连接口上的合法外部IP地址进行地址转换,提供内部主机对Internet的访问能力,最大限度节省IP地址资源。当内部网络主机想要访问外部主机时,通信过程如下:
内部主机发送通信请求到外部网络,NAT设备检查内部主机发送的数据包,获取私网地址(源IP地址)。
NAT设备通过NAT地址表中选择一个可用的公共IP地址和端口号替换数据包中的源IP地址。
NAT设备将替换后的数据包根据目的地址发送至外部网络。
外部网络对其所接收的数据包进行响应,将响应数据包返回至NAT设备。
NAT设备根据NAT地址表将目的地址和端口号还原为内部主机的私网地址,并将响应数据包返回至对应的内部主机。
03NAT有什么优势
NAT主要有以下三个优势:
节省资源
NAT地址转换可以显著地节省公网IP地址,缓解IPv4地址资源匮乏的问题,减少和消除地址冲突发生的可能性。
提高网络安全性
NAT地址转换技术可以有效的隐藏内部局域网中的主机,对外界隐藏内部网络的结构,维持局域网的私密性。
灵活接入外部服务
NAT地址转换可以按照用户的需要,在内部局域网内部提供给外部FTP、WWW、Telnet服务。小型网络也可以通过NAT的方式,使得私有网络灵活的接入Internet。