07-IKEv2配置
本章节下载: 07-IKEv2配置 (417.26 KB)
目 录
1.4.2 指定IKEv2协商时本端和对端采用的身份认证方式
1.8.1 配置IKEv2 cookie-challenge功能
1.11.1 IKEv2提议不匹配导致IKEv2 SA协商失败
1.11.2 IPsec提议不匹配导致IPsec SA协商失败
IKEv2(Internet Key Exchange Version 2,互联网密钥交换协议第2版)是第1版本的IKE协议(本文简称IKEv1)的增强版本。IKEv2与IKEv1相同,具有一套自保护机制,可以在不安全的网络上安全地进行身份认证、密钥分发、建立IPsec SA。相对于IKEv1,IKEv2具有抗攻击能力和密钥交换能力更强以及报文交互数量较少等特点。
要建立一对IPsec SA,IKEv1需要经历两个阶段,至少需要交换6条消息。在正常情况下,IKEv2只需要进行两次交互,使用4条消息就可以完成一个IKEv2 SA和一对IPsec SA的协商建立,如果要求建立的IPsec SA的数目大于一对,则每增加一对IPsec SA只需要额外增加一次交互,也就是两条消息就可以完成,这相比于IKEv1简化了设备的处理过程,提高了协商效率。
IKEv2定义了三种交互:初始交换、创建子SA交换以及通知交换。
下面简单介绍一下IKEv2协商过程中的初始交换过程。
图1-1 IKEv2的初始交换过程
如图1-1所示,IKEv2的初始交换过程中包含两个交换:IKE_SA_INIT交换(两条消息)和IKE_AUTH交换(两条消息)。
· IKE_SA_INIT交换:完成IKEv2 SA参数的协商以及密钥交换;
· IKE_AUTH交换:完成通信对等体的身份认证以及IPsec SA的创建。
这两个交换过程顺序完成后,可以建立一个IKEv2 SA和一对IPsec SA。
创建子SA交换:当一个IKE SA需要创建多个IPsec SA时,使用创建子SA交换来协商多于一个的SA,另外还可用于进行IKE SA的重协商功能。
通知交换:用于传递控制信息,例如错误信息或通告信息。
在IKE_SA_INIT交换阶段,发起方采用“猜”的办法,猜一个响应方最可能使用的DH组携带在第一条消息中发送。响应方根据发起方“猜”的DH组来响应发起方。如果发起方猜测成功,则这样通过两条消息就可以完成IKE_SA_INIT交换。如果发起方猜测错误,则响应方会回应一个INVALID_KE_PAYLOAD消息,并在该消息中指明将要使用的DH组。之后,发起方采用响应方指定的DH组重新发起协商。这种DH猜想机制,使得发起方的DH组配置更为灵活,可适应不同的响应方。
在IKE_SA_INIT交换中消息是明文传输的,响应方接收到第一个消息后无法确认该消息是否来自一个仿冒的地址。如果此时一个网络攻击者伪造大量地址向响应方发送IKE_SA_INIT请求,根据IKEv1协议,响应方需要维护这些半开的IKE会话信息,从而耗费大量响应方的系统资源,造成对响应方的DoS攻击。
IKEv2使用cookie-challenge机制来解决这类DoS攻击问题。当响应方发现存在的半开IKE SA超过指定的数目时,就启用cookie-challenge机制。响应方收到IKE_SA_INIT请求后,构造一个Cookie通知载荷并响应发起方,若发起方能够正确携带收到的Cookie通知载荷向响应方重新发起IKE_SA_INIT请求,则可以继续后续的协商过程。
半开状态的IKEv2 SA是指那些正在协商过程中的IKEv2 SA。若半开状态的IKEv2 SA数目减少到阈值以下,则cookie-challenge功能将会停止工作
为了保证安全,IKE SA和IPsec SA都有一个生存时间,超过生存时间的SA需要重新协商,即SA 的重协商。与IKEv1不同的是,IKEv2 SA的生存时间不需要协商,由各自的配置决定,重协商总是由生存时间较小的一方发起,可尽量避免两端同时发起重协商造成冗余SA的生成,导致两端SA状态不一致。
与IKEv1不同,IKEv2中所有消息都是以“请求–响应”对的形式出现,IKEv2通过消息头中的一个Message ID字段来标识一个“请求–响应”对。发起方发送的每一条消息都需要响应方给予确认,例如建立一个IKE SA一般需要两个“请求-响应”对。如果发起方在规定时间内没有接收到确认报文,则需要对该请求消息进行重传。IKEv2消息的重传只能由发起方发起,且重传消息的Message ID必须与原始消息的Message ID一致。
与IKEv2相关的协议规范有:
· RFC 2408:Internet Security Association and Key Management Protocol (ISAKMP)
· RFC 4306:Internet Key Exchange (IKEv2) Protocol
· RFC 4718:IKEv2 Clarifications and Implementation Guidelines
· RFC 2412:The OAKLEY Key Determination Protocol
· RFC 5996:Internet Key Exchange Protocol Version 2 (IKEv2)
IKEv2配置任务如下:
(1) 配置IKEv2 profile
d. 配置本端身份信息
e. 配置匹配对端身份的规则
g. 配置内部VPN实例
(2) 配置IKEv2安全策略
(3) 配置IKEv2安全提议
若IKEv2安全策略中指定了IKEv2提议,则必配。
(4) 配置IKEv2 keychain
只要其中一端配置的认证方式为预共享密钥方式,则必选。
如果两端配置的认证方式都是RSA数字签名方式,则不需要配置。
(5) (可选)配置IKEv2 cookie-challenge功能
该功能仅对于响应方有意义。
(6) (可选)配置全局IKEv2 DPD探测功能
(7) (可选)配置IKEv2 NAT Keepalive功能
(8) (可选)配置为对端分配IP地址的IKEv2本地地址池
为了配置过程顺利进行,在IKEv2配置之前,用户需要确定以下几个因素:
· 确定IKEv2初始交换过程中使用的算法的强度,即确定对初始交换进行安全保护的强度(包括加密算法、完整性校验算法、PRF算法和DH组算法)。不同的算法的强度不同,算法强度越高,受保护数据越难被破解,但消耗的计算资源越多。一般来说,密钥越长的算法强度越高。
· 确定本地认证方法以及对端的认证方法。若使用预共享密钥方式,则要确定通信双方预先约定的预共享密钥;若使用RSA数字签名方式,则要确定本端所使用的PKI域。关于PKI的配置,请参见“安全配置指导”中的“PKI”。
创建一个IKEv2 profile,并进入IKEv2 Profile视图。
(1) 进入系统视图。
system-view
(2) 创建一个IKEv2 profile,并进入IKEv2 Profile视图。
ikev2 profile profile-name
IKEv2协商时本端和对端采用的身份认证方式。只能指定一个本端身份认证方式,可以指定多个对端身份认证方式。本端和对端可以采用不同的身份认证方式。
(1) 进入系统视图。
system-view
(2) 进入IKEv2 Profile视图。
ikev2 profile profile-name
(3) 指定IKEv2本端和对端的身份认证方式。
authentication-method { local | remote } { dsa-signature | ecdsa-signature | pre-share | rsa-signature }
缺省情况下,未配置本端和对端认证方式。
根据IKEv2 profile中配置的认证方法,配置IKEv2 keychain或PKI域。
· 如果任意一方指定的身份认证方式为数字签名(dsa-signature、rsa-signature或者ecdsa-signature),则需要配置PKI域。
· 如果任意一方指定的身份认证方式为预共享密钥(pre-share),则需要配置IKEv2 keychain。
(1) 进入系统视图。
system-view
(2) 进入IKEv2 Profile视图。
ikev2 profile profile-name
(3) 根据IKEv2 profile中配置的认证方法,配置IKEv2 keychain或PKI域
¡ 配置采用预共享密钥认证时使用的Keychain
keychain keychain-name
¡ 配置采用数字签名认证时使用的PKI域。
certificate domain domain-name [ sign | verify ]
根据authentication-method命令使用的认证方法选择其中一个配置。
· 如果本端的认证方式为数字签名,则可以配置任何类型的身份信息。若配置的本端身份为IP地址,但这个IP地址与本地证书中的IP地址不同,设备将使用FQDN类型的本端身份,该身份的内容为设备的名称(可通过sysname命令配置)。
· 如果本端的认证方式为预共享密钥,则只能配置除DN之外的其它类型的身份信息。
(1) 进入系统视图。
system-view
(2) 进入IKEv2 Profile视图。
ikev2 profile profile-name
(3) 配置本端身份信息。
identity local { address { ipv4-address | ipv6 ipv6-address } | dn | email email-string | fqdn fqdn-name | key-id key-id-string }
缺省情况下,未配置本端身份信息。此时使用IP地址标识本端的身份,该IP地址为IPsec安全策略应用的接口的IP地址。
IKEv2对等体需要根据对端的身份信息查找一个本端的IKEv2 profile,然后使用此IKEv2 profile中的信息验证对端身份。对端身份信息若能满足本地某个IKEv2 profile中指定的匹配规则,则该IKEv2 profile为查找的结果。匹配IKEv2 profile的顺序取决于IKEv2 profile的优先级,优先级高的先匹配。
(1) 进入系统视图。
system-view
(2) 进入IKEv2 Profile视图。
ikev2 profile profile-name
(3) 配置匹配对端身份的规则。
match remote { certificate policy-name | identity { address { { ipv4-address [ mask | mask-length ] | range low-ipv4-address high-ipv4-address } | ipv6 { ipv6-address [ prefix-length ] | range low-ipv6-address high-ipv6-address } } | fqdn fqdn-name | email email-string | key-id key-id-string } }
协商双方都必须配置至少一个match remote规则,当对端的身份与IKEv2 profile中配置的match remote规则匹配时,则使用此IKEv2 profile中的信息与对端完成认证。
本功能限制IKEv2 profile只能在所属VPN实例的接口上协商。
(1) 进入系统视图。
system-view
(2) 进入IKEv2 Profile视图。
ikev2 profile profile-name
(3) 配置IKEv2 profile所属的VPN实例。
match vrf { name vrf-name | any }
缺省情况下,IKEv2 profile属于公网。
当IPsec解封装后的报文需要继续转发到不同的VPN时,设备需要知道在哪个VPN实例中查找相应的路由。缺省情况下,设备在与外网相同的VPN实例中查找路由,如果不希望在与外网相同的VPN实例中查找路由,则可以指定一个内部VPN实例,通过查找该内部VPN实例的路由来转发报文。
同一个ACL下配置的多条规则中绑定的VPN实例必须相同,且本功能配置的VPN实例必须与ACL下绑定的VPN实例相同。
(1) 进入系统视图。
system-view
(2) 进入IKEv2 Profile视图。
ikev2 profile profile-name
(3) 配置内部VPN实例。
inside-vrf vrf-name
缺省情况下,IKEv2 profile未指定内部VPN实例,即内网与外网在同一个VPN中。
(1) 进入系统视图。
system-view
(2) 进入IKEv2 Profile视图。
ikev2 profile profile-name
(3) 配置IKEv2 profile的可选功能。
¡ 配置IKEv2 DPD探测功能。
dpd interval interval [ retry seconds ] { on-demand | periodic }
缺省情况下,IKEv2 profile视图下没有配置DPD探测功能,采用系统视图下的DPD配置。若两者没有配置,则不进行DPD探测。
¡ 配置IKEv2 profile的使用范围。
match local address { interface-type interface-number | ipv4-address | ipv6 ipv6-address }
缺省情况下,未限制IKEv2 profile的使用范围。
限制IKEv2 profile只能在指定的地址或指定接口的地址下使用(这里的地址指的是IPsec策略下配置的本端地址,若本端地址没有配置,则为引用IPsec策略的接口下地址)。
¡ 配置IKEv2 profile的优先级。
priority priority
缺省情况下,IKEv2 profile的优先级为100。
优先级仅用于响应方在查找IKEv2 profile时调整IKEv2 profile的匹配顺序。
¡ 配置IKEv2 SA生存时间。
sa duration seconds
缺省情况下,IKEv2 SA的生存时间为86400秒。
本端和对端的IKEv2 SA生存时间可以不一致,也不需要进行协商,由生存时间较短的一方在本端IKEv2 SA生存时间到达之后发起重协商。
¡ 配置发送NAT keepalive的时间间隔。
nat-keepalive seconds
缺省条件下,使用全局的IKEv2 NAT keepalive配置。
在IKEv2 peer之间存在NAT网关的情况下,设备通过定期向对端发送NAT keepalive 报文,防止已有的NAT会话表项因长时间无流量匹配而被老化。
¡ 开启指定的配置交换功能。
config-exchange { request | set { accept | send } }
缺省条件下,所有的配置交换功能均处于关闭状态。
该功能用于分支和总部虚拟隧道IP地址的请求和分配。
参数 |
说明 |
request |
用于分支侧向中心侧安全网关提交IP地址分配请求 |
set accept |
用于分支侧接受中心侧主动推送的IP地址 |
set send |
用于中心侧主动推送IP地址给分支侧 |
¡ 开启AAA授权功能。
aaa authorization domain domain-name username user-name
缺省条件下,IKEv2的AAA授权功能处于关闭状态。
通过AAA授权获取一个地址池的名字,地址池中配置了可分配给对端的IP地址。关于AAA授权IKE本地地址池的具体配置请参见“用户接入与认证”中的“AAA”。
在进行IKE_SA_INIT协商时,系统需要查找到一个与本端相匹配的IKEv2安全策略,并使用其中引用的安全提议进行安全参数的协商,匹配的依据为本端安全网关的IP地址。
· 若系统中配置了IKEv2安全策略,则根据本端安全网关的IP地址与所有已配置的IKEv2安全策略进行逐一匹配,如果未找到匹配的IKEv2安全策略或找到的安全策略中引用的安全提议配置不完整,则IKE_SA_INIT协商将会失败。
· 若系统中未配置任何IKEv2安全策略,则直接采用缺省的IKEv2安全策略default。
· 系统中存在多个IKEv2安全策略的情况下,系统根据安全策略的优先级从高到低的顺序依次匹配。如果通过match local address命令指定了匹配IKEv2安全策略的本端地址,则优先匹配指定了本端地址匹配条件的策略,其次匹配未指定本端地址匹配条件的策略。
(1) 进入系统视图。
system-view
(2) 创建IKEv2安全策略,并进入IKEv2安全策略视图。
ikev2 policy policy-name
缺省情况下,存在一个名称为default的缺省IKEv2安全策略。
(3) 指定匹配IKEv2安全策略的本端地址。
match local address { interface-type interface-number | ipv4-address | ipv6 ipv6-address }
缺省情况下,未指定用于匹配IKEv2安全策略的本端地址,表示本策略可匹配所有本端地址。
(4) 配置匹配IKEv2安全策略的VPN实例。
match vrf { name vrf-name | any }
缺省情况下,未指定用于匹配IKEv2安全策略的VPN实例,表示本策略可匹配公网内的所有本端地址。
(5) 指定IKEv2安全策略引用的IKEv2安全提议。
proposal proposal-name
缺省情况下,IKEv2安全策略未引用IKEv2安全提议。
(6) 指定IKEv2安全策略的优先级。
priority priority
缺省情况下,IKEv2安全策略的优先级为100。
IKEv2安全提议用于保存IKE_SA_INIT交换中使用的安全参数,包括加密算法、完整性验证算法、PRF算法和DH组,其中每类安全参数均可以配置多个,其优先级按照配置顺序依次降低。
· 一个完整的IKEv2安全提议中至少应该包含一组安全参数,即一个加密算法、一个完整性验证算法、一个PRF算法和一个DH组。
· 若同时指定了多个IKEv2安全提议,则它们的优先级按照配置顺序依次降低。
(1) 进入系统视图。
system-view
(2) 创建IKEv2安全提议,并进入IKEv2提议视图。
ikev2 proposal proposal-name
缺省条件下,存在一个名称为default的缺省IKEv2安全提议。
该提议中定义的加密算法为aes-cbc-128和3des,完整性校验算法为sha1和md5,PRF算法为sha1和md5,DH组为group5和group2。
(3) 指定IKEv2安全提议使用的加密算法。
encryption { 3des-cbc | aes-cbc-128 | aes-cbc-192 | aes-cbc-256 | aes-ctr-128 | aes-ctr-192 | aes-ctr-256 | camellia-cbc-128 | camellia-cbc-192 | camellia-cbc-256 | des-cbc } *
缺省情况下,IKEv2安全提议未定义加密算法。
(4) 指定IKEv2安全提议使用的完整性校验算法。
integrity { aes-xcbc-mac | md5 | sha1 | sha256 | sha384 | sha512 } *
缺省情况下,IKEv2安全提议未定义完整性校验算法。
(5) 指定IKEv2安全提议使用的DH组。
dh { group1 | group14 | group2 | group24 | group5 | group19 | group20 } *
缺省情况下,IKEv2安全提议未定义DH组。
(6) 指定IKEv2安全提议使用的PRF算法。
prf { aes-xcbc-mac | md5 | sha1 | sha256 | sha384 | sha512 } *
缺省情况下,IKEv2安全提议使用配置的完整性校验算法作为PRF算法。
IKEv2 keychain用来指定与对端进行IKEv2协商时使用的共享密钥信息。一个IKEv2 keychain下可以指定多个IKEv2 peer,每个IKEv2 peer中包含了一个对称预共享密钥或一个非对称预共享密钥对,以及用于查找该IKEv2 peer的匹配参数(对等体的主机名称、IP地址或地址范围、身份信息)。其中,IKEv2协商的发起方使用对端的主机名称、IP地址或地址范围查找IKEv2 peer,响应方使用对端的IP地址、地址范围或身份信息查找IKEv2 peer。
(1) 进入系统视图。
system-view
(2) 创建IKEv2 keychain,并进入IKEv2 keychain视图。
ikev2 keychain keychain-name
(3) 创建IKEv2 peer,并进入IKEv2 peer视图。
peer name
(4) 指定IKEv2 peer的主机名称。
hostname name
缺省情况下,未配置IKEv2 peer的主机名称。
(5) 指定IKEv2 peer的主机地址。
address { ipv4-address [ mask | mask-length ] | ipv6 ipv6-address [ prefix-length ] }
缺省情况下,未指定IKEv2 peer的主机地址。
不同的IKEv2 peer中不能指定相同的主机地址。
(6) 指定IKEv2 peer的身份信息。
identity { address { ipv4-address | ipv6 { ipv6-address } } | fqdn fqdn-name | email email-string | key-id key-id-string }
缺省情况下,未指定IKEv2 peer的身份信息。
(7) 配置IKEv2 peer的预共享密钥。
pre-shared-key [ local | remote ] { ciphertext | plaintext } string
缺省情况下,未配置IKEv2 peer的预共享密钥。
IKEv2 cookie-challenge功能用来防止攻击者通过源IP仿冒对响应方造成DoS攻击。
开启IKEv2 cookie-challenge功能的同时需要指定启用cookie-challenge功能的阈值,当响应方本地存在的半开状态的IKEv2 SA数目达到指定的阈值时,则cookie-challenge功能开始生效。
(1) 进入系统视图。
system-view
(2) 开启IKEv2 cookie-challenge功能。
ikev2 cookie-challenge number
缺省情况下,IKEv2 cookie-challenge功能处于关闭状态。
IKEv2 DPD探测功能用来探测对端是否存活,包括以下两种模式:
· 按需探测模式(on-demand):根据流量来探测对端是否存活。在本端发送用户报文时,如果发现自最后一次收到对端报文之后,在指定的触发IKEv2 DPD的时间间隔内一直未收到对端报文,则发送DPD报文探测对端是否存活。
· 定时探测模式(periodic):按照配置的触发IKEv2 DPD的时间间隔定时发送DPD报文,探测对端是否存活。
当系统视图下和IKEv2 profile视图下都配置DPD探测功能时,IKEv2 profile视图下的DPD配置覆盖系统视图下的全局DPD配置。若IKEv2 profile视图下没有配置DPD探测功能,则应用全局DPD配置。
(1) 进入系统视图。
system-view
(2) 配置IKEv2 DPD探测功能。
ikev2 dpd interval interval [ retry seconds ] { on-demand | periodic }
缺省情况下,全局IKEv2 DPD探测功能处于关闭状态。
IKEv2 NAT Keepalive功能仅对位于NAT之后的设备(即该设备位于NAT设备连接的私网侧)有意义。NAT之后的IKEv2网关设备需要定时向NAT之外的IKEv2网关设备发送NAT Keepalive报文,以确保NAT设备上相应于该流量的会话存活,从而让NAT之外的设备可以访问NAT之后的设备。因此,配置的发送NAT Keepalive报文的时间间隔需要小于NAT设备上会话表项的存活时间。本功能必须在探测到NAT之后才能生效。
(1) 进入系统视图。
system-view
(2) 配置向对端发送NAT Keepalive报文的时间间隔。
ikev2 nat-keepalive seconds
缺省情况下,探测到NAT后发送NAT Keepalive报文的时间间隔为10秒。
IKEv2本地地址池与AAA授权配合使用,可以向对端网关(客户端)分配地址或应答地址请求,从而使得对端网关(企业分支客户端)使用由企业中心网关统一分配的IP地址作为私网地址来进行通信,达到由企业中心统一管理的目的。关于AAA授权IKEv2本地地址池的具体配置请参见“用户接入与认证”中的“AAA”。
(1) 进入系统视图。
system-view
(2) 配置为对端分配IPv4地址的IKEv2本地地址池。
ikev2 address-group group-name start-ipv4-address end-ipv4-address [ mask | mask-length ]
(3) 配置为对端分配IPv6地址的IKEv2本地地址池。
ikev2 ipv6-address-group group-name prefix prefix/prefix-len assign-len assign-len
可在任意视图下执行以下命令:
· 显示IKEv2安全策略的配置信息。
display ikev2 policy [ policy-name | default ]
· 显示IKEv2 profile的配置信息。
display ikev2 profile [ profile-name ]
· 显示IKEv2安全提议的配置信息。
display ikev2 proposal [ name | default ]
· 显示当前IKEv2 SA的信息。
display ikev2 sa [ count | [ { local | remote } { ipv4-address | ipv6 ipv6-address } [ vpn-instance vpn-instance-name ] ] [ verbose [ tunnel tunnel-id ] ] ]
· 显示IKEv2统计信息。
display ikev2 statistics
请在用户视图下执行以下命令:
· 清除IKEv2 SA及其协商生成的Child SA。
reset ikev2 sa [ [ { local | remote } { ipv4-address | ipv6 ipv6-address } [ vpn-instance vpn-instance-name ] ] | tunnel tunnel-id ] [ fast ]
· 清除IKEv2统计信息。
reset ikev2 statistics
在Device A和Device B之间建立IPsec隧道,对Host A所在的子网(10.1.1.0/24)与Host B所在的子网(10.1.2.0/24)之间的数据流进行安全保护。
· Device A和Device B之间采用IKEv2协商方式建立IPsec SA。
· 使用缺省的IKEv2提议。
· 使用缺省的IKEv2安全策略。
图1-2 IKEv2预共享密钥认证典型组网图
(1) 配置Device A
# 配置各接口的IP地址,具体略。
# 配置ACL 3101,定义要保护由子网10.1.1.0/24去子网10.1.2.0/24的数据流。
<DeviceA> system-view
[DeviceA] acl advanced 3101
[DeviceA-acl-ipv4-adv-3101] rule permit ip source 10.1.1.0 0.0.0.255 destination 10.1.2.0 0.0.0.255
[DeviceA-acl-ipv4-adv-3101] quit
# 创建IPsec安全提议tran1。
[DeviceA] ipsec transform-set tran1
# 配置安全协议对IP报文的封装形式为隧道模式。
[DeviceA-ipsec-transform-set-tran1] encapsulation-mode tunnel
# 配置采用的安全协议为ESP。
[DeviceA-ipsec-transform-set-tran1] protocol esp
# 配置ESP协议采用的加密算法为DES,认证算法为HMAC-SHA1。
[DeviceA-ipsec-transform-set-tran1] esp encryption-algorithm des-cbc
[DeviceA-ipsec-transform-set-tran1] esp authentication-algorithm sha1
[DeviceA-ipsec-transform-set-tran1] quit
# 创建IKEv2 keychain,名称为keychain1。
[DeviceA] ikev2 keychain keychain1
# 创建IKEv2对端,名称为peer1。
[DeviceA-ikev2-keychain-keychain1] peer peer1
# 指定对端peer1的主机地址为2.2.2.2/16。
[DeviceA-ikev2-keychain-keychain1-peer-peer1] address 2.2.2.2 16
# 指定对端peer1的身份信息。
[DeviceA-ikev2-keychain-keychain1-peer-peer1] identity address 2.2.2.2
# 配置对端peer1使用的预共享密钥为明文abcde。
[DeviceA-ikev2-keychain-keychain1-peer-peer1] pre-shared-key plaintext abcde
[DeviceA-ikev2-keychain-keychain1-peer-peer1] quit
[DeviceA-ikev2-keychain-keychain1] quit
# 创建IKEv2 profile,名称为profile1。
[DeviceA] ikev2 profile profile1
# 指定本端的身份认证方式为预共享密钥。
[DeviceA-ikev2-profile-profile1] authentication-method local pre-share
# 指定对端的身份认证方式为预共享密钥。
[DeviceA-ikev2-profile-profile1] authentication-method remote pre-share
# 指定引用的IKEv2 keychain为keychain1。
[DeviceA-ikev2-profile-profile1] keychain keychain1
# 配置匹配对端身份的规则为IP地址2.2.2.2/16。
[DeviceA-ikev2-profile-profile1] match remote identity address 2.2.2.2 255.255.0.0
[DeviceA-ikev2-profile-profile1] quit
# 创建一条IKEv2协商方式的IPsec安全策略,名称为map1,顺序号为10。
[DeviceA] ipsec policy map1 10 isakmp
# 配置IPsec隧道的对端IP地址为2.2.2.2。
[DeviceA-ipsec-policy-isakmp-map1-10] remote-address 2.2.2.2
# 指定引用ACL 3101。
[DeviceA-ipsec-policy-isakmp-map1-10] security acl 3101
# 指定引用的安全提议为tran1。
[DeviceA-ipsec-policy-isakmp-map1-10] transform-set tran1
# 指定引用的IKEv2 profile为profile1。
[DeviceA-ipsec-policy-isakmp-map1-10] ikev2-profile profile1
[DeviceA-ipsec-policy-isakmp-map1-10] quit
# 在接口GigabitEthernet0/0/1上应用IPsec安全策略map1。
[DeviceA] interface gigabitethernet 0/0/1
[DeviceA-GigabitEthernet0/0/1] ipsec apply policy map1
[DeviceA-GigabitEthernet0/0/1] quit
# 配置到Host B所在子网的静态路由。1.1.1.2为本例中的直连下一跳地址,实际使用中请以具体组网情况为准。
[DeviceA] ip route-static 10.1.2.0 255.255.255.0 1.1.1.2
(2) 配置Device B
# 配置各接口的IP地址,具体略。
# 配置ACL 3101,定义要保护由子网10.1.2.0/24去往子网10.1.1.0/24的数据流。
<DeviceB> system-view
[DeviceB] acl advanced 3101
[DeviceB-acl-ipv4-adv-3101] rule permit ip source 10.1.2.0 0.0.0.255 destination 10.1.1.0 0.0.0.255
[DeviceB-acl-ipv4-adv-3101] quit
# 创建IPsec安全提议tran1。
[DeviceB] ipsec transform-set tran1
# 配置安全协议对IP报文的封装形式为隧道模式。
[DeviceB-ipsec-transform-set-tran1] encapsulation-mode tunnel
# 配置采用的安全协议为ESP。
[DeviceB-ipsec-transform-set-tran1] protocol esp
# 配置ESP协议采用的加密算法为DES,认证算法为HMAC-SHA1。
[DeviceB-ipsec-transform-set-tran1] esp encryption-algorithm des-cbc
[DeviceB-ipsec-transform-set-tran1] esp authentication-algorithm sha1
[DeviceB-ipsec-transform-set-tran1] quit
# 创建IKEv2 keychain,名称为keychain1。
[DeviceB] ikev2 keychain keychain1
# 创建IKEV2对端,名称为peer1。
[DeviceB-ikev2-keychain-keychain1] peer peer1
# 指定peer1的主机地址为1.1.1.1/16。
[DeviceB-ikev2-keychain-keychain1-peer-peer1] address 1.1.1.1 16
# 指定peer1的身份信息。
[DeviceB-ikev2-keychain-keychain1-peer-peer1] identity address 1.1.1.1
# 配置对端peer1使用的预共享密钥为明文abcde。
[DeviceB-ikev2-keychain-keychain1-peer-peer1] pre-shared-key plaintext abcde
[DeviceB-ikev2-keychain-keychain1-peer-peer1] quit
[DeviceB-ikev2-keychain-keychain1] quit
# 创建IKEv2 profile,名称为profile1。
[DeviceB] ikev2 profile profile1
# 指定本端的身份认证方式为预共享密钥。
[DeviceB-ikev2-profile-profile1] authentication-method local pre-share
# 指定对端的身份认证方式为预共享密钥。
[DeviceB-ikev2-profile-profile1] authentication-method remote pre-share
# 指定引用的IKEv2 keychain为keychain1。
[DeviceB-ikev2-profile-profile1] keychain keychain1
# 配置匹配对端身份的规则为IP地址1.1.1.1/16。
[DeviceA-ikev2-profile-profile1] match remote identity address 1.1.1.1 255.255.0.0
[DeviceA-ikev2-profile-profile1] quit
# 创建一条IKEv2协商方式的IPsec安全策略,名称为use1,顺序号为10。
[DeviceB] ipsec policy use1 10 isakmp
# 配置IPsec隧道的对端IP地址为1.1.1.1。
[DeviceB-ipsec-policy-isakmp-use1-10] remote-address 1.1.1.1
# 指定引用ACL 3101。
[DeviceB-ipsec-policy-isakmp-use1-10] security acl 3101
# 指定引用的安全提议为tran1。
[DeviceB-ipsec-policy-isakmp-use1-10] transform-set tran1
# 指定引用的IKEv2 profile为profile1。
[DeviceB-ipsec-policy-isakmp-use1-10] ikev2-profile profile1
[DeviceB-ipsec-policy-isakmp-use1-10] quit
# 在接口GigabitEthernet0/0/1上应用IPsec安全策略use1。
[DeviceB] interface gigabitethernet 0/0/1
[DeviceB-GigabitEthernet0/0/1] ipsec apply policy use1
[DeviceB-GigabitEthernet0/0/1] quit
# 配置到Host A所在子网的静态路由。2.2.2.1为本例中的直连下一跳地址,实际使用中请以具体组网情况为准。
[DeviceB] ip route-static 10.1.1.0 255.255.255.0 2.2.2.1
以上配置完成后,Device A和Device B之间如果有子网10.1.1.0/24与子网10.1.2.0/24之间的报文通过,将触发IKEv2协商。
# 可通过如下显示信息查看到Device A上的IKEv2提议和IKEv2安全策略。
[DeviceA] display ikev2 proposal
IKEv2 proposal : default
Encryption: AES-CBC-128 3DES-CBC
Integrity: SHA1 MD5
PRF: SHA1 MD5
DH Group: MODP1536/Group5 MODP1024/Group2
[DeviceA] display ikev2 policy
IKEv2 policy : default
Match VRF : any
Proposal: default
Device B上IKEv2 提议和IKEv2安全策略的查看方式与Device A同,此处略。
# 可通过如下显示信息查看到Device A上IKEv2协商成功后生成的IKEv2 SA。
[DeviceA] display ikev2 sa
Tunnel ID Local Remote Status
---------------------------------------------------------------------------
1 1.1.1.1/500 2.2.2.2/500 EST
Status:
IN-NEGO: Negotiating, EST: Established, DEL:Deleting
# 可通过如下显示信息查看到IKEv2协商生成的IPsec SA。
[DeviceA] display ipsec sa
-------------------------------
Interface: GigabitEthernet0/0/1
-------------------------------
-----------------------------
IPsec policy: map1
Sequence number: 10
Mode: ISAKMP
-----------------------------
Tunnel id: 0
Encapsulation mode: tunnel
Perfect Forward Secrecy:
Inside VPN:
Extended Sequence Numbers enable: N
Traffic Flow Confidentiality enable: N
Path MTU: 1456
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: 3264152513 (0xc28f03c1)
Connection ID: 141733920771
Transform set: ESP-ENCRYPT-DES-CBC ESP-AUTH-SHA1
SA duration (kilobytes/sec): 1843200/3600
SA remaining duration (kilobytes/sec): 1843200/3484
Max received sequence-number:
Anti-replay check enable: Y
Anti-replay window size: 64
UDP encapsulation used for NAT traversal: N
Status: Active
[Outbound ESP SAs]
SPI: 738451674 (0x2c03e0da)
Connection ID: 64424509441
Transform set: ESP-ENCRYPT-DES-CBC ESP-AUTH-SHA1
SA duration (kilobytes/sec): 1843200/3600
SA remaining duration (kilobytes/sec): 1843200/3484
Max sent sequence-number:
UDP encapsulation used for NAT traversal: N
Status: Active
Device B上也会产生相应的IKEv2 SA和IPsec SA,查看方式与Device A同,此处略。
在Device A和Device B之间建立IPsec隧道,对Host A所在的子网(10.1.1.0/24)与Host B所在的子网(10.1.2.0/24)之间的数据流进行安全保护。
· Device A和Device B之间采用IKEv2协商方式建立IPsec SA。
· Device A和DeviceB均使用RSA数字签名的认证方法。
· Device A侧子网的IP地址为动态分配,并作为发起方。
图1-3 IKEv2 RSA数字签名认证典型组网图
(1) 配置Device A
# 配置各接口的IP地址,具体略。
# 配置ACL 3101,定义要保护由子网10.1.1.0/24去往子网10.1.2.0/24的数据流。
<DeviceA> system-view
[DeviceA] acl advanced 3101
[DeviceA-acl-ipv4-adv-3101] rule permit ip source 10.1.1.0 0.0.0.255 destination 10.1.2.0 0.0.0.255
[DeviceA-acl-ipv4-adv-3101] quit
# 创建IPsec安全提议tran1。
[DeviceA] ipsec transform-set tran1
# 配置安全协议对IP报文的封装形式为隧道模式。
[DeviceA-ipsec-transform-set-tran1] encapsulation-mode tunnel
# 配置采用的安全协议为ESP。
[DeviceA-ipsec-transform-set-tran1] protocol esp
# 配置ESP协议采用的加密算法为DES,认证算法为HMAC-SHA1。
[DeviceA-ipsec-transform-set-tran1] esp encryption-algorithm des-cbc
[DeviceA-ipsec-transform-set-tran1] esp authentication-algorithm sha1
[DeviceA-ipsec-transform-set-tran1] quit
# 创建PKI实体entity1。
[DeviceA] pki entity entity1
# 配置PKI实体的通用名。
[DeviceA-pki-entity-entity1] common-name devicea
[DeviceA-pki-entity-entity1] quit
# 创建PKI域domain1。
[DeviceA]pki domain domain1
# 配置证书申请模式为自动模式,并设置吊销证书时使用的口令。
[DeviceA-pki-domain-domain1] certificate request mode auto password simple 123
# 配置验证CA根证书时所使用的指纹。
[DeviceA-pki-domain-domain1] root-certificate fingerprint md5 50c7a2d282ea710a449eede6c56b102e
# 配置CA服务器名称。
[DeviceA-pki-domain-domain1] ca identifier 8088
# 配置实体通过SCEP进行证书申请的注册受理机构服务器的URL(此处的URL仅为示例,请以组网环境中的实际情况为准)。
[DeviceA-pki-domain-domain1] certificate request url http://192.168.222.1:446/eadbf9af4f2c4641e685f7a6021e7b298373feb7
# 配置证书申请的注册受理机构。
[DeviceA-pki-domain-domain1] certificate request from ca
# 配置指定用于申请证书的PKI实体名称。
[DeviceA-pki-domain-domain1] certificate request entity entity1
# 配置指定证书申请使用的RSA密钥对。
[DeviceA-pki-domain-domain1] public-key rsa general name rsa1
[DeviceA-pki-domain-domain1] quit
# 创建IKEv2 profile,名称为profile1。
[DeviceA] ikev2 profile profile1
# 指定本端的身份认证方式为RSA数字签名。
[DeviceA-ikev2-profile-profile1] authentication-method local rsa-signature
# 指定对端的身份认证方式为RSA数字签名。
[DeviceA-ikev2-profile-profile1] authentication-method remote rsa-signature
# 指定引用的PKI域为domain1。
[DeviceA-ikev2-profile-profile1] certificate domain domain1
# 配置FQDN名devicea.example.com作为本端的身份标识。
[DeviceA-ikev2-profile-profile1] identity local fqdn devicea.example.com
# 配置匹配对端身份的规则为FQDN名deviceb.example.com。
[DeviceA-ikev2-profile-profile1] match remote identity fqdn deviceb.example.com
[DeviceA-ikev2-profile-profile1] quit
# 创建IKEv2提议10。
[DeviceA] ikev2 proposal 10
# 指定IKEv2提议使用的完整性校验算法为HMAC-MD5。
[DeviceA-ikev2-proposal-10] integrity md5
# 指定IKEv2提议使用的加密算法为3DES。
[DeviceA-ikev2-proposal-10] encryption 3des-cbc
# 指定IKEv2提议使用的DH group为group1。
[DeviceA-ikev2-proposal-10] dh group1
# 指定IKEv2提议使用的PRF算法为HMAC-MD5。
[DeviceA-ikev2-proposal-10] prf md5
[DeviceA-ikev2-proposal-10] quit
# 创建IKEv2安全策略1。
[DeviceA] ikev2 policy 1
# 指定引用的IKEv2 proposal 10。
[DeviceA-ikev2-policy-1] proposal 10
[DeviceA-ikev2-policy-1] quit
# 创建一条IKEv2协商方式的IPsec安全策略,名称为map1,顺序号为10。
[DeviceA] ipsec policy map1 10 isakmp
# 配置IPsec隧道的对端IP地址为2.2.2.2。
[DeviceA-ipsec-policy-isakmp-map1-10] remote-address 2.2.2.2
# 指定引用的安全提议为tran1。
[DeviceA-ipsec-policy-isakmp-map1-10] transform-set tran1
# 指定引用ACL 3101。
[DeviceA-ipsec-policy-isakmp-map1-10] security acl 3101
# 指定引用的IKEv2 profile为profile1。
[DeviceA-ipsec-policy-isakmp-map1-10] ikev2-profile profile1
[DeviceA-ipsec-policy-isakmp-map1-10] quit
# 在接口GigabitEthernet0/0/1上应用IPsec安全策略map1。
[DeviceA] interface gigabitethernet 0/0/1
[DeviceA-GigabitEthernet0/0/1] ipsec apply policy map1
[DeviceA-GigabitEthernet0/0/1] quit
# 配置到Host B所在子网的静态路由。1.1.1.2为本例中的直连下一跳地址,实际使用中请以具体组网情况为准。
[DeviceA] ip route-static 10.1.2.0 255.255.255.0 1.1.1.2
(2) 配置Device B
# 配置各接口的IP地址,具体略。
# 配置ACL 3101,定义要保护由子网10.1.2.0/24去子网10.1.1.0/24的数据流。
[DeviceB] acl advanced 3101
[DeviceB-acl-ipv4-adv-3101] rule permit ip source 10.1.2.0 0.0.0.255 destination 10.1.1.0 0.0.0.255
[DeviceB-acl-ipv4-adv-3101] quit
# 创建IPsec安全提议tran1。
[DeviceB] ipsec transform-set tran1
# 配置安全协议对IP报文的封装形式为隧道模式。
[DeviceB-ipsec-transform-set-tran1] encapsulation-mode tunnel
# 配置采用的安全协议为ESP。
[DeviceB-ipsec-transform-set-tran1] protocol esp
# 配置ESP协议采用的加密算法为DES,认证算法为HMAC-SHA-1-96。
[DeviceB-ipsec-transform-set-tran1] esp encryption-algorithm des-cbc
[DeviceB-ipsec-transform-set-tran1] esp authentication-algorithm sha1
[DeviceB-ipsec-transform-set-tran1] quit
# 创建PKI实体entity2。
[DeviceB] pki entity entity2
# 配置PKI实体的通用名。
[DeviceB-pki-entity-entity2] common-name deviceb
[DeviceB-pki-entity-entity2] quit
# 创建PKI域domain2。
[DeviceB] pki domain domain2
# 配置证书申请模式为自动模式,并设置吊销证书时使用的口令。
[DeviceB-pki-domain-domain2] certificate request mode auto password simple 123
# 配置验证CA根证书时所使用的指纹。
[DeviceB-pki-domain-domain2] root-certificate fingerprint md5 50c7a2d282ea710a449eede6c56b102e
# 配置CA服务器名称。
[DeviceB-pki-domain-domain2] ca identifier 8088
# 配置实体通过SCEP进行证书申请的注册受理机构服务器的URL(此处的URL仅为示例,请以组网环境中的实际情况为准)。
[DeviceB-pki-domain-domain2] certificate request url http://192.168.222.1:446/eadbf9af4f2c4641e685f7a6021e7b298373feb7
# 配置证书申请的注册受理机构。
[DeviceB-pki-domain-domain2] certificate request from ca
# 配置指定用于申请证书的PKI实体名称。
[DeviceB-pki-domain-domain2] certificate request entity entity2
# 配置指定证书申请使用的RSA密钥对。
[DeviceB-pki-domain-domain2] public-key rsa general name rsa1
[DeviceB-pki-domain-domain2] quit
# 创建IKEv2 profile,名称为profile2。
[DeviceB] ikev2 profile profile2
# 指定本端的身份认证方式为RSA数字签名。
[DeviceB-ikev2-profile-profile2] authentication-method local rsa-signature
# 指定对端的身份认证方式为RSA数字签名。
[DeviceB-ikev2-profile-profile2] authentication-method remote rsa-signature
# 配置FQDN名deviceb.example.com作为本端的身份标识。
[DeviceB-ikev2-profile-profile2] identity local fqdn deviceb.example.com
# 配置匹配对端身份的规则为FQDN名devicea.example.com。
[DeviceB-ikev2-profile-profile2] match remote identity fqdn devicea.example.com
[DeviceB-ikev2-profile-profile2] quit
# 创建IKEv2提议10。
[DeviceB] ikev2 proposal 10
# 指定IKEv2提议使用的完整性校验算法为HMAC-MD5。
[DeviceB-ikev2-proposal-10] integrity md5
# 指定IKEv2提议使用的加密算法为3DES。
[DeviceB-ikev2-proposal-10] encryption 3des-cbc
# 指定IKEv2提议使用的DH group为group1。
[DeviceB-ikev2-proposal-10] dh group1
# 指定IKEv2提议使用的PRF算法为HMAC-MD5。
[DeviceB-ikev2-proposal-10] prf md5
[DeviceB-ikev2-proposal-10] quit
# 创建IKEv2安全策略1。
[DeviceB] ikev2 policy 1
# 指定引用的IKEv2 proposal 10。
[DeviceB-ikev2-policy-1] proposal 10
[DeviceB-ikev2-policy-1] quit
# 创建一条IPsec安全策略模板,名称为template1,顺序号为1。
[DeviceB] ipsec policy-template template1 1
# 配置IPsec隧道的对端IP地址为1.1.1.1。
[DeviceB-ipsec-policy-template-template1-1] remote-address 1.1.1.1
# 指定引用ACL 3101。
[DeviceB-ipsec-policy-template-template1-1] security acl 3101
# 指定引用的安全提议为tran1。
[DeviceB-ipsec-policy-template-template1-1] transform-set tran1
# 指定引用的IKEv2 profile为profile2。
[DeviceB-ipsec-policy-template-template1-1] ikev2-profile profile2
[DeviceB-ipsec-policy-template-template1-1] quit
# 引用IPsec安全策略模板创建一条IPsec安全策略,名称为use1,顺序号为1。
[DeviceB] ipsec policy use1 1 isakmp template template1
# 在接口GigabitEthernet0/0/1上应用IPsec安全策略use1。
[DeviceB] interface gigabitethernet 0/0/1
[DeviceB-GigabitEthernet0/0/1] ipsec apply policy use1
[DeviceB-GigabitEthernet0/0/1] quit
# 配置到Host A所在子网的静态路由。2.2.2.1为本例中的直连下一跳地址,实际使用中请以具体组网情况为准。
[DeviceB] ip route-static 10.1.1.0 255.255.255.0 2.2.2.1
以上配置完成后,Device A和Device B之间如果有子网10.1.1.0/24与子网10.1.2.0/24之间的报文通过,将触发IKEv2协商。
# 可通过如下显示信息查看到Device A和Device B上的IKEv2提议。
[DeviceA] display ikev2 proposal 10
IKEv2 proposal : 10
Encryption : 3DES-CBC
Integrity : MD5
PRF : MD5
DH Group : MODP768/Group1
[DeviceB] display ikev2 proposal 10
IKEv2 proposal : 10
Encryption : 3DES-CBC
Integrity : MD5
PRF : MD5
DH Group : MODP768/Group1
# 可通过如下显示信息查看到Device A和Device B上的IKEv2安全策略。
[DeviceA] display ikev2 policy 1
IKEv2 policy : 1
Priority: 100
Match Local : any
Match VRF : public
Proposal : 10
[DeviceB] display ikev2 policy 1
IKEv2 policy : 1
Priority: 100
Match Local : any
Match VRF : public
Proposal : 10
# 可通过如下显示信息查看到Device A上IKEv2协商成功后生成的IKEv2 SA。
[DeviceA] display ikev2 sa
Tunnel ID Local Remote Status
---------------------------------------------------------------------------
1 1.1.1.1/500 2.2.2.2/500 EST
Status:
IN-NEGO: Negotiating, EST: Established, DEL:Deleting
# 可通过如下显示信息查看到Device A上自动触发获取到的CA证书。
[DeviceA] display pki certificate domain domain1 ca
Certificate:
Data:
Version: 1 (0x0)
Serial Number:
b9:14:fb:25:c9:08:2c:9d:f6:94:20:30:37:4e:00:00
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=cn, O=rnd, OU=sec, CN=8088
Validity
Not Before: Sep 6 01:53:58 2012 GMT
Not After : Sep 8 01:50:58 2015 GMT
Subject: C=cn, O=rnd, OU=sec, CN=8088
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (1024 bit)
Modulus:
00:de:81:f4:42:c6:9f:c2:37:7b:21:84:57:d6:42:
00:69:1c:4c:34:a4:5e:bb:30:97:45:2b:5e:52:43:
c0:49:1f:e1:d8:0f:5c:48:c2:39:69:d1:84:e4:14:
70:3d:98:41:28:1c:20:a1:9a:3f:91:67:78:77:27:
d9:08:5f:7a:c4:36:45:8b:f9:7b:e7:7d:6a:98:bb:
4e:a1:cb:2c:3d:92:66:bd:fb:80:35:16:c6:35:f0:
ff:0b:b9:3c:f3:09:94:b7:d3:6f:50:8d:83:f1:66:
2f:91:0b:77:a5:98:22:b4:77:ac:84:1d:03:8e:33:
1b:31:03:78:4f:77:a0:db:af
Exponent: 65537 (0x10001)
Signature Algorithm: sha1WithRSAEncryption
9a:6d:8c:46:d3:18:8a:00:ce:12:ee:2b:b0:aa:39:5d:3f:90:
08:49:b9:a9:8f:0d:6e:7b:e1:00:fb:41:f5:d4:0c:e4:56:d8:
7a:a7:61:1d:2b:b6:72:e3:09:0b:13:9d:fa:c8:fc:c4:65:a7:
f9:45:21:05:75:2c:bf:36:7b:48:b4:4a:b9:fe:87:b9:d8:cf:
55:16:87:ec:07:1d:55:5a:89:74:73:68:5e:f9:1d:30:55:d9:
8a:8f:c5:d4:20:7e:41:a9:37:57:ed:8e:83:a7:80:2f:b8:31:
57:3a:f2:1a:28:32:ea:ea:c5:9a:55:61:6a:bc:e5:6b:59:0d:
82:16
# 可通过如下显示信息查看到Device A上自动触发申请到的本地证书。
[DeviceA]display pki certificate domain domain1 local
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
a1:f4:d4:fd:cc:54:c3:07:c4:9e:15:2d:5f:64:57:77
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=cn, O=rnd, OU=sec, CN=8088
Validity
Not Before: Sep 26 02:06:43 2012 GMT
Not After : Sep 26 02:06:43 2013 GMT
Subject: CN=devicea
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (1024 bit)
Modulus:
00:b0:a1:cd:24:6e:1a:1d:51:79:f0:2a:3e:9f:e9:
84:07:16:78:49:1b:7d:0b:22:f0:0a:ed:75:91:a4:
17:fd:c7:ef:d0:66:5c:aa:e3:2a:d9:71:12:e4:c6:
25:77:f0:1d:97:bb:92:a8:bd:66:f8:f8:e8:d5:0d:
d2:c8:01:dd:ea:e6:e0:80:ad:db:9d:c8:d9:5f:03:
2d:22:07:e3:ed:cc:88:1e:3f:0c:5e:b3:d8:0e:2d:
ea:d6:c6:47:23:6a:11:ef:3c:0f:6b:61:f0:ca:a1:
79:a0:b1:02:1a:ae:8c:c9:44:e0:cf:d1:30:de:4c:
f0:e5:62:e7:d0:81:5d:de:d3
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 CRL Distribution Points:
Full Name:
URI:http://xx.rsa.com:447/8088.crl
Signature Algorithm: sha1WithRSAEncryption
73:ac:66:f9:b8:b5:39:e1:6a:17:e4:d0:72:3e:26:9e:12:61:
9e:c9:7a:86:6f:27:b0:b9:a3:5d:02:d9:5a:cb:79:0a:12:2e:
cb:e7:24:57:e6:d9:77:12:6b:7a:cf:ee:d6:17:c5:5f:d2:98:
30:e0:ef:00:39:4a:da:ff:1c:29:bb:2a:5b:60:e9:33:8f:78:
f9:15:dc:a5:a3:09:66:32:ce:36:cd:f0:fe:2f:67:e5:72:e5:
21:62:85:c4:07:92:c8:f1:d3:13:9c:2e:42:c1:5f:0e:8f:ff:
65:fb:de:7c:ed:53:ab:14:7a:cf:69:f2:42:a4:44:7c:6e:90:
7e:cd
# 可通过如下显示信息查看到Device A上IKEv2协商生成的IPsec SA。
[DeviceA] display ipsec sa
-------------------------------
Interface: GigabitEthernet0/0/1
-------------------------------
-----------------------------
IPsec policy: map1
Sequence number: 10
Mode: ISAKMP
-----------------------------
Tunnel id: 0
Encapsulation mode: tunnel
Perfect Forward Secrecy:
Inside VPN:
Extended Sequence Numbers enable: N
Traffic Flow Confidentiality enable: N
Path MTU: 1456
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: 3264152513 (0xc28f03c1)
Connection ID: 141733920771
Transform set: ESP-ENCRYPT-DES-CBC ESP-AUTH-SHA1
SA duration (kilobytes/sec): 1843200/3600
SA remaining duration (kilobytes/sec): 1843200/3484
Max received sequence-number:
Anti-replay check enable: Y
Anti-replay window size: 64
UDP encapsulation used for NAT traversal: N
Status: Active
[Outbound ESP SAs]
SPI: 738451674 (0x2c03e0da)
Connection ID: 141733920770
Transform set: ESP-ENCRYPT-DES-CBC ESP-AUTH-SHA1
SA duration (kilobytes/sec): 1843200/3600
SA remaining duration (kilobytes/sec): 1843200/3484
Max sent sequence-number:
UDP encapsulation used for NAT traversal: N
Status: Active
Device B上也会产生相应的IKEv2 SA和IPsec SA,并自动获取CA证书,自动申请本地证书,查看方式与Device A同,此处略。
Device A在NAT安全网关内网侧。要求在Device A和Device B之间建立一个IPsec隧道,对Host A所在的子网(10.1.1.2/24)与Host B所在的子网(10.1.2.2/24)之间的数据流进行安全保护。具体需要求如下:
· 协商双方使用缺省的IKEv2安全提议和IKEv2安全策略。
· 第一阶段协商的认证方法为预共享密钥认证。
图1-4 IKEv2 NAT穿越典型组网图
(1) 配置Device A
# 配置各接口的IP地址,具体略。
# 配置ACL 3101,定义要保护由子网10.1.1.0/24去往子网10.1.2.0/24的数据流。
<DeviceA> system-view
[DeviceA] acl advanced 3101
[DeviceA-acl-ipv4-adv-3101] rule 0 permit ip source 10.1.1.0 0.0.0.255 destination 10.1.2.0 0.0.0.255
[DeviceA-acl-ipv4-adv-3101] quit
# 创建IPsec安全提议transform1。
[DeviceA] ipsec transform-set transform1
# 配置采用的安全协议为ESP。
[DeviceA-ipsec-transform-set-transform1] protocol esp
# 配置ESP协议采用的加密算法为3DES,认证算法为HMAC-MD5。
[DeviceA-ipsec-transform-set-transform1] esp encryption-algorithm 3des-cbc
[DeviceA-ipsec-transform-set-transform1] esp authentication-algorithm md5
[DeviceA-ipsec-transform-set-transform1] quit
# 创建IKEv2 keychain,名称为keychain1。
[DeviceA] ikev2 keychain keychain1
# 创建IKEV2对端,名称为peer1。
[DeviceA-ikev2-keychain-keychain1] peer peer1
# 指定对端peer1的主机地址为2.2.2.2/16。
[DeviceA-ikev2-keychain-keychain1-peer-peer1] address 2.2.2.2 16
# 指定对端 peer1 的身份信息。
[DeviceA-ikev2-keychain-keychain1-peer-peer1] identity address 2.2.2.2
# 配置对端peer1使用的预共享密钥为明文123。
[DeviceA-ikev2-keychain-keychain1-peer-peer1] pre-shared-key plaintext 123
[DeviceA-ikev2-keychain-keychain1-peer-peer1] quit
[DeviceA-ikev2-keychain-keychain1] quit
# 创建IKEv2 profile,名称为profile1。
[DeviceA] ikev2 profile profile1
# 指定引用的IKEv2 keychain为keychain1。
[DeviceA-ikev2-profile-profile1] keychain keychain1
# 配置本端身份为FQDN名称devicea.example.com。
[DeviceA-ikev2-profile-profile1] identity local fqdn devicea.example.com
# 配置匹配对端身份的规则为IP地址2.2.2.2/16。
[DeviceA-ikev2-profile-profile1] match remote identity address 2.2.2.2 255.255.0.0
# 指定本端的身份认证方式为预共享密钥。
[DeviceA-ikev2-profile-profile1] authentication-method local pre-share
# 指定对端的身份认证方式为预共享密钥。
[DeviceA-ikev2-profile-profile1] authentication-method remote pre-share
[DeviceA-ikev2-profile-profile1] quit
# 创建一条IKEv2协商方式的IPsec安全策略,名称为policy1,顺序号为1。
[DeviceA] ipsec policy policy1 1 isakmp
# 配置IPsec隧道的对端IP地址为2.2.2.2。
[DeviceA-ipsec-policy-isakmp-policy1-1] remote-address 2.2.2.2
# 指定引用的安全提议为transform1。
[DeviceA-ipsec-policy-isakmp-policy1-1] transform-set transform1
# 指定引用ACL 3101。
[DeviceA-ipsec-policy-isakmp-policy1-1] security acl 3101
# 指定引用的IKEv2 profile为profile1。
[DeviceA-ipsec-policy-isakmp-policy1-1] ikev2-profile profile1
[DeviceA-ipsec-policy-isakmp-policy1-1] quit
# 在接口GigabitEthernet0/0/1上应用IPsec安全策略policy1。
[DeviceA] interface gigabitethernet 0/0/1
[DeviceA-GigabitEthernet0/0/1] ipsec apply policy policy1
[DeviceA-GigabitEthernet0/0/1] quit
# 配置到Host B所在子网的静态路由。
[DeviceA] ip route-static 10.1.2.0 255.255.255.0 1.1.1.2
(2) 配置Device B
# 配置各接口的IP地址,具体略。
# 配置ACL 3101,定义要保护由子网10.1.2.0/24去往子网10.1.1.0/24的数据流。
<DeviceB> system-view
[DeviceB] acl advanced 3101
[DeviceB-acl-ipv4-adv-3101] rule 0 permit ip source 10.1.2.0 0.0.0.255 destination 10.1.1.0 0.0.0.255
[DeviceB-acl-ipv4-adv-3101] quit
# 创建IPsec安全提议transform1。
[DeviceB] ipsec transform-set transform1
# 配置采用的安全协议为ESP。
[DeviceB-ipsec-transform-set-transform1] protocol esp
# 配置ESP协议采用的加密算法为3DES,认证算法为HMAC-MD5。
[DeviceB-ipsec-transform-set-transform1] esp encryption-algorithm 3des-cbc
[DeviceB-ipsec-transform-set-transform1] esp authentication-algorithm md5
[DeviceB-ipsec-transform-set-transform1] quit
# 创建IKEv2 keychain,名称为keychain1。
[DeviceB]ikev2 keychain keychain1
# 创建IKEV2对端,名称为peer1。
[DeviceB-ikev2-keychain-keychain1] peer peer1
# 指定对端 peer1 的主机地址为3.3.3.1/16。
[DeviceB-ikev2-keychain-keychain1-peer-peer1] address 3.3.3.1 16
# 指定对端 peer1的身份信息。
[DeviceB-ikev2-keychain-keychain1-peer-peer1] identity address 3.3.3.1
# 配置对端peer1使用的预共享密钥为明文123。
[DeviceB-ikev2-keychain-keychain1-peer-peer1] pre-shared-key plaintext 123
[DeviceB-ikev2-keychain-keychain1-peer-peer1] quit
[DeviceB-ikev2-keychain-keychain1] quit
# 创建IKEv2 profile,名称为profile1。
[DeviceB] ikev2 profile profile1
# 指定引用的IKEv2 keychain为keychain1。
[DeviceB-ikev2-profile-profile1] keychain keychain1
# 配置匹配对端身份的规则为FQDN名称devicea.example.com。
[DeviceB-ikev2-profile-profile1] match remote identity fqdn devicea.example.com
# 指定本端的身份认证方式为预共享密钥。
[DeviceB-ikev2-profile-profile1] authentication-method local pre-share
# 指定对端的身份认证方式为预共享密钥。
[DeviceB-ikev2-profile-profile1] authentication-method remote pre-share
[DeviceB-ikev2-profile-profile1] quit
# 创建一个IKEv2协商方式的IPsec安全策略模板,名称为template1,顺序号为1。
[DeviceB] ipsec policy-template template1 1
# 配置IPsec隧道的对端IP地址为3.3.3.1。
[DeviceB-ipsec-policy-template-template1-1] remote-address 3.3.3.1
# 指定引用ACL 3101。
[DeviceB-ipsec-policy-template-template1-1] security acl 3101
# 指定引用的安全提议为transform1。
[DeviceB-ipsec-policy-template-template1-1] transform-set transform1
# 指定引用的IKEv2 profile为profile1。
[DeviceB-ipsec-policy-template-template1-1] ikev2-profile profile1
[DeviceB-ipsec-policy-template-template1-1] quit
# 引用IPsec安全策略模板创建一条IKEv2协商方式的IPsec安全策略,名称为policy1,顺序号1。
[DeviceB] ipsec policy policy1 1 isakmp template template1
# 在接口GigabitEthernet0/0/1上应用安全策略policy1。
[DeviceB] interface gigabitethernet 0/0/1
[DeviceB-GigabitEthernet0/0/1] ipsec apply policy policy1
[DeviceB-GigabitEthernet0/0/1] quit
# 配置到Host A所在子网的静态路由。2.2.2.1为本例中的直连下一跳地址,实际使用中请以具体组网情况为准。
[DeviceB] ip route-static 10.1.1.0 255.255.255.0 2.2.2.1
以上配置完成后,子网10.1.1.0/24若向子网10.1.2.0/24发送报文,将触发IKEv2协商。
# 可通过如下显示信息查看到Device A上IKEv2协商成功后生成的IKEv2 SA。
[DeviceA] display ikev2 sa
Tunnel ID Local Remote Status
---------------------------------------------------------------------------
1 1.1.1.1/4500 2.2.2.2/4500 EST
Status:
IN-NEGO: Negotiating, EST: Established, DEL:Deleting
[DeviceA] display ikev2 sa verbose
Tunnel ID: 45
Local IP/Port: 1.1.1.1/4500
Remote IP/Port: 2.2.2.2/4500
Outside VRF: -
Inside VRF: -
Local SPI: 372228d699a33c63
Remote SPI: 75c537621b4a7190
Local ID type: ID_FQDN
Local ID: devicea.example.com
Remote ID type: ID_IPV4_ADDR
Remote ID: 2.2.2.2
Auth sign method: Pre-shared key
Auth verify method: Pre-shared key
Integrity algorithm: SHA1
PRF algorithm: SHA1
Encryption algorithm: AES-CBC-128
Life duration: 86400 secs
Remaining key duration: 86177 secs
Diffie-Hellman group: MODP1536/Group5
NAT traversal: Detected
DPD: Interval 0 secs, retry interval 0 secs
Transmitting entity: Initiator
Local window: 1
Remote window: 1
Local request message ID: 2
Remote request message ID: 0
Local next message ID: 2
Remote next message ID: 0
# 可通过如下显示信息查看到IKEv2协商生成的IPsec SA。
[DeviceA] display ipsec sa
-------------------------------
Interface: GigabitEthernet0/0/1
-------------------------------
-----------------------------
IPsec policy: policy1
Sequence number: 1
Mode: ISAKMP
-----------------------------
Tunnel id: 0
Encapsulation mode: tunnel
Perfect Forward Secrecy:
Inside VPN:
Extended Sequence Numbers enable: N
Traffic Flow Confidentiality enable: N
Path MTU: 1435
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: 830667426 (0x3182faa2)
Connection ID: 605590388736
Transform set: ESP-ENCRYPT-3DES-CBC ESP-AUTH-MD5
SA duration (kilobytes/sec): 1843200/3600
SA remaining duration (kilobytes/sec): 1843200/2313
Max received sequence-number:
Anti-replay check enable: Y
Anti-replay window size: 64
UDP encapsulation used for NAT traversal: Y
Status: Active
[Outbound ESP SAs]
SPI: 3516214669 (0xd1952d8d)
Connection ID: 227633266689
Transform set: ESP-ENCRYPT-3DES-CBC ESP-AUTH-MD5
SA duration (kilobytes/sec): 1843200/3600
SA remaining duration (kilobytes/sec): 1843200/2313
Max sent sequence-number:
UDP encapsulation used for NAT traversal: Y
Status: Active
通过如下命令查看当前的IKEv2 SA信息,发现IKEv2 SA的状态(Status字段)为IN-NEGO。
<Sysname> display ikev2 sa
Tunnel ID Local Remote Status
---------------------------------------------------------------------------
5 123.234.234.124/500 123.234.234.123/500 IN-NEGO
Status:
IN-NEGO: Negotiating, EST: Established, DEL:Deleting
IKEv2提议配置错误。
(1) 排查IKEv2相关配置。具体包括:检查两端的IKEv2提议是否匹配,即IKEv2提议中的认证方法、认证算法、加密算法、PRF算法是否匹配。
(2) 修改IKEv2提议的配置,使本端IKEv2提议的配置和对端匹配。
通过display ikev2 sa命令查看当前的IKEv2 SA信息,发现IKEv2 SA协商成功,其状态(Status字段)为EST。但通过display ipsec sa命令查看当前的IPsec SA时,发现没有协商出相应的IPsec SA。
IPsec安全策略参数配置错误。
(1) 排查IPsec相关配置。具体包括:检查双方接口上应用的IPsec安全策略的参数是否匹配,即引用的IPsec安全提议的协议、加密算法和认证算法是否匹配。
(2) 修改IPsec策略配置,使本端IPsec安全策略的配置和对端匹配。
双方的ACL配置正确,也有相匹配的IKEv2安全提议,但安全隧道无法建立或者存在安全隧道却无法通信。
这种情况一般是由于网络状态不稳定,安全隧道建立好以后,有一方的设备重启造成了两端的IKEv2 SA或者IPsec SA不对称。
使用display ikev2 sa命令检查双方是否都已建立IKEv2 SA。如果有一端存在的IKEv2 SA在另一端上不存在,请先使用reset ikev2 sa命令清除双方不对称存在的IKEv2 SA,并重新发起协商;如果两端存在对称的IKEv2 SA,则使用display ipsec sa命令查看接口上的安全策略是否已建立了对称的IPsec SA。如果一端存在的IPsec SA在另一端上不存在,请使用reset ipsec sa命令清除双方不对称存在的IPsec SA,并重新发起协商。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!