国家 / 地区

10-安全配置指导

11-IPSec配置

本章节下载  (720.19 KB)

docurl=/cn/Service/Document_Software/Document_Center/Routers/Catalog/SR_Router/SR6600/Configure/Operation_Manual/H3C_SR6600_CG-R2603(V1.15)/10/201212/766656_30005_0.htm

11-IPSec配置

  录

1 IPsec配置

1.1 IPsec简介

1.1.1 IPsec的协议实现

1.1.2 IPsec基本概念

1.1.3 IPsec虚拟隧道接口

1.1.4 使用IPsec保护IPv6路由协议

1.1.5 IPsec反向路由注入功能

1.1.6 协议规范

1.2 建立IPsec隧道的配置方式

1.3 基于ACL建立IPsec安全隧道

1.3.1 IPsec配置任务简介

1.3.2 配置访问控制列表

1.3.3 配置安全提议

1.3.4 配置安全策略

1.3.5 在接口上应用安全策略组

1.3.6 使能加密引擎功能

1.3.7 使能解封装后IPsec报文的ACL检查功能

1.3.8 配置IPsec抗重放功能

1.3.9 配置报文信息预提取功能

1.3.10 配置IPsec无效SPI恢复功能

1.3.11 配置IPsec反向路由注入功能

1.4 基于IPsec虚拟隧道接口建立IPsec安全隧道

1.4.1 IPsec虚拟隧道接口配置任务简介

1.4.2 配置安全框架

1.4.3 配置IPsec虚拟隧道接口

1.4.4 IPsec虚拟隧道接口上配置报文信息预提取功能

1.4.5 IPsec虚拟隧道接口上应用QoS策略

1.5 配置IPsec保护IPv6路由协议

1.6 IPsec显示和维护

1.7 IPsec典型配置举例

1.7.1 采用手工方式建立IPsec安全隧道

1.7.2 采用IKE方式建立IPsec安全隧道

1.7.3 使用IPsec虚拟隧道接口建立IPsec安全隧道

1.7.4 配置IPsec保护RIPng报文

1.7.5 IPsec反向路由注入功能典型配置举例

2 IKE配置

2.1 IKE简介

2.1.1 IKE的安全机制

2.1.2 IKE的交换过程

2.1.3 IKE在IPsec中的作用

2.1.4 IPsec与IKE的关系

2.1.5 协议规范

2.2 IKE配置任务简介

2.3 配置本端安全网关的名字

2.4 配置IKE安全提议

2.5 配置IKE对等体

2.6 配置Keepalive定时器

2.7 配置NAT Keepalive定时器

2.8 配置对等体存活检测

2.9 配置取消对next payload域的检查

2.10 IKE显示和维护

2.11 IKE典型配置举例

2.11.1 IKE主模式及预共享密钥认证典型配置举例

2.11.2 IKE野蛮模式及NAT穿越典型配置举例

2.12 常见错误配置举例

2.12.1 非法用户身份信息

2.12.2 提议不匹配

2.12.3 无法建立安全隧道

2.12.4 ACL配置错误

 


1 IPsec配置

1.1  IPsec简介

IPsec(IP Security)是IETF制定的三层隧道加密协议,它为Internet上传输的数据提供了高质量的、可互操作的、基于密码学的安全保证,是一种传统的实现三层VPN(Virtual Private Network,虚拟专用网)的安全技术。特定的通信方之间通过建立IPsec隧道来传输用户的私有数据,并在IP层提供了以下安全服务:

l              数据机密性(Confidentiality):IPsec发送方在通过网络传输包前对包进行加密。

l              数据完整性(Data Integrity):IPsec接收方对发送方发送来的包进行认证,以确保数据在传输过程中没有被篡改。

l              数据来源认证(Data Authentication):IPsec在接收端可以认证发送IPsec报文的发送端是否合法。

l              防重放(Anti-Replay):IPsec接收方可检测并拒绝接收过时或重复的报文。

IPsec具有以下优点:

l              支持IKE(Internet Key Exchange,因特网密钥交换),可实现密钥的自动协商功能,减少了密钥协商的开销。可以通过IKE建立和维护SA(Security Association,安全联盟)的服务,简化了IPsec的使用和管理。

l              所有使用IP协议进行数据传输的应用系统和服务都可以使用IPsec,而不必对这些应用系统和服务本身做任何修改。

l              对数据的加密是以数据包为单位的,而不是以整个数据流为单位,这不仅灵活而且有助于进一步提高IP数据包的安全性,可以有效防范网络攻击。

1.1.1  IPsec的协议实现

IPsec协议不是一个单独的协议,它给出了应用于IP层上网络数据安全的一整套体系结构,包括网络认证协议AH(Authentication Header,认证头)、ESP(Encapsulating Security Payload,封装安全载荷)、IKE(Internet Key Exchange,因特网密钥交换)和用于网络认证及加密的一些算法等。其中,AH协议和ESP协议用于提供安全服务,IKE协议用于密钥交换。关于IKE的详细介绍请参见“2 IKE配置”,本节不做介绍。

IPsec提供了两种安全机制:认证和加密。认证机制使IP通信的数据接收方能够确认数据发送方的真实身份以及数据在传输过程中是否遭篡改。加密机制通过对数据进行加密运算来保证数据的机密性,以防数据在传输过程中被窃听。

IPsec协议中的AH协议定义了认证的应用方法,提供数据源认证和完整性保证;ESP协议定义了加密和可选认证的应用方法,提供数据可靠性保证。

l              AH协议(IP协议号为51)提供数据源认证、数据完整性校验和防报文重放功能,它能保护通信免受篡改,但不能防止窃听,适合用于传输非机密数据。AH的工作原理是在每一个数据包上添加一个身份验证报文头,此报文头插在标准IP包头后面,对数据提供完整性保护。可选择的认证算法有MD5(Message Digest)、SHA-1(Secure Hash Algorithm)等。

l              ESP协议(IP协议号为50)提供加密、数据源认证、数据完整性校验和防报文重放功能。ESP的工作原理是在每一个数据包的标准IP包头后面添加一个ESP报文头,并在数据包后面追加一个ESP尾。与AH协议不同的是,ESP将需要保护的用户数据进行加密后再封装到IP包中,以保证数据的机密性。常见的加密算法有DES、3DES、AES等。同时,作为可选项,用户可以选择MD5、SHA-1算法保证报文的完整性和真实性。

在实际进行IP通信时,可以根据实际安全需求同时使用这两种协议或选择使用其中的一种。AH和ESP都可以提供认证服务,不过,AH提供的认证服务要强于ESP。同时使用AH和ESP时,设备支持的AH和ESP联合使用的方式为:先对报文进行ESP封装,再对报文进行AH封装,封装之后的报文从内到外依次是原始IP报文、ESP头、AH头和外部IP头。

1.1.2  IPsec基本概念

1. 安全联盟(Security Association,SA)

IPsec在两个端点之间提供安全通信,端点被称为IPsec对等体。

SA是IPsec的基础,也是IPsec的本质。SA是通信对等体间对某些要素的约定,例如,使用哪种协议(AH、ESP还是两者结合使用)、协议的封装模式(传输模式和隧道模式)、加密算法(DES、3DES和AES)、特定流中保护数据的共享密钥以及密钥的生存周期等。建立SA的方式有手工配置和IKE自动协商两种。

SA是单向的,在两个对等体之间的双向通信,最少需要两个SA来分别对两个方向的数据流进行安全保护。同时,如果两个对等体希望同时使用AH和ESP来进行安全通信,则每个对等体都会针对每一种协议来构建一个独立的SA。

SA由一个三元组来唯一标识,这个三元组包括SPI(Security Parameter Index,安全参数索引)、目的IP地址、安全协议号(AH或ESP)。

SPI是用于唯一标识SA的一个32比特数值,它在AH和ESP头中传输。在手工配置SA时,需要手工指定SPI的取值。使用IKE协商产生SA时,SPI将随机生成。

通过IKE协商建立的SA具有生存周期,手工方式建立的SA永不老化。IKE协商建立的SA的生存周期有两种定义方式:

l              基于时间的生存周期,定义了一个SA从建立到失效的时间;

l              基于流量的生存周期,定义了一个SA允许处理的最大流量。

生存周期到达指定的时间或指定的流量,SA就会失效。SA失效前,IKE将为IPsec协商建立新的SA,这样,在旧的SA失效前新的SA就已经准备好。在新的SA开始协商而没有协商好之前,继续使用旧的SA保护通信。在新的SA协商好之后,则立即采用新的SA保护通信。

2. 封装模式

IPsec有如下两种工作模式:

l              隧道(tunnel)模式:用户的整个IP数据包被用来计算AH或ESP头,AH或ESP头以及ESP加密的用户数据被封装在一个新的IP数据包中。通常,隧道模式应用在两个安全网关之间的通讯。

l              传输(transport)模式:只是传输层数据被用来计算AH或ESP头,AH或ESP头以及ESP加密的用户数据被放置在原IP包头后面。通常,传输模式应用在两台主机之间的通讯,或一台主机和一个安全网关之间的通讯。

不同的安全协议在tunnel和transport模式下的数据封装形式如图1-1所示。

图1-1 安全协议数据封装格式

 

3. 认证算法与加密算法

(1)        认证算法

认证算法的实现主要是通过杂凑函数。杂凑函数是一种能够接受任意长的消息输入,并产生固定长度输出的算法,该输出称为消息摘要。IPsec对等体计算摘要,如果两个摘要是相同的,则表示报文是完整未经篡改的。IPsec使用两种认证算法:

l              MD5:MD5通过输入任意长度的消息,产生128bit的消息摘要。

l              SHA-1:SHA-1通过输入长度小于2的64次方bit的消息,产生160bit的消息摘要。

MD5算法的计算速度比SHA-1算法快,而SHA-1算法的安全强度比MD5算法高。

(2)        加密算法

加密算法实现主要通过对称密钥系统,它使用相同的密钥对数据进行加密和解密。目前设备的IPsec实现三种加密算法:

l              DES(Data Encryption Standard):使用56bit的密钥对一个64bit的明文块进行加密。

l              3DES(Triple DES):使用三个56bit的DES密钥(共168bit密钥)对明文进行加密。

l              AES(Advanced Encryption Standard):使用128bit、192bit或256bit密钥长度的AES算法对明文进行加密。

这三个加密算法的安全性由高到低依次是:AES、3DES、DES,安全性高的加密算法实现机制复杂,运算速度慢。对于普通的安全要求,DES算法就可以满足需要。

4. 协商方式

有如下两种协商方式建立SA:

l              手工方式(manual)配置比较复杂,创建SA所需的全部信息都必须手工配置,而且不支持一些高级特性(例如定时更新密钥),但优点是可以不依赖IKE而单独实现IPsec功能。

l              IKE自动协商(isakmp)方式相对比较简单,只需要配置好IKE协商安全策略的信息,由IKE自动协商来创建和维护SA。

当与之进行通信的对等体设备数量较少时,或是在小型静态环境中,手工配置SA是可行的。对于中、大型的动态网络环境中,推荐使用IKE协商建立SA。

5. 安全隧道

安全隧道是建立在本端和对端之间可以互通的一个通道,它由一对或多对SA组成。

1.1.3  IPsec虚拟隧道接口

1. 概述

IPsec虚拟隧道接口是一种支持路由的三层逻辑接口,它可以支持动态路由协议,所有路由到IPsec虚拟隧道接口的报文都将进行IPsec保护,同时还可以支持对组播流量的保护。使用IPsec虚拟隧道接口建立IPsec隧道具有以下优点:

l              简化配置:通过路由来确定对哪些数据流进行IPsec保护。与通过ACL指定数据流范围的方式相比,这种方式简化了用户在部署IPsec安全策略时配置上的复杂性,使得IPsec的配置不会受到网络规划的影响,增强了网络规划的可扩展性,降低了网络维护成本。

l              减少开销:在保护远程接入用户流量的组网应用中,在IPsec虚拟隧道接口处进行报文封装,与IPsec over GRE或者IPsec over L2TP方式的隧道封装相比,无需额外为入隧道流量加封装GRE头或者L2TP头,减少了报文封装的层次,节省了带宽。

l              业务应用更灵活:IPsec虚拟隧道接口在实施过程中明确地区分出“加密前”和“加密后”两个阶段,用户可以根据不同的组网需求灵活选择其它业务(例如NAT、QoS)实施的阶段。例如,如果用户希望对IPsec封装前的报文应用QoS,则可以在IPsec虚拟隧道接口上应用QoS策略;如果希望对IPsec封装后的报文应用QoS,则可以在物理出接口上应用QoS策略。

2. 工作原理

IPsec虚拟隧道接口对报文的加封装/解封装发生在隧道接口上。用户流量到达实施IPsec配置的设备后,需要IPsec处理的报文会被转发到IPsec虚拟隧道接口上进行加封装/解封装。

图1-2所示,IPsec虚拟隧道接口对报文进行加封装的过程如下:

图1-2 IPsec虚接口隧道加封装原理图

 

(1)        Router将从入接口接收到的IP明文送到转发模块进行处理;

(2)        转发模块依据路由查询结果,将IP明文发送到IPsec虚拟隧道接口进行加封装:原始IP报文被封装在一个新的IP报文中,新IP头中的源地址和目的地址分别为隧道接口的源地址和目的地址。

(3)        IPsec虚拟隧道接口完成对IP明文的加封装处理后,将IP密文送到转发模块进行处理;

(4)        转发模块进行第二次路由查询后,将IP密文通过隧道接口的实际物理出接口转发出去。

图1-3所示,IPsec虚拟隧道接口对报文进行解封装的过程如下:

图1-3 IPsec虚接口隧道解封装原理图

 

(1)        Router将从入接口接收到的IP密文送到转发模块进行处理;

(2)        转发模块识别到此IP密文的目的地为本设备的隧道接口地址且IP协议号为AH或ESP时,会将IP密文送到相应的IPsec虚拟隧道接口进行解封装:将IP密文的外层IP头去掉,对内层IP报文进行解密处理。

(3)        IPsec虚拟隧道接口完成对IP密文的解封装处理之后,将IP明文重新送回转发模块处理;

(4)        转发模块进行第二次路由查询后,将IP明文从隧道的实际物理出接口转发出去。

从上面描述的加封装/解封装过程可见,IPsec虚拟隧道接口将报文的IPsec处理过程区分为两个阶段:“加密前”和“加密后”。需要应用到加密前的明文上的业务(例如NAT、QoS),可以应用到隧道接口上;需要应用到加密后的密文上的业务,则可以应用到隧道接口对应的物理出接口上。

1.1.4  使用IPsec保护IPv6路由协议

使用IPsec保护IPv6路由协议是指,使用AH/ESP协议对IPv6路由协议报文进行加/解封装处理,并为其提供认证和加密的安全服务,目前支持OSPFv3、IPv6 BGP、RIPng路由协议。

IPsec对IPv6路由协议报文进行保护的处理方式和目前基于接口的IPsec处理方式不同,是基于业务的IPsec,即IPsec保护某一业务的所有报文。该方式下,设备产生的所有需要IPsec保护的IPv6路由协议报文都要被进行加封装处理,而设备接收到的不受IPsec保护的以及解封装(解密或验证)失败的IPv6路由协议报文都要被丢弃。

在基于接口的IPsec处理方式下,设备对配置了IPsec安全功能的接口上发送的每个报文都要判断是否进行IPsec处理。目前,该方式有两种实现,一种是基于ACL的IPsec,只要到达接口的报文与该接口的IPsec安全策略中的ACL规则匹配,就会受到IPsec保护;另一种是基于路由的IPsec,即IPsec虚拟隧道接口方式,只要被路由到虚拟隧道接口上的报文都会受到IPsec保护。

相对于基于接口的IPsec,基于业务的IPsec既不需要ACL来限定要保护的流的范围,也不需要指定IPsec隧道的起点与终点,IPsec安全策略仅与具体的业务绑定,不管业务报文从设备的哪个接口发送出去都会被IPsec保护。

由于IPsec的密钥交换机制仅仅适用于两点之间的通信保护,在广播网络一对多的情形下,IPsec无法实现自动交换密钥,因此必须使用手工配置密钥的方式。同样,由于广播网络一对多的特性,要求各设备对于接收、发送的报文均使用相同的SA参数(相同的SPI及密钥)。因此,目前仅支持手工安全策略生成的SA对IPv6路由协议报文进行保护。

1.1.5  IPsec反向路由注入功能

图1-4所示,某企业在企业分支与企业总部之间的所有流量通过IPsec进行保护,当企业分支众多时,企业总部网关需要配置大量静态路由,将总部发往分支的数据引到应用IPsec策略的接口上来,另外,当企业分支内部网络规划发生变化时,同时需要调整总部网关上的静态路由,工作量巨大且容易出现配置错误。

反向路由注入功能的出现,可以很好得解决这些问题。反向路由注入简称RRI(Reverse Route Injection),是一种自动添加到达IPsec VPN私网或IPsec隧道网关静态路由的机制,可实现为受IPsec保护的流量自动添加静态路由的功能。

