文档编号:117 浏览:15321 评分:49 最后更新于:2008-08-15
A)缩略语与专用名词
IPSec(IP Security Protocol),IP网络安全协议:IPSec是IETF制定的一系列协议,以保证在Internet上传送数据的安全保密性,通信双方在IP层通过加密与数据源验证来保证数据包在Internet上传输时的私有性、完整性和真实性。
DES(Data Encryption Standard),数据加密标准:DES是IPSec使用的一种数据加密算法,用于对数据包进行加密。
3DES(Triple Data Encryption Standard),三倍数据加密标准:3DES是IPSec使用的一种数据加密算法,用于对数据包进行比DES强度更高的加密。
AES(Advanced Encryption Standard),高级加密标准:AES是IPSec使用的一种数据加密算法。与DES和3DES相比,AES更加高效、安全。
ISAKMP(Internet Security Association and Key Mangement Protocol),因特网安全联盟和密钥管理协议:ISAKMP提供了验证对方身份的方法、密钥交换时交换信息的方法以及对安全服务进行协商的方法。
IKE(Internet Key Exchange),因特网密钥交换:IKE用于通信双方协商和建立安全联盟、交换密钥。IKE定义了通信双方进行身份验证、协商加密算法以及生成共享密钥的方法。
DH(Diffie-Hellman Group),一种密钥交换算法:通信的双方各自生成一对公/私钥,只需和对方交换公钥,经过计算就可得到一组用来保护通信的密钥,这就避免了直接在通信中传输密钥的风险,提高了整个IPSec系统的安全性。DH有一个重要的属性:group(组件),共有5种基本group,常用的group有:模数为768位的MODP组(group1)、模数为1024位的MODP组(group2)、模数为1680位的MODP组(group5)。
MD5(Message Digest 5),消息摘要版本5:从任意长度信息和16 字节密钥生成128 位散列(也称作数字签名或信息整理)的算法。所生成的散列(如同输入的指印)用于验证内容和来源的真实性和完整性。
SHA-1(Secure Hash Alogrithm1),安全散列算法1:从任意长度信息和20 字节密钥生成160 位散列的算法。通常认为它比MD5 更安全,因为它生成的散列更大。
Tunnel Mode,隧道模式:IPSec有两种运行模式,一种是保护IP包中的上层协议数据,另一种是保护整个数据包。其中,隧道模式是用来保护整个数据包的,它要对整个IP数据包进行封装和保护。
Transport Mode,传送模式:IPSec有两种运行模式,一种是保护IP包中的上层协议数据,另一种是保护整个数据包。其中,传送模式只保护IP包中的上层协议数据,它只对IP数据包中的有效负载进行封装和保护。
MTU(Maximum Transmission Unit),最大发送单元:物理端口可以发送的最大数据包长度。
SA(Security Association),安全联盟:在两个设备之间建立一个IPSec VPN隧道并通过其进行安全通信之前,它们必须就通信期间需要使用的安全参数达成一致,即建立一个SA。SA将指定需要使用的认证与加密算法、在通话期间使用的密钥和安全联盟本身需要维持的时间,SA是单向的。
SPI(Security Parameter Index),安全参数索引:SPI实际上是一个长度为32位的数据实体,用于独一无二地标识出接收端上的一个SA。
AH(Authentication Header),认证包头:属于IPSec的一种协议。该协议用于为IP数据包提供数据完整性、数据包源地址验证和一些有限的抗重播服务。与ESP协议相比,AH不提供对通信数据加密服务,但能比ESP提供更加广的数据验证服务。
ESP(Encapsulating Security Payload),封装安全负荷:属于IPSec的一种协议。它用于确保IP数据包的机密性(对第三方不可见)、数据的完整性以及对数据源地址的验证,同时还具有抗重播的特性。
PSK(Pre-Shared Key),预共享密钥:IKE身份验证方法之一,它要求每个IKE对等方使用一个预定义和共享的密钥来对IKE交换执行身份验证。
IPSec隧道:IPSec隧道是点对点的安全“连接”。通过在IPSec隧道的两端,本端和对端,配置(或自动生成)对应的安全联盟,实现在本端对IP数据包加密,在对端解密。IPSec隧道可以跨越多台路由器和多个网络,只有IPSec隧道的两端共享秘密,对于隧道中间的路由器和网络,所有的加密数据包和普通数据包一样被透明地转发。
第一阶段和第二阶段:采用互联网密钥交换协议(IKE)建立IPSec通道安全联盟(SA),需要进行两个阶段的协商。在第一阶段,参与者相互验证身份并协商建立一个用来协商随后IPSec SA的安全通道。在第二阶段,参与者协商并建立用于加密和认证用户数据的IPSec SA。
Main Mode and Aggressive Mode,主模式和野蛮模式:IKE自动协商通道的第一阶段,可以在主模式和野蛮模式这两种模式下进行。主模式下,发起方和响应方之间进行三次双向信息交换,总共六条信息。野蛮模式下,发起方和响应方获取相同的对象,但仅进行两次交换,总共有三条消息。
DPD(Dead Peer Detect):周期对端检测:使用DPD,能够定期检测SA对方是否正常,网络连接是否正常。
IPSec NAT-T(NAT-Traversal),IPSec NAT穿透技术:该技术实现了IPSec协议穿透NAT设备。
B) IPSec实现概述
IPSec VPN支持四种VPN配置方式:
方式一:“手动”方式,网关到网关,使用手动密钥交换;
方式二:“自动”方式,网关到网关,使用自动IKE,主模式;
方式三:“自动”方式,动态连接到网关,使用自动IKE,野蛮模式;
方式四:“自动”方式,对方动态连接到本地,使用自动IKE,野蛮模式。
上述方式一和方式二,均用于HiPER VPN网关与远程VPN网关的连接,要求通信两端都使用固定IP地址。方式三和方式四均使用“拨号”方式,方式三允许HiPER VPN网关使用动态IP地址连接到远程网关,方式四允许客户或者远程网关使用动态IP地址连接到HiPER VPN网关。在后两种方式下,只要一方有固定IP地址或者域名。
HiPER的远程网关支持使用域名代替IP地址,HiPER会自动完成域名到IP地址的转换,该功能与HiPER DDNS功能配合使用,可以实现在通信双方都没有固定IP地址的情况下建立IPSec VPN。
在两个设备之间建立一个IPSec VPN隧道并通过其进行安全通信之前,它们必须就通信期间需要使用的安全参数达成一致,即建立一个安全联盟SA。SA是由一对指定的安全参数索引 (SPI) 、目标IP地址以及使用的安全协议(认证包头AH或封装安全负荷ESP)组成。
通过SA,IPSec隧道可以提供以下安全功能:
l 机密性(通过加密)
l 内容完整性(通过数据认证)
l 发送方认证和认可(通过身份认证)
在实际使用时,根据不同的安全需求, 可以采取不同的安全策略。
如果仅需认证IP包来源和内容的完整性,可以不使用任何加密而仅认证此数据包(使用AH或者ESP)。如果仅想保护私密性,可以不使用任何认证机制而对此数据包加密(使用ESP)。当然,也可以同时加密和认证此数据包(使用AH+ESP或ESP)。大多数网络安全设计者都选择加密、认证及抗重播,这是目前在IP网络上能够提供的最高级别的数据保护服务。
IPSec体系结构如图 1所示。
HiPER支持IPSec技术,使用两种密钥管理/创建机制来创建VPN安全联盟(SA):
•使用手动密钥交换的“手动”方式
•使用IKE协议(具有预共享密钥)的“自动”方式
IPSec有两种运行模式:传送模式(Transport Mode)和通道模式(Tunnel Mode)。传送模式只对原IP数据包的有效载荷进行封装和保护,通道模式要对整个IP数据包进行封装和保护。
当IPSec隧道两端都是主机时,可以使用传送模式或通道模式。当隧道两端至少有一个是安全网关(例如,路由器或防火墙)时,就必须使用通道模式。HiPER设备总是对IPSec 运行通道模式。
1. 通道模式
整个原始IP数据包(包头和载荷)都封装在另一个IP负荷中(如图2所示),并且附加了新包头,新包头的源地址和目的地址分别是IPSec通道的两个端点的IP地址。整个原始数据包可以被加密、被认证、或者既加密又认证。如果使用AH,AH包头和新包头可被认证。如果使用ESP,ESP包头可以被认证。
2. 传送模式
原始IP封包没有封装在另一个IP数据包中(如图 3所示)。整个封包都可以认证(使用AH),负荷可以加密(使用ESP),原始包头仍保留明文。
密钥的分配和管理对于成功创建和使用IPSec隧道很关键, 它也是实现数据认证和加密的基础。HiPER VPN网关的IPSec配置支持“手动”和“自动”密钥分配方法。
1. “手动”密钥
所谓“手动”密钥,就是在配置IPSec隧道时,隧道两端的管理员需要手工配置设备所有的安全参数,通常每个设备有20个以上的参数需要配置。
对于小的(例如只有几台设备)的网络来说,这是可行的,在这种网络中,密钥的分配、维护和跟踪都不难。但是,在设备数量较多,设备之间的距离又比较遥远的大型网络中,采用这种配置方式就存在安全问题。因为除了面对面传输密钥外,无法完全保证在传输过程中不泄漏密钥;同时,每当要更改密钥时,像最初分配密钥时一样,需要对所有的设备重新分发新的密码。因此,“手动”方式只适合比较小型的网络使用。
2. “自动”密钥
当需要创建和管理多个IPSec隧道时,就需要一种不必为每个设备都配置所有IPSec参数的方法。IPSec使用IKE支持密钥的自动生成和协商以及安全联盟的维护,HiPER VPN网关将之称为“自动”方式,HiPER使用的是带有预共享密钥的“自动”方式。
预共享密钥是用于生成IPSec会话中使用的密钥的“种子密钥”。IPSec隧道双方在开始通信前都必须拥有此密钥。在“自动”方式下,配置隧道时,密钥的分发与使用“手动”方式时相同。但是,一旦预共享密钥分发完毕后,“自动”方式下的隧道就可使用IKE协议,在管理员预先设定的时间间隔内自动更改密钥(与“手动”方式不同),而无须人工参与,降低管理负担。
经常更改密钥会提高安全性,自动更改密钥会减少密钥管理任务。但是,更改密钥会增加流量开销,因此,过于频繁地更改密钥会降低数据传输效率。
安全联盟(SA)是IPSec隧道双方用于确保隧道安全的有关方法和参数的单向协议。对于IPSec双向通信,至少必须有两个SA,一个用来接收来自对端的数据,叫做“进入”;一个用来发送数据给对方,叫做“外出”。
对于通过“手动”密钥方式配置IPSec隧道来说,由于已经预先定义了SA的所有参数,配置完毕后SA就自然建立了。事实上,由于已经建立了该隧道,当接收到的数据包与该隧道配置的策略相匹配时,HiPER VPN网关将对该数据进行加密和认证,并将其转发到目标网关。
对于通过“自动”密钥方式配置IPSec隧道来说,建立SA,需要进行两个阶段的协商:
l 在第一阶段,通信双方协商如何保护以后的通信,建立一个已通过身份认证和安全保护的通道(即IKE SA),此通道将用于保护后面的IPSec SA的协商过程。
l 在第二阶段,通信双方为IPSec协商加密算法、密钥、生存周期以及认证身份,建立用于加密和认证用户数据的通道(即IPSec SA)。
1. 第一阶段
“自动”密钥通道协商的第一阶段可以使用野蛮模式(Aggressive Mode)或主模式(Main Mode),不管使用哪种模式,双方均将交换对方可以接受的安全提议,例如:
l 加密算法(DES和3DES)和认证算法(MD5和SHA-1)
l Diffie-Hellman 组(请参阅本节的“Diffie-Hellman 交换”)
l 预共享密钥
当隧道的两端都同意接受所提出的至少一组第一阶段安全参数,并处理相关参数时,一个成功的第一阶段协商将结束。HiPER VPN网关作为发起方时,最多同时支持12个第一阶段协商的提议,允许用户定义一系列安全参数;作为响应方时,可接受任何组合形式的第一阶段协商的提议。
HiPER提供的预定义的第一阶段提议如下:
l 3des-md5-group2
l 3des-sha-group2
l des-md5-group2
l des-sha-group2
用户也可以自定义第一阶段提议。
WEB UI方式下,在VPN配置—>IPSec中,可配置“安全选项”中的“预共享密钥”;在VPN配置—>IPSec的“高级选项”中,可配置“加密认证算法1,2,3,4(第一阶段)”,一次最多配置4组提议 。
Ø 主模式和野蛮模式(Main Mode / Aggressive Mode)
第一阶段可能发生在野蛮模式或主模式下,这两种模式如下所述:
主模式:发起方和响应方之间进行三个双向信息交换(总共六条信息)以完成以下功能:
l 第一次交换,(信息1和2):提出并接受加密和认证算法。
l 第二次交换,(信息3和4):执行Diffie-Hellman交换,发起方和响应方各提供一个当前数(随机生成的号码)。
l 第三次交换,(信息5和6):发送并验证其身份。
在第三次交换信息时传输的信息由在前两次交换中建立的加密算法保护。因此,在明文中没有传输参与者的身份,从而提供了最大限度的保护。
WEB UI方式下,在VPN配置—>IPSec中,“协商模式”选择为“主模式”即可 。
野蛮模式:发起方和响应方获取相同的对象,但仅进行两次交换,总共有三条消息:
l 第一条消息:发起方建议SA,发起Diffie-Hellman交换,发送一个当前数及其IKE 身份。
l 第二条消息:响应方接受SA,认证发起方,发送一个当前数及其IKE身份,以及发送响应方的证书(如果使用证书)。
l 第三条消息:发起方认证响应方,确认交换。
由于参与者的身份是在明文中交换的(在前两条消息中),故野蛮模式不提供身份保护。
WEB UI方式下,在VPN配置—>IPSec中,“协商模式”选择为“野蛮模式”即可 。
提示:当IP地址不固定的用户使用“自动”方式(带有预定义密钥)协商IPSec SA时,必须使用野蛮模式。
Ø Diffie-Hellman 交换
Diffie-Hellman 交换也称“DH交换”,它允许双方生成一个共享密钥。该技术的优点在于它允许通信双方在非安全媒体上创建密钥,而不必把预共享密钥通过网络传输。共有五种基本DH组(HiPER支持组 1、2 和 5),在各组计算中所使用主要模数的大小都不同,如下所述:
l DH组1:768位模数
l DH组2:1024位模数
l DH组5:1536位模数
模数越大,就认为生成的密钥越安全;但是,模数越大,密钥生成过程就越长。
提示:
由于每个DH组的模数大小都不同,因此IPSec隧道通信双方必须使用相同的组。
WEB UI方式下,在VPN配置—>IPSec的“高级选项”中配置“加密认证算法1,2,3,4(第一阶段)”时选择DH组(章节6.1.1)。
2. 第二阶段
当通信双方建立了一个已认证的安全通道后,将继续执行第二阶段,在此阶段中,将协商IPSec SA以保护要通过IPSec隧道传输的用户数据。
与第一阶段的过程相似,通信双方交换提议以确定要在SA中使用的安全参数。第二阶段提议还包括一个安全协议(封装安全负荷(ESP)或认证包头(AH))和所选的加密和认证算法。如果需要完全前向保密(PFS),提议中还可以指定一个Diffie-Hellman 组。HiPER目前暂不支持PFS。
不管在第一阶段中使用何种模式,第二阶段总是在“快速”模式中运行,并且包括三条消息的交换。
WEB UI方式下,在VPN配置—>IPSec中,可配置“安全选项”中的“加密认证算法1”。在VPN配置—>IPSec的“高级选项”中,可配置“加密认证算法2,3,4(第二阶段)”,一次最多可配置4组第二阶段提议 。
一旦SA建立完毕,IPSec双方还必须维护SA,确保SA是安全有效的,IPSec通过以下方法实现SA的有效性检测:
1. SA生存时间
在建立SA的协商过程中,双方会协商该SA的生存时间和最大流量,当生存时间或最大流量到达预先设定的值时,需要重新协商以建立新的SA。周期性的重新协商,相当于定期更改密码。
WEB UI方式下,在VPN配置—>IPSec的“高级选项”中,可配置“生存时间”和“最大流量”。
由于频繁重建SA需要消耗大量的系统资源(主要是DH交换和当前数生成),会降低数据传输效率。因此SA的生存时间通常设置的比较长(典型的是1小时到1天),在有效期内,由于双方不能互相检测对方(类似PING的功能),通信的双方只能“假设”对方是正常工作的,万一有一方发生了不可预见的问题或连接双方的网络有故障,通信的另一方并不知道此时双方的连接线路中断,还会继续向早已经不存在的另一方发送数据,造成虚假连接(SA正常,发出正常,但无法完成双向通信),因此需要一种有效的方法来检测参与IPSec SA的双方都完全正常,他们之间的网络连接也完全正常。这种检测方法的开销要比重新协商IPSec SA更小,因此可以用更高的密度进行检测。这种技术就是IPSec“DPD”,DPD作为SA协商的一种补充而存在。
只有使用“自动”密钥协商的IPSec SA才拥有此功能。IPSec DPD定期检测SA对方是否还存在,在SA的生存时间和最大流量范围内,定期检测对方网络是否可达,程序是否正常,以便发现网络变化导致的通信故障或避免与一个已经不存在的“火星人”主机保持SA,这个检测周期通常为20秒或1分钟左右,双方通过发送“心跳”包来检测对方是否正常,连续丢失多个心跳包后,IPSec DPD会强制重新发起SA协商。
WEB UI方式下,在VPN配置—>IPSec的“高级选项”中,可通过选中“DPD”选项来启用DPD功能,可通过配置“心跳”来确定检测周期 。
IPSec协议工作在对等模式下,需要的一方可以随时发起IPSec协商。然而,在实现中为了区分隧道的方向,通常把最先发起IPSec协商的一端叫“发起方/客户端”,把响应该发起请求的一方叫做“响应方/服务端”。
“野蛮模式”下的IPSec隧道,因为移动用户的IP地址不能确定,拥有固定IP地址的一方无法主动发起IPSec隧道,在这种模式下,IPSec隧道只能由移动用户发起,也就是说,移动用户永远是“发起方”。
HiPER中IPSec隧道是通过生成“安全虚端口”实现的,该端口与PPTP/L2TP VPN使用的“虚端口”有很大不同。
1. 驱动机制不同
PPTP/L2TP的虚端口是由路由表,通过IP路由匹配方式驱动的,无法根据业务类型创建不同的虚端口;而IPSec的端口是由“安全策略”驱动的。比如,同样是发送到公司总部的数据(目的IP地址相同),他们会通过相同的路由到达目的地,但是我们可以使用IPSec对其中的一些数据(如EMAIL数据)加密,对另外一些数据(如HTTP)则不加密。
WEB UI方式下,在VPN配置—>IPSec的“高级选项”中,可通过配置“筛选条件”下的“协议”和“端口”来配置业务策略(章节6.1.1)。
2. 生成方式不同
用户一旦正确配置了一条PPTP/L2TP隧道的相关参数,HiPER系统会使用该配置自动生成一个“ptp”类型的虚端口用来传输数据,同时IP路由表里增加一条对应的IP路由条目(可以通过show ip route table看到,详见章节2.2.2或章节3.2.2)。但是IPSec的策略是增加到系统“安全策略库”中的,用户配置了一条IPSec安全策略,该策略就被加入策略库,当有数据包需要发送时,系统就会把该数据包与安全策略库中的规则匹配,一旦有规则匹配该数据包,就对该数据包进行加密认证处理,然后再发送出去;当系统收到外部的一个进入包时,首先匹配安全策略库,看该数据包是否需要解密,然后才能进行正常的IP路由处理。
在CLI方式中,可以使用命令show crypt ipsec sp查看加密策略是否建立,如图4所示,表示加密策略已经建立。
3.触发方式不同
PPTP/L2TP虚端口由IP路由触发,IPSec虚端口由系统安全策略库触发。接收处理时,安全策略在IP路由之前处理;当发送处理时,安全策略在IP路由之后处理。因此,根据触发的先后顺序不同,可以在HiPER上实现IPSec Over PPTP/L2TP,或者 PPTP/L2TP Over IPSec 的应用,提供最高强度的VPN功能。
当收到第一个需要加密处理的数据包时,IPSec会尝试与通信的对方发出建立IPSec SA的请求,建立了IPSec SA后,用户数据就可通过该隧道发送到对端网络设备上,对端设备把数据解密处理后发送到接收者所在的内网上。
在CLI方式中,可以使用命令show crypt ipsec sa查看IPSec是否建立,如图5所示,显示出信息“total: 1 SA s active!”表示对应IPSec SA已经建立。
... ...
图 5 IPSec SA建立信息
提示:
在“野蛮方式”下,虽然IPSec中的“响应方”中配置了安全虚端口,但该端口只能工作在“监听”状态下,即使有数据需要向对方发送,也不会主动发起IPSec SA建立隧道的请求,这是因为通信对方的IP地址通常都是变化的,无法确定它的地址,也就无法发起呼叫请求建立隧道。
如图 6所示,为“自动”方式下,IPSec隧道建立及通过隧道传输数据的过程。在整个过程中,IPSec发起方将依次通过以下数据流:
Ø 隧道配置完成,新策略加入系统“安全策略库”(图中(1));
Ø 数据外出前,检查“系统安全策略库”,看是否有规则(包括IP地址、协议和端口)匹配(图中(3));
Ø 第一阶段协商(由发起方发起),IKE SA建立(图中(4));
Ø 第二阶段协商,IPSec SA建立(图中(5));
Ø 发起方使用AH/ESP封装用户数据(图中(6));
Ø 发起方通过隧道发送用户数据(使用AH/ESP封装)(图中(7));
Ø 发起方接收来自响应方的用户数据(使用AH/ESP封装),解密处理(图中(12));
Ø 发送方发送解密后的数据到最终用户(图中(13));
Ø 如有需要,重新协商IPSec SA(图中(14)) 。
如图6所示,“自动”方式下,IPSec隧道建立及数据传输的整个过程中,IPSec响应方将依次通过以下数据流:
Ø 隧道配置完成,新策略加入系统“安全策略库”(图中(2));
Ø 第一阶段协商(由发起方发起),IKE SA建立(图中(4),参考章节4.2.1.3);
Ø 第二阶段协商,IPSec SA建立(图中(5));
Ø 响应方接收来自发送方的用户数据(使用AH/ESP封装),解密处理(图中(8));
Ø 响应方发送解密后的数据到最终用户(图中(9));
Ø 响应方接收最终用户数据,使用AH/ESP封装用户数据(图中(10));
Ø 响应方通过隧道发送用户数据(使用AH/ESP封装)(图中(11));
Ø 如有需要,重新协商IPSec SA(图中(14 。
提示:“手动”方式下,当正确配置完IPSec隧道参数后,SA就自然建立了,因此这种情况下,没有IKE协商(两个阶段),其余的数据流同“自动”方式相同。
IPSec协议在工作过程中使用了数据封装技术,当用户数据包本身比较大的时候(如ERP软件和FTP通常会使用比较大的数据包传输数据,MSN/QQ等聊天软件发送的数据包比较小),封装后的数据可能会超过发送物理端口最大发送单元MTU(例如以太网接口的最大发送单元MTU是1500字节,超过1500字节大小的数据包将被强制分成多个数据包发送,以确保每个数据包可以被物理端口正确发送),此时数据只能分段传输。在接收侧,收到分段后的数据必须组装还原为原来的数据包以后才能进行下一步协议处理,在接收到最后一个分段之前该数据包一直处在待处理状态。如果中间有一个分段丢弃,则整个数据包都被丢弃。
数据分段传输会严重影响系统的性能,所以传输过程中的再分段传输应当尽量避免。为解决此问题,HiPER IPSec实现允许用户设置MTU的大小,尽量减少分段的可能性。
HiPER中通过设置IPSec隧道的MTU参数来调整发送包的大小,超过该MTU大小的数据包会主动分段然后再发送。
CLI方式中,可以使用命令set ipsec config/xxx mtu设置隧道的MTU。
WEBUI方式中,无此功能。
下面给出IPSec隧道的MTU的计算实例:
如图7和图8所示,为固定接入和PPPoE拨号时,IPSec隧道中传输的封装数据包格式(以通道模式为例)。其中以太网MTU及各封装包头大小分别为:
以太网MTU: 1500字节;
IP包头: 20字节;
AH包头(最大): 20字节;
ESP包头(最大): 40字节;
PPPoE包头: 8字节;
图7 IPSec隧道数据包格式(固定IP接入)
因此,固定IP接入时(如图7所示),最大 MTU不能大于l420=1500-20-20-40,单位为字节;如果中间使用PPPoE线路(如图8所示),还要减去PPPoE的包头(8字节),不能大于1412=1420-8,单位为字节。
HiPER 中缺省的IPSec 隧道的MTU是1400,可以满足绝大部分应用的要求,一般无须修改。
C)、 IPSec NAT穿透
由于历史的原因,部署NAT模式下的IPSec VPN网络的问题之一在于无法定位网络地址转换(NAT)之后的IPSec对话方。Internet服务提供商和小型办公/家庭办公(SOHO)网络通常使用NAT共享单个公共IP地址。虽然NAT有助于节省剩余的IP地址空间,但是它们也给诸如IPSec之类的端对端协议带来了问题。
在 NAT对IPSec造成中断的众多原因中,主要的一个原因就是,对于“封装安全性协议(ESP)”来说,NAT设备不能识别端口转换的Layer 4(第4层)包头的位置(因为它已被加密)。对于“认证包头(AH)”协议来说,NAT设备能修改端口号,但不能修改认证检查,于是对整个IPSec封包的认证检查就会失败。
一种称为IPSec NAT穿透(NAT-T)的新技术正在由Internet工程任务组的IPSec网络工作组标准化。IPSec NAT-T 是在标题为“IPSec包的 UDP封装”(draft-ietf-ipsec-udp-encaps-02.txt)和“IKE中的NAT穿越协商”(draft-ietf-ipsec-nat-t-ike-02.txt)的Internet草案中描述的。IPSec NAT-T对协商过程进行了修改,并且定义了发送受IPSec 保护的数据的不同方法。
在IPSec协商过程中,可根据以下两个条件自动确定支持IPSec NAT-T的对话双方:
l 发起IPSec对话的一方(通常是一个客户端计算机)和响应 IPSec 对话的一方(通常是一个服务器)是否都能执行 IPSec NAT-T;
l 它们之间的路径中是否存在任何 NAT。
如果这两个条件同时为真,那么双方将使用IPSec NAT-T来通过NAT发送受IPSec保护的流量。如果其中一方不支持IPSec NAT-T,则执行常规的IPSec协商(在前两个消息之后)和IPSec保护。如果双方都支持 IPSec NAT-T,但是它们之间不存在NAT,则执行常规的IPSec保护。
提示:IPSec NAT-T 是仅为 ESP 流量定义的,AH流量无法穿过NAT设备。
HiPER设备可以应用NAT穿透 (NAT-T) 功能。NAT-T在第一阶段交换过程中,沿着数据路径检测发现存在一个或多个NAT设备后,将添加一层UDP封装(通常使用UDP4500端口),从而通过NAT设备。
WEB UI方式下,在VPN配置—>IPSec的“高级选项”中,可通过选中“NAT穿透”选项来启用NAT穿透功能。
D)、 IPSec 会话数量限制
针对不同的产品型号,HiPER中支持IPSec VPN隧道的会话数量是不一样的。IPSec会话数量根据具体的产品规格说明书确定,超过系统支持能力的会话将拒绝。当VPN会话数已达最大值时,如果尝试建立新的会话,系统会显示如下信息:
CLI方式中,可使用命令show session history查看相关信息,如图4-9所示,有“Max VPN sessions。Cannot set up a new IPSec session。”相关信息显示,无法再建立新的IPSec会话。
WEBUI方式中,可在系统状态—>系统信息的“系统历史记录”中查看相关信息。如图4-10所示,在系统历史记录中有“Max VPN sessions。Cannot set up a new IPSec session。”相关信息显示,无法再建立新的IPSec会话。
图 4-10 CLI中无法建立新的IPSec会话信息
图 4-11 WEBUI中无法建立新的IPSec会话信息