目錄

簡介

必要條件

需求

採用元件

限制

授權

背景資訊

需要額外的金鑰交換

設定

網路圖表

ASA配置

配置ASA介面

使用多金鑰交換配置IKEv2策略並在外部介面上啟用IKEv2

配置隧道組

設定相關流量和加密ACL

配置身份NAT（可選）

配置IKEv2 IPSec提議

配置加密對映並將其繫結到介面

本地ASA最終配置

遠端ASA最終配置

驗證

疑難排解

簡介

本文檔介紹如何使用IKEv2多金鑰交換在兩個思科ASA之間配置站點到站點IKEv2 VPN連線。

必要條件

需求

思科建議您瞭解以下主題：

- 思科調適型安全裝置(ASA)

- 一般IKEv2概念

採用元件

本文檔中的資訊基於運行9.20.1的Cisco ASA。

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路運作中，請確保您瞭解任何指令可能造成的影響。

限制

IKEv2多金鑰交換具有以下限制：

- 僅ASA CLI支援

- 在多情景和HA裝置上支援

- 群集裝置不支援

授權

許可要求與ASA上的站點到站點VPN的許可要求相同。

背景資訊

需要額外的金鑰交換

大量子電腦的出現給安全系統帶來了巨大的風險，尤其是那些使用公鑰密碼系統的系統。量子電腦可以輕易地破壞那些被認為對普通電腦來說非常困難的密碼學方法。因此，人們需要轉向新的量子抗性方法，也稱為後量子密碼術(PQC)演算法。目的是通過使用多個金鑰交換來增強IPsec通訊的安全性。這涉及將傳統金鑰交換和後量子金鑰交換相結合。此方法可確保生成的交換至少與傳統金鑰交換一樣強大，從而增加一層安全性。

計畫通過新增對多個金鑰交換的支援來改進IKEv2。這些額外的金鑰交換可以處理免受量子威脅的演算法。為了交換這些附加金鑰的資訊，引入了一種稱為中間交換的新消息型別。這些金鑰交換使用常規IKEv2方法通過SA負載進行協商。

設定

本節介紹ASA配置。

網路圖表

本檔案中的資訊使用以下網路設定：

ASA配置

配置ASA介面

如果未配置ASA介面，請確保至少配置IP地址、介面名稱和安全級別：

interface GigabitEthernet0/0

nameif outside

security-level 0

ip address 10.10.10.10 255.255.255.0

!

interface GigabitEthernet0/1

nameif inside

security-level 100

ip address 192.168.0.1 255.255.255.0

附註：確保同時連線到內部和外部網路，尤其是連線到用於建立站點到站點VPN隧道的遠端對等裝置。您可以使用ping驗證基本連線。

使用多金鑰交換配置IKEv2策略並在外部介面上啟用IKEv2

要為這些連線配置IKEv2策略，請輸入以下命令：

crypto ikev2 policy 10

encryption aes-256

integrity sha256

group 20

prf sha256

lifetime seconds 86400

其他金鑰交換轉換可在下使用crypto ikev2 policy命令進行配additional-key-exchange置。總共可以配置七個額外的exchange轉換。在此範例中，已設定兩個額外的Exchange變換（使用DH群組21和31）。

additional-key-exchange 1

key-exchange-method 21

additional-key-exchange 2

key-exchange-method 31

最終的IKEv2策略如下所示：

crypto ikev2 policy 10

encryption aes-256

integrity sha256

group 20

prf sha256

lifetime seconds 86400

additional-key-exchange 1

key-exchange-method 21

additional-key-exchange 2

key-exchange-method 31

附註：當來自兩個對等體的兩個策略包含相同的身份驗證、加密、雜湊、Diffie-Hellman引數和其他金鑰交換引數值時，存在IKEv2策略匹配。

必須在終止VPN隧道的介面上啟用IKEv2。通常情況下，這是外部（或網際網路）介面。要啟用IKEv2，請在全域性配置模式下輸入命令crypto ikev2 enable outside。

配置隧道組

對於站點到站點隧道，連線配置檔案型別為IPSec-l2l。要配置IKEv2預共用金鑰，請輸入以下命令：

tunnel-group 10.20.20.20 type ipsec-l2l

tunnel-group 10.20.20.20 ipsec-attributes

ikev2 remote-authentication pre-shared-key cisco

ikev2 local-authentication pre-shared-key cisco

設定相關流量和加密ACL

ASA使用訪問控制清單(ACL)來區分必須使用IPSec加密保護的流量和不需要保護的流量。它保護與permit Application Control Engine(ACE)匹配的出站資料包，並確保與permit ACE匹配的入站資料包具有保護。

object-group network local-network

network-object 192.168.0.0 255.255.255.0

object-group network remote-network

network-object 172.16.10.0 255.255.255.0

access-list asa-vpn extended permit ip object-group local-network object-group remote-network

附註：VPN對等體必須具有映象格式的同一ACL。

配置身份NAT（可選）

通常，需要身份NAT以防止感興趣的流量進入動態NAT。在此案例中配置的身份NAT為：

nat (inside,outside) source static local-network local-network destination static remote-network remote-network no-proxy-arp route-lookup

配置IKEv2 IPSec提議

IKEv2 IPSec建議用於定義一組加密和完整性演算法，以保護資料流量。為了成功構建IPSec SA，此建議必須匹配兩個VPN對等體。在此案例中使用的命令如下：

