本產品的文件集力求使用無偏見用語。針對本文件集的目的,無偏見係定義為未根據年齡、身心障礙、性別、種族身分、民族身分、性別傾向、社會經濟地位及交織性表示歧視的用語。由於本產品軟體使用者介面中硬式編碼的語言、根據 RFP 文件使用的語言,或引用第三方產品的語言,因此本文件中可能會出現例外狀況。深入瞭解思科如何使用包容性用語。
思科已使用電腦和人工技術翻譯本文件,讓全世界的使用者能夠以自己的語言理解支援內容。請注意,即使是最佳機器翻譯,也不如專業譯者翻譯的內容準確。Cisco Systems, Inc. 對這些翻譯的準確度概不負責,並建議一律查看原始英文文件(提供連結)。
本文檔介紹Cisco ASA與Cisco安全防火牆和Microsoft Azure雲服務之間的VPN的概念和配置。
思科建議您瞭解以下主題:
本文中的資訊係根據以下軟體和硬體版本:
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
IP地址範圍IPSec允許其參與VPN隧道。加密域透過使用本地流量選擇器和遠端流量選擇器來指定IPSec捕獲和加密的本地和遠端子網範圍。
下面是兩種定義VPN加密域的方法:基於路由的或基於策略的流量選擇器。
基於路由:
加密域設定為允許任何進入IPSec隧道的流量。IPSec本地和遠端流量選擇器設定為0.0.0.0。這意味著所有路由到IPSec隧道的流量都會被加密,無論源/目標子網如何。
思科自適應安全裝置(ASA)使用9.8版及更高版本中的虛擬隧道介面(VTI)支援基於路由的VPN。
由Firepower管理中心(FMC)管理的Cisco安全防火牆或Firepower威脅防禦(FTD)支援使用版本6.7及更高版本的VTI的基於路由的VPN。
基於策略:
加密網域設定為只加密來源和目的地的特定IP範圍。 基於策略的本地流量選擇器和遠端流量選擇器標識透過IPSec加密的流量。
ASA在版本8.2及更高版本中支援帶加密對映的基於策略的VPN。
Microsoft Azure使用模擬的基於策略的流量選擇器支援基於路由的、基於策略的或基於路由的。Azure當前根據選定的VPN方法限制您可以配置的網際網路金鑰交換(IKE)版本。 基於路由需要IKEv2,基於策略需要IKEv1。 如果使用IKEv2,則必須在Azure中選擇基於路由的,並且ASA必須使用VTI。
如果ASA由於代碼版本而僅支援加密對映,則必須使用基於策略的流量選擇器為基於路由的流量選擇器配置Azure。
這是透過PowerShell指令碼部署在Azure門戶中實現的,以實現Microsoft呼叫UsePolicyBasedTrafficSelectors的選項,如下所述:
從ASA和FTD配置角度進行總結:
完成配置步驟。選擇配置基於IKEv1、使用VTI配置基於IKEv2路由,或使用基於策略的流量選擇器配置基於IKEv2路由(ASA上的加密對映)。
對於從ASA到Azure的站點到站點IKEv1 VPN,實施下一個ASA配置。確保在Azure門戶中配置基於策略的隧道。此示例在ASA上使用加密對映。
參考在ASAv上使用ASDM或CLI配置IKEv1 IPsec站點到站點隧道,瞭解ASA配置資訊的完整IKEv1。
步驟 1.在外部介面上啟用IKEv1。
Cisco-ASA(config)#crypto ikev1 enable outside
步驟 2.建立IKEv1策略,該策略定義用於雜湊、身份驗證、Diffie-Hellman組、生存期和加密的演算法/方法。
注意:所列的第1階段IKEv1屬性盡力而為,這些屬性來自關於站點到站點VPN網關連線的VPN裝置和IPsec/IKE引數。如需進一步說明,請連絡Microsoft Azure支援。
Cisco-ASA(config)#crypto ikev1 policy 1
Cisco-ASA(config-ikev1-policy)#authentication pre-share
Cisco-ASA(config-ikev1-policy)#encryption aes
Cisco-ASA(config-ikev1-policy)#hash sha
Cisco-ASA(config-ikev1-policy)#group 14
Cisco-ASA(config-ikev1-policy)#lifetime 28800
步驟 3.在IPSec屬性下建立隧道組,並配置對等體IP地址和隧道預共用金鑰。
Cisco-ASA(config)#tunnel-group 192.168.1.1 type ipsec-l2l
Cisco-ASA(config)#tunnel-group 192.168.1.1 ipsec-attributes
Cisco-ASA(config-tunnel-ipsec)#ikev1 pre-shared-key cisco
步驟 4.建立定義要加密和隧道傳輸的流量的訪問清單。
在本示例中,相關流量來自從10.2.2.0子網到10.1.1.0的隧道。 如果站點之間涉及多個子網,則它可以包含多個條目。
在版本8.4及更高版本中,可以建立用作網路、子網、主機IP地址或多個對象的容器的對象或對象組。
建立兩個具有本地和遠端子網的對象,並將它們用於加密訪問控制清單(ACL)和網路地址轉換(NAT)語句。
Cisco-ASA(config)#object network 10.2.2.0_24
Cisco-ASA(config-network-object)#subnet 10.2.2.0 255.255.255.0
Cisco-ASA(config)#object network 10.1.1.0_24
Cisco-ASA(config-network-object)#subnet 10.1.1.0 255.255.255.0
Cisco-ASA(config)#access-list 100 extended permit ip object 10.2.2.0_24 object 10.1.1.0_24
步驟 5.配置轉換集(TS),它必須包含關鍵字IKEv1.
。遠端端上也必須建立相同的TS。
注意:列出的第2階段IKEv1屬性盡力在關於站點到站點VPN網關連線的VPN裝置和IPsec/IKE引數中提供。如需進一步說明,請連絡Microsoft Azure支援。
Cisco-ASA(config)#crypto ipsec ikev1 transform-set myset esp-aes esp-sha-hmac
步驟 6.配置加密對映並將其應用於具有以下元件的外部介面:
· 對等體IP地址
· 包含相關流量的已定義訪問清單
· TS
· 此組態並未設定完全向前保密(PFS)。 About VPN Devices and IPsec/IKE Parameters for Site-to-Site VPN Gateway Connections說明PFS已對Azure中的IKEv1停用。
可選的PFS設定建立了一對新的Diffie-Hellman金鑰,用於保護資料(兩端必須在階段2啟動之前啟用PFS)。
可透過使用此配置啟用此設定: crypto map outside_map 20 set pfs
。
· 設定的第2階段IPSec生命週期基於關於站點到站點VPN網關連線的IPsec/IKE引數。如需進一步說明,請連絡Microsoft Azure支援。
Cisco-ASA(config)#crypto map outside_map 20 match address 100
Cisco-ASA(config)#crypto map outside_map 20 set peer 192.168.1.1
Cisco-ASA(config)#crypto map outside_map 20 set ikev1 transform-set myset
Cisco-ASA(config)#crypto map outside_map 20 set security-association lifetime seconds 3600
Cisco-ASA(config)#crypto map outside_map 20 set security-association lifetime kilobytes 102400000 Cisco-ASA(config)#crypto map outside_map interface outside
步驟 7.確保VPN流量不受任何其他NAT規則的約束。 建立NAT免除規則:
Cisco-ASA(config)#nat (inside,outside) 1 source static 10.2.2.0_24 10.2.2.0_24 destination static 10.1.1.0_24 10.1.1.0_24 no-proxy-arp route-lookup
注意:使用多個子網時,必須使用所有源和目標子網建立對象組並在NAT規則中使用它們。
Cisco-ASA(config)#object-group network 10.x.x.x_SOURCE
Cisco-ASA(config-network-object-group)#network-object 10.4.4.0 255.255.255.0
Cisco-ASA(config-network-object-group)#network-object 10.2.2.0 255.255.255.0
Cisco-ASA(config)#object network 10.x.x.x_DESTINATION
Cisco-ASA(config-network-object-group)#network-object 10.3.3.0 255.255.255.0
Cisco-ASA(config-network-object-group)#network-object 10.1.1.0 255.255.255.0
Cisco-ASA(config)#nat (inside,outside) 1 source static 10.x.x.x_SOURCE 10.x.x.x_SOURCE destination static 10.x.x.x_DESTINATION 10.x.x.x_DESTINATION no-proxy-arp route-lookup
對於基於ASA代碼的站點到站點IKEv2路由VPN,請使用此配置。確保Azure配置為基於路由的VPN,並且不在Azure門戶中配置UsePolicyBasedTrafficSelectors。ASA上配置了VTI。
有關完整的ASA VTI配置資訊,請參閱CLI手冊3:Cisco ASA系列VPN CLI配置指南9.8。
步驟 1.在外部介面上啟用IKEv2:
Cisco-ASA(config)#crypto ikev2 enable outside
步驟 2.增加IKEv2第1階段策略。
注意:Microsoft發佈的資訊與Azure使用的特定IKEv2第1階段加密、完整性和生存期屬性衝突。所列屬性由關於站點到站點VPN網關連線的IPsec/IKE引數盡力提供。與Microsoft的IKEv2屬性衝突的資訊為Sample Configuration: Cisco ASA Device (IKEv2/no BGP)。如需進一步說明,請連絡Microsoft Azure支援。
Cisco-ASA(config)#crypto ikev2 policy 1 Cisco-ASA(config-ikev2-policy)#encryption aes-256 Cisco-ASA(config-ikev2-policy)#integrity sha256 Cisco-ASA(config-ikev2-policy)#group 14 Cisco-ASA(config-ikev2-policy)#lifetime seconds 28800
步驟 3.增加IKEv2第2階段IPsec提議。在加密IPsec ikev2 ipsec-proposal
(IPSec)配置模式下指定安全引數:
protocol esp encryption {des | 3des | aes | aes-192 | aes-256 | aes-gcm | aes-gcm-192 | aes-gcm-256 | aes-gmac | aes-gmac-192 | aes-gmac-256 | null}
protocol esp integrity {md5 | sha-1 | sha-256 | sha-384 | sha-512 | null}
注意: Microsoft發佈的資訊與Azure使用的特定第2階段IPSec加密和完整性屬性衝突。所列屬性由關於站點到站點VPN網關連線的IPsec/IKE引數盡力提供。與Microsoft的第2階段IPSec屬性發生衝突的資訊為示例配置:Cisco ASA裝置(IKEv2/no BGP)。如需進一步說明,請連絡Microsoft Azure支援。
Cisco-ASA(config)#crypto ipsec ikev2 ipsec-proposal SET1
Cisco-ASA(config-ipsec-proposal)#protocol esp encryption aes-256
Cisco-ASA(config-ipsec-proposal)#protocol esp integrity sha-256
步驟 4.增加指定:
注意: Microsoft發佈的資訊與Azure使用的特定第2階段IPSec生存期和PFS屬性衝突。所列屬性由基於路由的VPN IPsec安全關聯(IKE快速模式SA)產品盡力提供。與Microsoft的第2階段IPSec屬性發生衝突的資訊為示例配置:Cisco ASA裝置(IKEv2/no BGP)。如需進一步說明,請連絡Microsoft Azure支援。
Cisco-ASA(config)#crypto ipsec profile PROFILE1
Cisco-ASA(config-ipsec-profile)#set ikev2 ipsec-proposal SET1
Cisco-ASA(config-ipsec-profile)#set security-association lifetime seconds 27000
Cisco-ASA(config-ipsec-profile)#set security-association lifetime kilobytes unlimited
Cisco-ASA(config-ipsec-profile)#set pfs none
步驟 5.在IPSec屬性下建立隧道組,並配置對等體IP地址和IKEv2本地和遠端隧道預共用金鑰:
Cisco-ASA(config)#tunnel-group 192.168.1.1 type ipsec-l2l
Cisco-ASA(config)#tunnel-group 192.168.1.1 ipsec-attributes
Cisco-ASA(config-tunnel-ipsec)#ikev2 local-authentication pre-shared-key cisco
Cisco-ASA(config-tunnel-ipsec)#ikev2 remote-authentication pre-shared-key cisco
步驟 6.建立指定以下內容的VTI:
Cisco-ASA(config)#interface tunnel 100 Cisco-ASA(config-if)#nameif vti Cisco-ASA(config-if)#ip address 169.254.0.1 255.255.255.252 Cisco-ASA(config-if)#tunnel source interface outside Cisco-ASA(config-if)#tunnel destination [Azure Public IP] Cisco-ASA(config-if)#tunnel mode ipsec ipv4 Cisco-ASA(config-if)#tunnel protection ipsec profile PROFILE1
步驟 7.建立靜態路由,將流量指向隧道。要增加靜態路由,請輸入以下命令: route if_name dest_ip mask gateway_ip [distance]
dest_ip
和 mask
是Azure雲(例如,10.0.0.0/24)中目標網路的IP地址。gateway_ip必須是隧道介面子網上的任何IP地址(存在或不存在),例如10.254.0.2。此gateway_ip的目的是將流量指向隧道介面,但特定網關IP本身並不重要。
Cisco-ASA(config)#route vti 10.0.0.0 255.255.255.0 10.254.0.2
對於從FTD到Azure的站點到站點IKEv1 VPN,需要先將FTD裝置註冊到FMC。
步驟 1.建立站點到站點策略。導航至 FMC dashboard > Devices > VPN > Site to Site.
步驟 2.建立新策略。按一下 Add VPN
下拉選單並選擇 Firepower Threat Defense device.
步驟 3.在 Create new VPN Topology
窗口中,指定 Topology Name,
選中 IKEV1
protocol覈取方塊,然後按一下 IKE
頁籤。在本示例中,預共用金鑰用作身份驗證方法。
按一下 Authentication Type
下拉選單,然後選擇 Pre-shared manual key
。在 Key
和Confirm Key
文本欄位中鍵入手動預共用金鑰。
步驟 4.透過建立新引數來配置ISAKMP策略或第1階段引數。在同一窗口中,按一下 green plus button
以增加新的ISAKMP策略。指定策略名稱並選擇所需的加密、雜湊、Diffie-Hellman Group、生存期和身份驗證方法,然後按一下 Save.
步驟 5.配置IPSec策略或第2階段引數。導航到 IPsec
頁籤,選中覈取方塊 Crypto Map Type
上的 Static
。在 Transform Sets
選項處按一下 IKEV1 IPsec Proposals
中的 edit pencil
圖示。
步驟 6.建立新的IPsec提議。在 IKEv1 IPSec Proposal
窗口中,按一下 green plus button
以增加新窗口。為ESP加密和ESP雜湊演算法指定策略名稱及其所需引數,然後按一下 Save.
第7步:在 IKEV1 IPsec Proposal
窗口中,將新的IPsec策略增加到 Selected Transform Sets
部分,然後按一下 OK.
步驟 8.返回 IPSec
頁籤,配置所需的生存期持續時間和大小。
步驟 9.選擇Encryption Domain/Traffic Selectors/Protected Networks。導航到 Endpoints
頁籤。在 Node A
部分中,按一下 green plus button
以增加新條目。在本範例中,節點A用作FTD的本地子網路。
步驟 10.在 Add Endpoint
窗口中,在 Device
下拉選單中指定要使用的FTD及其物理介面和要使用的IP地址。
步驟 11.要指定本地流量選擇器,請導航到 Protected Networks
選項,然後按一下 green plus button
建立新對象。
步驟 12.在 Network Objects
窗口中,按一下文本 Available Networks
旁邊的 green plus button
,建立新的本地流量選擇器對象。
步驟 13.在 New Network Object
窗口中,指定對象的名稱並選擇相應的主機/網路/範圍/FQDN。然後,按一下Save
。
步驟 14.將對象增加到 Network Objects
窗口的 Selected Networks
部分,然後按一下 Add Endpoint
窗口上的 OK.
Click OK
。
步驟 15.定義節點B終結點,在本示例中為Azure終結點。在 Create New VPN Topology
窗口中,導航到 Node B
部分,點選 green plus button
以增加遠端終端流量選擇器。為與節點A不由相同FMC管理的所有VPN對等端點指定 Extranet
。鍵入裝置的名稱(僅本地有效)和其IP地址。
步驟 16.建立遠端流量選擇器對象。導航到 Protected Networks
部分,然後按一下 green plus button
增加新對象。
步驟 17.在 Network Objects
窗口中,按一下文本 Available Networks
旁邊的 green plus button
以建立新對象。在 New Network Object
窗口中,指定對象名稱,選擇相應的主機/範圍/網路/FQDN並按一下 Save.
步驟 18.返回 Network Objects
窗口,將您的新遠端對象增加到 Selected Networks
部分,並在 Add Endpoint
窗口中點選 OK.
Ok
。
步驟 19.在 Create New VPN Topology
窗口中,您可以看到兩個節點都具有正確的流量選擇器/受保護的網路。按一下 Save.
步驟 20.在FMC控制台上,點選右上角的 Deploy
,選擇FTD裝置,然後點選 Deploy.
步驟 21.在命令列介面上,VPN配置與ASA裝置的配置看起來相同。
對於使用加密對映的ASA上的站點到站點IKEv2 VPN,請使用此配置。確保為基於路由的VPN配置了Azure,並且必須使用PowerShell在Azure門戶中配置UsePolicyBasedTrafficSelector。
將VPN網關連線到Microsoft的多個內部部署基於策略的VPN裝置描述了UsePolicyBasedTrafficSelector與基於路由的Azure VPN模式結合使用的配置。如果不完成此步驟,具有加密對映的ASA將無法建立連線,因為從Azure收到的流量選擇器不匹配。
有關包含加密對映配置資訊的完整ASA IKEv2的資訊,請參閱CLI手冊3:Cisco ASA系列VPN CLI配置指南9.8。
步驟 1.在外部介面上啟用IKEv2:
Cisco-ASA(config)#crypto ikev2 enable outside
步驟 2.增加IKEv2第1階段策略。
注意:Microsoft發佈的資訊與Azure使用的特定IKEv2第1階段加密、完整性和生存期屬性衝突。所列屬性由關於站點到站點VPN網關連線的IPsec/IKE引數盡力提供。來自Microsoft且衝突的IKEv2屬性資訊為Sample Configuration: Cisco ASA Device (IKEv2/no BGP)。如需進一步說明,請連絡Microsoft Azure支援。
Cisco-ASA(config)#crypto ikev2 policy 1 Cisco-ASA(config-ikev2-policy)#encryption aes-256 Cisco-ASA(config-ikev2-policy)#integrity sha256 Cisco-ASA(config-ikev2-policy)#group 14 Cisco-ASA(config-ikev2-policy)#lifetime seconds 28800
步驟 3.在IPSec屬性下建立隧道組,並配置對等體IP地址和IKEv2本地和遠端隧道預共用金鑰:
Cisco-ASA(config)#tunnel-group 192.168.1.1 type ipsec-l2l
Cisco-ASA(config)#tunnel-group 192.168.1.1 ipsec-attributes
Cisco-ASA(config-tunnel-ipsec)#ikev2 local-authentication pre-shared-key cisco
Cisco-ASA(config-tunnel-ipsec)#ikev2 remote-authentication pre-shared-key cisco
步驟 4.建立定義要加密和隧道傳輸的流量的訪問清單。在本示例中,相關流量是來自從10.2.2.0子網到10.1.1.0的隧道的流量。如果站點之間涉及多個子網,則它可以包含多個條目。
在版本8.4及更高版本中,可以建立用作網路、子網、主機IP地址或多個對象的容器的對象或對象組。建立兩個具有本地和遠端子網的對象,並將它們用於加密ACL和NAT語句。
Cisco-ASA(config)#object network 10.2.2.0_24
Cisco-ASA(config-network-object)#subnet 10.2.2.0 255.255.255.0
Cisco-ASA(config)#object network 10.1.1.0_24
Cisco-ASA(config-network-object)#subnet 10.1.1.0 255.255.255.0
Cisco-ASA(config)#access-list 100 extended permit ip object 10.2.2.0_24 object 10.1.1.0_24
步驟 5.增加IKEv2第2階段IPsec提議。在crypto IPsec ikev2 ipsec-proposal配置模式下指定安全引數:
protocol esp encryption {des | 3des | aes | aes-192 | aes-256 | aes-gcm | aes-gcm-192 | aes-gcm-256 | aes-gmac | aes-gmac-192 | aes-gmac-256 | null}
protocol esp integrity {md5 | sha-1 | sha-256 | sha-384 | sha-512 | null}
注意:Microsoft發佈的資訊與Azure使用的特定第2階段IPSec加密和完整性屬性衝突。所列屬性由基於路由的VPN IPsec安全關聯(IKE快速模式SA)產品盡力提供。來自Microsoft的第2階段IPSec屬性資訊衝突,該屬性資訊為Sample Configuration: Cisco ASA Device (IKEv2/no BGP)。如需進一步說明,請連絡Microsoft Azure支援。
Cisco-ASA(config)#crypto ipsec ikev2 ipsec-proposal SET1
Cisco-ASA(config-ipsec-proposal)#protocol esp encryption aes-256
Cisco-ASA(config-ipsec-proposal)#protocol esp integrity sha-256
步驟 6.配置加密對映並將其應用於外部介面,該介面包含以下元件:
· 對等體IP地址
· 包含相關流量的已定義訪問清單。
· IKEv2第2階段IPSec建議
· 第2階段IPSec生存期(以秒為單位)。
· 可選的完全正向保密(PFS)設定,它建立了一對新的Diffie-Hellman金鑰,用於保護資料(兩端必須在階段2啟動之前啟用PFS)。
Microsoft發佈的資訊與Azure使用的特定第2階段IPSec生存期和PFS屬性衝突。
列出的屬性盡最大努力從 基於路由的VPN IPsec安全關聯(IKE快速模式SA)提供.
來自Microsoft的第2階段IPSec屬性資訊衝突,該屬性資訊為Sample Configuration: Cisco ASA Device (IKEv2/no BGP)。如需進一步說明,請連絡Microsoft Azure支援。
Cisco-ASA(config)#crypto map outside_map 20 match address 100 Cisco-ASA(config)#crypto map outside_map 20 set peer 192.168.1.1 Cisco-ASA(config)#crypto map outside_map 20 set ikev2 ipsec-proposal myset
Cisco-ASA(config)#crypto map outside_map 20 set security-association lifetime seconds 27000
Cisco-ASA(config)#crypto map outside_map 20 set security-association lifetime kilobytes unlimited Cisco-ASA(config)#crypto map outside_map 20 set pfs none Cisco-ASA(config)#crypto map outside_map interface outside
步驟 8.確保VPN流量不受任何其他NAT規則的約束。 建立NAT免除規則:
Cisco-ASA(config)#nat (inside,outside) 1 source static 10.2.2.0_24 10.2.2.0_24 destination static 10.1.1.0_24 10.1.1.0_24 no-proxy-arp route-lookup
注意:使用多個子網時,必須使用所有源和目標子網建立對象組並在NAT規則中使用它們。
Cisco-ASA(config)#object-group network 10.x.x.x_SOURCE
Cisco-ASA(config-network-object-group)#network-object 10.4.4.0 255.255.255.0
Cisco-ASA(config-network-object-group)#network-object 10.2.2.0 255.255.255.0
Cisco-ASA(config)#object network 10.x.x.x_DESTINATION
Cisco-ASA(config-network-object-group)#network-object 10.3.3.0 255.255.255.0
Cisco-ASA(config-network-object-group)#network-object 10.1.1.0 255.255.255.0
Cisco-ASA(config)#nat (inside,outside) 1 source static 10.x.x.x_SOURCE 10.x.x.x_SOURCE destination static 10.x.x.x_DESTINATION 10.x.x.x_DESTINATION no-proxy-arp route-lookup
在ASA和Azure網關上完成配置後,Azure將啟動VPN隧道。您可以使用這些命令驗證隧道是否正確構建:
驗證第1階段安全關聯(SA)是否已建立:
接下來,顯示了一個從UDP埠500上的本地外部介面IP 192.168.1.2構建到遠端目標IP 192.168.2.2的IKEv2 SA。還有一個為加密流量流經而構建的有效子SA。
Cisco-ASA# show crypto ikev2 sa IKEv2 SAs: Session-id:44615, Status:UP-ACTIVE, IKE count:1, CHILD count:1 Tunnel-id Local Remote Status Role 3208253 192.168.1.2/500 192.168.2.2/500 READY INITIATOR Encr: AES-CBC, keysize: 256, Hash: SHA256, DH Grp:14, Auth sign: PSK, Auth verify: PSK Life/Active Time: 86400/142 sec *-->Child sa: local selector 192.168.0.0/0 - 192.168.0.255/65535 remote selector 192.168.3.0/0 - 192.168.3.255/65535 ESP spi in/out: 0x9b60edc5/0x8e7a2e12
此處顯示的是以ASA作為發起方構建的對等IP 192.168.2.2的IKEv1 SA,剩餘壽命為86388秒。
Cisco-ASA# sh crypto ikev1 sa detail 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: 192.168.2.2 Type : L2L Role : initiator Rekey : no State : MM_ACTIVE Encrypt : aes Hash : SHA Auth : preshared Lifetime: 86400 Lifetime Remaining: 86388
驗證第2階段IPSec安全關聯已建立為 show crypto ipsec sa peer [peer-ip].
Cisco-ASA# show crypto ipsec sa peer 192.168.2.2
peer address: 192.168.2.2
Crypto map tag: outside, seq num: 10, local addr: 192.168.1.2
access-list VPN extended permit ip 192.168.0.0 255.255.255.0 192.168.3.0 255.255.255.0
local ident (addr/mask/prot/port): (192.168.0.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port): (192.168.3.0/255.255.255.0/0/0)
current_peer: 192.168.2.2
#pkts encaps: 4, #pkts encrypt: 4, #pkts digest: 4
#pkts decaps: 4, #pkts decrypt: 4, #pkts verify: 4
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 4, #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.: 192.168.1.2/500, remote crypto endpt.: 192.168.2.2/500
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: 8E7A2E12
current inbound spi : 9B60EDC5
inbound esp sas:
spi: 0x9B60EDC5 (2606820805)
SA State: active
transform: esp-aes-256 esp-sha256-hmac no compression
in use settings ={L2L, Tunnel, IKEv2, }
slot: 0, conn_id: 182743040, crypto-map: outside
sa timing: remaining key lifetime (kB/sec): (4193279/28522)
IV size: 16 bytes
replay detection support: Y
Anti replay bitmap:
0x00000000 0x0000001F
outbound esp sas:
spi: 0x8E7A2E12 (2390371858)
SA State: active
transform: esp-aes-256 esp-sha256-hmac no compression
in use settings ={L2L, Tunnel, IKEv2, }
slot: 0, conn_id: 182743040, crypto-map: outside
sa timing: remaining key lifetime (kB/sec): (3962879/28522)
IV size: 16 bytes
replay detection support: Y
Anti replay bitmap:
0x00000000 0x00000001
透過IPSec SA傳送四個資料包,接收四個資料包,沒有錯誤。一個帶有SPI 0x9B60EDC5的入站SA和一個帶有SPI 0x8E7A2E12的出站SA按預期安裝。
您還可以透過檢查 vpn-sessiondb l2l
條目來驗證資料是否透過隧道:
Cisco-ASA#show vpn-sessiondb l2l
Session Type: LAN-to-LAN
Connection : 192.168.2.2
Index : 44615 IP Addr : 192.168.2.2
Protocol : IKEv2 IPsec
Encryption : IKEv2: (1)AES256 IPsec: (1)AES256
Hashing : IKEv2: (1)SHA256 IPsec: (1)SHA256
Bytes Tx : 400 Bytes Rx : 400
Login Time : 18:32:54 UTC Tue Mar 13 2018
Duration : 0h:05m:22s
Bytes Tx:和Bytes Rx:顯示透過IPSec SA傳送和接收的資料計數器。
步驟 1.驗證ASA在內部介面上接收到VPN的流量,該流量發往Azure專用網路。要進行測試,您可以配置來自內部客戶端的連續ping,並在ASA上配置資料包捕獲以驗證是否收到資料包:
capture [cap-name] interface [if-name] match [protocol] [src-ip] [src-mask] [dest-ip] [dest-mask]
show capture [cap-name]
Cisco-ASA#capture inside interface inside match ip host [local-host] host [remote-host]
Cisco-ASA#show capture inside 2 packets captured 1: 18:50:42.835863 192.168.0.2 > 192.168.3.2: icmp: echo request 2: 18:50:42.839128 192.168.3.2 > 192.168.0.2: icmp: echo reply 2 packets shown
如果發現來自Azure的回覆流量,則正確構建VPN並傳送/接收流量。
如果源流量不存在,請驗證您的傳送方是否正確路由到ASA。
如果發現源流量,但來自Azure的回覆流量不存在,請繼續驗證原因。
步驟 2.驗證ASA內部介面上接收的流量是否已由ASA正確處理並路由到VPN:
模擬ICMP回應請求:
packet-tracer input [inside-interface-name] icmp [inside-host-ip] 8 0 [azure-host-ip] detail
有關完整的Packet Tracer使用指南,請參閱:使用Packet Tracer排除訪問問題
Cisco-ASA# packet-tracer input inside icmp 192.168.0.2 8 0 192.168.3.2 detail Phase: 1 Type: CAPTURE Subtype: Result: ALLOW Config: Additional Information: Forward Flow based lookup yields rule: in id=0x7f6c19afb0a0, priority=13, domain=capture, deny=false hits=3, user_data=0x7f6c19afb9b0, cs_id=0x0, l3_type=0x0 src mac=0000.0000.0000, mask=0000.0000.0000 dst mac=0000.0000.0000, mask=0000.0000.0000 input_ifc=inside, output_ifc=any Phase: 2 Type: ACCESS-LIST Subtype: Result: ALLOW Config: Implicit Rule Additional Information: Forward Flow based lookup yields rule: in id=0x7f6c195971f0, priority=1, domain=permit, deny=false hits=32, user_data=0x0, cs_id=0x0, l3_type=0x8 src mac=0000.0000.0000, mask=0000.0000.0000 dst mac=0000.0000.0000, mask=0100.0000.0000 input_ifc=inside, output_ifc=any Phase: 3 Type: ROUTE-LOOKUP Subtype: Resolve Egress Interface Result: ALLOW Config: Additional Information: found next-hop 192.168.1.1 using egress ifc outside Phase: 4 Type: NAT Subtype: per-session Result: ALLOW Config: Additional Information: Forward Flow based lookup yields rule: in id=0x7f6c19250290, priority=0, domain=nat-per-session, deny=true hits=41, user_data=0x0, cs_id=0x0, reverse, use_real_addr, flags=0x0, protocol=0 src ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any dst ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any, dscp=0x0 input_ifc=any, output_ifc=any Phase: 5 Type: IP-OPTIONS Subtype: Result: ALLOW Config: Additional Information: Forward Flow based lookup yields rule: in id=0x7f6c1987c120, priority=0, domain=inspect-ip-options, deny=true hits=26, user_data=0x0, cs_id=0x0, reverse, flags=0x0, protocol=0 src ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any dst ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any, dscp=0x0 input_ifc=inside, output_ifc=any Phase: 6 Type: QOS Subtype: Result: ALLOW Config: Additional Information: Forward Flow based lookup yields rule: in id=0x7f6c19a60280, priority=70, domain=qos-per-class, deny=false hits=30, user_data=0x7f6c19a5c030, cs_id=0x0, reverse, use_real_addr, flags=0x0, protocol=0 src ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any dst ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any, dscp=0x0 input_ifc=any, output_ifc=any Phase: 7 Type: INSPECT Subtype: np-inspect Result: ALLOW Config: Additional Information: Forward Flow based lookup yields rule: in id=0x7f6c1983ab50, priority=66, domain=inspect-icmp-error, deny=false hits=27, user_data=0x7f6c1987afc0, cs_id=0x0, use_real_addr, flags=0x0, protocol=1 src ip/id=0.0.0.0, mask=0.0.0.0, icmp-type=0, tag=any dst ip/id=0.0.0.0, mask=0.0.0.0, icmp-code=0, tag=any, dscp=0x0 input_ifc=inside, output_ifc=any Phase: 8 Type: VPN Subtype: encrypt Result: ALLOW Config: Additional Information: Forward Flow based lookup yields rule: out id=0x7f6c19afe1a0, priority=70, domain=encrypt, deny=false hits=2, user_data=0x13134, cs_id=0x7f6c19349670, reverse, flags=0x0, protocol=0 src ip/id=192.168.0.0, mask=255.255.255.0, port=0, tag=any dst ip/id=192.168.3.0, mask=255.255.255.0, port=0, tag=any, dscp=0x0 input_ifc=any, output_ifc=outside Phase: 9 Type: FLOW-CREATION Subtype: Result: ALLOW Config: Additional Information: New flow created with id 43, packet dispatched to next module Module information for forward flow ... snp_fp_tracer_drop snp_fp_inspect_ip_options snp_fp_inspect_icmp snp_fp_adjacency snp_fp_encrypt snp_fp_fragment snp_ifc_stat Module information for reverse flow ... Result: input-interface: inside input-status: up input-line-status: up output-interface: outside output-status: up output-line-status: up Action: allow
NAT免除流量(轉換不會生效)。驗證VPN流量上是否未發生NAT轉換。 此外,請驗證 output-interface
是否正確-它必須是應用加密對映的物理介面或虛擬隧道介面。
確保未發現任何訪問清單丟棄。 如果VPN階段顯示 ENCRYPT: ALLOW,
隧道已構建,並且您可以看到使用封裝安裝IPSec SA。
步驟 2.1.如果在Packet Tracer中看到 ENCRYPT: ALLOW
。
使用來驗證是否已安裝IPsec SA並加密流量 show crypto ipsec sa.
您可以在外部介面上執行捕獲,以驗證加密資料包是從ASA傳送的,還是從Azure接收加密響應。
步驟 2.2.如果在Packet Tracer中看到 ENCRYPT:DROP
。
VPN隧道尚未建立,但正在協商。這是首次啟動隧道時的預期條件。運行調試以檢視隧道協商過程,並確定故障發生位置以及是否發生故障。
首先,驗證觸發的IKE版本是否正確,以及ike-common進程是否未顯示相關錯誤:
Cisco-ASA#debug crypto ike-common 255 Cisco-ASA# Mar 13 18:58:14 [IKE COMMON DEBUG]Tunnel Manager dispatching a KEY_ACQUIRE message to IKEv1. Map Tag = outside. Map Sequence Number = 10.
如果在啟動VPN流量時未看到ike-common debug輸出,則這意味著流量在到達加密進程之前被丟棄,或者該盒上未啟用crypto ikev1/ikev2。仔細檢查加密配置和資料包丟棄。
如果ike-common debug顯示加密進程被觸發,請調試IKE配置版本以檢視隧道協商消息並確定Azure隧道構建中發生故障的位置。
可以在此處找到完整的ikev1調試過程和分析資訊,ASA IPsec和IKE調試(IKEv1主模式)故障排除TechNote。
Cisco-ASA#debug crypto ikev1 127
Cisco-ASA#debug crypto ipsec 127
可以在此處找到完整的ikev2調試過程和分析對具有PSK的站點到站點VPN使用ASA IKEv2調試
Cisco-ASA#debug crypto ikev2 platform 127 Cisco-ASA#debug crypto ikev2 protocol 127 Cisco-ASA#debug crypto ipsec 127
修訂 | 發佈日期 | 意見 |
---|---|---|
4.0 |
07-Oct-2024 |
已更新文章說明、影象連結、樣式要求和格式。 |
3.0 |
09-Sep-2022 |
內容審閱/重新認證 |
2.0 |
28-Feb-2022 |
FTD 6.7支援已作為Firestarter請求的一部分增加。 |
1.0 |
27-Mar-2019 |
初始版本 |