您当前的位置:首页 > 计算机论文>信息安全论文

IPSec与NAT冲突问题隧道嵌套解决的几个方法

2015-07-23 10:55 来源:学术参考网 作者:未知

【 摘   要 】 IPSec与NAT技术在现今计算机网络中都是广泛应用的技术,但IPSec与NAT之间存在着协议冲突问题,文章在分析IPSec与NAT之间冲突的原因后,提出使用GRE隧道嵌套IPSec隧道的方法,并通过实例进行说明,对GRE隧道嵌套IPSec隧道的数据传输效率进行分析,最终实现隧道嵌套解决IPSec与NAT冲突问题。
  【 关键词 】 IP安全协议;网络地址转换;通用路由封装;认证首部;封装安全负荷;Internet密钥交换;虚拟专用网
  【 中图分类号 】 TP393.08             【 文献标识码 】 A
  Tunnel Nested Solution Research to Solve IPSec and NAT Conflict
  Cao Jiong-qing
  (Guizhou Vocational Technology College of Electronics & Information ,Department of Computer Science   GuizhouKaili  56000)
  【 Abstract 】 IPSec and NAT technology in modern computer network is widely applied technology, But there is conflict in protocol between IPSec and NAT, Based on the analysis of conflict reason between IPSec and NAT, This paper proposed to use the tunnel nested technology to solve IPSec and NAT conflict , And then it is explained through an example , Through the data transmission efficiency analysis , at last to solve IPSec an NAT conflict with tunnel nested technology.
  【 Keywords 】 IPSec; NAT; GRE; AH; ESP; IKE; VPN
  1    引言
  在现今计算机网络中,网络地址转换NAT(Network address translation)技术和IP安全协议IPSec(IP Security Protocol)技术已非常普及,其中NAT技术主要用于解决IPV4版本中IP地址匮乏的问题,同时对企业内部网络的IP地址进行了隐藏,有效地保护企业内部网络,而IPSec技术在企业内部网络远程互联,通过IPSec隧道实现企业内部网络的扩展,构建虚拟专用网VPN(Virtual Private Network)中成为最常用技术。
  但NAT技术与IPSec技术存在着底层协议冲突的问题,现今主要采用IPSec OVER TCP(Transmission Control Protocol,传输控制协议)、UDP(User Datagram Protocol,用户数据报协议)封装法、RSIP(Realm-Specific IP,领域特定IP)等方法解决NAT与IPSec冲突的问题。
  本文提出隧道嵌套的思路,并通过通用路由封装GRE(Generic Route Encapsulation)隧道嵌套IPSec隧道的实例解决NAT与IPSec冲突的问题。
  2    NAT、IPSec和GRE
  2.1  NAT
  由于现行IP地址标准版本4的限制,Internet面临着IP地址空间短缺的问题,NAT不仅较好地解决了IP地址不足的问题,而且还能够有效地避免来自企业网络外部的攻击,隐藏并保护网络内部的计算机。
  NAT功能通常被集成到路由器、防火墙、单独的NAT设备中实现,现在比较流行的网络操作系统或代理服务软件也有着NAT的功能。
  NAT技术实现的类型主要有三种:①SNAT(Static NAT,静态NAT)用于将某个私有IP地址对应某个公网IP地址,对应关系一对一;②DNAT(Dynamic NAT,动态NAT)用于将多个公网IP地址对应于多个私有IP地址,对应关系多对多,通常企业申请有一段公网IP地址段;③NAPT(Port NAT,端口NAT)用于将多个私有IP地址通过端口映射的方法对应于一个公网IP地址,对应关系多对一,采用动态端口映射时主要用于企业内部私有IP地址访问Internet,采用静态端口映射时主要用于Internet访问企业内部服务器。
  NAPT是目前NAT技术中最常用的技术,也是主要与IPSec产生冲突的NAT类型。
  2.2  IPSec
  IPSec是一种开放标准的框架结构,通过安全协议以确保在IP网络上进行保密而安全的通讯,IPSec是当今实现虚拟专用网VPN的主流技术之一,IPSec协议所构建的IPSec隧道通常可在路由器、防火墙、VPN网关等设备中实现。IPSec协议主要包括安全协议认证首部AH(Authentication Header)、安全协议封装安全负荷ESP协议(Encapsulating Security Payload)、Internet密钥交换IKE协议(Internet Key Exchange)和用于网络认证及加密的一些算法等。