crypto ipsec ikev2 ipsec-proposal IKEV2_TSET

protocol esp encryption aes-256

protocol esp integrity sha-256

配置加密對映並將其繫結到介面

加密對映組合了所有必需的配置，並且必須包含：

- 與必須加密的流量匹配的訪問清單（通常稱為加密ACL）

- 對等體識別

- 至少一個IKEv2 IPSec提議

此處使用的配置如下：

crypto map outside_map 1 match address asa-vpn

crypto map outside_map 1 set peer 10.20.20.20

crypto map outside_map 1 set ikev2 ipsec-proposal IKEV2_TSET

最後一部分是使用命令將此加密對映應用到外部（公共）接口crypto map outside_map interface outside。

本地ASA最終配置

interface GigabitEthernet0/0

nameif outside

security-level 0

ip address 10.10.10.10 255.255.255.0

!

interface GigabitEthernet0/1

nameif inside

security-level 100

ip address 192.168.0.1 255.255.255.0

!

crypto ikev2 policy 10

encryption aes-256

integrity sha256

group 20

prf sha256

lifetime seconds 86400

additional-key-exchange 1

key-exchange-method 21

additional-key-exchange 2

key-exchange-method 31

!

crypto ikev2 enable outside

!

tunnel-group 10.20.20.20 type ipsec-l2l

tunnel-group 10.20.20.20 ipsec-attributes

ikev2 remote-authentication pre-shared-key cisco

ikev2 local-authentication pre-shared-key cisco

!

object-group network local-network

network-object 192.168.0.0 255.255.255.0

!

object-group network remote-network

network-object 172.16.10.0 255.255.255.0

!

access-list asa-vpn extended permit ip object-group local-network object-group remote-network

!

nat (inside,outside) source static local-network local-network destination static remote-network remote-network no-proxy-arp route-lookup

!

crypto ipsec ikev2 ipsec-proposal IKEV2_TSET

protocol esp encryption aes-256

protocol esp integrity sha-256

!

crypto map outside_map 1 match address asa-vpn

crypto map outside_map 1 set peer 10.20.20.20

crypto map outside_map 1 set ikev2 ipsec-proposal IKEV2_TSET

!

crypto map outside_map interface outside

遠端ASA最終配置

interface GigabitEthernet0/0

nameif outside

security-level 0

ip address 10.20.20.20 255.255.255.0

!

interface GigabitEthernet0/1

nameif inside

security-level 100

ip address 172.16.10.1 255.255.255.0

!

crypto ikev2 policy 10

encryption aes-256

integrity sha256

group 20

prf sha256

lifetime seconds 86400

additional-key-exchange 1

key-exchange-method 21

additional-key-exchange 2

key-exchange-method 31

!

crypto ikev2 enable outside

!

tunnel-group 10.10.10.10 type ipsec-l2l

tunnel-group 10.10.10.10 ipsec-attributes

ikev2 remote-authentication pre-shared-key cisco

ikev2 local-authentication pre-shared-key cisco

!

object-group network local-network

network-object 172.16.10.0 255.255.255.0

!

object-group network remote-network

network-object 192.168.0.0 255.255.255.0

!

access-list asa-vpn extended permit ip object-group local-network object-group remote-network

!

nat (inside,outside) source static local-network local-network destination static remote-network remote-network no-proxy-arp route-lookup

!

crypto ipsec ikev2 ipsec-proposal IKEV2_TSET

protocol esp encryption aes-256

protocol esp integrity sha-256

!

crypto map outside_map 1 match address asa-vpn

crypto map outside_map 1 set peer 10.10.10.10

crypto map outside_map 1 set ikev2 ipsec-proposal IKEV2_TSET

!

crypto map outside_map interface outside

附註：ACL採用映象格式，且兩端的預共用金鑰相同。

驗證

在驗證隧道是否啟動並且是否正在傳遞流量之前，必須確保將相關流量傳送到ASA。

附註：Packet tracer用於模擬流量。可以使用Packet Tracer命令完成；packet-tracer input inside icmp 192.168.0.11 8 0 172.16.10.11（詳見本地ASA）。

為了驗證其他金鑰交換，可以使用show crypto ikev2 sa命令。如輸出所示，您可以檢查AKE引數以驗證所選交換演算法。

Local-ASA# show crypto ikev2 sa

IKEv2 SAs:

Session-id:2, Status:UP-ACTIVE, IKE count:1, CHILD count:1

Tunnel-id Local                                               Remote                                     fvrf/ivrf     Status         Role

246015 10.10.10.10/500                                   10.20.20.20/500                                            READY    INITIATOR

Encr: AES-CBC, keysize: 256, Hash: SHA256, DH Grp:20, Auth sign: PSK, Auth verify: PSK

Additional Key Exchange Group: AKE1: 21  AKE2: 31

Life/Active Time: 86400/7 sec

Child sa: local selector  192.168.0.0/0 - 192.168.0.255/65535

remote selector 172.16.10.0/0 - 172.16.10.255/65535

ESP spi in/out: 0xf41ca3b5/0xda0e693b

疑難排解

上述調試可用於對IKEv2隧道進行故障排除：

debug crypto ikev2 protocol 127

debug crypto ikev2 platform 127

附註：如果您希望只排除一個隧道的故障（如果裝置處於生產中則必須如此），則必須使用debug crypto condition peer X.X.X命令有條件地啟用調試。