本產品的文件集力求使用無偏見用語。針對本文件集的目的,無偏見係定義為未根據年齡、身心障礙、性別、種族身分、民族身分、性別傾向、社會經濟地位及交織性表示歧視的用語。由於本產品軟體使用者介面中硬式編碼的語言、根據 RFP 文件使用的語言,或引用第三方產品的語言,因此本文件中可能會出現例外狀況。深入瞭解思科如何使用包容性用語。
思科已使用電腦和人工技術翻譯本文件,讓全世界的使用者能夠以自己的語言理解支援內容。請注意,即使是最佳機器翻譯,也不如專業譯者翻譯的內容準確。Cisco Systems, Inc. 對這些翻譯的準確度概不負責,並建議一律查看原始英文文件(提供連結)。
本文檔介紹如何透過Cisco ASA和運行Cisco IOS XE軟體的路由器之間的CLI配置站點到站點IKEv1隧道。
思科建議您瞭解以下主題:
本文中的資訊係根據以下軟體和硬體版本:
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
本節介紹如何完成ASA和Cisco IOS XE路由器CLI配置。
本檔案中的資訊使用以下網路設定:
如果未配置ASA介面,請確保至少配置IP地址、介面名稱和安全等級:
interface GigabitEthernet0/0
nameif outside
security-level 0
ip address 172.16.1.1 255.255.255.0
!
interface GigabitEthernet0/1
nameif inside
security-level 100
ip address 10.10.10.1 255.255.255.0
注意:請確保連線到內部和外部網路,特別是用於建立站點到站點VPN隧道的遠端對等體。您可以使用ping驗證基本連線。
要為IPSec Internet金鑰交換版本1 (IKEv1)連線配置Internet安全連線和金鑰管理協定(ISAKMP)策略,請輸入crypto ikev1 policy
命令:
crypto ikev1 policy 10
authentication pre-share
encryption aes-256
hash sha
group 14
lifetime 86400
注意:如果來自兩個對等體的兩個策略都包含相同的身份驗證、加密、雜湊和Diffie-Hellman引數值,則存在IKEv1策略匹配。對於IKEv1,遠端對等體策略還必須指定小於或等於發起方傳送的策略中的生存期的生存期。如果生命週期不相同,則ASA使用較短的生命週期。
注意:如果未指定指定策略引數的值,則會應用預設值。
您必須在終止VPN隧道的介面上啟用IKEv1。通常,這是外部(或公共)介面。要啟用IKEv1,請在全局配置模式下輸入crypto ikev1 enable
命令:
crypto ikev1 enable outside
對於LAN到LAN隧道,連線配置檔案型別為ipsec-l2l
。要配置IKEv1預共用金鑰,請進入tunnel-group ipsec-attributes
配置模式:
tunnel-group 172.17.1.1 type ipsec-l2l
tunnel-group 172.17.1.1 ipsec-attributes
ikev1 pre-shared-key cisco123
ASA使用訪問控制清單(ACL)來區分必須使用IPSec加密保護的流量和不需要保護的流量。它保護與permit Application Control Engine (ACE)匹配的出站資料包,並確保與permit ACE匹配的入站資料包具有保護。
object-group network local-network
network-object 10.10.10.0 255.255.255.0
object-group network remote-network
network-object 10.20.10.0 255.255.255.0
access-list asa-router-vpn extended permit ip object-group local-network
object-group remote-network
注意:VPN流量的ACL在網路地址轉換(NAT)後使用源和目標IP地址。
注意:用於VPN流量的ACL必須映象到兩個VPN對等體上。
注意:如果需要向受保護流量增加新子網,只需向相應對象組增加子網/主機並在遠端VPN對等體上完成映象更改。
注意:本節中介紹的配置是可選的。
通常,VPN流量上不能執行NAT。要免除該流量,您必須建立身份NAT規則。身份NAT規則只需將地址轉換為同一地址。
nat (inside,outside) source static local-network local-network destination static
remote-network remote-network no-proxy-arp route-lookup
IKEv1轉換集是安全協定和演算法的組合,定義ASA保護資料的方式。在IPSec安全關聯(SA)協商期間,對等體必須辨識兩個對等體相同的轉換集或提議。然後,ASA應用匹配的轉換集或提議,以建立一個SA來保護該加密對映的訪問清單中的資料流。
要配置IKEv1轉換集,請輸入crypto ipsec ikev1 transform-set
命令:
crypto ipsec ikev1 transform-set ESP-AES256-SHA esp-aes-256 esp-sha-hmac
加密對映定義要在IPSec SA中協商的IPSec策略,包括:
以下是範例:
crypto map outside_map 10 match address asa-router-vpn
crypto map outside_map 10 set peer 172.17.1.1
crypto map outside_map 10 set ikev1 transform-set ESP-AES256-SHA
然後,您可以將加密對映應用於介面:
crypto map outside_map interface outside
以下是ASA的最終配置:
interface GigabitEthernet0/0
nameif outside
security-level 0
ip address 172.16.1.1 255.255.255.0
!
interface GigabitEthernet0/1
nameif inside
security-level 100
ip address 10.10.10.1 255.255.255.0
!
object-group network local-network
network-object 10.10.10.0 255.255.255.0
object-group network remote-network
network-object 10.20.10.0 255.255.255.0
!
access-list asa-router-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 ikev1 policy 10
authentication pre-share
encryption aes-256
hash sha
group 14
lifetime 86400
!
crypto ikev1 enable outside
!
crypto ipsec ikev1 transform-set ESP-AES256-SHA esp-aes-256 esp-sha-hmac
!
crypto map outside_map 10 match address asa-router-vpn
crypto map outside_map 10 set peer 172.17.1.1
crypto map outside_map 10 set ikev1 transform-set ESP-AES256-SHA
crypto map outside_map interface outside
!
tunnel-group 172.17.1.1 type ipsec-l2l
tunnel-group 172.17.1.1 ipsec-attributes
ikev1 pre-shared-key cisco123
!
如果尚未配置Cisco IOS XE路由器介面,則至少必須配置LAN和WAN介面。以下是範例:
interface GigabitEthernet0/0
ip address 172.17.1.1 255.255.255.0
no shutdown
!
interface GigabitEthernet0/1
ip address 10.20.10.1 255.255.255.0
no shutdown
確保同時連線到內部和外部網路,特別是用於建立站點到站點VPN隧道的遠端對等體。您可以使用ping驗證基本連線。
要為IKEv1連線配置ISAKMP策略,請在全局配置模式下輸入crypto isakmp policy
命令。 以下是範例:
crypto isakmp policy 10
encryption aes 256
hash sha
authentication pre-share
group 14
注意:您可以在參與IPSec的每個對等體上配置多個IKE策略。當IKE協商開始時,它會嘗試查詢在兩個對等體上配置的公共策略,並且從遠端對等體上指定的最高優先順序策略開始。
要配置預共用身份驗證金鑰,請在全局配置模式下輸入crypto isakmp key
命令:
crypto isakmp key cisco123 address 172.16.1.1
使用擴展或命名訪問清單來指定必須受加密保護的流量。以下是範例:
access-list 110 remark Interesting traffic access-list
access-list 110 permit ip 10.20.10.0 0.0.0.255 10.10.10.0 0.0.0.255
注意:VPN流量的ACL在NAT後使用源和目標IP地址。
注意:用於VPN流量的ACL必須映象到兩個VPN對等體上。
注意:本節中介紹的配置是可選的。
通常,VPN流量上不能執行NAT。如果使用NAT過載,則必須使用路由對映,以使感興趣的VPN流量免於轉換。請注意,在路由對映中使用的訪問清單中,必須拒絕相關的VPN流量。
access-list 111 remark NAT exemption access-list
access-list 111 deny ip 10.20.10.0 0.0.0.255 10.10.10.0 0.0.0.255
access-list 111 permit ip 10.20.10.0 0.0.0.255 any
route-map nonat permit 10
match ip address 111
ip nat inside source route-map nonat interface GigabitEthernet0/0 overload
要定義IPSec轉換集(安全協定和演算法的可接受組合),請在全局配置模式下輸入crypto ipsec transform-set
命令。以下是範例:
crypto ipsec transform-set ESP-AES256-SHA esp-aes 256 esp-sha-hmac
mode tunnel
要建立或修改加密對映條目並進入加密對映配置模式,請輸入crypto map全局配置命令。要使加密對映條目完整,必須至少定義以下某些方面:
set peer
命令。set transform-set
命令。match address
命令。以下是範例:
crypto map outside_map 10 ipsec-isakmp
set peer 172.16.1.1
set transform-set ESP-AES256-SHA
match address 110
最後一步是將之前定義的加密對映集應用到介面。要應用此命令,請輸入crypto map
介面配置命令:
interface GigabitEthernet0/0
crypto map outside_map
以下是最終的Cisco IOS XE路由器CLI配置:
crypto isakmp policy 10
encryption aes 256
authentication pre-share
group 14
crypto isakmp key cisco123 address 172.16.1.1
!
crypto ipsec transform-set ESP-AES256-SHA esp-aes 256 esp-sha-hmac
mode tunnel
!
crypto map outside_map 10 ipsec-isakmp
set peer 172.16.1.1
set transform-set ESP-AES256-SHA
match address 110
!
interface GigabitEthernet0/0
ip address 172.17.1.1 255.255.255.0
ip nat outside
ip virtual-reassembly in
duplex auto
speed auto
crypto map outside_map
!
interface GigabitEthernet0/1
ip address 10.20.10.1 255.255.255.0
ip nat inside
ip virtual-reassembly in
duplex auto
speed auto
!
ip nat inside source route-map nonat interface GigabitEthernet0/0 overload
!
route-map nonat permit 10
match ip address 111
!
access-list 110 remark Interesting traffic access-list
access-list 110 permit ip 10.20.10.0 0.0.0.255 10.10.10.0 0.0.0.255
access-list 111 remark NAT exemption access-list
access-list 111 deny ip 10.20.10.0 0.0.0.255 10.10.10.0 0.0.0.255
access-list 111 permit ip 10.20.10.0 0.0.0.255 any
在驗證隧道是否已啟用並且是否傳遞流量之前,必須確保感興趣的流量被傳送到ASA或Cisco IOS XE路由器。
注意:在ASA上,匹配感興趣流量的Packet Tracer工具可用於啟動IPSec隧道(例如packet-tracer input inside tcp 10.10.10.10 12345 10.20.10.10 80 detailed
)。
為了驗證ASA上的IKEv1階段1是否已啟動,請輸入show crypto isakmp sa命令。預期輸出是顯示MM_ACTIVE
狀態:
ciscoasa# show crypto isakmp sa
IKEv1 SAs:
Active SA: 1
Rekey SA: 0 (A tunnel will report 1 Active and 1 Rekey SA during rekey)
Total IKE SA: 1
1 IKE Peer: 172.17.1.1
Type : L2L Role : responder
Rekey : no State : MM_ACTIVE
There are no IKEv2 SAs
ciscoasa#
要驗證Cisco IOS XE上的IKEv1階段1是否已啟用,請輸入show crypto isakmp sa
命令。預期輸出是顯示ACTIVE
狀態:
Router#show crypto isakmp sa
IPv4 Crypto ISAKMP SA
dst src state conn-id status
172.16.1.1 172.17.1.1 QM_IDLE 2003 ACTIVE
IPv6 Crypto ISAKMP SA
Router#
為了驗證ASA上的IKEv1階段2是否已啟動,請輸入show crypto ipsec sa
命令。預期輸出是檢視入站和出站安全引數索引(SPI)。如果流量透過隧道,您必須看到封裝/解封計數器增加。
注意:每個ACL條目都建立一個單獨的入站/出站SA,這可能導致長show crypto ipsec sa
命令輸出(具體取決於加密ACL中的ACE條目數)。
以下是範例:
ciscoasa# show crypto ipsec sa peer 172.17.1.1
peer address: 172.17.1.1
Crypto map tag: outside_map, seq num: 10, local addr: 172.16.1.1
access-list asa-router-vpn extended permit ip 10.10.10.0 255.255.255.0
10.20.10.0 255.255.255.0
local ident (addr/mask/prot/port): (10.10.10.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port): (10.20.10.0/255.255.255.0/0/0)
current_peer: 172.17.1.1
#pkts encaps: 989, #pkts encrypt: 989, #pkts digest: 989
#pkts decaps: 989, #pkts decrypt: 989, #pkts verify: 989
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 989, #pkts comp failed: 0, #pkts decomp failed: 0
#pre-frag successes: 0, #pre-frag failures: 0, #fragments created: 0
#PMTUs sent: 0, #PMTUs rcvd: 0, #decapsulated frgs needing reassembly: 0
#TFC rcvd: 0, #TFC sent: 0
#Valid ICMP Errors rcvd: 0, #Invalid ICMP Errors rcvd: 0
#send errors: 0, #recv errors: 0
local crypto endpt.: 172.16.1.1/0, remote crypto endpt.: 172.17.1.1/0
path mtu 1500, ipsec overhead 74(44), media mtu 1500
PMTU time remaining (sec): 0, DF policy: copy-df
ICMP error validation: disabled, TFC packets: disabled
current outbound spi: 5397114D
current inbound spi : 9B592959
inbound esp sas:
spi: 0x9B592959 (2606311769)
SA State: active
transform: esp-aes-256 esp-sha-hmac no compression
in use settings ={L2L, Tunnel, IKEv1, }
slot: 0, conn_id: 2, crypto-map: outside_map
sa timing: remaining key lifetime (kB/sec): (4373903/3357)
IV size: 16 bytes
replay detection support: Y
Anti replay bitmap:
0xFFFFFFFF 0xFFFFD7FF
outbound esp sas:
spi: 0x5397114D (1402409293)
SA State: active
transform: esp-aes-256 esp-sha-hmac no compression
in use settings ={L2L, Tunnel, IKEv1, }
slot: 0, conn_id: 2, crypto-map: outside_map
sa timing: remaining key lifetime (kB/sec): (4373903/3357)
IV size: 16 bytes
replay detection support: Y
Anti replay bitmap:
0x00000000 0x00000001
ciscoasa#
要驗證Cisco IOS XE上的IKEv1第2階段是否已啟用,請輸入show crypto ipsec sa
命令。預期輸出是同時檢視入站和出站SPI。如果流量透過隧道,您必須看到封裝/解封計數器增加。
以下是範例:
Router#show crypto ipsec sa peer 172.16.1.1
interface: GigabitEthernet0/0
Crypto map tag: outside_map, local addr 172.17.1.1
protected vrf: (none)
local ident (addr/mask/prot/port): (10.20.10.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port): (10.10.10.0/255.255.255.0/0/0)
current_peer 172.16.1.1 port 500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 989, #pkts encrypt: 989, #pkts digest: 989
#pkts decaps: 989, #pkts decrypt: 989, #pkts verify: 989
#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.: 172.17.1.1, remote crypto endpt.: 172.16.1.1
plaintext mtu 1438, path mtu 1500, ip mtu 1500, ip mtu idb GigabitEthernet3
current outbound spi: 0x9B592959(2606311769)
PFS (Y/N): N, DH group: none
inbound esp sas:
spi: 0x5397114D(1402409293)
transform: esp-256-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 2003, flow_id: CSR:3, sibling_flags FFFFFFFF80004048, crypto map: outside_map
sa timing: remaining key lifetime (k/sec): (4607857/3385)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE(ACTIVE)
inbound ah sas:
inbound pcp sas:
outbound esp sas:
spi: 0x9B592959(2606311769)
transform: esp-256-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 2004, flow_id: CSR:4, sibling_flags FFFFFFFF80004048, crypto map: outside_map
sa timing: remaining key lifetime (k/sec): (4607901/3385)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE(ACTIVE)
outbound ah sas:
outbound pcp sas:
Router#
本節介紹可以在ASA或Cisco IOS XE上使用的命令,以驗證第1階段和第2階段的詳細資訊。
在ASA上輸入show vpn-sessiondb
命令進行驗證:
ciscoasa# show vpn-sessiondb detail l2l filter ipaddress 172.17.1.1
Session Type: LAN-to-LAN Detailed
Connection : 172.17.1.1
Index : 2 IP Addr : 172.17.1.1
Protocol : IKEv1 IPsec
Encryption : IKEv1: (1)AES256 IPsec: (1)AES256
Hashing : IKEv1: (1)SHA1 IPsec: (1)SHA1
Bytes Tx : 98900 Bytes Rx : 134504
Login Time : 06:15:52 UTC Fri Sep 6 2024
Duration : 0h:15m:07s
IKEv1 Tunnels: 1
IPsec Tunnels: 1
IKEv1:
Tunnel ID : 2.1
UDP Src Port : 500 UDP Dst Port : 500
IKE Neg Mode : Main Auth Mode : preSharedKeys
Encryption : AES256 Hashing : SHA1
Rekey Int (T): 86400 Seconds Rekey Left(T): 84093 Seconds
D/H Group : 14
Filter Name :
IPsec:
Tunnel ID : 2.2
Local Addr : 10.10.10.0/255.255.255.0/0/0
Remote Addr : 10.20.10.0/255.255.255.0/0/0
Encryption : AES256 Hashing : SHA1
Encapsulation: Tunnel
Rekey Int (T): 3600 Seconds Rekey Left(T): 3293 Seconds
Rekey Int (D): 4608000 K-Bytes Rekey Left(D): 4607901 K-Bytes
Idle Time Out: 30 Minutes Idle TO Left : 26 Minutes
Bytes Tx : 98900 Bytes Rx : 134504
Pkts Tx : 989 Pkts Rx : 989
NAC:
Reval Int (T): 0 Seconds Reval Left(T): 0 Seconds
SQ Int (T) : 0 Seconds EoU Age(T) : 309 Seconds
Hold Left (T): 0 Seconds Posture Token:
Redirect URL :
ciscoasa#
在Cisco IOS XE上輸入show crypto session
命令進行驗證:
Router#show crypto session remote 172.16.1.1 detail
Crypto session current status
Code: C - IKE Configuration mode, D - Dead Peer Detection
K - Keepalives, N - NAT-traversal, T - cTCP encapsulation
X - IKE Extended Authentication, F - IKE Fragmentation
Interface: GigabitEthernet0/0
Uptime: 00:03:36
Session status: UP-ACTIVE
Peer: 172.16.1.1 port 500 fvrf: (none) ivrf: (none)
Phase1_id: 172.16.1.1
Desc: (none)
IKE SA: local 172.17.1.1/500 remote 172.16.1.1/500 Active
Capabilities:(none) connid:1005 lifetime:23:56:23
IPSEC FLOW: permit ip 10.20.10.0/255.255.255.0 10.10.10.0/255.255.255.0
Active SAs: 2, origin: crypto map
Inbound: #pkts dec'ed 989 drop 0 life (KB/Sec) 4449870/3383
Outbound: #pkts enc'ed 989 drop 0 life (KB/Sec) 4449868/3383
Router#
本節提供的資訊可用於對組態進行疑難排解。
注意:使用debug
命令之前,請參閱有關debug命令的重要資訊和IP安全故障排除-瞭解和使用debug命令Cisco文檔。
為了自動驗證ASA和Cisco IOS XE之間的IPSec LAN-to-LAN配置是否有效,您可以使用IPSec LAN-to-LANChecker工具。該工具設計為可接受來自ASA或Cisco IOS XE路由器的show tech
或show running-config
命令。它檢查配置並嘗試檢測是否配置了基於加密對映的LAN到LAN IPSec隧道。如果已配置,則執行配置的多點檢查,並突出顯示要協商的隧道的所有配置錯誤和設定。
為了排除ASA防火牆上的IPSec IKEv1隧道協商故障,您可以使用以下debug
命令:
debug crypto ipsec 127
debug crypto isakmp 127
debug ike-common 10
注意:如果ASA上的VPN隧道數量很大,則必須在啟用調試之前使用debug crypto condition peer A.B.C.D
命令,以便將調試輸出限制為僅包括指定的對等體。
若要對Cisco IOS XE路由器上的IPSec IKEv1隧道協商進行故障排除,可以使用以下debug命令:
debug crypto ipsec
debug crypto isakmp
注意:如果Cisco IOS XE上的VPN隧道數量很大,則debug crypto condition peer ipv4 A.B.C.D
必須在啟用調試之前使用,以便限制調試輸出只包括指定的對等體。
提示:有關如何對站點到站點VPN進行故障排除的詳細資訊,請參閱最常見的L2L和遠端訪問IPsec VPN故障排除解決方案Cisco文檔。
修訂 | 發佈日期 | 意見 |
---|---|---|
1.0 |
17-Feb-2023 |
初始版本 |