图1-4 IPsec VPN组网图

 

如上IPsec VPN组网中,在总部网关设备Device A上配置RRI功能后,Device A上将自动添加一条到达分支所在私网网段192.168.2.0/24的路由,等价于在其上手工配置如下静态路由:

ip route-static 192.168.2.0 255.255.255.0 2.2.2.2

通过RRI创建的路由表项可以在路由表中查询到,其目的地址为受保护的对端网络,下一跳地址为IPsec隧道对端地址或指定的地址,它使得发往对端的流量将被强制通过IPsec加密后转发。

RRI创建的静态路由和手工配置的静态路由一样,可以向内网设备进行广播,允许内网设备选择合适的路由对IPsec VPN流量进行转发。该功能在企业总部有多台网关设备的组网应用中,如进行负载均衡、双机热备的情况下,甚至是IPsec VPN流量通过默认网关无法到达对端网关设备的时候,都能及时生成新的路由来转发IPsec VPN流量,因此非常有用。

在MPLS L3VPN组网环境中,配置了RRI的IPsec VPN网关设备能够依据应用IPsec策略的接口所绑定的VPN实例,在相应VPN实例的IP路由表中添加静态路由。

在大规模组网中,这种自动添加静态路由的机制可以简化用户配置,减少在企业总部网关上配置静态路由的工作量,并且可以根据IPsec SA的创建和删除进行静态路由的动态增加和删除,大大增强VPN网络的可扩展性。

1.1.6  协议规范

与IPsec相关的协议规范有:

l              RFC2401:Security Architecture for the Internet Protocol

l              RFC2402:IP Authentication Header

l              RFC2406:IP Encapsulating Security Payload

l              RFC4552:Authentication/Confidentiality for OSPFv3

1.2  建立IPsec隧道的配置方式

IPsec隧道的建立有多种配置方式,请根据实际组网中对IPsec隧道的使用需求来选择配置方式:

l              基于ACL方式:由ACL来指定要保护的数据流范围,通过配置安全策略并将安全策略绑定在实际的物理接口上来完成IPsec的配置。这种方式可以利用ACL的丰富配置功能,结合实际的组网环境灵活制定IPsec安全策略。具体配置请参见“1.3  基于ACL建立IPsec安全隧道”。

l              基于路由方式:即基于IPsec虚拟隧道接口建立IPsec安全隧道。这种方式下,由路由来选择需要保护的数据流,通过配置安全框架并在IPsec虚拟隧道接口上应用安全框架来完成IPsec的配置。这种方式简化了网络配置及网络管理上的复杂度,增强了大型VPN网络的可扩展性。具体配置请参见“1.4  基于IPsec虚拟隧道接口建立IPsec安全隧道”。

l              基于业务方式:IPsec安全策略直接与具体的业务绑定,保护某一业务的所有报文,无需ACL或者路由来指定要保护的数据流。目前,支持对IPv6路由协议的保护。通过配置手工方式的IPsec安全策略,并在IPv6路由协议上应用安全策略来完成IPsec的配置。具体配置请参见“1.5  配置IPsec保护IPv6路由协议”。

1.3  基于ACL建立IPsec安全隧道

1.3.1  IPsec配置任务简介

基于ACL建立IPsec安全隧道的基本配置思路如下:

(1)        通过配置访问控制列表,用于匹配需要保护的数据流;

(2)        通过配置安全提议,指定安全协议、认证算法和加密算法、封装模式等;

(3)        通过配置安全策略,将要保护的数据流和安全提议进行关联(即定义对何种数据流实施何种保护),并指定SA的协商方式、对等体IP地址(即保护路径的起/终点)、所需要的密钥和SA的生存周期等;

(4)        最后在设备接口上应用安全策略即可完成IPsec隧道的配置。若通过软件实现,则在接口上应用安全策略即可;若通过加密卡实现,则除在接口上应用安全策略,还需将安全策略绑定到加密卡上。

表1-1 IPsec配置任务简介

配置任务

说明

详细配置

IPsec基本配置

配置访问控制列表

必选

1.3.2 

配置安全提议

1.3.3 

配置安全策略

1.3.4 

在接口上应用安全策略组

1.3.5 

使能加密引擎

必选

1.3.6 

使能解封装后IPsec报文的ACL检查开关

可选

1.3.7 

配置IPsec抗重放功能

可选

1.3.8 

配置报文信息预提取功能

可选

1.3.9 

配置IPsec无效SPI恢复功能

可选

1.3.10 

配置IPsec反向路由注入功能

可选

1.3.11 

 

通常情况下,由于IKE协议采用UDP的500端口进行通信,IPsec的AH和ESP协议分别使用51或50号协议来工作,因此为保障IKE和IPsec的正常运行,需要确保应用了IKE和IPsec配置的接口上没有禁止掉属于以上端口和协议的流量。

 

1.3.2  配置访问控制列表

ACL(Access Control List,访问控制列表)是用来实现流识别功能的。网络设备为了过滤报文,需要配置一系列的匹配条件对报文进行分类,当设备的端口接收到报文后,即根据当前端口上应用的ACL规则对报文进行分析、识别之后,根据预先设定的策略对报文进行不同的处理。

1. ACL规则中关键字的使用

IPsec通过配置ACL来定义需要过滤的数据流。在IPsec的应用中,ACL规则中的permit关键字表示与之匹配的流量需要被IPsec保护,而规则中的deny关键字则表示与之匹配的那些流量不需要保护。一个ACL中可以配置多条规则,首个与数据流匹配上的规则决定了对该数据流的处理方式,如果该规则为permit,则该规则就定义了需要建立SA来保护的数据流量的范围。

在IPsec策略中定义的ACL既可用于过滤接口入方向数据流,也可用于过滤接口出方向数据流。

l              设备出入方向的数据流都使用IPsec策略中定义的ACL规则来做匹配依据。具体是,出方向的数据流正向匹配ACL规则,入方向的数据流反向匹配ACL规则。例如,对于应用于IPsec策略中的某ACL规则:rule 0 permit ip source 1.1.1.0 0.0.0.255 destination 2.2.2.0 0.0.0.255,设备使用其正向过滤出方向上从1.1.1.0/24网段到2.2.2.0/24网段的数据流,反向过滤入方向上从2.2.2.0/24网段到1.1.1.0/24网段的数据流。

l              在出方向上,与ACL的permit规则匹配的报文将被IPsec保护,未匹配上任何规则或与deny规则匹配上的报文将不被IPsec保护。

l              在入方向上,与ACL的permit规则匹配上的IPsec报文将被接收并处理,与ACL的permit规则匹配上的普通IP报文将被丢弃。

需要注意的是:

l              仅对确实需要IPsec保护的数据流配置permit规则,避免盲目地使用关键字any。这是因为,在一个permit规则中使用any关键字就代表所有指定范围上出方向的流量都需要被IPsec保护,所有对应入方向上被保护的IPsec报文将被接收并处理,入方向上未被保护的IPsec报文将被丢弃。这种情况下,一旦入方向收到的某流量是未被IPsec保护的,那么该流量就会被丢弃,这会造成一些本不需要IPsec处理的流量丢失,影响正常的业务流传输。

l              合理使用deny规则,尤其是在一个安全策略下有多条优先级不同的子安全策略时,避免本应该与优先级较低的子安全策略的ACL permit规则匹配而被IPsec保护的出方向报文,因为先与优先级较高的子安全策略的ACL deny规则匹配上,而在接收端被当作未被IPsec保护的报文丢弃。

deny规则的错误配置示例:(以下配置信息仅截取了ACL的相关内容,其它步骤省略)

Router A连接的1.1.2.0/24网段到Router B连接的3.3.3.0/24网段之间的报文,在应用了IPsec策略test的出接口上,优先与顺序号为1的安全策略进行匹配,并匹配上了ACL 3000的rule 1 deny ip,因此Router A认为它不需要IPsec保护,到达Router B后将被丢弃。

Router A上的配置如下:

acl number 3000

 rule 0 permit ip source 1.1.1.0 0.0.0.255 destination 2.2.2.0 0.0.0.255

 rule 1 deny ip

acl number 3001

 rule 0 permit ip source 1.1.2.0 0.0.0.255 destination 3.3.3.0 0.0.0.255

 rule 1 deny ip

#

ipsec policy test 1 isakmp

 security acl 3000

 ike-peer aa

 proposal 1

#

ipsec policy test 2 isakmp

 security acl 3001

 ike-peer bb

 proposal 1

Router B上的配置如下:

acl number 3001

 rule 0 permit ip source 3.3.3.0 0.0.0.255 destination 1.1.2.0 0.0.0.255

 rule 1 deny ip

#

ipsec policy test 1 isakmp

 security acl 3001

 ike-peer aa

 proposal 1

2. ACL规则的配置

为保证SA的成功建立,建议将IPsec对等体上的访问控制列表镜像配置,即保证两端要保护的数据流范围是镜像的。例如,图1-5中Router A和Router B上的ACL配置都是完全镜像对称的,因此用于保护主机Host A与主机Host C之间、子网Network 1与子网Network 2之间流量的SA均可成功建立。

图1-5 镜像ACL配置

 

若IPsec对等体上的访问控制列表配置非镜像,那么只有一种情况下,SA的协商是可以建立的。这种情况就是,一端的访问控制列表规则定义的范围是另外一端的子集。如图1-6所示,Router A上的访问控制列表允许的范围(Host A->Host C)是Router B上访问控制列表(Network 2->Network 1)的子集。

图1-6 非镜像ACL配置

 

但需要注意的是,在这种ACL配置下,并不是任何一端发起的SA协商都可以成功,仅当保护范围小(细粒度)的一端向保护范围大(粗粒度)的一端发起的协商才能成功,反之则协商失败。这是因为,协商响应方要求协商发起方发送过来的数据必须在响应方可以接受的范围之内。其结果就是,从细粒度一端向粗粒度一端发起的协商是可以成功的,例如Host A->Host C;从粗粒度一方向细粒度一方发起的协商是不能成功的,例如Host C->Host B、Host D->Host A等。

3. 数据流的保护方式

目前,设备支持的数据流的保护方式包括以下两种:

l              标准方式:一条隧道保护一条数据流。ACL中的每一个规则对应的数据流都会由一条单独创建的隧道来保护;

l              聚合方式:一条隧道保护ACL中定义的所有数据流。ACL中的所有规则对应的数据流只会由一条创建的隧道来保护。该方式目前仅在一端设备使用Comware V3软件版本,而另一端使用Comware V5软件版本时使用,且仅在IKE协商安全策略的情况下可配。

l          ACL的具体配置请参见“ACL和QoS配置指导”中的“ACL”。

l          若在接口上同时使能IPsec和QoS,同一个IPsec安全联盟的数据流如果被QoS分类进入不同队列,会导致部分报文发送乱序。由于IPsec具有防重放功能,IPsec入方向上对于防重放窗口之外的报文会进行丢弃,从而导致丢包现象。因此当IPsec与QoS结合使用时,必须保证IPsec分类与QoS分类规则配置保持一致。IPsec的分类规则完全由引用的ACL规则确定,QoS分类规则的配置请参考“ACL和QoS配置指导”中的“QoS配置方式”。

 

1.3.3  配置安全提议

安全提议是安全策略或者安全框架的一个组成部分,它用于保存IPsec需要使用的特定安全协议、加密/认证算法以及封装模式,为IPsec协商SA提供各种安全参数。

表1-2 配置安全提议

操作

命令

说明

进入系统视图

system-view

-

创建安全提议,并进入安全提议视图

ipsec proposal proposal-name

必选

缺省情况下,没有任何安全提议存在

配置安全提议采用的安全协议

transform { ah | ah-esp | esp }

可选

缺省情况下,采用ESP协议

配置安全算法

配置ESP协议采用的加密算法

esp encryption-algorithm { 3des | aes [ key-length ] | des }

可选

缺省情况下,ESP协议采用DES加密算法

配置ESP协议采用的认证算法

esp authentication-algorithm { md5 | sha1 }

可选

缺省情况下,ESP协议采用MD5认证算法

配置AH协议采用的认证算法

ah authentication-algorithm { md5 | sha1 }

可选

缺省情况下,AH协议采用MD5认证算法

配置安全协议对IP报文的封装形式

encapsulation-mode { transport | tunnel }

可选

缺省情况下,安全协议采用隧道模式对IP报文进行封装

传输模式必须应用于数据流的源地址和目的地址与安全隧道两端地址相同的情况下

若要配置应用于IPv6路由协议的手工安全策略,则该安全策略引用的安全提议仅支持传输模式的封装模式

 

l          可对安全提议进行修改,但对已协商成功的SA,新修改的安全提议并不起作用,即SA仍然使用原来的安全提议(除非使用reset ipsec sa命令重置),只有新协商的SA将使用新的安全提议。

l          只有选择了相应的安全协议后,该安全协议所需的安全算法才可配置。例如,如果使用transform命令选择了esp,那么只有ESP所需的安全算法才可配置,而AH所需的安全算法则不能配置。ESP协议允许对报文同时进行加密和认证,或只加密,或只认证。

l          最多可以创建10000个安全提议。

 

1.3.4  配置安全策略

安全策略规定了对什么样的数据流采用什么样的安全提议。一条安全策略由“名字”和“顺序号”共同唯一确定。

安全策略分为手工安全策略和IKE协商安全策略:

l              手工配置方式:需要用户手工配置密钥、SPI等参数,在隧道模式下还需要手工配置安全隧道两个端点的IP地址;

l              IKE协商方式:由IKE自动协商生成各参数。

1. 手工配置安全策略

(1)        配置准备

手工配置安全策略时,除完成该安全策略需要引用的访问控制列表及安全提议的配置之外,为保证SA的协商成功,安全隧道两端的配置必须符合以下要求:

l              安全策略引用的安全提议应采用相同的安全协议、安全算法和报文封装形式;

l              当前端点的对端地址与对端的本端地址应保持一致;

l              应分别设置inboundoutbound两个方向SA的参数,且保证SA的唯一性,即不同SA必须对应不同的SPI。

l              本端和对端SA的SPI及密钥必须是完全匹配的。即,本端的入方向SA的SPI及密钥必须和对端的出方向SA的SPI及密钥相同;本端的出方向SA的SPI及密钥必须和对端的入方向SA的SPI及密钥相同;

l              两端SA使用的密钥应当以相同的方式输入。即,一端以字符串方式输入密钥,另一端必须也以字符串方式输入密钥。而且,任何一端出入方向的SA使用的密钥也应当以相同的方式输入。

对于要应用于IPv6路由协议的安全策略,无需配置访问控制列表和隧道地址,但是应该符合以下要求:

l              本端出方向SA的SPI及密钥必须和本端入方向SA的SPI及密钥保持一致;

l              同一个范围内的,所有设备上的安全策略所引用的安全提议采用的安全协议、安全算法和报文封装形式要相同,而且所有设备上的SA的SPI及密钥均要保持一致。该范围与协议相关:对于OSPFv3,它是OSPFv3邻居之间或一个OSPFv3区域内;对于RIPng,它是RIPng直连邻居之间或一个RIPng进程内;对于IPv6 BGP,它是IPv6 BGP邻居之间或一个对等体组内。

(2)        手工配置安全策略

表1-3 手工配置安全策略

操作

命令

说明

进入系统视图

system-view

-

用手工方式创建一条安全策略,并进入安全策略视图

ipsec policy policy-name seq-number manual

必选

缺省情况下,没有任何安全策略存在

配置安全策略引用的访问控制列表

security acl acl-number

若安全策略要应用于IPv6路由协议,则无需此配置,其它情况必选

缺省情况下,安全策略没有指定访问控制列表

可支持保护VPN实例间的数据流

配置安全策略所引用的安全提议

proposal proposal-name

必选

缺省情况下,安全策略没有引用任何安全提议

配置隧道的起点与终点

配置安全隧道的本端地址

tunnel local ip-address

若安全策略要应用于IPv6路由协议,则无需此配置,其它情况必选

缺省情况下,没有配置安全隧道的本端地址和对端地址

配置安全隧道的对端地址

tunnel remote ip-address

配置SA的安全参数索引参数

sa spi { inbound | outbound } { ah | esp } spi-number

必选

配置SA使用的密钥

配置AH协议的认证密钥(以16进制方式输入)

sa authentication-hex { inbound | outbound } ah hex-key

二者必选其一

配置AH协议的认证密钥(以字符串方式输入)

sa string-key { inbound | outbound } ah string-key

配置ESP协议的认证密钥和加密密钥(以字符串方式输入)

sa string-key { inbound | outbound } esp string-key

至少选其一

以字符串方式输入密钥时,系统会自动地同时生成认证算法的密钥和加密算法的密钥

配置ESP协议的认证密钥(以16进制方式输入)

sa authentication-hex { inbound | outbound } esp hex-key

配置ESP协议的加密密钥(以16进制方式输入)

