NAT(Network Address Translation)是一种网络地址转换技术,是一种将私有地址转化为合法IP地址的转换技术。它被广泛应用于各种数据中心网络中。NAT不仅完美地解决了IP地址不足的问题,还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的服务器。数据中心内部的服务器一般提供内网和外网两个网卡,内网访问主要采用的是私有地址,外网访问采用的是公有地址,由于公有地址的数量是有限的,所以内网中要使用大量的私有地址,通过NAT的方式实现私有地址与公有地址之间的转换,实现私有地址也可以访问外网的功能。这么有用的功能,怎能不赶快去了解一下,本文将详细介绍一下NAT技术。
NAT可以分为两大类技术: 基础NAT和NAPT两大部分。基础NAT,它仅将私有主机的私有IP地址转换成公有IP地址,但并不将TCP/UDP端口信息进行转换,有动态和静态之区分。NAPT是人们比较熟悉的一种转换方式。NAPT普遍应用于数据中心网络接入设备中,它可以将中小型的网络隐藏在一个合法的IP地址后面,它将私有连接映射到公有网络中的一个单独的IP地址上,同时在该地址上加上一个由NAT设备选定的TCP端口号。NAPT又分为对称型NAT和非对称型NAT。
对称型NAT
对称型NAT也叫圆锥型NAT,是指私有地址设备用同一个IP和端口去连接外面任何一台服务器,它在NAT服务器上映射的都是同一个IP地址和端口,也就是说同一个私有地址和端口在NAT上都只有一个出口,是个一对多的关系,这个就有点像圆锥,故此得名是圆锥型NAT。圆锥形NAT又可以分为三类:完全圆锥型NAT,这种NAT会将私有地址转换成公有地址并绑定,任何数据报文都可以通过公有地址送到私有主机地址上。从一个私有IP地址和端口来的所有请求,都映射到相同的公有IP地址和端口。并且,任何公有主机通过向映射的公有地址发送报文,都可以实现和私有主机进行通信。这是一种比较宽松的策略,只要建立了私有网络的IP地址和端口与公有IP地址和端口的映射关系,所有的Internet上的主机都可以访问该NAT之后的主机;地址限制圆锥型 NAT,这种NAT会将从相同的私有IP地址和端口来的所有请求映射到相同的公有IP地址和端口。但是与完全圆锥型NAT不同,当且仅当私有主机之前已经向公有主机发送过报文,此时公有主机才能向私有主机发送报文;端口限制圆锥型NAT,这种NAT与地址限制圆锥型NAT类似,但是更为严格,端口受限圆锥型NAT增加了端口号的限制。当前,仅当私有主机之前已经向公有主机发送了报文,公有主机才能和此私有主机通信。
圆锥NAT主要部署与用户对应用体验非常敏感的地方,如P2P下载,由于破坏了端到端的网络模型,如果应用不支持NAT穿越协议,由公网侧发起对NAT后私网的下载报文将被NAT设备丢弃,部署圆锥NAT将改善这种情况。目前各种UDP协议也考虑了NAT设备,一些基于UDP协议的应用自身就可以穿越NAT设备,如QQ等。地址限制圆锥型NAT及端口限制圆锥NAT,这两种NAT无非就是对外部设备的IP及端口进行进一步的限制,如限制圆锥 NAT就是对PC的IP地址进行限制,只有PC的所有端口才可以对这地址及端口进行访问,而端口限制圆锥NAT就是对端口进行限制,所有PC的端口只有一个,不像圆锥NAT对所有的IP及端口都没有限制。
非对称型NAT
圆锥型NAT也可以叫做非对称型NAT,与之对应的就是对称型NAT。对称型NAT是指把所有来自相同私有IP地址和端口号,到特定目的IP地址和端口号的请求映射到相同的公有IP地址和端口。如果同一主机使用不同的源地址和端口对,发送的目的地址不同,则使用不同的映射。只有收到了一个IP包的公有主机才能够向该私有主机发送回一个UDP包。对称的NAT不保证所有会话中的私有地址、私有端口和公有IP,公有端口之间绑定的一致性。相反,它为每个新的会话分配一个新的端口号。
根据以往的介绍,可以将NAT做一个大致的分类,如图1所示:
当然,NAT技术还不止这些,比如还有花生壳NAT-DDNS技术,这是国内知名品牌花生壳推出的NAT技术。NAT-DDNS利用动态域名服务(DDNS)和网络地址转换(NAT)的服务器实现公私网动态映射方法。NAT-DDNS 实现难度比传统 DDNS 大,采用“域名+端口”的访问方式。新花生壳服务器会记录每个新花生壳客户端设置的映射,为不同内网服务器的映射分配不同的访问端口号,访问者通过域名+ 端口号,就可以访问到相应内网服务器的内容。还有NAT444、NAT64、NAT-PT等一系列NAT新功能,这里提一下NAT444,NAT444是日本NTT公司提出来的NAT新技术,是两层NAT44的简称,属于IPV6过渡技术的一种,它采用端口块分配方式,可以从根本上解决用户的溯源问题。
NAT是数据中心网络必备设备之一,除非数据中心获得的公有地址是充足的,或者数据中心完全作为内网使用,与外网隔离,只要不是这样的情况,就需要部署NAT设备。NAT设备往往会部署在数据中心的网络出口处,所有从数据中心内部访问外部,或者从外部访问数据中心内部的流量都要经过NAT设备,由NAT设备完整内外网地址的映射。显然,NAT设备的表项非常关键,一旦NAT出现问题,往往造成内外网之间的业务互通出现问题,相互地址的对应关系找不到,所以一般对于NAT设备数据中心都会做备份,将NAT数据在多台设备上做备份,万一其中的部分设备发生故障,还可以由其它设备接管,完成内外网的地址映射。
本文作者:harbor
来源:51CTO