基于IPv4过渡时期NAT技术应用研究
2012-09-25杨林,杨勇
杨 林, 杨 勇
0 引言
目前,随着互联网技术的迅猛发展,在IPv4上使用的公网IP地址越来越紧缺,各网络使用单位分配到的IP地址资源越来越有限,IP地址资源的短缺已经对网络应用造成相当严重的影响。
从技术方案上来说,为解决这个问题,出现了多种解决办法,如从根本上将网络协议技术从 IPv4更新、升级到IPv6,彻底抛弃过去使用的32位IP地址,而采用长达128位的IP地址来缓解。但具体实现起来,却存在很多问题,原因是由于当前网络上的绝大多数设备仍是 IPv4设备,若把这些设备全部取代更换为IPv6设备,网络运营商及网络使用单位耗费的成本巨大。同时,网络的升级换代必须得保证不中断现有的网络应用服务业务,实现平滑过渡,其难度相对较大。
1 NAT技术的最初提出
可以这样认为,是IP地址的耗尽才促成了无类型域间选路(CIDR,Classless Inter-Domain Routing)的开发,但CIDR开发的主要目的是为了有效地使用现有的Internet地址。而同时根据基本的互联网通信协议开发的地址转换技术却可以在多重的 Internet子网中使用相同的 IP,用来减少注册IP地址的使用[1]。
1.1 NAT技术
从IPv4过渡到IPv6是一个渐进的过程,而且这一过程要持续相当长的时间。根据网络发展的现实情况来看,要在不同时期采用不同的规划策略,在不中断现有业务的基础上来实现平滑过渡。而根除此矛盾的一个根本方法,即在当前现有的路由器上实行不同种类的网络地址转换技术(NAT,Network Address Translation),以此解决当前IPv4过渡时期时IP地址资源严重不足的问题。
NAT技术使得一个私有网络可以通过Internet注册IP连接到外界,位于Inside网络和Outside网络中的NAT路由器在发送数据包之前,负责把内部IP地址转换成外部合法公网地址[2]。
1.2 NAT种类
NAT的转换可以采取静态转换(Static Translation)和动态转换(Dynamic Translation)两种方式。静态转换将内部地址和外部地址一对一映射。当NAT需要确认哪个地址需要转换,转换时采用哪个地址Pool时,就使用动态翻译。采用端口多路复用技术,或改变外出数据的源Port技术可以将多个内部IP地址影射到同一个外部地址,这就是端口地址转换(PAT,Port Address Translator)[3]。
反过来,要影射一个外部IP到内部地址时,则可以利用TCP的负荷分布技术。当使用这个特征时,内部主机基于轮叫调度机制,将外部提交访问的新链接地址不断定位到内网的相应主机上去。
2 NAT技术应用
使用NAT大大节省了公网IP地址的用量。一个网络使用单位申请到的合法IP地址往往很少,而内部网络用户相对却很多,通过NAT功能就能实现多个用户共同使用一个合法的 IP地址与外部网络进行通信。
2.1 NAT配置方式
配置NAT的方式有静态NAT、动态NAT、NAT超载等方式。NAT超载是使用最多的一种地址转换方式,采用的工作原理是当多个用户同时使用一个IP地址时,路由器利用上层的TCP或UDP端口号唯一标识某台计算机,允许多个内部私有IP地址共用一个外部合法公网IP地址[4]。这对于只申请到少量IP地址,但却经常同时有多个内部用户访问外部网络的时候,这种转换极为有用。
2.2 NAT技术部署
当位于 NAT设备内侧的内部网络用户连接Internet时,NAT将用户的内部网络IP地址转换成一个存储在NAT地址池里的外部公共IP地址,将它交换出去,并在NAT地址转换表中记录下这个转换项。当外部网络数据返回时,NAT技术查询 NAT地址转换表项,将目标IP地址替换成初始的内部用户IP地址,从而将数据包转发给内部网络用户[5]。
从工作方式上看,NAT确实提高了内部网络的安全。一个单位不想让外部网络用户知道自己内部网络的结构,可以依赖 NAT将内部网络与外部Internet隔离开来,外部网络用户就无法识别使用NAT技术的内部用户,也就无法直接对内部用户进行控制,从而达到保护内网的目的。
NAT功能的设备大多安放在网络的边缘,路由部署在网络的边界,当网络内的计算机要访问本网络内的服务器时,直接使用私有IP地址,当访问外部服务器时,数据包被转发给路由器,路由器执行NAT操作,把内部的私有地址转换成外部的、可路由的公共IP地址后,再转发出去[6]。
3 NAT配置实例
某网络使用单位申请到一个合法IP地址,即路由器Fa0/0接口的IP地址222.56.127.137,此时要提供给全单位的计算机都可以访问Internet。Web服务器内部地址 192.168.2.2,子网掩码255.255.255.0, 网 关 192.168.2.220,DNS 211.98.72.8。外部的一台计算机 IP地址192.168.3.3,子网掩码 255.255.255.0,网关192.168.3.1,DNS 211.98.72.8。网络拓扑结构图如图1所示。
图1 网络拓扑结构
3.1 固定公网IP地址配置实现
第1步:对路由器R1做基本配置。(斜体加粗字部分为键入命令)
Router>en
Router#conf t
Router(config)#host R1 R1(config)#int fa 0/0
R1(config-if)#ip add 222.56.127.137 255.255.255.0 路由器连接Internet的接口,配置合法IP地址
R1(config-if)#no shut
R1(config-if)#int fa 2/0
R1(config-if)#ip add 192.168.2.220 255.255.255.0 路由器连接内网接口,配置内网私有地址
R1(config-if)#no shut
R1(config-if)#no cdp run关闭CDP协议
R1(config-if)#ip route 0.0.0.0 0.0.0.0 192.168.1.1 配置路由器的默认路由
第2步:对路由器R1做配置,指定对外接口。
R1(config)#int fa 0/0
R1(config-if)#ip nat outside指明接口是对外的接口第3步:对路由器R1做配置,指定对内接口。R1(config)#int fa 2/0
R1(config-if)#ip nat inside指明接口是对内的接口
第4步:对路由器R1做配置,创建地址池。
R1(config)#ip nat pool out-pool 222.56.127.137 222.56.127.137 netmask 255.255.255.0创建地址池 Out-pool,起始至结束地址是222.56.127.137 ,使用掩码为255.255.255.0。如申请到多个合法IP地址,则开始至结束地址分别改为IP地址段即可。
第5步:对路由器R1做配置,允许被NAT转换。
R1(config)#access-list 1 permit 192.168.2.0 0.0.0.255 配置允许被NAT的条件,这里只允许一部分IP地址被NAT。
第6步:对路由器R1做配置,关联允许被NAT的列表和地址池。
R1(config)#ip nat inside source list 1 pool out-pool overload 把允许被NAT的ACL 1和前面创建的地址池 Out-pool关联起来,Overload允许使用上层的UDP和TCP端口标识会话,尤其是在内网上网主机多于地址池中合法IP地址的情况下,这个关键字必不可少。
3.2 动态IP地址配置实现
在实际的网络组建中,若单位不对外提供 Web服务,选择的网络接入方式可以是动态IP接入(即宽带拔号方式,这种方式比使用固定 IP接入费用低),也就是路由器的对外接口使用DHCP动态获取公网IP地址,因获得的这个IP地址不固定,故无法创建地址池。此时可以把配置第4步和第6步变成一步,即将上述配置的第4步省略,把第6步更换成如下配置:
R1(config)#ip nat inside source list 1 interface fa 0/0 overload 把允许被 NAT和ACL和路由器对外接口关联起来,无论路由器对外接口获取到什么IP地址,路由器都使用对外接口的IP地址进行NAT。
3.3 Web服务配置
若在内网中还需对外提供Web服务,则在路由器R1上配置端口映射,配置内容如下:
R1(config)#ip nat inside source static tcp 192.168.2.2 80 int fa 0/0 80 配置端口映射,外界对 Fa0/0接口 80端口的访问,被转换到内网192.168.2.2的80端口,
第7步:测试配置是否成功。在笔记本IE地址栏中键入 http://222.56.127.137,可以成功访问到Web服务器上的Web主页。
4 NAT技术弊端
首先,NAT违反了 IP地址结构模型的设计原则[7-8]。IP地址结构模型的基础是每个IP地址均标识了一个网络的连接。Internet的软件设计就是建立在这个前提之上,而NAT使得有很多主机可能使用相同的地址[9]。
其次,NAT使得IP协议从面向无连接变成面向连接。NAT必须维护专用IP地址与公用IP地址以及端口号的映射关系。在TCP/IP协议体系中,如果一个路由器出现故障,不会影响到TCP协议的执行。因为只要几秒收不到应答,发送进程就会进入超时重传处理。而当存在 NAT时,最初设计的 TCP/IP协议过程将发生变化,Internet将变得非常脆弱[10]。
另外,NAT违反了基本的网络分层结构模型的设计原则。因为在传统的网络分层结构模型中,第N层是不能修改第N+1层的报头内容的。NAT破坏了这种各层独立的原则。
5 结语
NAT技术在当前IPv4过渡时期,对信息化、网络化建设方面仍起着很大的作用,对缓解IP地址资源不足提供了良好的解决方案,同时也在一定范围内避免了外界硬件资源条件不足而对网络服务造成的影响,一定程度上突破了网络地址空间不够导致在网络应用上的障碍,相应地解决了NAT与网络性能问题。尽管它本身还存在一系列的弊端,这有待于在IPv6时代来临之前继续加强打破该限制与不利的研究,进而让NAT技术能够继续发挥它相应的作用。
[1] 邵泽云.网络地址转换和策略路由在校园网中的应用[J].陇东学院学报,2010(05):30-32.
[2] 刘风华,丁贺龙,张永平.关于NAT技术的研究与应用[J].计算机工程与设计,2006(10):1814-1817.
[3] 周利利,张平,梁祖华.IPv4/IPv6过渡技术在校园网中的应用[J].通信技术,2009,42(02):212-214.
[4] 李文琴.NAT技术在校园内部网络中的应用[J].重庆工商大学学报:自然科学版,2007(04):353-356.
[5] 张建伟,贺蕾,郭云飞,等.基于路由器的 NAT系统的扩展与实现[J].通信技术,2008,41(06):36-37.
[6] 孙卫喜,苟红玲.NAT技术在高校多校区资源共享中的应用[J].微型电脑应用,2009(10):59-60.
[7] 马义涛,薛质,王轶骏.关于TCP穿越 NAT技术的研究与分析[J].信息安全与通信保密,2008(04):47-49.
[8] 阮宜龙.NAT和IPSec相容性研究[J].信息安全与通信保密,2007(02):108-110.
[9] 吴绍兴,刘德春,尹应鹏.路由器下NAT技术的实现[J].计算机与现代化,2004(02):50-53.
[10] 王瑾,吴启山.基于IPv6过渡技术在校园网中的应用研究[J].通信技术,2008,41(09):142-144.