sa encryption-hex { inbound | outbound } esp hex-key

 

l          一条安全策略只能引用一条访问控制列表,如果设置安全策略引用了多于一个访问控制列表,最后引用的那条访问控制列表才有效。

l          通过手工方式建立SA,一条安全策略只能引用一个安全提议,并且如果已经引用了安全提议,必须先取消原先的安全提议才能引用新的安全提议。

l          如果先后以不同的方式输入了密钥,则最后设定的密钥有效。

l          对于手工方式创建的安全策略,不能直接修改它的创建方式,而必须先删除该安全策略然后再重新创建。

 

2. 配置使用IKE协商方式的安全策略

在采用IKE方式配置安全策略时,有以下两种方式:

l              直接配置安全策略,在安全策略视图中定义需要协商的各参数;

l              引用安全策略模板创建安全策略,在安全策略模板中定义需要协商的各参数。应用了该类安全策略的设备不能发起协商,仅可以响应远端设备的协商请求。由于策略模板中未定义的可选参数由发起方来决定,而响应方会接受发起方的建议,因此这种方式适用于通信对端(例如对端的IP地址)未知的情况下,允许这些对端设备向本端设备主动发起协商。

(1)        配置准备

在配置IKE协商安全策略之前,需要完成以下配置:

l              配置所引用的访问控制列表和安全提议。

l              配置IKE对等体。具体配置请参见“2.5  配置IKE对等体”。

为保证IKE协商成功,安全策略中所有配置的参数必须在本端和对端相匹配。

(2)        配置使用IKE协商方式的安全策略

l              直接配置使用IKE协商方式的安全策略

表1-4 直接配置使用IKE协商方式的安全策略

操作

命令

说明

进入系统视图

system-view

-

创建一条安全策略,并进入安全策略视图

ipsec policy policy-name seq-number isakmp

必选

缺省情况下,没有安全策略存在

配置用于描述安全策略的IPsec连接名

connection-name name

可选

缺省情况下,无IPsec连接名

配置安全策略引用的访问控制列表

security acl acl-number [ aggregation ]

必选

缺省情况下,安全策略没有指定访问控制列表

配置安全策略所引用的安全提议

proposal proposal-name&<1-6>

必选

缺省情况下,安全策略没有引用任何提议

在安全策略中引用IKE对等体

ike-peer peer-name

必选

安全策略中不能引用已经被安全框架引用的IKE对等体,反之亦然

配置使用此安全策略发起协商时使用PFS特性

pfs { dh-group1 | dh-group2 | dh-group5 | dh-group14 }

可选

缺省情况下,安全策略发起协商时没有使用PFS特性

PFS(Perfect Forward Secrecy,完善的前向安全)特性请参见“2.1.1  IKE的安全机制

配置SA的生存周期

sa duration { time-based seconds | traffic-based kilobytes }

可选

缺省情况下,安全策略的SA生存周期为当前全局的SA生存周期值

使能安全策略

policy enable

可选

缺省情况下,安全策略处于使能状态

退回系统视图

quit

-

配置全局SA的生存周期

ipsec sa global-duration { time-based seconds | traffic-based kilobytes }

可选

缺省情况下,SA基于时间的生存周期为3600秒,基于流量的生存周期为1843200千字节

 

l              引用安全策略模板配置IKE协商方式的安全策略

安全策略模板可配置的参数与IKE方式的IPsec安全策略相同,只是很多参数是可选的。

l              必须配置的参数:IPsec安全提议和IKE对等体,

l              可选配的参数:访问控制列表、PFS特性和生存周期。与直接方式不同的是,用于定义保护对象范围的访问控制列表在这种方式下是可选的,该参数在未配置的情况下,相当于支持最大范围的保护,即接受协商发起端的访问控制列表设置。

表1-5 引用安全策略模板配置IKE协商方式的安全策略

操作

命令

说明

进入系统视图

system-view

-

创建一个安全策略模板,并进入安全策略模板视图

ipsec policy-template template-name seq-number

必选

缺省情况下,没有任何安全策略模板存在

配置安全策略引用的访问控制列表

security acl acl-number

可选

缺省情况下,安全策略没有指定访问控制列表

配置安全策略所引用的安全提议

proposal proposal-name&<1-6>

必选

缺省情况下,安全策略没有引用任何提议

在安全策略中引用IKE对等体

ike-peer peer-name

必选

配置使用此安全策略发起协商时使用PFS特性

pfs { dh-group1 | dh-group2 | dh-group5 | dh-group14 }

可选

缺省情况下,安全策略发起协商时没有使用PFS特性

PFS(Perfect Forward Secrecy,完善的前向安全)特性请参见“2.1.1  IKE的安全机制

配置SA的生存周期

sa duration { time-based seconds | traffic-based kilobytes }

可选

缺省情况下,安全策略的SA生存周期为当前全局的SA生存周期值

使能安全策略

policy enable

可选

缺省情况下,安全策略处于使能状态

退回系统视图

quit

-

配置全局SA的生存周期

ipsec sa global-duration { time-based seconds | traffic-based kilobytes }

可选

缺省情况下,SA基于时间的生存周期为3600秒,基于流量的生存周期为1843200千字节

引用安全策略模板创建一条安全策略

ipsec policy policy-name seq-number isakmp template template-name

必选

缺省情况下,没有安全策略存在

 

l          引用安全策略模板创建一条安全策略之后,就不能进入该安全策略视图下进行安全策略的配置与修改了,只能进入安全策略模板视图下配置或修改。

l          一条安全策略只能引用一条访问控制列表,如果设置安全策略引用了多于一个访问控制列表,最后配置的那条访问控制列表才有效。

l          通过IKE协商建立SA,一条安全策略最多可以引用六个安全提议,IKE协商将在安全隧道的两端搜索能够完全匹配的安全提议。如果IKE在两端找不到完全匹配的安全提议,则SA不能建立,需要被保护的报文将被丢弃。

l          IKE在使用安全策略发起一个协商时,可以进行一个PFS交换。如果本端配置了PFS特性,则发起协商的对端也必须配置PFS特性,而且本端和对端指定的DH组必须一致,否则协商会失败。

l          所有在安全策略视图下没有单独配置生存周期的SA,都采用全局生存周期。IKE为IPsec协商建立SA时,采用本地设置的和对端提议的生存周期中较小的一个。

l          可同时配置基于时间和基于流量的SA生存周期,只要到达指定的时间或指定的流量,SA就会老化。

l          对于IKE(无论直接或引用模板)方式创建的安全策略,不能直接修改它的创建方式,而必须先删除该安全策略然后再重新创建。

 

1.3.5  在接口上应用安全策略组

安全策略组是所有具有相同名字、不同顺序号的安全策略的集合。在同一个安全策略组中,顺序号越小的安全策略,优先级越高。

为使定义的SA生效,应在每个要加密的数据流和要解密的数据流所在接口(逻辑的或物理的)上应用一个安全策略组,以对数据进行保护。当取消安全策略组在接口上的应用后,此接口便不再具有IPsec的安全保护功能。

当从一个接口发送数据时,将按照从小到大的顺序号查找安全策略组中每一条安全策略。如果数据匹配了一条安全策略引用的访问控制列表,则使用这条安全策略对数据进行处理;如果数据没有匹配安全策略引用的访问控制列表,则继续查找下一条安全策略;如果数据与所有安全策略引用的访问控制列表都不匹配,则直接被发送(IPsec不对数据加以保护)。

IPsec安全策略除了可以应用到串口、以太网口等实际物理接口上之外,还能够应用到Tunnel、Virtual Template等虚接口上。这样就可以根据实际组网要求,在如GRE、L2TP等隧道上应用。

表1-6 在接口上应用安全策略组

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

应用指定的安全策略组

ipsec policy policy-name

必选

 

一个接口只能应用一个安全策略组。通过IKE方式创建的安全策略可以应用到多个接口上,通过手工创建的安全策略只能应用到一个接口上。

 

1.3.6  使能加密引擎功能

加密引擎是设备上的一个协处理器,为IPsec的处理提供一个加/解密算法接口。

若绑定加密卡,只要加密卡工作状态正常,IPsec处理就由状态正常的加密卡来执行。当加密卡异常时,报文被丢弃。

若未绑定加密卡,则分为两种情况:

l              若加密引擎功能处于使能状态,则由加密引擎进行IPsec处理;

l              若加密引擎功能处于禁止状态或加密引擎异常,并且主体软件备份功能处于使能状态,则由主体软件IPsec模块进行IPsec处理;若主体软件备份功能处于禁止状态,则报文被丢弃。

表1-7 使能加密引擎功能

操作

命令

说明

进入系统视图

system-view

-

使能加密引擎功能(集中式设备)

cryptoengine enable

可选

缺省情况下,加密引擎功能处于使能状态

使能加密引擎功能(分布式设备)

cryptoengine enable [ slot slot-number ]

可选

缺省情况下,加密引擎功能处于使能状态

 

1.3.7  使能解封装后IPsec报文的ACL检查功能

在隧道模式下,对于解封装之后的入方向IPsec报文,有可能出现报文的内部IP头不在当前安全策略配置的ACL保护范围内的情况,如网络中恶意构造的攻击报文头可能不在此范围,所以需要重新检查报文内部IP头是否在ACL保护范围内。使能该功能后可以保证ACL检查不通过的报文被丢弃,从而提高网络安全性。

表1-8 使能解封装后IPsec报文的ACL检查功能

操作

命令

说明

进入系统视图

system-view

-

使能解封装后IPsec报文的ACL检查功能

ipsec decrypt check

可选

缺省情况下,解封装后IPsec报文的ACL检查功能处于使能状态

 

1.3.8  配置IPsec抗重放功能

通常,重放报文是指已经处理过的报文。IPsec通过滑动窗口(抗重放窗口)机制检测重放报文。AH和ESP协议报文中带有序列号,如果收到报文的序列号与已经解封装过的报文序列号相同,或报文的序列号出现得较早,即已经超过了抗重放窗口的范围,则认为该报文为重放报文。

由于对重放报文的解封装无实际作用,并且解封装过程涉及密码学运算,会消耗设备大量的资源,导致业务可用性下降,实际上构成了拒绝服务攻击。通过使能IPsec抗重放检测功能,将检测到的重放报文在解封装处理之前丢弃,可以降低设备资源的消耗。

另外,在某些特定环境下,业务数据报文的序列号顺序可能与正常的顺序差别较大,虽然并非有意的重放攻击,但会被抗重放检测认为是重放报文,导致业务数据报文被丢弃,影响业务的正常运行。因此,这种情况下就可以通过关闭IPsec抗重放检测功能来避免业务数据报文的错误丢弃,也可以通过适当地增大抗重放窗口的宽度,来适应业务正常运行的需要。

表1-9 配置IPsec抗重放功能

操作

命令

说明

进入系统视图

system-view

-

使能IPsec抗重放检测功能

ipsec anti-replay check

可选

缺省情况下,IPsec抗重放检测功能处于使能状态

配置IPsec抗重放窗口宽度

ipsec anti-replay window width

可选

缺省情况下,IPsec抗重放窗口宽度为32

 

l          IPsec抗重放检测功能缺省是使能的,是否关闭该功能请根据实际需求慎重使用。

l          使用较大的抗重放窗口宽度会引起系统开销增大,导致系统性能下降,与抗重放检测用于降低系统在接收重放报文时的开销的初衷不符,因此建议在能够满足业务运行需要的情况下,使用较小的抗重放窗口宽度。

 

按照IPsec协议,只有IKE协商的IPsec SA才能够支持抗重放检测,手工方式生成的IPsec SA不支持抗重放检测。因此该功能使能与否与对手工方式生成的IPsec SA没有影响。

 

1.3.9  配置报文信息预提取功能

当在接口上同时应用了IPsec策略与QoS策略时,缺省情况下,QoS使用被封装报文的外层IP头信息来对报文进行分类。但如果希望QoS基于被封装报文的原始IP头信息对报文进行分类,则需要配置报文信息预提取功能来实现。

关于QoS策略及QoS分类的相关介绍请参见“ACL和QoS配置指导”中的“QoS配置方式”。

表1-10 配置报文信息预提取功能

操作

命令

说明

进入系统视图

system-view

-

进入安全策略视图/安全策略模板视图

ipsec policy policy-name seq-number [ isakmp | manual ]

二者必选其一

ipsec policy-template template-name seq-number

配置报文信息预提取功能

qos pre-classify

必选

缺省情况下,报文信息预提取功能处于关闭状态

 

1.3.10  配置IPsec无效SPI恢复功能

当IPsec隧道一端的安全网关出现问题(例如安全网关重启)导致本端IPsec SA丢失时,会造成IPsec流量黑洞现象:一端(接收端)的IPsec SA已经完全丢失,而另一端(发送端)还持有对应的IPsec SA且不断地向对端发送报文,当接收端收到发送端使用此IPsec SA封装的IPsec报文时,就会因为找不到对应的SA而持续丢弃报文,形成流量黑洞。该现象造成IPsec通信链路长时间得不到恢复(只有等到发送端旧的IPsec SA生命周期超时,并重建IPsec SA后,两端的IPsec流量才能得以恢复),因此需要采取有效的IPsec SA恢复手段来快速恢复中断的IPsec通信链路。

SA由SPI唯一标识,接收方根据IPsec报文中的SPI在SA数据库中查找对应的SA,若接收方找不到处理该报文的SA,则认为此报文的SPI无效。使能了IPsec无效SPI恢复功能的接收端收到无效SPI的IPsec报文后,就触发本端IKE向对端发送INVALID SPI NOTIFY消息。发送端IKE接收到此通知消息后,就会立即删除此无效SPI对应的IPsec SA。之后,当发送端需要继续向接收端发送报文时,就会触发两端重建IPsec SA,使得中断的IPsec通信链路得以恢复。

由于IKE向对方发送INVALID SPI NOTIFY消息有可能会给设备带来发生DoS(Denial of Sevice)攻击的风险,因此缺省情况下的IPsec无效SPI恢复功能是关闭的,接收端将默认丢弃无效SPI的IPsec报文。

表1-11 配置IPsec无效SPI恢复功能

操作

命令

说明

进入系统视图

system-view

-

使能IPsec无效SPI恢复功能

ipsec invalid-spi-recovery enable

可选

缺省情况下,IPsec无效SPI恢复功能处于关闭状态

 

1.3.11  配置IPsec反向路由注入功能

RRI只需要在企业总部网关设备上的IPsec策略视图或者IPsec安全策略模板视图下配置。

RRI有静态和动态两种工作机制,配置了RRI的设备采用哪种工作机制,由reverse-route命令中是否指定了参数static决定。

l              静态工作机制(指定static参数):RRI基于IPsec安全策略引用的ACL中各规则的目的配置信息来静态生成静态路由(包含不同目的信息的ACL permit规则会分别生成不同的路由)。该静态路由的下一跳地址可以通过reverse-route命令中的参数remote-peer ip-address来指定,不指定该参数的情况下为配置的隧道对端的IP地址。当IPsec策略中的RRI功能被关闭,或者策略中引用的ACL、对端安全网关的IP地址配置被删除时,该IPsec策略下由RRI生成的所有静态路由表项会被删除。当企业分支网络结构基本不变时,可以配置此类型的RRI添加到达分支的静态路由。

l              动态工作机制(未指定static参数):RRI基于与分支通信的IPsec SA的建立而动态生成静态路由。该静态路由的目的地址为本端学习到的被保护的分支网络地址,下一跳地址可通过reverse-route命令中的参数remote-peer ip-address来指定,不指定该参数的情况下为本端在IPsec SA协商过程中学习到的隧道的对端地址。当IPsec SA被删除时,相应的静态路由表项也会同时被删除。当企业分支结构容易发生变化时,如分支用户使用拨号方式动态获取IP地址接入Internet,则可以配置此类型的RRI动态添加到达分支的静态路由,可减少因分支变动而对总部网关配置的频繁调整。

对于RRI生成的静态路由,可以为其配置优先级,从而更灵活地应用路由管理策略。例如:当设备上还有其它方式配置的到达相同目的地的路由时,如果为它们指定相同优先级,则可实现负载分担,如果指定不同优先级,则可实现路由备份。同时,还可以通过修改静态路由的Tag属性值,使得设备能够在路由策略中根据Tag值对这些RRI生成的静态路由进行灵活的控制。

表1-12 配置IPsec反向路由注入功能

操作

命令

说明

进入系统视图

system-view

-

进入安全策略视图/安全策略模板视图

ipsec policy policy-name seq-number [ isakmp | manual ]

二者必选其一

ipsec policy-template template-name seq-number

开启IPsec反向路由注入功能

reverse-route [ remote-peer ip-address [ gateway | static ] | static ]

必选

缺省情况下,IPsec反向路由注入功能处于关闭状态

配置IPsec反向路由注入生成的静态路由的优先级

reverse-route preference preference-value

可选

缺省情况下,IPsec反向路由注入功能生成的静态路由的优先级为60

配置IPsec反向路由注入生成的静态路由的Tag值