IPSec工作的时候有隧道模式和传输模式两种。
  在隧道模式下,IPSec对原来的整个IP数据包进行封装和加密,隐蔽了原来的IP首部,而在传输模式下,IPSec只对原来IP数据包的有效数据进行封装和加密,原来的IP首部不加密传送。在实际进行IP通信时,AH协议和ESP协议可以根据实际安全需求同时使用这两种协议或选择使用其中的一种。具体的封装情况如图1所示。
  IPSec如果安全协议使用AH,工作模式为传输模式或隧道模式,则可以对整个IP数据包进行安全认证。IPSec如果安全协议使用ESP,工作模式为传输模式时,可以对原有的数据进行加密,并且对包含了ESP首部和原有数据的部分进行安全认证,工作模式为隧道模式时,可以对原有的IP首部和数据进行加密,并且对包含了ESP首部、原有的IP首部和数据进行安全认证。
  IPSec工作过程分为两个阶段,第一阶段建立起IKE SA(IKE安全关联),双方商定如何保护以后的通讯,通信双方建立一个已通过身份鉴别和安全保护的通道,此SA将用于保护后续的协议SA的协商过程,第二阶段建立起针对其安全协议的IPSec SA(IPSec安全关联),此SA将被相应的安全协议用于数据的交换。
  IPSec可采用的加密算法有数据加密标准DES(Data Encryption Algorithm,密钥长度64位,其中实际长度56位,8位用于奇偶校验)、国际数据加密算法IDEA(International Data Encryption Algorithm,密钥长度128位)、高级加密标准AES(Advanced Encryption Standard,密钥长度支持128位、192位、256位)、三重数据加密标准3DES(在DES基础上,进行三重加密)。
  IPSec可采用的报文摘要算法有报文摘要算法版本5MD5(Message Digest Algorithm,产生128位的报文摘要)、安全散列算法SHA(Secure Hash Algorithm,产生160位的报文摘要)、散列式报文认证码HMAC(Hash-based Message Authentication Code,摘要长度取决于所用散列函数)。
  IPSec可采用的身份验证方法有预共享密钥(Pre-Shared Key)、RSA签名(RSA sign)、RSA实时加密(RSA encrypt)。
  2.3  GRE
  GRE协议是对某些网络层协议的数据包进行封装,使这些被封 装的数据包能够在另一个网络层协议中传输。GRE隧道的特点是配置简单,但缺乏安全机制。GRE采用了隧道Tunnel技术,是VPN第三层隧道协议。Tunnel是一个虚拟的点对点的连接,并且在一个Tunnel 的两端分别对数据包进行封装及拆封,GRE数据封装如图2所示。
  GRE协议的优点是作为一个标准协议支持多种协议和多播、能够用来创建弹性的VPN、支持多点隧道、能够实施QOS等,但GRE的缺点也非常明显,缺乏加密机制、没有标准的控制协议来保持GRE隧道、隧道很消耗设备的CPU使用率、出现问题要进行调试很困难、最大传输单元MTU和IP分片存在问题。
  2.4  IPSec与NAT冲突
  在多数情况下,NAT的处理对用户使用是完全透明的,但是当用户希望使用IPSec技术组建VPN网络时,NAT却带来了很大的麻烦。
  IPSec隧道的主要目标是保护IP数据包的完整性,保护数据信息不能被修改,无论是故意改动还是发生了随机的传输错误,数据报都将被IPSec抛弃,意味着IPSec会禁止任何对数据包的修改。但NAT的处理过程需要修改IP数据包的IP首部、传输层报文首部才能够正常工作。所以一旦经过IPSec处理的IP数据包穿过NAT设备时,IP数据包被NAT设备所改动,修改后的数据包到达目的主机后其解密或完整性认证处理就会失败,于是这个数据包将被认为是非法数据而被丢弃,从而导致在使用了NAT设备的网络中无法实现标准IPSec 的通讯。
  NAT和IPSec之间存在的冲突情况如图3所示。对于最常用的NAPT无论是IPSec的安全协议使用AH还是ESP,均存在冲突问题,主要原因在于NAPT需要修改TCP/UDP首部的端口号,而经过IPSec安全协议封装的数据包根本无法通过NAPT网关。
  3    GRE隧道嵌套IPSec隧道方案研究
  GRE隧道缺乏安全机制,但与NAT无任何冲突,IPSec协议构建隧道具备安全机制,但与NAT存在冲突,因此在先建立GRE隧道的基础上,通过隧道嵌套技术,再建立IPSec隧道,使得进入GRE隧道的流量再进入IPSec隧道,这样既保证了与NAT的无冲突,同时也保证了虚拟专用网VPN使用IPSec隧道进行安全传输。
  3.1  GRE隧道嵌套IPSec隧道实例
  以下通过实例的方式说明GRE隧道嵌套IPSec隧道的思路和设备配置方法,实例如图4所示。
  (1) 在RA上构建GRE隧道并设定去往192.168.2.0/24的静态路由。
  RA(config)#interface tunnel 0
  RA(config-if)#ip address 172.16.1.1 255.255.255.0
  RA(config-if)#tunnel source fastEthernet 0/0
  RA(config-if)#tunnel destination 211.2.2.2
  RA(config-if)#exit
  RA(config)#ip route 192.168.2.0 255.255.255.0 172.16.1.2
 (2) 在RC上构建GRE隧道并设定去往192.168.1.0/24的静态路由。
  RC(config)#interface tunnel 0
  RC(config-if)#ip address 172.16.1.2 255.255.255.0
  RC(config-if)#tunnel source fastEthernet 0/0
  RC(config-if)#tunnel destination 211.1.1.1
  RC(config-if)#exit
  RC(config)#ip route 192.168.1.0 255.255.255.0 172.16.1.1
  (3) 在RA上配置ISAKMP策略、IPSec变换集、IPSec兴趣流量、密码映射图等,并把密码映射图应用于外网接口,构建IPSec隧道。
  RA(config)#crypto isakmp enable
  RA(config)#crypto isakmp policy 10
  RA(config-isakmp)#encryption des
  RA(config-isakmp)#hash md5
  RA(config-isakmp)#authentication pre-share
  RA(config-isakmp)#group 2
  RA(config-isakmp)#lifetime 86400
  RA(config-isakmp)#exit
  RA(config)#crypto isakmp key apple address 211.2.2.2
  RA(config)#crypto ipsec transform-set beijing esp-3des esp-sha-hmac
  RA(cfg-crypto-trans)#mode tunnel
  RA(cfg-crypto-trans)#exit
  RA(config)#crypto ipsec security-association lifetime seconds 86400
  RA(config)#access-list 100 permit ip host 211.1.1.1 host 211.2.2.2
  RA(config)#crypto map BJ-SH 1 ipsec-isakmp
  RA(config-crypto-map)#match address 100
  RA(config-crypto-map)#set transform-set beijing
  RA(config-crypto-map)#set peer 211.2.2.2
  RA(config-crypto-map)#exit
  RA(config)#interface fastEthernet 0/0
  RA(config-if)#crypto map BJ-SH
  (4) 在RB上配置ISAKMP策略、IPSec变换集、IPSec兴趣流量、密码映射图等,并把密码映射图应用于外网接口,构建IPSec隧道。
  RC(config)#crypto isakmp enable
  RC(config)#crypto isakmp policy 10
  RC(config-isakmp)#encryption des
  RC(config-isakmp)#hash md5
  RC(config-isakmp)#authentication pre-share
  RC(config-isakmp)#group 2
  RC(config-isakmp)#lifetime 86400
  RC(config-isakmp)#exit
  RC(config)#crypto isakmp key apple address 211.1.1.1
  RC(config)#crypto ipsec transform-set shanghai esp-3des esp-sha-hmac
  RC(cfg-crypto-trans)#mode tunnel
  RC(cfg-crypto-trans)#exit
  RC(config)#crypto ipsec security-association lifetime seconds 86400
  RC(config)#access-list 100 permit ip host 211.2.2.2 host 211.1.1.1
  RC(config)#crypto map SH-BJ 1 ipsec-isakmp
  RC(config-crypto-map)#match address 100
  RC(config-crypto-map)#set transform-set shanghai
  RC(config-crypto-map)#set peer 211.1.1.1
  RC(config-crypto-map)#exit
  RC(config)#interface fastEthernet 0/0
  RC(config-if)#crypto map SH-BJ
