天天看点

穿透数据中心网络的NAT大法

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所示:

图1:nat分类

当然,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数据在多台设备上做备份,万一其中的部分设备发生故障,还可以由其它设备接管,完成内外网的地址映射。

====================================分割线================================

本文转自d1net(转载)

继续阅读