reverse-route tag tag-value

可选

缺省情况下,IPsec反向路由注入功能生成的静态路由的Tag值为0

 

l          IPsec反向路由注入功能在隧道模式和传输模式下都支持。

l          若对IPsec反向路由注入静态路由属性进行修改,则在静态工作机制下的RRI会根据新的路由属性重新生成静态路由,而在动态工作机制下的RRI不会修改已生成的静态路由的路由属性,修改后的静态路由属性仅对新增的静态路由有效。

 

1.4  基于IPsec虚拟隧道接口建立IPsec安全隧道

1.4.1  IPsec虚拟隧道接口配置任务简介

基于IPsec虚拟隧道接口建立IPsec安全隧道的基本配置思路如下:

(1)        通过配置安全提议,指定安全协议、认证算法和加密算法、封装模式等;

(2)        通过配置安全框架,选择保护数据流时使用的安全提议,设置IKE对等体的参数(即IKE协商的模式、所需要的密钥等)和SA的生存周期等;

(3)        通过配置IPsec虚拟隧道接口,并在IPsec虚拟隧道接口视图下应用安全框架使得IPsec虚拟隧道的配置生效。另外,也可以将安全框架绑定在指定的加密卡下,由加密卡来加速IPsec隧道加/解封装的速度。

与使用安全策略建立IPsec隧道相比,定义安全框架时无须指定需要保护的数据流的范围,即安全框架默认保护流的范围是所有流。

 

表1-13 IPsec虚拟隧道接口配置任务简介

配置任务

说明

详细配置

配置安全提议

必选

IPsec虚拟隧道接口引用的安全提议只能支持隧道模式

1.3.3 

配置安全框架

必选

1.4.2 

配置IPsec虚拟隧道接口

必选

1.4.3 

在IPsec虚拟隧道接口上配置QoS报文信息预提取功能

可选

1.4.4 

在IPsec虚拟隧道接口上配置QoS策略

可选

1.4.5 

使能加密引擎功能

可选

1.3.6 

配置IPsec抗重放功能

可选

1.3.8 

 

1.4.2  配置安全框架

由前文可知,安全策略由“名字”和“顺序号”共同唯一确定,相同名字的策略为一个策略组。每条策略可以通过ACL配置来保护不同的数据流。将安全策略组应用到接口上后,当有用户流量经该接口转发时,IPsec会根据各策略来筛选感兴趣的流来进行保护,这样在一个接口下会生成多条IPsec隧道。

一个安全框架相当于一个安全策略,与安全策略不同的是,安全框架由“名字”唯一确定,且不支持配置ACL。安全框架定义了对数据流进行IPsec保护所使用的安全提议,以及用于自动协商SA所需要的IKE协商参数。在IPsec虚拟隧道接口下应用安全框架后只会生成一条IPsec隧道,并对所有路由到该隧道接口的数据流进行IPsec保护。

目前,IPsec安全框架只能应用于DVPN虚拟隧道接口和IPsec虚拟隧道接口下,根据安全框架协商出的SA将会对所有路由到隧道接口下的IP流量进行IPsec保护。

在配置IPsec安全框架之前,需要完成以下任务:

l              配置需要引用的安全提议。具体配置请参见“1.3.3  配置安全提议”。

l              配置IKE对等体。具体配置请参见“2.5  配置IKE对等体”。

为保证IKE协商成功,安全框架中所有配置的参数必须在本端和对端相匹配。

l          根据安全框架进行IKE协商时,选用的本端地址是通过IPsec虚拟隧道接口的源地址来指定的,安全框架所引用的IKE对等体中的local-address配置不生效。

l          根据安全框架进行IKE协商时,使用的对端地址是通过IPsec虚拟隧道接口的目的地址指定的,安全框架所引用的IKE对等体中的remote-address配置不生效。当IPsec虚拟隧道接口的目的地址未配置的时候,本端不能作为发起方主动发起IKE协商,只能被动接受对端发起的协商。

l          DVPN(Dynamic Virtual Private Network,动态虚拟私有网络)是企业网各分支机构使用动态地址接入公网的情况下,在各分支机构间建立的一种动态VPN。DVPN虚拟隧道接口的相关介绍请参见“三层技术-IP业务配置指导”中的“DVPN”。

 

表1-14 配置IPsec安全框架

操作

命令

说明

进入系统视图

system-view

-

创建一个安全框架,并进入安全框架视图

ipsec profile profile-name

必选

缺省情况下,没有安全框架存在

配置安全框架引用的安全提议

proposal proposal-name&<1-6>

必选

缺省情况下,安全框架没有引用任何安全提议

在安全框架中引用IKE对等体

ike-peer peer-name

必选

安全框架中不能引用已经被安全策略引用的IKE对等体,反之亦然

配置使用此安全框架发起协商时使用PFS特性

pfs { dh-group1 | dh-group2 | dh-group5 | dh-group14 }

可选

缺省情况下,安全框架发起协商时没有使用PFS特性

PFS(Perfect Forward Secrecy,完善的前向安全)特性请参见“2.1.1  IKE的安全机制

配置SA的生存周期

sa duration { time-based seconds | traffic-based kilobytes }

可选

缺省情况下,安全框架的SA生存周期为当前全局的SA生存周期值

退回系统视图

quit

-

配置全局SA的生存周期

ipsec sa global-duration { time-based seconds | traffic-based kilobytes }

可选

缺省情况下,SA基于时间的生存周期为3600秒,基于流量的生存周期为1843200千字节

 

1.4.3  配置IPsec虚拟隧道接口

IPsec虚拟隧道接口就是采用IPsec协议对报文进行封装的隧道接口。

使用IPsec虚拟隧道接口保护数据流的基本配置思路如下:

(1)        创建一个Tunnel接口,并在Tunnel接口视图下指定当前隧道的封装模式为IPsec虚拟隧道接口;

(2)        配置IPsec虚拟隧道接口的源地址,此地址将作为IKE协商时本端身份的标识;

(3)        若希望本端IPsec虚拟隧道接口主动发起IKE协商,则需要配置Tunnel接口的目的地址;若只希望被动接纳对端发起的IKE协商,则可以不配置Tunnel接口目的地址。

(4)        在IPsec虚拟隧道接口上应用安全框架,使其具有IPsec的安全保护功能。当取消应用在IPsec虚拟隧道接口上的安全框架后,IPsec虚拟隧道接口将不再具有IPsec的安全保护功能。

仅当IPsec虚拟隧道接口链路状态up时,才能表示该接口具备了IPsec的安全保护功能。IPsec虚拟隧道接口链路状态up的条件包括:

l              Tunnel接口源地址为设备上有效的本地地址;

l              Tunnel接口上应用了配置正确的IPsec安全框架;

l              本端安全网关已经与对端安全网关协商生成了有效的SA(执行display ike sa能看到第一阶段IKE SA和第二阶段IPsec SA已经存在)。

表1-15 配置IPsec虚拟隧道接口

操作

命令

说明

进入系统视图

system-view

-

创建一个Tunnel接口,并进入Tunnel接口视图

interface tunnel number

必选

缺省情况下,设备上无隧道接口

配置Tunnel接口的IPv4私网地址

ip address ip-address { mask | mask-length } [ sub ]

必选

缺省情况下,Tunnel接口上没有设置IPv4私网地址

配置隧道封装模式为IPsec虚拟隧道

tunnel-protocol ipsec ipv4

必选

缺省情况下,隧道的封装模式为IPsec虚拟隧道

配置Tunnel接口的源地址或源接口,即发送IPsec报文的实际物理接口地址

source { ip-address | interface-type interface-number }

必选

缺省情况下,Tunnel接口上未配置源地址或源接口

若采用配置源接口的形式,则Tunnel接口的源地址为源接口的主IP地址

配置Tunnel接口的目的地址

destination ip-address

可选

缺省情况下,Tunnel接口上未配置目的地址

对于IKE协商的发起方,目的地址必须配置;对于IKE协商的响应方,目的地址可选择配置

在Tunnel接口上应用安全框架

ipsec profile profile-name

必选

应用的安全框架必须是已经存在的,且未应用在DVPN隧道接口上

 

l          interface tunneltunnel-protocolsourcedestination命令的详细介绍请参见“三层技术-IP业务命令参考”中的“隧道”。

l          安全框架既可以应用在IPsec虚拟隧道接口上,也可以应用在DVPN虚拟隧道接口上,但是同一个安全框架不能同时应用于两种类型的隧道接口上。

l          一个Tunnel接口上只能应用一个安全框架。

l          一个安全框架可应用在多个IPsec虚拟隧道接口上,但同时只能在一个IPsec虚拟隧道接口上生效,因此通常建议一个安全框架仅应用在一个IPsec虚拟隧道接口上。

 

1.4.4  IPsec虚拟隧道接口上配置报文信息预提取功能

由于IPsec的隧道封装将会隐藏原始IP数据流的五元组信息(源IP地址、目的IP地址、源端口、目的端口、协议类型),为了能够利用原始数据流的信息对加封装后的IPsec报文进行QoS处理,需要在隧道加封装之前提取出原始IP数据流的五元组信息。

通过在IPsec虚拟隧道接口上配置报文信息预提取功能,可以满足以上需求。IPsec虚拟隧道接口上预先提取出的报文信息可用来作为物理出接口上实施QoS策略(例如,进行流分类、设置IP报文的服务优先级、物理接口限速以及拥塞处理等)的依据。

需要注意的是,仅在IPsec虚拟隧道接口上单独使用报文信息预提取功能并无实际意义,必须与物理出接口上应用QoS策略一起组合使用才有效果,即需要满足以下两个配置才能真正实现对IPsec报文的QoS处理:

l              IPsec虚拟隧道接口配置报文信息预提取功能;

l              IPsec虚拟隧道接口对应的物理接口上应用QoS策略。关于接口上应用QoS策略的具体配置请参考“ACL和QoS配置指导”中的“QoS配置方式”。

表1-16 IPsec虚拟隧道接口上配置报文信息预提取功能

操作

命令

说明

进入系统视图

system-view

-

进入Tunnel接口视图

interface tunnel number

-

配置报文信息预提取功能

qos pre-classify

必选

缺省情况下,未配置报文信息预提取功能

该命令的详细介绍请参考“ACL和QoS命令参考”中的“QoS拥塞管理”

 

当应用在物理出接口上的QoS策略提供拥塞服务时,这种配合实施的QoS方案可能会导致IPsec报文乱序。其可能的影响是,未能以IPsec报文头中序列号要求的顺序到达对端IPsec网关的IPsec报文,会被对端IPsec网关进行的抗重放检测当作重放报文丢弃。关于IPsec抗重放功能的介绍及配置请参见“1.3.8  配置IPsec抗重放功能”。

 

1.4.5  IPsec虚拟隧道接口上应用QoS策略

“IPsec虚拟隧道接口上应用QoS策略”方案与“IPsec虚拟隧道接口上配置报文信息预提取+物理接口上应用QoS策略”方案的实施效果相同,但前者更为简洁有效。

在IPsec虚拟隧道接口上应用QoS策略后,QoS策略将在IPsec隧道加封装之前的原始报文上实施,并且内外层IP报文头的服务优先级设置相同。而且,由于QoS的拥塞服务是在IPsec隧道封装之前的报文上生效,因此加封装后的报文顺序与原始报文经过QoS拥塞处理后的顺序无关,会按照正常的顺序到达对端,也就不会因为QoS拥塞处理而产生乱序。

表1-17 在IPsec虚拟隧道接口上配置QoS策略

操作

命令

说明

进入系统视图

system-view

-

进入Tunnel接口视图

interface tunnel number

-

在Tunnel上应用QoS策略

qos apply policy policy-name { inbound | outbound }

必选

该命令的详细介绍请参考“ACL和QoS命令参考”中的“QoS配置方式”

 

1.5  配置IPsec保护IPv6路由协议

使用IPsec安全策略建立IPsec安全隧道保护IPv6路由协议的基本配置思路如下:

(1)        配置安全提议:指定安全协议、认证算法和加密算法、封装模式等;

(2)        配置手工方式的安全策略:指定SA的SPI和密钥;

(3)        在路由协议上应用安全策略。

表1-18 IPsec虚拟隧道接口配置任务简介

配置任务

说明

详细配置

配置安全提议

必选

1.3.3 

配置手工方式的安全策略

必选

无需配置访问控制列表和隧道地址

1.3.4  1.

在路由协议上应用安全策略

必选

分别参考“三层技术-IP路由配置指导”中的“IPv6 BGP”、“OSPFv3”和“RIPng”

 

1.6  IPsec显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示配置后IPsec的运行情况,通过查看显示信息认证配置的效果。

在用户视图下执行reset命令可以清除IPsec统计信息。

表1-19 IPsec显示和维护

操作

命令

显示安全策略的信息

display ipsec policy [ brief | name policy-name [ seq-number ] ] [ | { begin | exclude | include } regular-expression ]

显示安全策略模板的信息

display ipsec policy-template [ brief | name template-name [ seq-number ] ] [ | { begin | exclude | include } regular-expression ]

显示安全框架的配置信息

display ipsec profile [ name profile-name ] [ | { begin | exclude | include } regular-expression ]

显示安全提议的信息

display ipsec proposal [ proposal-name ] [ | { begin | exclude | include } regular-expression ]

显示SA的相关信息

display ipsec sa [ brief | policy policy-name [ seq-number ] | remote ip-address ] [ | { begin | exclude | include } regular-expression ]

显示IPsec处理报文的统计信息

display ipsec statistics [ tunnel-id integer ] [ | { begin | exclude | include } regular-expression ]

显示IPsec隧道的信息

display ipsec tunnel [ | { begin | exclude | include } regular-expression ]

清除已经建立的SA

reset ipsec sa [ parameters dest-address protocol spi | policy policy-name [ seq-number ] | remote ip-address ]

清除IPsec的报文统计信息

reset ipsec statistics

 

1.7  IPsec典型配置举例

1.7.1  采用手工方式建立IPsec安全隧道

1. 组网需求

l              在Router A和Router B之间建立一个安全隧道,对Host A所在的子网(10.1.1.0/24)与Host B所在的子网(10.1.2.0/24)之间的数据流进行安全保护。

l              安全协议采用ESP协议,加密算法采用DES,认证算法采用SHA1-HMAC-96。

2. 组网图

图1-7 IPsec配置组网图

 

 

3. 配置步骤

(1)        配置Router A

# 配置一个访问控制列表,定义由子网10.1.1.0/24去子网10.1.2.0/24的数据流。

<RouterA> system-view

[RouterA] acl number 3101

[RouterA-acl-adv-3101] rule permit ip source 10.1.1.0 0.0.0.255 destination 10.1.2.0 0.0.0.255

[RouterA-acl-adv-3101] quit

# 配置到Host B的静态路由。

[RouterA] ip route-static 10.1.2.0 255.255.255.0 serial 2/1/1

# 创建名为tran1的安全提议。

[RouterA] ipsec proposal tran1

# 报文封装形式采用隧道模式。

[RouterA-ipsec-proposal-tran1] encapsulation-mode tunnel

# 安全协议采用ESP协议。

[RouterA-ipsec-proposal-tran1] transform esp

# 选择算法。

[RouterA-ipsec-proposal-tran1] esp encryption-algorithm des

[RouterA-ipsec-proposal-tran1] esp authentication-algorithm sha1

[RouterA-ipsec-proposal-tran1] quit

# 创建一条安全策略,协商方式为manual。

[RouterA] ipsec policy map1 10 manual

# 引用访问控制列表。

[RouterA-ipsec-policy-manual-map1-10] security acl 3101

# 引用安全提议。

[RouterA-ipsec-policy-manual-map1-10] proposal tran1

# 配置对端地址。

[RouterA-ipsec-policy-manual-map1-10] tunnel remote 2.2.3.1

# 配置本端地址。

[RouterA-ipsec-policy-manual-map1-10] tunnel local 2.2.2.1

# 配置SPI。

[RouterA-ipsec-policy-manual-map1-10] sa spi outbound esp 12345

[RouterA-ipsec-policy-manual-map1-10] sa spi inbound esp 54321

# 配置密钥。

[RouterA-ipsec-policy-manual-map1-10] sa string-key outbound esp abcdefg

[RouterA-ipsec-policy-manual-map1-10] sa string-key inbound esp gfedcba

[RouterA-ipsec-policy-manual-map1-10] quit

# 配置串口的IP地址。

[RouterA] interface serial 2/1/1

[RouterA-Serial2/1/1] ip address 2.2.2.1 255.255.255.0

# 在串口上应用安全策略组。

[RouterA-Serial2/1/1] ipsec policy map1

(2)        配置Router B

# 配置一个访问控制列表,定义由子网10.1.2.0/24去子网10.1.1.0/24的数据流。

<RouterB> system-view

[RouterB] acl number 3101

[RouterB-acl-adv-3101] rule permit ip source 10.1.2.0 0.0.0.255 destination 10.1.1.0 0.0.0.255