在北京分支和上海分支接入Internet的路由器设备上完成以上设备配置内容之后,即在两地之间构建GRE隧道基础上再构建了IPSec隧道,从而实现两地内部网络之间通信先进入GRE隧道再进入IPSec隧道。
  3.2  GRE隧道嵌套IPSec隧道解 决IPSec与NAT冲突的分析
  企业内网192.168.1.0/24去往远程企业内网192.168.2.0/24的数据流量进入路由器RA后,RA路由表如下。
  RA#show ip route
  C    172.16.1.0 is directly connected, Tunnel0
  C    192.168.1.0/24 is directly connected, FastEthernet0/1
  S    192.168.2.0/24 [1/0] via 172.16.1.2
  C    211.1.1.0/24 is directly connected, FastEthernet0/0
  S*   0.0.0.0/0 [1/0] via 211.1.1.2
  经查RA路由表后,去往192.168.2.0的流量指向GRE隧道的另一端172.16.1.2,因此该流量从RA进入GRE隧道,并经过GRE协议重新封装,在添加了GRE首部后,又添加新的IP首部,源IP地址为211.1.1.1,目的IP地址为211.2.2.2,经GRE封装后的数据流量地址信息如图5所示。
  而IPSec隧道的兴趣流量根据扩展访问控制列表100的定义,为源IP地址211.1.1.1,目的IP地址为211.2.2.2,这样进入GRE隧道后的流量又激发IPSec隧道的兴趣流量条件,因此会再次进入IPSec隧道,由IPSec协议继续添加ESP首部和新的IP首部,再次进入IPSec隧道的数据流量地址信息如图6所示。
  进入IPSec隧道后的数据流量将根据路由器RA的路由表向因特网互联路由网络发送,并最终到达路由器RC的211.2.2.2接口,RC将依次拆封数据封装结构,获得具有内部网络192.168.1.0/24发往内部网络192.168.2.0/24的最初IP数据包内容,并转发至192.168.2.0/24内部网络,即在RC路由器上,进入IPSec隧道后的流量在流出IPSec隧道后再从GRE隧道流出。
  GRE隧道嵌套IPSec隧道的嵌套原理图如图7所示。
  通过GRE隧道嵌套IPSec隧道,实现了IPSec隧道的安全协议解决GRE隧道无安全传输的问题,同时由于GRE隧道与NAT技术无冲突情况发生,也解决了IPSec隧道与NAT冲突的问题。
  3.3  GRE隧道嵌套IPSec隧道效率分析
  以上面实例为例,即使用IPSec安全协议ESP、隧道模式, GRE隧道嵌套IPSec隧道的数据封装结构如图8所示。
  假设数据部分字节数为1000,网络层数据传输效率为1000/1080≈92.6%,数据传输效率较高;假设数据部分字节数200,则网络层数据传输效率为200/280≈71.3%,数据传输效率较低。即如果IP上层采用TCP协议进行大数据量传输时,那么使用GRE隧道嵌套IPSec隧道的方法,数据传输效率较高值得采用,但如IP上层采用UDP协议进行小数据量传输时,那么使用GRE隧道嵌套IPSec隧道的方法,数据传输效率较低不值得采用。
  鉴于企业内网分支机构之间常进行网络数据库查询、内网服务器访问等数据活动,涉及语音、图像、视频等多业务通信,均属于大数据量传输,因此隧道嵌套技术解决IPSec与NAT冲突问题的方法具有一定的应用场合。
  4    结束语
  根据本文所提出的GRE隧道嵌套IPSec隧道的方法,从对NAT的支持角度来说,可以彻底解决IPSec与NAT冲突的问题,并且在缺乏安全机制的GRE隧道中嵌套IPSec隧道,可以进一步保障远程企业内部网络通信的数据安全,从可操作性上来说,也非常简便易行。
  但采用隧道嵌套技术,根据数量流量业务类型的不一样,使得数据传输效率不统一,并且对设备提出了较高的要求,要同时支持IPSec隧道、GRE隧道、NAT功能,并且对设备的运算和数据传输承载能力提出了更高的要求,隧道嵌套技术仍然存在缺陷。
  参考文献
  [1] Brian Morgan,Neil Lovering.CCNP ISCW认证考试指南.人民邮电出版社,2008年.
  [2] Richard Froom. CCNP学习指南:组建Cisco 多层交换网络(BCMSN)(第4版).人民邮电出版社,2007年.
  [3] 朱光,张云华,卢娟.基于ICE的VOIP穿越NAT方案的研究[J].计算机应用与软件,2011,28(10):222~223.
  [4] 杜江, 葛洛雅柯. VPN中IPSec穿越NAT的解决方案[J].计算机应用,2010,30(07):1758~1759.
  [5] 江文滨,林缅,李勇,范奉鑫,闫军.网格嵌套技术在模拟海底沙波运移中的应用[J].地球物理学报,2013,56(04):1300~1311.
  [6] 孙小霞,王直杰. Pre-boot环境下ECC的应用及性能优化[J].计算机工程与应用, 2011,28(01):280~281.
  [7] 蒋建峰.GRE与IPSec VPN工程应用研究[J].价值工程,2013(15):297~298.
  [8] 沈晴霓,杜虹,文汉,卿斯汉. 一种基于完整性度量架构的数据封装方法[J].计算机研究与发展,2012,49(1):211~212.
  作者简介:
  曹炯清(1971-),男,山西介休人,本科,副教授:主要研究方向和关注领域:网络工程、网络管理、信息安全技术、网络应用开发等方面的教学研究工作。

相关文章
学术参考网 · 手机版
https://m.lw881.com/
首页