簡介
本文檔介紹如何使用HSRP為思科路由器上的IKEv2基於路由的隧道配置IPsec冗餘。
必要條件
需求
思科建議您瞭解以下主題:
- 站點到站點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.