简介
本文档介绍如何使用HSRP为Cisco路由器上的IKEv2基于路由的隧道配置IPsec冗余。
先决条件
要求
Cisco 建议您了解以下主题:
- 站点到站点 VPN
- 热备份路由器协议[HSRP]
- IPsec和IKEv2基础知识
使用的组件
本文档中的信息基于以下软件和硬件版本:
- 运行IOS XE软件版本17.03.08a的Cisco CSR1000v路由器
- 运行Cisco IOS软件版本15.2的第2层交换机
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
配置
网络图

主/辅路由器配置
使用HSRP配置物理接口
配置主要路由器(优先级较高)和辅助路由器(默认优先级为100)的物理接口:
主路由器:
interface GigabitEthernet1
ip address 10.106.60.20 255.255.255.0
standby 1 ip 10.106.60.22
standby 1 priority 105
standby 1 preempt
standby 1 name VPN-HSRP
辅助路由器:
interface GigabitEthernet1
ip address 10.106.60.21 255.255.255.0
standby 1 ip 10.106.60.22
standby 1 preempt
standby 1 name VPN-HSRP
注意:确保为默认主路由器配置了更高的优先级,以使其成为活动对等体,即使两台路由器都已启动并运行且没有任何问题。在本示例中,主路由器的优先级配置为105,而辅助路由器的优先级配置为100(这是HSRP的默认值)。
配置IKEv2建议和策略
使用您选择的加密、散列和DH组配置IKEv2提议,并将其映射到IKEv2策略。
crypto ikev2 proposal prop-1
encryption aes-cbc-256
integrity sha256
group 14
crypto ikev2 policy IKEv2_POL
proposal prop-1
配置密钥环
配置密钥环以存储用于验证对等体的预共享密钥。
crypto ikev2 keyring keys
peer 10.106.70.10
address 10.106.70.10
pre-shared-key local C!sco123
pre-shared-key remote C!sco123
配置IKEv2配置文件
配置IKEv2配置文件并附加密钥环。将本地地址设置为用于HSRP的虚拟IP地址,将远程地址设置为路由器面向互联网接口的IP。
crypto ikev2 profile IKEv2_PROF
match identity remote address 10.106.70.10 255.255.255.255
identity local address 10.106.60.22
authentication remote pre-share
authentication local pre-share
keyring local keys
配置IPsec转换集
使用IPsec转换集配置加密和散列的第2阶段参数。
crypto ipsec transform-set ipsec-prop esp-aes 256 esp-sha256-hmac
配置IPsec配置文件
配置IPsec配置文件以映射IKEv2配置文件和IPsec转换集。IPsec配置文件将应用于隧道接口。
crypto ipsec profile IPsec_PROF
set transform-set ipsec-prop
set ikev2-profile IKEv2_PROF
配置虚拟隧道接口
配置虚拟隧道接口以指定隧道源和目标。这些IP将用于加密通过隧道的流量。确保IPsec配置文件也应用于此接口,如下所示。
interface Tunnel0
ip address 10.10.10.10 255.255.255.0
tunnel source 10.106.60.22
tunnel mode ipsec ipv4
tunnel destination 10.106.70.10
tunnel protection ipsec profile IPsec_PROF
注意:您需要指定用于HSRP的虚拟IP作为隧道源。使用物理接口(在本场景中为GigabitEthernet1)将导致隧道协商失败。
配置动态和/或静态路由
您必须根据需求和网络设计使用动态路由协议和/或静态路由配置路由。在本示例中,结合使用EIGRP和静态路由来建立底层通信以及在站点到站点隧道上传输重叠数据流量。
router eigrp 10
network 10.10.10.0 0.0.0.255
network 10.106.60.0 0.0.0.255
ip route 192.168.30.0 255.255.255.0 Tunnel0
注意:确保通告此场景中为10.10.10.0/24的隧道接口子网。
对等路由器配置
配置IKEv2建议和策略
使用您选择的加密、散列和DH组配置IKEv2提议,并将其映射到IKEv2策略。
crypto ikev2 proposal prop-1
encryption aes-cbc-256
integrity sha256
group 14
crypto ikev2 policy IKEv2_POL
proposal prop-1
配置密钥环
配置密钥环以存储用于验证对等体的预共享密钥。
crypto ikev2 keyring keys
peer 10.106.60.22
address 10.106.60.22
pre-shared-key local C!sco123
pre-shared-key remote C!sco123
注意:此处使用的对等IP地址是在对等体的HSRP配置中配置的虚拟IP地址。确保没有为主要/辅助对等体的物理接口IP配置密钥环。
配置IKEv2配置文件
配置IKEv2配置文件并附加密钥环。将本地地址设置为路由器面向互联网接口的IP,将远程地址设置为主/辅助对等体上用于HSRP的虚拟IP地址。
crypto ikev2 profile IKEv2_PROF
match identity remote address 10.106.60.22 255.255.255.255
identity local address 10.106.70.10
authentication remote pre-share
authentication local pre-share
keyring local keys
配置IPsec转换集
使用IPsec转换集配置加密和散列的第2阶段参数。
crypto ipsec transform-set ipsec-prop esp-aes 256 esp-sha256-hmac
配置IPsec配置文件
配置IPsec配置文件以映射IKEv2配置文件和IPsec转换集。IPsec配置文件将应用于隧道接口。
crypto ipsec profile IPsec_PROF
set transform-set ipsec-prop
set ikev2-profile IKEv2_PROF
配置虚拟隧道接口
配置虚拟隧道接口以指定隧道源和目标。必须将隧道目标设置为主/辅助对等体上用于HSRP的虚拟IP。确保IPsec配置文件也应用于此接口,如下所示。
interface Tunnel0
ip address 10.10.10.11 255.255.255.0
tunnel source GigabitEthernet1
tunnel mode ipsec ipv4
tunnel destination 10.106.60.22
tunnel protection ipsec profile IPsec_PROF
配置动态和/或静态路由
使用动态路由协议或静态路由配置所需的路由,就像您为其他终端配置路由一样。
router eigrp 10
network 10.10.10.0 0.0.0.255
network 10.106.70.0 0.0.0.255
ip route 192.168.10.0 255.255.255.0 Tunnel0
验证
为了了解预期行为,下面提供了三个场景。
场景1:主路由器和辅助路由器都处于活动状态
由于主路由器配置了更高的优先级,因此会在此路由器上协商并建立IPsec隧道。要检验两台路由器的状态,您可以使用命show standby
令。
pri-router#show standby
GigabitEthernet1 - Group 1
State is Active
7 state changes, last state change 00:00:21
Virtual IP address is 10.106.60.22
Active virtual MAC address is 0000.0c07.ac01 (MAC In Use)
Local virtual MAC address is 0000.0c07.ac01 (v1 default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 0.864 secs
Preemption enabled
Active router is local
Standby router is 10.106.60.21, priority 100 (expires in 9.872 sec)
Priority 105 (configured 105)
Group name is "VPN-HSRP" (cfgd)
FLAGS: 1/1
sec-router#show standby
GigabitEthernet1 - Group 1
State is Standby
11 state changes, last state change 00:00:49
Virtual IP address is 10.106.60.22
Active virtual MAC address is 0000.0c07.ac01 (MAC Not In Use)
Local virtual MAC address is 0000.0c07.ac01 (v1 default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 1.888 secs
Preemption enabled
Active router is 10.106.60.20, priority 105 (expires in 8.768 sec)
Standby router is local
Priority 100 (default 100)
Group name is "VPN-HSRP" (cfgd)
FLAGS: 0/1
要验证隧道的第1阶段(IKEv2)和第2阶段(IPsec)安全关联,您可以使用show crypto ikev2 sa
和show crypto ipsec sa
命令。
pri-router#show crypto ikev2 sa
IPv4 Crypto IKEv2 SA
Tunnel-id Local Remote fvrf/ivrf Status
1 10.106.60.22/500 10.106.70.10/500 none/none READY
Encr: AES-CBC, keysize: 256, PRF: SHA256, Hash: SHA256, DH Grp:14, Auth sign: PSK, Auth verify: PSK
Life/Active Time: 86400/444 sec
IPv6 Crypto IKEv2 SA
pri-router#show crypto ipsec sa
interface: Tunnel0
Crypto map tag: Tunnel0-head-0, local addr 10.106.60.22
protected vrf: (none)
local ident (addr/mask/prot/port): (0.0.0.0/0.0.0.0/0/0)
remote ident (addr/mask/prot/port): (0.0.0.0/0.0.0.0/0/0)
current_peer 10.106.70.10 port 500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 36357, #pkts encrypt: 36357, #pkts digest: 36357
#pkts decaps: 36354, #pkts decrypt: 36354, #pkts verify: 36354
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr. failed: 0
#pkts not decompressed: 0, #pkts decompress failed: 0
#send errors 0, #recv errors 0
local crypto endpt.: 10.106.60.22, remote crypto endpt.: 10.106.70.10
plaintext mtu 1438, path mtu 1500, ip mtu 1500, ip mtu idb GigabitEthernet1
current outbound spi: 0x4967630D(1231512333)
PFS (Y/N): N, DH group: none
inbound esp sas:
spi: 0xBA711B5E(3127974750)
transform: esp-256-aes esp-sha256-hmac ,
in use settings ={Tunnel, }
conn id: 2216, flow_id: CSR:216, sibling_flags FFFFFFFF80000048, crypto map: Tunnel0-head-0
sa timing: remaining key lifetime (k/sec): (4607986/3022)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE(ACTIVE)
inbound ah sas:
inbound pcp sas:
outbound esp sas:
spi: 0x4967630D(1231512333)
transform: esp-256-aes esp-sha256-hmac ,
in use settings ={Tunnel, }
conn id: 2215, flow_id: CSR:215, sibling_flags FFFFFFFF80000048, crypto map: Tunnel0-head-0
sa timing: remaining key lifetime (k/sec): (4607992/3022)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE(ACTIVE)
outbound ah sas:
outbound pcp sas:
场景2:主路由器处于非活动状态,辅助路由器处于活动状态
在主路由器出现故障或关闭的情况下,辅助路由器将成为活动路由器,站点到站点隧道将与此路由器协商。
可使用命令再次检验辅助路由器的HSRP状show standby
态。
sec-router#show standby
GigabitEthernet1 - Group 1
State is Active
12 state changes, last state change 00:00:37
Virtual IP address is 10.106.60.22
Active virtual MAC address is 0000.0c07.ac01 (MAC In Use)
Local virtual MAC address is 0000.0c07.ac01 (v1 default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 0.208 secs
Preemption enabled
Active router is local
Standby router is unknown
Priority 100 (default 100)
Group name is "VPN-HSRP" (cfgd)
FLAGS: 1/1
此外,当这种中断发生时,您还将观察以下日志。这些日志还显示辅助路由器现在处于活动状态,并且隧道已建立。
*Jul 18 10:28:21.881: %HSRP-5-STATECHANGE: GigabitEthernet1 Grp 1 state Standby -> Active
*Jul 18 10:28:44.647: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to up
要检查第1阶段和第2阶段安全关联,可以再次使用show crypto ikev2 sa
show crypto ipsec sa
和,如下所示。
sec-router#show crypto ikev2 sa
IPv4 Crypto IKEv2 SA
Tunnel-id Local Remote fvrf/ivrf Status
1 10.106.60.22/500 10.106.70.10/500 none/none READY
Encr: AES-CBC, keysize: 256, PRF: SHA256, Hash: SHA256, DH Grp:14, Auth sign: PSK, Auth verify: PSK
Life/Active Time: 86400/480 sec
IPv6 Crypto IKEv2 SA
sec-router# show crypto ipsec sa
interface: Tunnel0
Crypto map tag: Tunnel0-head-0, local addr 10.106.60.22
protected vrf: (none)
local ident (addr/mask/prot/port): (0.0.0.0/0.0.0.0/0/0)
remote ident (addr/mask/prot/port): (0.0.0.0/0.0.0.0/0/0)
current_peer 10.106.70.10 port 500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 112, #pkts encrypt: 112, #pkts digest: 112
#pkts decaps: 112, #pkts decrypt: 112, #pkts verify: 112
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr. failed: 0
#pkts not decompressed: 0, #pkts decompress failed: 0
#send errors 0, #recv errors 0
local crypto endpt.: 10.106.60.22, remote crypto endpt.: 10.106.70.10
plaintext mtu 1438, path mtu 1500, ip mtu 1500, ip mtu idb GigabitEthernet1
current outbound spi: 0xFC4207BF(4232185791)
PFS (Y/N): N, DH group: none
inbound esp sas:
spi: 0x5F6EE796(1601103766)
transform: esp-256-aes esp-sha256-hmac ,
in use settings ={Tunnel, }
conn id: 2170, flow_id: CSR:170, sibling_flags FFFFFFFF80000048, crypto map: Tunnel0-head-0
sa timing: remaining key lifetime (k/sec): (4607988/3107)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE(ACTIVE)
inbound ah sas:
inbound pcp sas:
outbound esp sas:
spi: 0xFC4207BF(4232185791)
transform: esp-256-aes esp-sha256-hmac ,
in use settings ={Tunnel, }
conn id: 2169, flow_id: CSR:169, sibling_flags FFFFFFFF80000048, crypto map: Tunnel0-head-0
sa timing: remaining key lifetime (k/sec): (4607993/3107)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE(ACTIVE)
outbound ah sas:
outbound pcp sas:
场景3:主路由器恢复运行,辅助路由器进入备用状态
一旦主路由器恢复并且不再关闭,它将再次成为活动路由器,因为它配置了更高的优先级,并且辅助路由器进入备用模式。
在此场景中,发生此转换时,您会在主路由器和辅助路由器上看到这些日志。
在主路由器上,会显示以下日志:
*Jul 18 11:47:46.590: %HSRP-5-STATECHANGE: GigabitEthernet1 Grp 1 state Listen -> Active
*Jul 18 11:48:07.945: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to up
在辅助路由器上,您会看到以下日志,表明辅助路由器再次成为备用路由器:
*Jul 18 11:47:46.370: %HSRP-5-STATECHANGE: GigabitEthernet1 Grp 1 state Active -> Speak
*Jul 18 11:47:52.219: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to down
*Jul 18 11:47:57.806: %HSRP-5-STATECHANGE: GigabitEthernet1 Grp 1 state Speak -> Standby
要检查第1阶段和第2阶段安全关联的状态,可使用和show crypto ikev2 sa
检show crypto ipsec sa
查相同情况。
注意:如果路由器上配置了多个正在运行的隧道,则可以使用show crypto session remote X.X.X.X和show crypto ipsec sa peer X.X.X.X命令检查隧道的阶段1和阶段2状态。
故障排除
本部分提供了可用于对配置进行故障排除的信息。
可以启用这些调试以对IKEv2隧道进行故障排除。
debug crypto ikev2
debug crypto ikev2 error
debug crypto ikev2 internal
debug crypto ipsec
debug crypto ipsec error
debug crypto ipsec message
注意:如果您希望仅排除一个隧道的故障(如果设备处于生产中则必须如此),则必须使用命令启用条件调试。 debug crypto condition peer ipv4 X.X.X.X.