[RouterB-acl-adv-3101] quit

# 配置到HostA的静态路由。

[RouterB] ip route-static 10.1.1.0 255.255.255.0 serial 2/1/2

# 创建名为tran1的安全提议。

[RouterB] ipsec proposal tran1

# 报文封装形式采用隧道模式。

[RouterB-ipsec-proposal-tran1] encapsulation-mode tunnel

# 安全协议采用ESP协议。

[RouterB-ipsec-proposal-tran1] transform esp

# 选择算法。

[RouterB-ipsec-proposal-tran1] esp encryption-algorithm des

[RouterB-ipsec-proposal-tran1] esp authentication-algorithm sha1

[RouterB-ipsec-proposal-tran1] quit

# 创建一条安全策略,协商方式为manual。

[RouterB] ipsec policy use1 10 manual

# 引用访问控制列表。

[RouterB-ipsec-policy-manual-use1-10] security acl 3101

# 引用安全提议。

[RouterB-ipsec-policy-manual-use1-10] proposal tran1

# 配置对端地址。

[RouterB-ipsec-policy-manual-use1-10] tunnel remote 2.2.2.1

# 配置本端地址。

[RouterB-ipsec-policy-manual-use1-10] tunnel local 2.2.3.1

# 配置SPI。

[RouterB-ipsec-policy-manual-use1-10] sa spi outbound esp 54321

[RouterB-ipsec-policy-manual-use1-10] sa spi inbound esp 12345

# 配置密钥。

[RouterB-ipsec-policy-manual-use1-10] sa string-key outbound esp gfedcba

[RouterB-ipsec-policy-manual-use1-10] sa string-key inbound esp abcdefg

[RouterB-ipsec-policy-manual-use1-10] quit

# 配置串口的IP地址。

[RouterB] interface serial 2/1/2

[RouterB-Serial2/1/2] ip address 2.2.3.1 255.255.255.0

# 在串口上应用安全策略组。

[RouterB-Serial2/1/2] ipsec policy use1

4. 验证配置结果

以上配置完成后,Router A和Router B之间的安全隧道就建立好了,子网10.1.1.0/24与子网10.1.2.0/24之间的数据流将被加密传输。

1.7.2  采用IKE方式建立IPsec安全隧道

1. 组网需求

l              图1-7所示,在Router A和Router B之间建立一个安全隧道,对Host A所在的子网(10.1.1.0/24)与Host B所在的子网(10.1.2.0/24)之间的数据流进行安全保护。

l              安全协议采用ESP协议,加密算法采用DES,认证算法采用SHA1-HMAC-96。

2. 组网图

图1-7

3. 配置步骤

(1)        配置Router A

# 配置一个访问控制列表,定义由子网10.1.1.0/24去子网10.1.2.0/24的数据流。

<RouterA> system-view

[RouterA] acl number 3101

[RouterA-acl-adv-3101] rule permit ip source 10.1.1.0 0.0.0.255 destination 10.1.2.0 0.0.0.255

[RouterA-acl-adv-3101] quit

# 配置到Host B的静态路由。

[RouterA] ip route-static 10.1.2.0 255.255.255.0 serial 2/1/1

# 创建名为tran1的安全提议。

[RouterA] ipsec proposal tran1

# 报文封装形式采用隧道模式。

[RouterA-ipsec-proposal-tran1] encapsulation-mode tunnel

# 安全协议采用ESP协议。

[RouterA-ipsec-proposal-tran1] transform esp

# 选择算法。

[RouterA-ipsec-proposal-tran1] esp encryption-algorithm des

[RouterA-ipsec-proposal-tran1] esp authentication-algorithm sha1

[RouterA-ipsec-proposal-tran1] quit

# 配置IKE对等体。

[RouterA] ike peer peer

[RouterA-ike-peer-peer] pre-shared-key abcde

[RouterA-ike-peer-peer] remote-address 2.2.3.1

[RouterA-ike-peer-peer] quit

# 创建一条安全策略,协商方式为isakmp。

[RouterA] ipsec policy map1 10 isakmp

# 引用安全提议。

[RouterA-ipsec-policy-isakmp-map1-10] proposal tran1

# 引用访问控制列表。

[RouterA-ipsec-policy-isakmp-map1-10] security acl 3101

# 引用IKE对等体。

[RouterA-ipsec-policy-isakmp-map1-10] ike-peer peer

[RouterA-ipsec-policy-isakmp-map1-10] quit

# 配置串口的IP地址。

[RouterA] interface serial 2/1/1

[RouterA-Serial2/1/1] ip address 2.2.2.1 255.255.255.0

# 在串口上应用安全策略组。

[RouterA-Serial2/1/1] ipsec policy map1

(2)        配置Router B

# 配置一个访问控制列表,定义由子网10.1.2.0/24去子网10.1.1.0/24的数据流。

<RouterB> system-view

[RouterB] acl number 3101

[RouterB-acl-adv-3101] rule permit ip source 10.1.2.0 0.0.0.255 destination 10.1.1.0 0.0.0.255

[RouterB-acl-adv-3101] quit

# 配置到Host A的静态路由。

[RouterB] ip route-static 10.1.1.0 255.255.255.0 serial 2/1/2

# 创建名为tran1的安全提议。

[RouterB] ipsec proposal tran1

# 报文封装形式采用隧道模式。

[RouterB-ipsec-proposal-tran1] encapsulation-mode tunnel

# 安全协议采用ESP协议。

[RouterB-ipsec-proposal-tran1] transform esp

# 选择算法。

[RouterB-ipsec-proposal-tran1] esp encryption-algorithm des

[RouterB-ipsec-proposal-tran1] esp authentication-algorithm sha1

[RouterB-ipsec-proposal-tran1] quit

# 配置IKE对等体。

[RouterB] ike peer peer

[RouterB-ike-peer-peer] pre-shared-key abcde

[RouterB-ike-peer-peer] remote-address 2.2.2.1

[RouterB-ike-peer-peer] quit

# 创建一条安全策略,协商方式为isakmp。

[RouterB] ipsec policy use1 10 isakmp

# 引用访问控制列表。

[RouterB-ipsec-policy-isakmp-use1-10] security acl 3101

# 引用安全提议。

[RouterB-ipsec-policy-isakmp-use1-10] proposal tran1

# 引用IKE对等体。

[RouterB-ipsec-policy-isakmp-use1-10] ike-peer peer

[RouterB-ipsec-policy-isakmp-use1-10] quit

# 配置串口的IP地址。

[RouterB] interface serial 2/1/2

[RouterB-Serial2/1/2] ip address 2.2.3.1 255.255.255.0

# 在串口上应用安全策略组。

[RouterB-Serial2/1/2] ipsec policy use1

4. 验证配置结果

以上配置完成后,Router A和Router B之间如果有子网10.1.1.0/24与子网10.1.2.0/24之间的报文通过,将触发IKE进行协商建立SA。IKE协商成功并创建了SA后,子网10.1.1.0/24与子网10.1.2.0/24之间的数据流将被加密传输。

1.7.3  使用IPsec虚拟隧道接口建立IPsec安全隧道

1. 组网需求

图1-8所示,某企业分支使用拨号方式获取动态IP地址接入Internet,企业总部使用固定的IP地址接入Internet。现有如下组网要求:

l              企业分支与企业总部之间的所有流量通过IPsec安全隧道进行传送;

l              当企业分支的私网IP地址段调整时,不需要改变企业总部网关的IPsec配置。

为实现如上组网需求,可采用如下配置思路实现:

l              在Router A和Router B之间使用IPsec虚拟隧道接口建立IPsec连接,将发送给对端私网的数据流路由到IPsec虚拟隧道接口上,由IPsec虚拟隧道接口上动态协商建立的IPsec安全隧道对分支子网(172.17.17.0/24)与总部子网(192.168.1.0/24)之间的所有数据流进行安全保护。

2. 组网图

图1-8 IPsec虚拟隧道接口配置组网图

 

3. 配置步骤

(1)        配置Router A

# 配置本端安全网关的名字为routera。

<RouterA> system-view

[RouterA] ike local-name routera

# 配置IKE对等体atob。由于隧道本端的IP地址为动态获取,因此需要选择协商模式为aggressive

[RouterA] ike peer atob

[RouterA-ike-peer-atob] exchange-mode aggressive

[RouterA-ike-peer-atob] pre-shared-key simple aabb

[RouterA-ike-peer-atob] id-type name

[RouterA-ike-peer-atob] remote-name routerb

[RouterA-ike-peer-atob] quit

# 创建名字为method1的安全提议,采用缺省的参数设置:安全协议为ESP;加密算法为DES;认证算法为MD5。

[RouterA] ipsec proposal method1

[RouterA-ipsec-proposal-method1] quit

# 创建名字为atob的安全框架,用于保护Router A和Router B之间的数据流。

[RouterA] ipsec profile atob

# 引用IKE对等体atob。

[RouterA-ipsec-profile-atob] ike-peer atob

# 引用安全提议method1。

[RouterA-ipsec-profile-atob] proposal method1

[RouterA-ipsec-profile-atob] quit

# 创建一个IPsec虚拟隧道接口Tunnel1,此接口将用于保护Router A和Router B之间的数据流。

[RouterA] interface tunnel 1

# 配置Tunnel1的IPv4地址为10.1.1.1/24。

[RouterA–Tunnel1] ip address 10.1.1.1 24

# 配置Tunnel1的隧道模式为IPsec over IPv4。

[RouterA–Tunnel1] tunnel-protocol ipsec ipv4

# 配置Tunnel1的源接口为Serial2/1/1

[RouterA–Tunnel1] source serial 2/1/1

# 配置Tunnel1的目的地址为1.1.1.1(对端安全网关的隧道接口的源地址)。

[RouterA–Tunnel1] destination 1.1.1.1

# Tunnel1上应用安全框架atob

[RouterA–Tunnel1] ipsec profile atob

[RouterA–Tunnel1] quit

# 配置Router ARouter B的静态路由。

[RouterA] ip route-static 192.168.1.0 255.255.255.0 tunnel 1

(2)        配置Router B

# 配置接口Serial2/1/1IP地址。

<RouterB> system-view

[RouterB] interface serial 2/1/1

[RouterB-Serial2/1/1] ip address 1.1.1.1 24

[RouterB-Serial2/1/1] quit

# 配置本端安全网关的名字为routerb。

[RouterB] ike local-name routerb

# 配置IKE对等体btoa。由于隧道对端的IP地址为动态获取,因此需要选择协商模式为aggressive

[RouterB] ike peer btoa

[RouterB-ike-peer-btoa] exchange-mode aggressive

[RouterB-ike-peer-btoa] pre-shared-key simple aabb

[RouterB-ike-peer-btoa] id-type name

[RouterB-ike-peer-btoa] remote-name routera

[RouterB-ike-peer-btoa] quit

# 创建名字为method1的安全提议,采用缺省的参数设置:安全协议为ESP;加密算法为DES;认证算法为MD5。

[RouterB] ipsec proposal method1

[RouterB-ipsec-proposal-method1] quit

# 创建名字为btoa的安全框架,用于保护Router B和Router A之间的数据流。

[RouterB] ipsec profile btoa

# 引用IKE对等体btoa。

[RouterB-ipsec-profile-btoa] ike-peer btoa

# 引用安全提议method1。

[RouterB-ipsec-profile-btoa] proposal method1

[RouterB-ipsec-profile-btoa] quit

# 创建一个IPsec虚拟隧道接口Tunnel1,此接口将用于保护Router B和Router A之间的数据流。由于对端的公网地址未知,因此隧道接口下不需要配置目的地址。

[RouterB] interface tunnel 1

# 配置Tunnel1IPv4地址为10.1.1.2/24

[RouterB–Tunnel1] ip address 10.1.1.2 24

# 配置Tunnel1的隧道模式为IPsec over IPv4

[RouterB–Tunnel1] tunnel-protocol ipsec ipv4

# 配置Tunnel1的源接口为Serial2/1/1

[RouterB–Tunnel1] source serial 2/1/1

# Tunnel1上应用安全框架btoa

[RouterB–Tunnel1] ipsec profile btoa

[RouterB–Tunnel1] quit

# 配置Router B到Router A的静态路由。

[RouterB] ip route-static 172.17.17.0 255.255.255.0 tunnel 1

4. 验证配置结果

以上配置完成之后,当Router A的接口Serial2/1/1完成自动拨号后,Router A会自动发起与Router B之间的IKE协商。当IKE协商完成之后,Router ARouter B上的IPsec虚拟隧道接口链路状态都将up,即可以满足上述组网需求,对总部和分支的数据流进行安全保护。

可以通过如下显示信息看到Router B上的IPsec虚拟隧道接口链路状态已经up

[RouterB] display brief interface tunnel 1

The brief information of interface(s) under route mode:

Interface            Link      Protocol-link  Protocol type    Main IP

Tun1                 UP        UP             TUNNEL           10.1.1.2

可以通过如下显示信息看到,RouterB作为响应方已与Router A协商生成了两个阶段的SA。

[RouterB] display ike sa

    total phase-1 SAs:  1

    connection-id  peer            flag        phase   doi

  ----------------------------------------------------------

        2          1.1.1.2         RD            2     IPSEC

        1          1.1.1.2         RD            1     IPSEC

 

  flag meaning

  RD--READY ST--STAYALIVE RL--REPLACED FD--FADING TO—TIMEOUT

可以通过如下显示信息查看协商生成的IPsec SA

[RouterB] display ipsec sa

===============================

Interface: Tunnel1

    path MTU: 1443

===============================

 

  -----------------------------

  IPsec policy name: "btoa"

  sequence number: 1

  mode: tunnel

  -----------------------------

    connection id: 3

    encapsulation mode: tunnel

    perfect forward secrecy:

    tunnel:

        local  address: 1.1.1.1

        remote address: 1.1.1.2

    flow :

        sour addr: 0.0.0.0/0.0.0.0  port: 0  protocol: IP

        dest addr: 0.0.0.0/0.0.0.0  port: 0  protocol: IP

 

    [inbound ESP SAs]

      spi: 1974923076 (0x75b6ef44)

      proposal: ESP-ENCRYPT-DES ESP-AUTH-MD5

      sa duration (kilobytes/sec): 1843200/3600

      sa remaining duration (kilobytes/sec): 1843199/3503

      max received sequence-number: 5

      anti-replay check enable: Y

      anti-replay window size: 32

      udp encapsulation used for nat traversal: N

 

    [outbound ESP SAs]

      spi: 2364632148 (0x8cf16c54)

      proposal: ESP-ENCRYPT-DES ESP-AUTH-MD5

      sa duration (kilobytes/sec): 1843200/3600

      sa remaining duration (kilobytes/sec): 1843199/3503

      max sent sequence-number: 6

      udp encapsulation used for nat traversal: N

在Router B上可以ping通Router A连接的分支私网地址。

[RouterB] ping -a 192.168.1.1 172.17.17.1

  PING 172.17.17.1: 56  data bytes, press CTRL_C to break

    Reply from 172.17.17.1: bytes=56 Sequence=1 ttl=255 time=15 ms

    Reply from 172.17.17.1: bytes=56 Sequence=2 ttl=255 time=10 ms

    Reply from 172.17.17.1: bytes=56 Sequence=3 ttl=255 time=10 ms

    Reply from 172.17.17.1: bytes=56 Sequence=4 ttl=255 time=5 ms

    Reply from 172.17.17.1: bytes=56 Sequence=5 ttl=255 time=4 ms

 

  --- 172.17.17.1 ping statistics ---

    5 packet(s) transmitted

    5 packet(s) received

    0.00% packet loss

    round-trip min/avg/max = 4/8/15 ms

同样,在Router A上可以通过以上显示命令来查看配置的生效情况,由于其上的显示信息形式与Router B的类似,此处不再详述。

1.7.4  配置IPsec保护RIPng报文

IPsec保护其它IPv6路由协议(OSPFv3、IPv6 BGP)的具体配置与本例类似,具体内容请参考“三层技术-IP路由配置指导”中的“OSPFv3”和“IPv6 BGP”。

 

1. 组网需求

图1-9所示,Router A、Router B和Router C相连,并通过RIPng来学习网络中的IPv6路由信息。具体组网要求如下:

l              在各设备之间建立IPsec安全隧道,对它们收发的RIPng报文进行安全保护;

l              安全协议采用ESP协议,加密算法采用DES,认证算法采用SHA1-HMAC-96。

配置思路:

l              配置RIPng的基本功能

l              配置手工方式的IPsec安全策略

l              在RIPng进程下或接口上应用IPsec安全策略(进程下配置的IPsec安全策略对该进程的所有报文有效,接口下的IPsec安全策略只对接口下的报文有效)

2. 组网图

图1-9 配置IPsec保护RIPng报文组网图

 

 

3. 配置步骤

RIPng配置的详细介绍请参考“三层技术-IP路由配置指导”中的“RIPng”。

 

(1)        配置Router A

l              配置各接口的IPv6地址(略)

