此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
本文档介绍思科ASA与思科安全防火墙和Microsoft Azure云服务之间的VPN的概念和配置。
Cisco 建议您了解以下主题:
本文档中的信息基于以下软件和硬件版本:
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
IP地址范围IPSec允许其参与VPN隧道。加密域是使用本地流量选择器和远程流量选择器定义的,以指定IPSec捕获和加密的本地和远程子网范围。
以下是定义VPN加密域的两种方法:基于路由或基于策略的流量选择器。
基于路由:
加密域设置为允许任何进入IPSec隧道的流量。IPSec本地和远程流量选择器设置为0.0.0.0。这意味着路由到IPSec隧道的所有流量都会被加密,无论源/目标子网如何。
思科自适应安全设备(ASA)支持使用版本9.8及更高版本的虚拟隧道接口(VTI)的基于路由的VPN。
由Firepower管理中心(FMC)管理的思科安全防火墙或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。
这在Azure门户中通过PowerShell脚本部署实现,以实现Microsoft调用UsePolicyBasedTrafficSelectors的选项,如下所述:
从ASA和FTD配置角度进行总结:
完成配置步骤。选择配置基于VTI的IKEv1、IKEv2路由或使用基于策略的流量选择器(ASA上的加密映射)的基于IKEv2路由。
对于从ASA到Azure的站点到站点IKEv1 VPN,实施下一个ASA配置。确保在Azure门户中配置基于策略的隧道。此示例在ASA上使用加密映射。
参考在ASAv上使用ASDM或CLI配置IKEv1 IPsec站点到站点隧道以了解有关ASA配置信息的完整IKEv1。
步骤1:在外部接口上启用IKEv1。
Cisco-ASA(config)#crypto ikev1 enable outside
第二步:创建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
第三步:在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
第四步:创建一个访问列表,用于定义要加密和隧道化的流量。
在本示例中,相关流量来自从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
第五步:配置转换集(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
第六步:配置加密映射并将其应用到外部接口,该接口具有以下组件:
· 对等体IP地址
· 包含相关流量的已定义访问列表
· TS
· 配置不设置完全转发保密(PFS)。 About VPN Devices and IPsec/IKE Parameters for Site-to-Site VPN Gateway Connections表示在Azure中对IKEv1禁用了PFS。
可选的PFS设置会创建一个新的Diffie-Hellman密钥对,用于保护数据(在第2阶段启动之前,两端必须启用PFS)。
此设置可通过使用以下配置启用: crypto map outside_map 20 set pfs
.
· 第2阶段IPSec生命周期设置基于关于站点到站点VPN网关连接的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路由,请使用此配置。确保Azure配置为基于路由的VPN,并且不在Azure门户中配置UsePolicyBasedTrafficSelectors。ASA上配置了VTI。
有关完整的ASA VTI配置信息,请参阅CLI手册3:思科ASA系列VPN CLI配置指南9.8。
步骤1:在外部接口上启用IKEv2:
Cisco-ASA(config)#crypto ikev2 enable outside
第二步:添加IKEv2第1阶段策略。
注意:Microsoft已发布与Azure使用的特定IKEv2第1阶段加密、完整性和生存期属性冲突的信息。所列属性尽最大努力从关于站点到站点VPN网关连接的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
第三步:添加IKEv2第2阶段IPsec提议。在加密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网关连接的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
第四步:添加指定以下内容的IPSec配置文件:
注意:Microsoft发布的信息与Azure使用的特定第2阶段IPSec生命周期和PFS属性冲突。所列属性通过RouteBased VPN IPsec Security Association (IKE Quick Mode 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
第五步:在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
第六步:创建指定以下内容的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云中目标网络的IP地址,例如10.0.0.0/24。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.
第二步:创建新策略.点击 Add VPN
下拉菜单并选择 Firepower Threat Defense device.
第三步:在 Create new VPN Topology
窗口中,指定 Topology Name,
选中 IKEV1
protocol复选框,然后单击 IKE
选项卡。在本示例中,预共享密钥用作身份验证方法。
单击 Authentication Type
下拉菜单,然后选择 Pre-shared manual key
。在 Key
和Confirm Key
文本字段中键入手动预共享密钥。
第四步:通过创建新的策略来配置ISAKMP策略或第1阶段参数。在同一窗口中,点击 green plus button
添加新的ISAKMP策略。指定策略名称并选择所需的加密、哈希、Diffie-Hellman组、生存期和身份验证方法,然后单击 Save.
第五步:配置IPsec策略或第2阶段参数。导航到 IPsec
选项卡,选中复选框 Crypto Map Type
上的 Static
。在 Transform Sets
选项处单击 IKEV1 IPsec Proposals
中的 edit pencil
图标。
第六步:创建新的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 Selector/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
窗口中,指定对象的名称并选择相应的host/network/range/FQDN。然后,单击Save
。
步骤 14将对象添加到 Network Objects
窗口的 Selected Networks
部分,并单击 Add Endpoint
窗口中的 OK.
单击 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
窗口中,指定对象的名称,并相应地选择host/range/network/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,请使用此配置。确保Azure配置为基于路由的VPN,并且必须使用PowerShell在Azure门户中配置UsePolicyBasedTrafficSelector。
将VPN网关连接到来自Microsoft的多个内部部署基于策略的VPN设备描述了UsePolicyBasedTrafficSelector与基于路由的Azure VPN模式的配置。如果不完成此步骤,由于从Azure接收的流量选择器不匹配,具有加密映射的ASA无法建立连接。
有关包含加密映射配置信息的完整ASA IKEv2的信息,请参阅CLI手册3:思科ASA系列VPN CLI配置指南9.8。
步骤1:在外部接口上启用IKEv2:
Cisco-ASA(config)#crypto ikev2 enable outside
第二步:添加IKEv2第1阶段策略。
注意:Microsoft已发布与Azure使用的特定IKEv2第1阶段加密、完整性和生存期属性冲突的信息。所列属性尽最大努力从关于站点到站点VPN网关连接的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
第三步:在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
第四步:创建一个访问列表,用于定义要加密和隧道化的流量。在本示例中,相关流量是来自从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
第五步:添加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加密和完整性属性冲突的信息。所列属性通过RouteBased VPN IPsec Security Association (IKE Quick Mode 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
第六步:配置加密映射并将其应用到外部接口,该接口包含以下组件:
· 对等体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且剩余生存期为86388秒的IKEv1 SA。
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在内部接口上收到发往Azure专用网络的发往VPN的流量。要进行测试,可以从内部客户端配置连续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的回复流量不存在,请继续验证原因。
第二步:验证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
。
使用SSL VPN客户端上的 show crypto ipsec sa.
您可以在外部接口上执行捕获,以验证加密数据包是从ASA发送的,加密响应是从Azure接收的。
步骤 2.2如果 ENCRYPT:DROP
在Packet Tracer中看到。
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 |
作为firestarter请求的一部分,添加了对FTD 6.7的支持。 |
1.0 |
27-Mar-2019 |
初始版本 |