在日常经济领域,当一种商品出现短缺时,市场的最初反应通常会表现为这类商品价格的上扬,并开始出现限量供给。然后,人们将会逐渐着手寻求这类商品可能的替代品及解决这类商品短缺问题的最终途径。
在网络技术领域,这种现象也同样不同程度地存在着。这其中,ip地址问题就是一个非常典型的例子。早在十年前,IETF国际互联网工程任务组就已开始意识到现行IPv4地址空间将面临短缺的问题。IPv4使用32位地址,为便于寻址和实现网络构造层次化,每个IP地址包括网络ID和主机ID两个标识码。同一物理网络内的所有主机都用同一网络ID,网络上的每一主机则有一个主机ID与其对应。同时,根据网络ID的不同,这种全球唯一的IP地址又划分为A、B、C、D和E五种地址类型。
在网络发展初期,这样划分IP地址类型并无不妥,但在Internet飞速发展和规模日益庞大的今天,根据A、B、C三种主要地址类型分配地址实际上造成了Internet地址资源的严重浪费。目前,A类地址早已告罄,B类地址也面临耗尽,现正分配中的C类地址也将很快消耗殆尽。仅以我国为例,自1997年至今,我国IP地址总数一直呈加速增长态势。据中国互联网络信息中心今年7月末发布的《中国互联网络发展状况统计报告》显示,截至2003年6月30日,我国内地IP地址总数已达32084480个。从全球情况来看,数字将更为惊人。有猜测表明,以目前的Internet发展速度计算,所有IPv4地址将会在2005至2010年间全部分配一空。
为解决IPv4存在的这类问题,IETF从1995年开始着手研发拥有长达128位地址空间、可彻底解决IPv4地址不足问题的下一代IPv6协议。与此同时,各种旨在缓解IPv4地址不足问题的过渡性解决方案也相继涌现。其中最有影响的当属根据1994年发布的RFC 1631“IP地址翻译器”开发的NAT网络地址翻译技术。
这一技术的具体实现办法是在内部网络使用专用地址,通过NAT将内部地址翻译成合法的IP地址在Internet上使用。NAT设备的主要功能是负责维护一个用于将内部IP地址映射到合法IP地址上去的状态表。同时,内部网络内的数据包在NAT设备中被翻译成正确的IP地址,发往下一级。与普通路由器仅在将数据包转发至目的地前读取源地址和目的地址不同,NAT设备实际上是对数据包头进行修改,将专用网络源地址修改为NAT设备自己的Internet地址。
NAT配置示意图
这样,借助NAT,理论上一个全球唯一IP地址后面可以连接几百台、几千台乃至几百万台内部网络专用地址主机,从而可以有效减少注册IP地址的使用,节省大量宝贵的IP地址资源,在很大程度上缓解现行IPv4地址不足的问题。
NAT在企业LAN中的应用
由于NAT网络地址翻译不仅可以利用全球唯一IP地址将局域网内的所有主机接入Internet,有效节省宝贵的IP地址资源,而且还能够实现LAN内部地址隐藏,在一定程度上防范网络攻击的发生。因此,这一技术问世以来,很快在企业LAN领域得到了广泛应用。
目前,NAT在企业LAN领域的应用主要有两种情况,一种是企业申请的合法全球唯一IP地址有限,而内部网络用户数量众多。在这种情况下,通过 NAT就可以实现多个用户同时共用一个合法全球唯一IP接入Internet,从而可有效解决企业合法IP地址短缺的问题。另一种情况是企业出于安全方面的考虑,期望隐藏企业LAN内部网络结构,则可以通过NAT将内部LAN与外部Internet 隔离,使外部用户无法了解通过NAT设置的内部IP地址。
NAT的另一个用途是可以作为实现负载平衡的DNS系列服务器的替代品。DNS系列服务器解决了多个IP地址共用一个域名的问题,能够在响应DNS申请时跳跃式地寻找可用IP地址,从而使一个域名可以对应多个IP地址。在一个HTTP服务器群中,可以实现利用多个服务器的负载平衡。但由于IP客户端会在本地缓冲DNS/IP地址解析,从而使其后续申请都会到达同一IP地址,一定程度上减弱了DNS系列服务器的作用。而基于NAT的负载平衡方案,则可以有效避免这个问题,NAT设备把需要负载平衡的多个IP地址翻译成一个公用的IP地址,每个TCP连接被NAT送到一个IP地址,而后续的TCP连接则被NAT送到下一个IP地址,从而实现了真正的负载平衡。
此外,NAT还可以用于简化Internat合并,能够在用户更改ISP时无须对内部网络重新编址,以及可有效减少用户的网络接入费用等。
常用NAT软件
目前,NAT功能多被集成至路由器、防火墙或独立NAT设备中,同时微软部分版本的Windows操作系统也集成了NAT功能。NAT可以通过专门的应用软件加以实现,常用的软件主要有NAT1000、Sygate、NAT32和WinRoute PRo等。
Sygate是Sygate科技公司较为闻名的NAT共享上网软件,支持所有网络应用协议和多种网络拓扑结构,该产品配置简单,使用方便。目前最新版本是Sygate 4.5 Build 851,有家庭网络版和办公网络版两种版本。
NAT32是一款主要旨在实现Internet接入共享的共享软件产品,全面支持Windows NT RAS服务器的TCP/IP与NAT模式,并且还为不支持NAT的应用提供了一个可进行特定映射配置的应用窗口,有标准版、家庭版和专业版等多种版本供用户选择。
Kerio科技公司的WinRoute Pro是一款主要面向中小商业用户的安全产品,在集成了防火墙、端口映射及URL过滤等多种安全防护性能的同时,还提供了NAT支持,可在公司网络内实现Internet接入共享。
NAT的问题与挑战
虽然NAT网络地址翻译可以有效节省IP地址资源,并能够隐藏企业LAN内部网络结构、在一定程度上增强防范网络攻击的能力及实现负载平衡等,但与此同时,这一技术的应用也给用户网络带来了一定的负面影响,如可能影响到用户网络的治理与安全策略等。
NAT给用户网络带来的最明显改变是失去了对真正端对端的全面支持,使部分依靠于真正端对端网络的Internet协议与应用无法正常运行,因为这类协议与应用要求网络内的数据包完全不加修改地从源地址发送到目的地址。如IP安全架构就无法跨越NAT设备,这是因为包含原始IP 源地址的原始包头采用数字签名,在NAT设备改变源地址之后,数字签名也将随之失效。
其次,NAT还可能会带来网络治理上的挑战。尽管NAT 对于缺少足够全球唯一合法IP地址的企业用户而言是一种相对理想的解决方案。但由于NAT系统不能多层嵌套,因而将加大网络治理难度,甚至造成路由噩梦。尤其是在需要对两个或更多专用网络进行整合时,NAT带来的问题将更为显著。并且用户网络在使用NAT时,由于每个数据包都需要在NAT设备中翻译成正确的IP地址后发往下一级,这意味着给处理器带来了额外的负担。虽然对于一般网络而言,这种负担微不足道,但对规模较大的网络而言,这种负担却不容忽视。
另外,由于NAT可以实现企业LAN内部结构隐藏,能够在一定程度上防范外部网络攻击,因而常被当做是一种安全解决方案。但一旦攻击者获得对NAT设备的控制,整个网络将会变得非常脆弱。因此,尽管NAT在网络保护方面有其可取之处,但却不能作为替换防火墙的方案使用,只能作为一种用于家庭与小型办公网络的辅助性安全措施。而且由于NAT改变了源地址和目的地址,因此使用NAT后,防火墙的安全策略也需要随之调整,从而可能会相应地带来部分安全漏洞。其次,部署了VPN的企业LAN在采用IPSec进行安全加密时,如若NAT设置不当,还会破坏VPN功能。
总之,虽然NAT网络地址翻译能够在一定程度上缓解现行IPv4地址短缺问题,但就长期来看,它仍是一种权宜之计,即使不考虑架构和部署问题,IPv4地址空间本身仍是有限的,假如所有的网络都隐藏在NAT设备之后,IPv4地址空间不久仍将会耗尽。向IPv6迈进才是最根本的解决之道,也是大势所趋。