l              配置RIPng的基本功能

<RouterA> system-view

[RouterA] ripng 1

[RouterA-ripng-1] quit

[RouterA] interface gigabiethernet 1/0/1

[RouterA-GigabitEthernet1/0/1] ripng 1 enable

[RouterA-GigabitEthernet1/0/1] quit

l              配置IPsec安全策略

# 创建并配置名为tran1的安全提议(报文封装形式采用传输模式,安全协议采用ESP协议,加密算法采用DES,认证算法采用SHA1-HMAC-96)。

[RouterA] ipsec proposal tran1

[RouterA-ipsec-proposal-tran1] encapsulation-mode transport

[RouterA-ipsec-proposal-tran1] transform esp

[RouterA-ipsec-proposal-tran1] esp encryption-algorithm des

[RouterA-ipsec-proposal-tran1] esp authentication-algorithm sha1

[RouterA-ipsec-proposal-tran1] quit

# 创建并配置名为policy001的安全策略(协商方式为manual,出入方向SASPI均为12345,出入方向SA的密钥均为abcdefg)。

[RouterA] ipsec policy policy001 10 manual

[RouterA-ipsec-policy-manual-policy001-10] proposal tran1

[RouterA-ipsec-policy-manual-policy001-10] sa spi outbound esp 12345

[RouterA-ipsec-policy-manual-policy001-10] sa spi inbound esp 12345

[RouterA-ipsec-policy-manual-policy001-10] sa string-key outbound esp abcdefg

[RouterA-ipsec-policy-manual-policy001-10] sa string-key inbound esp abcdefg

[RouterA-ipsec-policy-manual-policy001-10] quit

l              在RIPng进程上应用IPsec安全策略

[RouterA] ripng 1

[RouterA-ripng-1] enable ipsec-policy policy001

[RouterA-ripng-1] quit

(2)        配置Router B

l              配置各接口的IPv6地址(略)

l              配置RIPng的基本功能

<RouterB> system-view

[RouterB] ripng 1

[RouterB-ripng-1] quit

[RouterB] interface gigabitethernet 1/0/1

[RouterB-GigabitEthernet1/0/1] ripng 1 enable

[RouterB-GigabitEthernet1/0/1] quit

[RouterB] interface gigabitethernet 1/0/2

[RouterB-GigabitEthernet1/0/2] ripng 1 enable

[RouterB-EGigabitthernet1/0/2] quit

l              配置IPsec安全策略

# 创建并配置名为tran1的安全提议(报文封装形式采用传输模式,安全协议采用ESP协议,加密算法采用DES,认证算法采用SHA1-HMAC-96)。

[RouterB] ipsec proposal tran1

[RouterB-ipsec-proposal-tran1] encapsulation-mode transport

[RouterB-ipsec-proposal-tran1] transform esp

[RouterB-ipsec-proposal-tran1] esp encryption-algorithm des

[RouterB-ipsec-proposal-tran1] esp authentication-algorithm sha1

[RouterB-ipsec-proposal-tran1] quit

# 创建并配置名为policy001的安全策略(协商方式为manual,出入方向SASPI均为12345,出入方向SA的密钥均为abcdefg)。

[RouterB] ipsec policy policy001 10 manual

[RouterB-ipsec-policy-manual-policy001-10] proposal tran1

[RouterB-ipsec-policy-manual-policy001-10] sa spi outbound esp 12345

[RouterB-ipsec-policy-manual-policy001-10] sa spi inbound esp 12345

[RouterB-ipsec-policy-manual-policy001-10] sa string-key outbound esp abcdefg

[RouterB-ipsec-policy-manual-policy001-10] sa string-key inbound esp abcdefg

[RouterB-ipsec-policy-manual-policy001-10] quit

l              在RIPng进程上应用IPsec安全策略

[RouterB] ripng 1

[RouterB-ripng-1] enable ipsec-policy policy001

[RouterB-ripng-1] quit

(3)        配置Router C

l              配置各接口的IPv6地址(略)

l              配置RIPng的基本功能

<RouterC> system-view

[RouterC] ripng 1

[RouterC-ripng-1] quit

[RouterC] interface gigabitethernet 1/0/1

[RouterC-GigabitEthernet1/0/1] ripng 1 enable

[RouterC-GigabitEthernet1/0/1] quit

l              配置IPsec安全策略

# 创建并配置名为tran1的安全提议(报文封装形式采用传输模式,安全协议采用ESP协议,加密算法采用DES,认证算法采用SHA1-HMAC-96)。

[RouterC] ipsec proposal tran1

[RouterC-ipsec-proposal-tran1] encapsulation-mode transport

[RouterC-ipsec-proposal-tran1] transform esp

[RouterC-ipsec-proposal-tran1] esp encryption-algorithm des

[RouterC-ipsec-proposal-tran1] esp authentication-algorithm sha1

[RouterC-ipsec-proposal-tran1] quit

# 创建并配置名为policy001的安全策略(协商方式为manual,出入方向SASPI均为12345,出入方向SA的密钥均为abcdefg)。

[RouterC] ipsec policy policy001 10 manual

[RouterC-ipsec-policy-manual-policy001-10] proposal tran1

[RouterC-ipsec-policy-manual-policy001-10] sa spi outbound esp 12345

[RouterC-ipsec-policy-manual-policy001-10] sa spi inbound esp 12345

[RouterC-ipsec-policy-manual-policy001-10] sa string-key outbound esp abcdefg

[RouterC-ipsec-policy-manual-policy001-10] sa string-key inbound esp abcdefg

[RouterC-ipsec-policy-manual-policy001-10] quit

l              在RIPng进程上应用IPsec安全策略

[RouterC] ripng 1

[RouterC-ripng-1] enable ipsec-policy policy001

[RouterC-ripng-1] quit

4. 验证配置结果

以上配置完成后,Router A、Router B和Router C将通过RIPng协议学习到网络中的IPv6路由信息,且分别产生用于保护RIPng报文的SA。

可以通过如下display命令查看Router A上RIPng的配置信息。如下显示信息表示RIPng进程1上已成功应用了IPsec策略,且携带了有效的SPI值。

<RouterA> display ripng 1

    RIPng process : 1

       Preference : 100

       Checkzero : Enabled

       Default Cost : 0

       Maximum number of balanced paths : 8

       Update time   :   30 sec(s)  Timeout time         :  180 sec(s)

       Suppress time :  120 sec(s)  Garbage-Collect time :  120 sec(s)

       Number of periodic updates sent : 186

       Number of trigger updates sent : 1

       IPsec policy name: policy001, SPI: 12345

 

可以通过如下display命令查看Router A上生成的SA

<RouterA> display ipsec sa

===============================

Protocol: RIPng

===============================

 

  -----------------------------

  IPsec policy name: "policy001"

  sequence number: 10

  mode: manual

  -----------------------------

    connection id: 1

    encapsulation mode: transport

    perfect forward secrecy:

    tunnel:

    flow:

 

    [inbound ESP SAs]

      spi: 12345 (0x3039)

      proposal: ESP-ENCRYPT-DES ESP-AUTH-SHA1

      No duration limit for this sa

 

    [outbound ESP SAs]

      spi: 12345 (0x3039)

      proposal: ESP-ENCRYPT-DES ESP-AUTH-SHA1

      No duration limit for this sa

Router B和Router C上也会生成相应的SA来保护RIPng报文,查看方式与Router A同,此处略。

1.7.5  IPsec反向路由注入功能典型配置举例

1. 组网需求

企业分支通过IPsec VPN接入企业总部,有如下具体需求:

l              在总部网关Router A和分支网关Router B之间建立一个安全隧道,对总部网络10.4.4.0/24与分支网络10.5.5.0/24之间的数据流进行安全保护。

l              使用IKE自动协商方式建立SA,安全协议采用ESP协议,加密算法采用DES,认证算法采用SHA1-HMAC-96。

l              在Router A上开启IPsec反向路由注入功能,实现总部到分支的静态路由随IPsec SA的建立而动态生成,并指定下一跳地址为1.1.1.2。

2. 组网图

图1-10 IPsec反向路由注入功能配置组网图

 

 

3. 配置步骤

请按照图中所示配置各接口的IPv4地址,并保证Router A和Router B之间路由可达(略)。

(1)        配置Router A

# 配置访问控制列表3101,定义由子网10.4.4.0/24去子网10.5.5.0/24的数据流。

<RouterA> system-view

[RouterA] acl number 3101

[RouterA-acl-adv-3101] rule permit ip source 10.4.4.0 0.0.0.255 destination 10.5.5 0 0.0.0.255

[RouterA-acl-adv-3101] quit

# 创建名为tran1的安全提议。

[RouterA] ipsec proposal tran1

# 报文封装形式采用隧道模式。

[RouterA-ipsec-proposal-tran1] encapsulation-mode tunnel

# 配置采用ESP安全协议。

[RouterA-ipsec-proposal-tran1] transform esp

# 配置加密算法为DES,认证算法为SHA1-HMAC-96。

[RouterA-ipsec-proposal-tran1] esp encryption-algorithm des

[RouterA-ipsec-proposal-tran1] esp authentication-algorithm sha1

[RouterA-ipsec-proposal-tran1] quit

# 配置IKE对等体。

[RouterA] ike peer peer

[RouterA-ike-peer-peer] pre-shared-key abcde

[RouterA-ike-peer-peer] remote-address 2.2.2.2

[RouterA-ike-peer-peer] quit

# 创建安全策略map1,其协商方式为isakmp。

[RouterA] ipsec policy map1 10 isakmp

# 引用安全提议。

[RouterA-ipsec-policy-isakmp-map1-10] proposal tran1

# 引用访问控制列表。

[RouterA-ipsec-policy-isakmp-map1-10] security acl 3101

# 引用IKE对等体。

[RouterA-ipsec-policy-isakmp-map1-10] ike-peer peer

# 开启动态方式的IPsec反向路由注入功能,并指定下一跳地址为1.1.1.2。

[RouterA-ipsec-policy-isakmp-map1-10] reverse-route remote-peer 1.1.1.2

[RouterA-ipsec-policy-isakmp-map1-10] quit

# 在接口GigabitEthernet1/0/1上应用安全策略组map1。

[RouterA] interface gigabitethernet 1/0/1

[RouterA-GigabitEthernet1/0/1] ipsec policy map1

[RouterA-GigabitEthernet1/0/1] quit

(2)        配置Router B

# 配置一访问控制列表3101,定义由子网10.5.5.0/24去子网10.4.4.0/24的数据流。

<RouterB> system-view

[RouterB] acl number 3101

[RouterB-acl-adv-3101] rule permit ip source 10.5.5.0 0.0.0.255 destination 10.4.4.0 0.0.0.255

[RouterB-acl-adv-3101] quit

# 配置到Host A所在网段的静态路由。

[RouterB] ip route-static 10.4.4.0 255.255.255.0 1.1.1.1

# 创建名为tran1的安全提议。

[RouterB] ipsec proposal tran1

# 报文封装形式采用隧道模式。

[RouterB-ipsec-proposal-tran1] encapsulation-mode tunnel

# 配置采用ESP安全协议。

[RouterB-ipsec-proposal-tran1] transform esp

# 配置加密算法为DES,认证算法为SHA1-HMAC-96。

[RouterB-ipsec-proposal-tran1] esp encryption-algorithm des

[RouterB-ipsec-proposal-tran1] esp authentication-algorithm sha1

[RouterB-ipsec-proposal-tran1] quit

# 配置IKE对等体。

[RouterB] ike peer peer

[RouterB-ike-peer-peer] pre-shared-key abcde

[RouterB-ike-peer-peer] remote-address 1.1.1.1

[RouterB-ike-peer-peer] quit

# 创建安全策略use1,其协商方式为isakmp。

[RouterB] ipsec policy use1 10 isakmp

# 引用访问控制列表。

[RouterB-ipsec-policy-isakmp-use1-10] security acl 3101

# 引用安全提议。

[RouterB-ipsec-policy-isakmp-use1-10] proposal tran1

# 引用IKE对等体。

[RouterB-ipsec-policy-isakmp-use1-10] ike-peer peer

[RouterB-ipsec-policy-isakmp-use1-10] quit

# 在接口GigabitEthernet1/0/1上应用安全策略组use1。

[RouterB] interface gigabitethernet 1/0/1

[RouterB-GigabitEthernet1/0/1] ipsec policy use1

4. 验证配置结果

以上配置完成后,Router A和Router B之间如果有子网10.5.5.0/24与子网10.4.4.0/24之间的报文通过,将触发IKE进行协商建立SA。

IKE协商成功并创建了IPsec SA后,子网10.5.5.0/24与子网10.4.4.0/24之间的数据流将被加密传输,Router A上同时生成静态路由表项,目的地址为分支网络地址10.5.5.0/24,下一跳地址为1.1.1.2,可通过如下显示信息查看。

[RouterA] display ip routing-table

Routing Tables: Public

         Destinations : 8        Routes : 8

 

Destination/Mask    Proto  Pre  Cost         NextHop         Interface

 

1.1.0.0/16          Direct 0    0            1.1.1.1         GE1/0/1

1.1.1.1/32          Direct 0    0            127.0.0.1       InLoop0

2.2.2.0/24          Static 60   0            1.1.1.2         GE1/0/1

10.4.4.0/24         Direct 0    0            10.4.4.1          GE1/0/2

10.4.4.4/32         Direct 0    0            127.0.0.1       InLoop0

10.5.5.0/24         Static 60   0            1.1.1.2         GE1/0/1

127.0.0.0/8         Direct 0    0            127.0.0.1       InLoop0

127.0.0.1/32        Direct 0    0            127.0.0.1       InLoop0

若删除对应的IPsec SA,则该静态路由也会被同时删除。

 


2 IKE配置

2.1  IKE简介

在实施IPsec的过程中,可以使用IKE(Internet Key Exchange,因特网密钥交换)协议来建立SA,该协议建立在由ISAKMP(Internet Security Association and Key Management Protocol,互联网安全联盟和密钥管理协议)定义的框架上。IKE为IPsec提供了自动协商交换密钥、建立SA的服务,能够简化IPsec的使用和管理,大大简化IPsec的配置和维护工作。

IKE不是在网络上直接传输密钥,而是通过一系列数据的交换,最终计算出双方共享的密钥,并且即使第三方截获了双方用于计算密钥的所有交换数据,也不足以计算出真正的密钥。

2.1.1  IKE的安全机制

IKE具有一套自保护机制,可以在不安全的网络上安全地认证身份、分发密钥、建立IPsec SA。

1. 数据认证

数据认证有如下两方面的概念:

l              身份认证:身份认证确认通信双方的身份。支持两种认证方法:预共享密钥(pre-shared-key)认证和基于PKI的数字签名(rsa-signature)认证。

l              身份保护:身份数据在密钥产生之后加密传送,实现了对身份数据的保护。

2. DH

DH(Diffie-Hellman,交换及密钥分发)算法是一种公共密钥算法。通信双方在不传输密钥的情况下通过交换一些数据,计算出共享的密钥。即使第三方(如黑客)截获了双方用于计算密钥的所有交换数据,由于其复杂度很高,也不足以计算出真正的密钥。所以,DH交换技术可以保证双方能够安全地获得公有信息。

3. PFS

PFS(Perfect Forward Secrecy,完善的前向安全性)特性是一种安全特性,指一个密钥被破解,并不影响其他密钥的安全性,因为这些密钥间没有派生关系。对于IPsec,是通过在IKE阶段2协商中增加一次密钥交换来实现的。PFS特性是由DH算法保障的。

2.1.2  IKE的交换过程

IKE使用了两个阶段为IPsec进行密钥协商并建立SA:

(1)        第一阶段,通信各方彼此间建立了一个已通过身份认证和安全保护的通道,即建立一个ISAKMP SA。第一阶段有主模式(Main Mode)和野蛮模式(Aggressive Mode)两种IKE交换方法。

(2)        第二阶段,用在第一阶段建立的安全隧道为IPsec协商安全服务,即为IPsec协商具体的SA,建立用于最终的IP数据安全传输的IPsec SA。

图2-1 主模式交换过程

 

图2-1所示,第一阶段主模式的IKE协商过程中包含三对消息:

l              第一对叫SA交换,是协商确认有关安全策略的过程;

l              第二对消息叫密钥交换,交换Diffie-Hellman公共值和辅助数据(如:随机数),密钥材料在这个阶段产生;

l              最后一对消息是ID信息和认证数据交换,进行身份认证和对整个第一阶段交换内容的认证。

野蛮模式交换与主模式交换的主要差别在于,野蛮模式不提供身份保护,只交换3条消息。在对身份保护要求不高的场合,使用交换报文较少的野蛮模式可以提高协商的速度;在对身份保护要求较高的场合,则应该使用主模式。

2.1.3  IKE在IPsec中的作用

l              因为有了IKE,IPsec很多参数(如:密钥)都可以自动建立,降低了手工配置的复杂度。

l              IKE协议中的DH交换过程,每次的计算和产生的结果都是不相关的。每次SA的建立都运行DH交换过程,保证了每个SA所使用的密钥互不相关。

l              IPsec使用AH或ESP报文头中的序列号实现防重放。此序列号是一个32比特的值,此数溢出后,为实现防重放,SA需要重新建立,这个过程需要IKE协议的配合。

l              对安全通信的各方身份的认证和管理,将影响到IPsec的部署。IPsec的大规模使用,必须有CA(Certificate Authority,认证中心)或其他集中管理身份数据的机构的参与。

l              IKE提供端与端之间动态认证。

2.1.4  IPsec与IKE的关系

图2-2 IPsec与IKE的关系图

 

图2-2中我们可以看出IKE和IPsec的关系:

l              IKE是UDP之上的一个应用层协议,是IPsec的信令协议;

l              IKE为IPsec协商建立SA,并把建立的参数及生成的密钥交给IPsec;

l              IPsec使用IKE建立的SA对IP报文加密或认证处理。

2.1.5  协议规范

与IKE相关的协议规范有:

l              RFC2408:Internet Security Association and Key Management Protocol (ISAKMP)

l              RFC2409:The Internet Key Exchange (IKE)

l              RFC2412:The OAKLEY Key Determination Protocol

2.2  IKE配置任务简介

进行IKE配置之前,用户需要确定以下几个因素,以便配置过程的顺利进行。

l              确定IKE交换过程中算法的强度,即确定安全保护的强度(包括身份认证方法、加密算法、认证算法、DH组):不同的算法的强度不同,算法强度越高,受保护数据越难被破解,但消耗的计算资源越多。一般来说,密钥越长的算法强度越高。

l              确定通信双方预先约定的预共享密钥或所属的PKI域。关于PKI的配置,请参见“安全配置指导”中的“PKI”。

表2-1 IKE配置任务简介

配置任务

说明

详细配置

配置本端安全网关的名字

可选

2.3 

配置IKE安全提议

可选

若IKE对等体中需要指定IKE安全提议,则必配

2.4 

配置IKE对等体

必选

2.5 

配置Keepalive定时器

可选

2.6 

配置NAT Keepalive定时器

可选

2.7 

配置对等体存活检测

可选

2.8 

配置取消对next payload域的检查

可选

2.9 

 

2.3  配置本端安全网关的名字

当IKE协商的发起端使用FQDN (Fully Qualified Domain Name,完全合格域名)或者User FQDN类型的安全网关名字进行协商时(即配置了id-type nameid-type user-fqdn),本端需要配置本端安全网关的名字,该名字既可以在系统视图下进行配置,也可以在IKE对等体视图下配置,若两个视图下都配置了本端安全网关的名字,则采用IKE对等体视图下的配置。

表2-2 配置本端安全网关名字

操作

命令

说明

进入系统视图

system-view

-

配置本端安全网关的名字

ike local-name name

可选

缺省情况下,使用设备名作为本端安全网关的名字

 

2.4  配置IKE安全提议

IKE安全提议定义了一套属性数据来描述IKE协商怎样进行安全通信。用户可以创建多条不同优先级的IKE提议,优先级由IKE提议的序号表示,数值越小,优先级越高。

协商双方必须至少有一条匹配的IKE提议才能协商成功。在进行IKE协商时,协商发起方会将自己的安全提议发送给对端,由对端进行匹配,协商响应方则从自己优先级最高(序号最小)的IKE提议开始,按照优先级顺序与对端发送的安全提议进行匹配,直到找到一个匹配的安全提议来使用。匹配的IKE提议将被用来建立安全隧道。

以上IKE安全提议的匹配原则是:协商双方具有相同的加密算法、认证方法、认证算法和DH组标识。匹配的IKE提议的ISAKMP SA存活时间则取两端的最小值。

缺省情况下,系统提供一条缺省的IKE提议。此缺省的IKE提议具有最低的优先级,具有缺省的加密算法、认证方法、认证算法、DH组标识和ISAKMP SA存活时间。

表2-3 配置IKE安全提议

操作

命令

说明

进入系统视图

system-view

-

创建IKE提议,并进入IKE提议视图

ike proposal proposal-number

必选

指定一个供IKE提议使用的加密算法

encryption-algorithm { 3des-cbc | aes-cbc [ key-length ] | des-cbc }

可选

缺省情况下,IKE提议使用CBC模式的56-bit DES加密算法

指定一个供IKE提议使用的认证方法

authentication-method { pre-share | rsa-signature }

可选

缺省情况下,IKE提议使用预共享密钥的认证方法

指定一个供IKE提议使用的认证算法

authentication-algorithm { md5 | sha }

可选

缺省情况下,IKE提议使用SHA1认证算法

配置IKE阶段1密钥协商时所使用的DH密钥交换参数

dh { group1 | group2 | group5 | group14 }

可选

缺省情况下,IKE阶段1密钥协商时所使用的DH密钥交换参数为group1,即768-bit的Diffie-Hellman组

指定一个IKE提议的ISAKMP SA存活时间

sa duration seconds

可选

缺省情况下,IKE提议的ISAKMP SA存活时间为86400秒

 

如果存活时间超时,ISAKMP SA将自动更新。因为IKE协商需要进行DH计算,在低端设备上需要经过较长的时间,为使ISAKMP SA的更新不影响安全通信,建议设置存活时间大于10分钟。

 

2.5  配置IKE对等体

表2-4 配置IKE对等体

操作

命令

说明

进入系统视图

system-view

-

创建一个IKE对等体,并进入IKE-Peer视图

ike peer peer-name

必选

配置IKE第一阶段的协商模式

exchange-mode { aggressive | main }

可选

缺省情况下,IKE阶段的协商模式使用主模式

配置IKE对等体引用的IKE安全提议

proposal proposal-number&<1-6>

可选

缺省情况下,IKE对等体未引用任何IKE安全提议,使用系统视图下已配置的IKE安全提议进行IKE协商

配置采用预共享密钥认证时,所使用的预共享密钥

pre-shared-key [ cipher | simple ] key

二者必选其一

根据IKE提议使用的认证方法选择其中一个配置

配置采用数字签名认证时,证书所属的PKI域

certificate domain domain-name

选择IKE第一阶段的协商过程中使用ID的类型

id-type { ip | name | user-fqdn }

可选

缺省情况下,使用IP地址作为IKE协商过程中使用的ID

配置本端及对端安全网关的名字

配置本端安全网关的名字

local-name name

remote-name name

可选

对端使用remote-name配置的网关名字应与IKE协商发起端所配置的本端安全网关名字保持一致

缺省情况下,未定义本端安全网关的名字,使用系统视图下本端安全网关的名字

配置对端安全网关的名字

配置本端及对端安全网关的IP地址

配置本端安全网关的IP地址

local-address ip-address

可选

对端使用remote-address配置的IP地址应与IKE协商发起端使用local-address命令所配的安全网关IP地址保持一致

缺省情况下,IKE协商时的本端安全网关IP地址使用应用安全策略的接口的主IP地址

配置对端安全网关的IP地址

remote-address { hostname [ dynamic ] | low-ip-address [ high-ip-address ] }

配置IKE/IPsec的NAT穿越功能

nat traversal

可选

在IPsec/IKE组建的VPN隧道中,若存在NAT安全网关设备,则必须配置IPsec/IKE的NAT穿越功能

缺省情况下,没有配置NAT穿越功能

配置本端及对端安全网关的子网类型

配置本端安全网关子网类型

local { multi-subnet | single-subnet }

可选

缺省情况下,为单子网类型。这两条命令仅在与NETSCREEN的设备互通时使用

配置对端安全网关子网类型

peer { multi-subnet | single-subnet }

为IKE对等体应用一个DPD

dpd dpd-name

可选

缺省情况下,IKE对等体没有应用DPD

关于DPD的配置请参见“2.8  配置对等体存活检测

 

l          修改IPsec IKE的对等体配置之后,要执行命令reset ipsec sareset ike sa来清除原有的IPsec SA与IKE SA,否则重新协商SA会失败。

l          当安全隧道一端的IP地址为动态获取时,必须将IKE的协商模式配置为野蛮模式(aggressive)。

l          在预共享密钥认证的主模式下,只能使用IP地址类型的身份进行IKE协商,建立SA。在IKE野蛮模式下,不但可以使用IP地址类型的身份进行协商,也可以使用名字(FQDN或者User FQDN)类型的身份进行IKE协商,建立SA。

l          IKE对等体中配置的IKE协商模式表示本端作为发起方时所使用的协商模式,响应方将自动适配发起方的协商模式。

l          一般情况下本端的local-address不需要配置,只有当用户需要指定特殊的本端安全网关地址时(如指定loopback接口地址)才需要配置这条命令。而发起方的对端安全网关名字或对端安全网关IP地址需要配置,它们用于发起方在协商过程中寻找对端。

l          为了节省IP地址空间,ISP经常会在公网中加入NAT网关,以便于将私有IP地址分配给用户,此时可能会导致IPsec/IKE隧道的两端一端为公网地址,另一端为私网地址,所以必须在隧道两端均配置NAT穿越,保证隧道能够正常协商建立。

l          IKE对等体中指定的IKE安全提议仅用于限制发起方可以使用的安全提议,当本端作为响应方时将使用系统视图下已经配置的安全提议与对端发送的安全提议进行协商。

 

2.6  配置Keepalive定时器

IKE通过Keepalive报文维护ISAKMP SA的链路状态。一般在对端配置了等待Keepalive报文的超时时间后,必须在本端配置此Keepalive报文发送时间间隔。当对端在配置的超时时间内未收到此Keepalive报文时,如果该ISAKMP SA带有TIMEOUT标记,则删除该ISAKMP SA以及由其协商的IPsec SA;否则,将其标记为TIMEOUT。

表2-5 配置Keepalive定时器

操作

命令

说明

进入系统视图

system-view

-

配置ISAKMP SA向对端发送Keepalive报文的时间间隔

ike sa keepalive-timer interval seconds

必选

缺省情况下,ISAKMP SA不向对端发送Keepalive报文

配置ISAKMP SA等待对端发送Keepalive报文的超时时间

ike sa keepalive-timer timeout seconds

必选

缺省情况下,ISAKMP SA不向对端发送Keepalive报文

 

本端配置的Keepalive报文的等待超时时间要大于对端发送的时间间隔。由于网络中一般不会出现超过连续三次的报文丢失,所以,本端的超时时间可以配置为对端配置的Keepalive报文发送时间间隔的三倍。

 

2.7  配置NAT Keepalive定时器

在IPsec/IKE组建的VPN隧道中,若存在NAT安全网关设备,需配置NAT穿越功能来实现NAT穿越,但由于在NAT网关上的NAT映射会话有一定存活时间,因此一旦安全隧道建立后如果长时间没有报文穿越,NAT会话表项会被删除,这样将导致在NAT网关外侧的隧道无法继续传输数据。为防止NAT表项老化,NAT网关内网侧的ISAKMP SA会以一定的时间间隔向对端发送NAT Keepalive报文,以维持NAT会话的存活。

表2-6 配置NAT Keepalive定时器

操作

命令

说明

进入系统视图

system-view

-

配置ISAKMP SA向对端发送NAT Keepalive报文的时间间隔

ike sa nat-keepalive-timer interval seconds

必选

缺省情况下,ISAKMP SA向对端发送NAT Keepalive报文的时间间隔为20秒

 

2.8  配置对等体存活检测

DPD(Dead Peer Detection,对等体存活检测)用于IKE对等体存活状态检测。启动DPD功能后,当本端需要向对端发送IPsec报文时,若判断当前距离最后一次收到对端IPsec报文已经超过触发DPD的时间间隔(interval-time interval-time),则触发DPD查询,本端主动向对端发送DPD请求报文,对IKE对等体是否存活进行检测。如果本端在DPD报文的重传时间间隔(time-out time-out)内未收到对端发送的DPD回应报文,则重传DPD请求,缺省重传两次之后,若仍然没有收到对端的DPD回应报文,则删除该IKE SA和对应的IPsec SA。

DPD和Keepalive的区别:

l              Keepalive定期发送查询;

l              DPD只在要发送加密报文前并且长时间(触发DPD的时间间隔)未收到对端IPsec报文时发送查询。

表2-7 配置对等体存活检测

操作

命令

说明

进入系统视图

system-view

-

创建一个DPD,并进入DPD视图

ike dpd dpd-name

必选

配置触发DPD的时间间隔

interval-time interval-time

可选

缺省情况下,触发DPD的时间间隔为10秒

配置DPD报文的重传时间间隔

time-out time-out

可选

缺省情况下,DPD报文的重传时间间隔为5秒

 

2.9  配置取消对next payload域的检查

next payload域是在IKE协商报文(由几个payload组装而成)的最后一个payload的通用头中的一个域。按协议规定如果当前载荷处于消息的最后,该域必须为0,但某些公司的设备会将该域赋其它值,为增强设备的互通性,可以通过下面的配置取消IKE协商过程对该域的检查。

表2-8 配置取消对next payload域的检查

操作

命令

说明

进入系统视图

system-view

-

配置在IKE协商过程中取消对next payload域的检查

ike next-payload check disabled

必选

缺省情况下,在IPsec协商过程中对next payload域进行检查

 

2.10  IKE显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示配置后IKE的运行情况,通过查看显示信息验证配置的效果。

在用户视图下执行reset命令可以删除IKE建立的安全隧道。

表2-9 IKE显示和维护

操作

命令

显示DPD配置的参数

display ike dpd [ dpd-name ] [ | { begin | exclude | include } regular-expression ]

显示IKE对等体配置的参数

display ike peer [ peer-name ] [ | { begin | exclude | include } regular-expression ]

显示当前IKE SA的信息

display ike sa [ verbose [ connection-id connection-id | remote-address remote-address ] ] [ | { begin | exclude | include } regular-expression ]

显示每个IKE提议配置的参数

display ike proposal  [ | { begin | exclude | include } regular-expression ]

清除IKE建立的安全隧道

reset ike sa [ connection-id ]

 

2.11  IKE典型配置举例

2.11.1  IKE主模式及预共享密钥认证典型配置举例

1. 组网需求

l              在Router A和Router B之间建立一个安全隧道,对Host A所在的子网(10.1.1.0/24)与Host B所在的子网(10.1.2.0/24)之间的数据流进行安全保护。

l              在Router A上配置一条IKE提议,其提议号为10,使用的认证算法为MD5。Router B使用缺省的IKE提议。

l              使用预共享密钥的认证方法。

2. 组网图

图2-3 IKE主模式及预共享密钥认证典型组网图

 

3. 配置步骤

请保证Router A与Router B之间路由可达。

 

(1)        配置安全网关Router A

# 配置ACL 3101,定义由子网10.1.1.0/24去子网10.1.2.0/24的数据流。

<RouterA> system-view

[RouterA] acl number 3101

[RouterA-acl-adv-3101] rule permit ip source 10.1.1.0 0.0.0.255 destination 10.1.2.0 0.0.0.255

[RouterA-acl-adv-3101] quit

# 配置安全提议tran1。

[RouterA] ipsec proposal tran1

# 报文封装形式采用隧道模式。

[RouterA-ipsec-proposal-tran1] encapsulation-mode tunnel

# 安全协议采用ESP协议。

[RouterA-ipsec-proposal-tran1] transform esp

# 选择ESP协议采用的加密算法和认证算法。

[RouterA-ipsec-proposal-tran1] esp encryption-algorithm des

[RouterA-ipsec-proposal-tran1] esp authentication-algorithm sha1

[RouterA-ipsec-proposal-tran1] quit

# 创建IKE对等体。

[RouterA] ike peer peer

# 配置预共享密钥。

[RouterA-ike-peer-peer] pre-shared-key abcde

# 配置对端安全网关的IP地址。

[RouterA-ike-peer-peer] remote-address 2.2.2.2

[RouterA-ike-peer-peer] quit

# 创建一条IKE提议10。

[RouterA] ike proposal 10

# 指定IKE提议使用的认证算法为MD5。

[RouterA-ike-proposal-10] authentication-algorithm md5

# 使用预共享密钥认证方法。

[RouterA-ike-proposal-10] authentication-method pre-share

# 配置ISAKMP SA的存活时间为5000秒。

[RouterA-ike-proposal-10] sa duration 5000

[RouterA-ike-proposal-10] quit

# 创建一条安全策略,协商方式为isakmp

[RouterA] ipsec policy map1 10 isakmp

# 引用安全提议。

[RouterA-ipsec-policy-isakmp-map1-10] proposal tran1

# 引用访问控制列表。

[RouterA-ipsec-policy-isakmp-map1-10] security acl 3101

# 引用IKE对等体。

[RouterA-ipsec-policy-isakmp-map1-10] ike-peer peer

[RouterA-ipsec-policy-isakmp-map1-10] quit

# 配置接口GigabitEthernet1/0/2的IP地址。

[RouterA] interface gigabitethernet 1/0/2

[RouterA-GigabitEthernet1/0/2] ip address 10.1.1.1 255.255.255.0

[RouterA-GigabitEthernet1/0/2] quit

# 配置接口GigabitEthernet1/0/1的IP地址。

[RouterA] interface gigabitethernet 1/0/1

[RouterA-GigabitEthernet1/0/1] ip address 1.1.1.1 255.255.255.0

# 在接口GigabitEthernet1/0/1上应用安全策略组。

[RouterA-GigabitEthernet1/0/1] ipsec policy map1

# 配置到Host B所在子网的静态路由。

[RouterA] ip route-static 10.1.2.0 255.255.255.0 gigabitethernet 1/0/1

(2)        配置安全网关Router B

# 配置ACL 3101,定义由子网10.1.2.0/24去子网10.1.1.0/24的数据流。

<RouterB> system-view

[RouterB] acl number 3101

[RouterB-acl-adv-3101] rule permit ip source 10.1.2.0 0.0.0.255 destination 10.1.1.0 0.0.0.255

[RouterB-acl-adv-3101] quit

[RouterB] ipsec proposal tran1

# 创建安全提议tran1。

[RouterB] ipsec proposal tran1

# 报文封装形式采用隧道模式。

[RouterB-ipsec-proposal-tran1] encapsulation-mode tunnel

# 安全协议采用ESP协议。

[RouterB-ipsec-proposal-tran1] transform esp

# 选择ESP协议采用的加密算法和认证算法。

[RouterB-ipsec-proposal-tran1] esp encryption-algorithm des

[RouterB-ipsec-proposal-tran1] esp authentication-algorithm sha1

[RouterB-ipsec-proposal-tran1] quit

# 配置IKE对等体。

[RouterB] ike peer peer

# 配置预共享密钥。

[RouterB-ike-peer-peer] pre-shared-key abcde

# 配置对端安全网关的IP地址。

[RouterB-ike-peer-peer] remote-address 1.1.1.1

[RouterB-ike-peer-peer] quit

# 创建一条安全策略,协商方式为isakmp。

[RouterB] ipsec policy use1 10 isakmp

# 引用访问控制列表。

[RouterB-ipsec-policy-isakmp-use1-10] security acl 3101

# 引用安全提议。

[RouterB-ipsec-policy-isakmp-use1-10] proposal tran1

# 引用IKE对等体。

[RouterB-ipsec-policy-isakmp-use1-10] ike-peer peer

[RouterB-ipsec-policy-isakmp-use1-10] quit

# 配置接口GigabitEthernet1/0/2的IP地址。

[RouterB] interface gigabitethernet 1/0/2

[RouterB-GigabitEthernet1/0/2] ip address 10.1.2.1 255.255.255.0

[RouterB-GigabitEthernet1/0/2] quit

# 配置接口Ethernet1/0/1的IP地址。

[RouterB] interface gigabitethernet 1/0/1

[RouterB-GigabitEthernet1/0/1] ip address 2.2.2.2 255.255.255.0

# 在接口GigabitEthernet1/0/1上应用安全策略组。

[RouterB-GigabitEthernet1/0/1] ipsec policy use1

# 配置到Host A所在子网的静态路由。

[RouterB] ip route-static 10.1.1.0 255.255.255.0 gigabitethernet 1/0/1

4. 验证配置结果

以上配置完成后,Router A和Router B之间如果有子网10.1.1.0/24与子网10.1.2.0/24之间的报文通过,将触发IKE协商。由于Router A上配置了提议10,其中使用的认证算法为md5,但Router B上使用的是缺省的IKE提议,默认的认证算法为sha。因此,在进行IKE提议匹配的时候,从优先级最高的提议开始匹配,因为Router B上没有和Router A上提议10相匹配的IKE提议,所以双方能够匹配的只有缺省的IKE提议。另外,在进行提议匹配的时候,存活时间是不用进行匹配的,它由IKE协商双方决定。

[RouterA] display ike proposal

 priority authentication authentication encryption Diffie-Hellman duration

              method       algorithm    algorithm     group       (seconds)

---------------------------------------------------------------------------

  10       PRE_SHARED     MD5         DES_CBC         MODP_768       5000

  default  PRE_SHARED     SHA         DES_CBC         MODP_768       86400

[RouterA] display ike proposal

 priority authentication authentication encryption Diffie-Hellman duration

              method       algorithm    algorithm     group       (seconds)

---------------------------------------------------------------------------

  default  PRE_SHARED     SHA         DES_CBC         MODP_768       86400

可通过如下显示信息查看到IKE协商成功后生成的两个阶段的SA。

[RouterA] display ike sa

    total phase-1 SAs:  1

    connection-id  peer            flag        phase   doi

  ----------------------------------------------------------

     1             2.2.2.2         RD|ST         1     IPSEC

     2             2.2.2.2         RD|ST         2     IPSEC

 

  flag meaning

  RD--READY ST--STAYALIVE RL--REPLACED FD--FADING TO--TIMEOUT

IKE第二阶段协商生成的IPsec SA用于保护子网10.1.1.0/24与子网10.1.2.0/24之间的数据流,可通过如下显示信息查看。

[RouterA] display ipsec sa

===============================

Interface: GigabitEthernet1/0/1

    path MTU: 1500

===============================

 

  -----------------------------

  IPsec policy name: "map1"

  sequence number: 10

  mode: isakmp

  -----------------------------

    connection id: 1

    encapsulation mode: tunnel

    perfect forward secrecy:

    tunnel:

        local  address: 1.1.1.1

        remote address: 2.2.2.2

    flow:

        sour addr: 10.1.1.0/255.255.255.0  port: 0  protocol: IP

        dest addr: 10.1.2.0/255.255.255.0  port: 0  protocol: IP

 

    [inbound ESP SAs]

      spi: 1030568546 (0x3d6d3a62)

      proposal: ESP-ENCRYPT-DES ESP-AUTH-SHA1

      sa duration (kilobytes/sec): 1843200/3600

      sa remaining duration (kilobytes/sec): 1843199/3590

      max received sequence-number: 4

      anti-replay check enable: Y

      anti-replay window size: 32

      udp encapsulation used for nat traversal: N

 

    [outbound ESP SAs]

      spi: 89389742 (0x553faae)

      proposal: ESP-ENCRYPT-DES ESP-AUTH-SHA1

      sa duration (kilobytes/sec): 1843200/3600

      sa remaining duration (kilobytes/sec): 1843199/3590

      max received sequence-number: 5

      udp encapsulation used for nat traversal: N

2.11.2  IKE野蛮模式及NAT穿越典型配置举例

1. 组网需求

本例将IPsec和ADSL相结合,是目前实际中广泛应用的典型案例。

l              公司分支局域网通过Router B接入到ATM网络,Router B作为PPPoE的client端,通过ADSL卡直接连接公网的DSLAM接入端。Router B与公网连接的接口IP地址为ISP动态分配的私网IP地址。

l              公司总部局域网通过Router A接入到ATM网络,Router A与公网连接的接口IP地址为固定的公网IP地址。

l              采用IKE协商的方式创建IPsec安全隧道保护总部与分支之间的数据安全。

2. 组网图

图2-4 IKE野蛮模式及NAT穿越典型组网图

 

3. 配置步骤

配置关键点:

l              由于IPsec隧道一端安全网关(Router B)的IP地址为动态获取,因此IKE的协商模式采用野蛮模式(aggressive)。

l              由于IPsec隧道的两端一端为公网地址,另一端为私网地址,因此需要在隧道两端上均配置NAT穿越功能。

(1)        配置Router A

# 配置本端安全网关设备名称。

<RouterA> system-view

[RouterA] ike local-name routera

# 配置ACL。

[RouterA] acl number 3101

[RouterA-acl-adv-3101] rule 0 permit ip source 172.16.0.0 0.0.0.255 destination 192.168.0.0 0.0.0.255

[RouterA-acl-adv-3101] quit

# 配置IKE安全提议。

[RouterA] ike proposal 1

[RouterA-ike-proposal-1] authentication-algorithm sha

[RouterA-ike-proposal-1] authentication-method pre-share

[RouterA-ike-proposal-1] encryption-algorithm 3des-cbc

[RouterA-ike-proposal-1] dh group2

# 配置IKE对等体peer

[RouterA] ike peer peer

[RouterA-ike-peer-peer] exchange-mode aggressive

[RouterA-ike-peer-peer] pre-shared-key abc

[RouterA-ike-peer-peer] id-type name

[RouterA-ike-peer-peer] remote-name routerb

[RouterA-ike-peer-peer] nat traversal

[RouterA-ike-peer-peer] quit

# 创建IPsec安全提议prop。

[RouterA] ipsec proposal prop

[RouterA-ipsec-proposal-prop] encapsulation-mode tunnel

[RouterA-ipsec-proposal-prop] transform esp

[RouterA-ipsec-proposal-prop] esp encryption-algorithm 3des

[RouterA-ipsec-proposal-prop] esp authentication-algorithm sha1

[RouterA-ipsec-proposal-prop] quit

# 创建安全策略policy并指定通过IKE协商建立SA

[RouterA] ipsec policy policy 10 isakmp

# 配置安全策略policy引用IKE对等体peer

[RouterA-ipsec-policy-isakmp-policy-10] ike-peer peer

# 配置安全策略policy引用访问控制列表3101

[RouterA-ipsec-policy-isakmp-policy-10] security acl 3101

# 配置安全策略policy引用IPsec安全提议prop

[RouterA-ipsec-policy-isakmp-policy-10] proposal prop

[RouterA-ipsec-policy-isakmp-policy-10] quit

# 配置IP地址。

[RouterA] interface serial 2/1/1

[RouterA-Serial2/1/1] ip address 100.1.1.1 255.255.255.0

[RouterA-Serial2/1/1] ipsec policy policy

[RouterA-Serial2/1/1] quit

# 配置以太网口。

[RouterA] interface gigabitethernet 1/0/1

[RouterA-GigabitEthernet1/0/1] ip address 172.16.0.1 255.255.255.0

[RouterA-GigabitEthernet1/0/1] quit

# 配置到分公司局域网的静态路由。

[RouterA] ip route-static 192.168.0.0 255.255.255.0 serial 2/1/1

(2)        配置Router B

# 配置本端安全网关的名称。

<RouterB> system-view

[RouterB] ike local-name routerb

# 配置ACL。

[RouterB] acl number 3101

[RouterB-acl-adv-3101] rule 0 permit ip source 192.168.0.0 0.0.0.255 destination 172.16.0.0 0.0.0.255

[RouterB-acl-adv-3101] quit

# 配置IKE安全提议。

[RouterB] ike proposal 1

[RouterB-ike-proposal-1] authentication-algorithm sha

[RouterB-ike-proposal-1] authentication-method pre-share

[RouterB-ike-proposal-1] encryption-algorithm 3des-cbc

[RouterB-ike-proposal-1] dh group2

# 配置IKE对等体peer

[RouterB] ike peer peer

[RouterB-ike-peer-peer] exchange-mode aggressive

[RouterB-ike-peer-peer] pre-shared-key abc

[RouterB-ike-peer-peer] id-type name

[RouterB-ike-peer-peer] remote-name routera

[RouterB-ike-peer-peer] remote-address 100.1.1.1

[RouterB-ike-peer-peer] nat traversal

[RouterB-ike-peer-peer] quit

# 创建IPsec安全提议prop。

[RouterB] ipsec proposal prop

[RouterB-ipsec-proposal-prop] encapsulation-mode tunnel

[RouterB-ipsec-proposal-prop] transform esp

[RouterB-ipsec-proposal-prop] esp encryption-algorithm 3des

[RouterB-ipsec-proposal-prop] esp authentication-algorithm sha1

[RouterB-ipsec-proposal-prop] quit

# 创建安全策略policy并指定通过IKE协商建立SA

[RouterB] ipsec policy policy 10 isakmp

# 配置安全策略policy引用IKE对等体peer

[RouterB-ipsec-policy-isakmp-policy-10] ike-peer peer

# 配置安全策略policy引用访问控制列表3101

[RouterB-ipsec-policy-isakmp-policy-10] security acl 3101

# 配置安全策略policy引用IPsec安全提议prop

[RouterB-ipsec-policy-isakmp-policy-10] proposal prop

[RouterB-ipsec-policy-isakmp-policy-10] quit

# 配置拨号访问控制列表。

[RouterB] dialer-rule 1 ip permit

# 创建Dialer0,使用由ISP分配的用户名和密码进行拨号和PPP认证的相关配置,并配置MTU

[RouterB] interface dialer 0

[RouterB-Dialer0] link-protocol ppp

[RouterB-Dialer0] ppp pap local-user test password simple 123456

[RouterB-Dialer0] ip address ppp-negotiate

[RouterB-Dialer0] dialer user 1

[RouterB-Dialer0] dialer-group 1

[RouterB-Dialer0] dialer bundle 1

[RouterB-Dialer0] ipsec policy policy

[RouterB-Dialer0] mtu 1492

[RouterB-Dialer0] quit

# 配置到总公司局域网的静态路由。

[RouterB] ip route-static 172.16.0.0 255.255.255.0 dialer 0

# 配置以太网口。

[RouterB] interface gigabitethernet 1/0/1

[RouterB-GigabitEthernet1/0/1] tcp mss 1450

[RouterB-GigabitEthernet1/0/1] ip address 192.168.0.1 255.255.255.0

[RouterB-GigabitEthernet1/0/1] quit

# 配置VE口。

[RouterB] interface virtual-ethernet 0

[RouterB-Virtual-Ethernet0] pppoe-client dial-bundle-number 1

[RouterB-Virtual-Ethernet0] mac-address 0011-0022-0012

[RouterB-Virtual-Ethernet0] quit

# 对ADSL卡的ATM口进行配置。

[RouterB] interface atm 1/1/1

[RouterB-Atm1/1/1] pvc 0/100

[RouterB-atm-pvc-Atm1/1/1-0/100] map bridge virtual-ethernet 0

[RouterB-atm-pvc-Atm1/1/1-0/100] quit

2.12  常见错误配置举例

配置参数建立IPsec安全隧道时,可以打开IKE的Error调试开关,帮助我们查找配置问题。其命令是:

<Router> debugging ike error

2.12.1  非法用户身份信息

1. 故障现象

非法用户身份信息

2. 故障分析

用户身份信息是发起IPsec通信的用户用来标识自己的数据。在实际应用中我们可以通过用户身份标识实现对不同的数据流建立不同的安全隧道进行保护。目前我们是通过用户的IP地址和名字来标识用户。

可以看到调试信息:

got NOTIFY of type INVALID_ID_INFORMATION

或者

drop message from A.B.C.D due to notification type INVALID_ID_INFORMATION

3. 处理过程

检查协商两端接口上配置的安全策略中的ACL内容是否相容。建议用户将两端的ACL配置成互为镜像的。ACL镜像的含义请参考IPsec配置中“配置访问控制列表”内容。

2.12.2  提议不匹配

1. 故障现象

提议不匹配

2. 故障分析

可以看到调试信息:

got NOTIFY of type NO_PROPOSAL_CHOSEN

或者:

drop message from A.B.C.D due to notification type NO_PROPOSAL_CHOSEN

协商双方没有可以匹配的提议。

3. 处理过程

对于阶段1,检查IKE proposal是否有与对方匹配的。对于阶段2协商,检查双方接口上应用的IPsec安全策略的参数是否匹配,引用的IPsec安全提议的协议、加密算法和认证算法是否有匹配的。

2.12.3  无法建立安全隧道

1. 故障现象

无法建立安全隧道

2. 故障分析

实际应用中有时会发现在不稳定的网络状态下,安全隧道无法建立或者存在安全隧道却无法通信,而且检查双方的ACL的配置正确,也有匹配的提议。

这种情况一般是安全隧道建立好以后,有一方的设备重启造成的。

3. 处理过程

l              使用display ike sa命令检查双方是否都已建立阶段1的SA。

l              使用display ipsec sa policy命令查看接口上的安全策略是否已建立了IPsec SA。

l              根据以上两步的结果查看,如果有一方存在的SA在另一方上不存在,请先使用reset ipsec sa命令清除双方不对称存在的IPsec SA,再使用reset ike sa命令清除双方不对称存在的IKE SA,并重新发起协商。

2.12.4  ACL配置错误

1. 故障现象

ACL配置错误,导致协商成功之后数据流不通

2. 故障分析

多台设备之间先后建立不同的安全隧道,出现同一设备有不同对端的情况。若此设备不配置ACL规则,则分别由对端发起报文来与之建立保护粒度不同的安全隧道。由于安全隧道的优先级由它们创建的顺序决定,当这一设备的出方向报文首先匹配到较粗粒度的安全隧道时,将导致此设备无法与其它较细粒度对端互通。

3. 处理过程

为避免这种情况发生,当同一设备有不同对端时,建议用户在此设备上配置ACL来区别数据流,且与不同对端尽量避免配置有重复范围的ACL子规则。若需要有重复范围的子规则,应该将细粒度的子规则配置为较高的优先级。

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!