思科防火墙配置示例

使用IPsec-VPN实现本地数据中心IDC(Internet Data Center)和阿里云VPC之间的网络互通时,在阿里云侧完成VPN网关的配置后,您还需在本地数据中心的网关设备中添加VPN配置才能成功在本地数据中心和阿里云VPC之间建立IPsec-VPN连接。本文介绍如何在思科防火墙中添加VPN配置。

场景示例

image

本文以上图场景为例。某公司在阿里云拥有一个专有网络VPC(Virtual Private Cloud),VPC网段为10.0.0.0/16,VPC中使用云服务器ECS(Elastic Compute Service)部署了应用服务。同时该公司在本地拥有一个数据中心,本地数据中心中要与VPC互通的网段为192.168.0.0/16。公司计划在本地数据中心与云上VPC之间建立IPsec-VPN连接,实现资源互访。

重要

本文场景中,本地数据中心使用一台思科防火墙的两个公网IP地址与阿里云建立双隧道模式的IPsec-VPN连接。如果您购买的VPN网关实例仅支持建立单隧道模式的IPsec-VPN连接,请参见文末的单隧道模式配置示例

推荐您升级IPsec-VPN连接为双隧道模式,双隧道模式的IPsec-VPN连接支持可用区级别的容灾,有效提高了网络的高可用性。

网段规划及VPN配置示例

网段规划

资源

网段

IP地址

本地数据中心

待和VPC互通的网段:192.168.0.0/16

服务器IP地址:192.168.50.198

思科防火墙

不涉及

思科防火墙连接公网的物理接口:

  • GigabitEthernet0/0:GigabitEthernet0/0接口配置一个公网IP地址,本文示例值为121.XX.XX.211。

  • GigabitEthernet0/2:GigabitEthernet0/2接口配置一个公网IP地址,本文示例值为121.XX.XX.77。

  • GigabitEthernet0/1:GigabitEthernet0/1接口连接本地数据中心,IP地址192.168.50.217。

VPC

主网段:10.0.0.0/16

交换机1:10.0.10.0/24

交换机2:10.0.20.0/24

ECS IP地址:10.0.10.33

VPN网关实例(公网网络类型)

不涉及

  • IPsec地址1:39.XX.XX.218

  • IPsec地址2:182.XX.XX.19

说明

创建VPN网关实例后,系统会自动为VPN网关实例分配地址。

BGP网段规划

本文将分别描述IPsec-VPN连接使用静态路由方式和BGP动态路由方式下如何配置思科防火墙。如果您不需要使用BGP动态路由方式,可以忽略本部分。以下为本文的BGP网段规划。

资源

隧道

BGP隧道网段

BGP IP地址

BGP AS号(本端自治系统号)

VPN网关实例

隧道1

169.254.10.0/30

说明

一个VPN网关实例下,每个隧道的网段需保持唯一。

169.254.10.1

65530

隧道2

169.254.20.0/30

169.254.20.1

思科防火墙

隧道1

169.254.10.0/30

169.254.10.2

65000

隧道2

169.254.20.0/30

169.254.20.2

VPN配置示例

  • 本文场景中隧道1(主隧道)和隧道2(备隧道)使用相同的示例值。

  • 每条隧道下,阿里云侧和思科防火墙侧VPN配置需保持相同。

配置项

阿里云侧示例值

思科防火墙侧示例值

预共享密钥

123456****

123456****

IKE配置

IKE版本

ikev2

ikev2

协商模式

main

main

加密算法

aes

aes

认证算法

sha1

sha1

DH分组

group14

group14

SA生存周期(秒)

86400

86400

IPsec配置

加密算法

aes

aes

认证算法

sha1

sha1

DH分组

group14

group14

SA生存周期(秒)

86400

86400

开始配置

说明
  • 本文以思科ASA软件版本9.19.1作为配置示例。不同软件版本的配置命令可能会有所差异,操作时请根据您的实际环境查询对应文档或咨询相关厂商。

  • 在下述场景中,推荐您使用目的路由模式-静态路由或者目的路由模式-BGP动态路由方式。

目的路由模式-静态路由

前提条件

本文仅描述如何在思科防火墙中添加VPN配置,不再描述阿里云VPN网关侧的配置。因此在您开始配置前,请确保您已经完成创建VPN网关实例、创建用户网关、创建IPsec连接、配置VPN网关路由的任务。具体操作,请参见建立VPC到本地数据中心的连接(双隧道模式)

操作步骤

  1. 登录思科防火墙的命令行窗口并进入配置模式。

    ciscoasa> enable
    Password: ********             #输入进入enable模式的密码。
    ciscoasa# configure terminal   #进入配置模式。
    ciscoasa(config)#     
  2. 查看接口配置和公网路由配置。

    思科防火墙已完成了接口配置,并已开启接口。以下为本文的接口配置示例。

    ciscoasa(config)# show running-config interface 
    !
    interface GigabitEthernet0/0
     nameif outside1                            #GigabitEthernet0/0接口名称。
     security-level 0
     ip address 121.XX.XX.211 255.255.255.255    #GigabitEthernet0/0接口配置的公网IP地址。
    !
    interface GigabitEthernet0/1                #连接本地数据中心的接口。
     nameif private                             #GigabitEthernet0/1接口名称。
     security-level 100                         #指定连接本地数据中心接口(私网接口)的security-level低于公网接口。
     ip address 192.168.50.217 255.255.255.0    #GigabitEthernet0/1接口配置的IP地址。
    !
    interface GigabitEthernet0/2                
     nameif outside2                            #GigabitEthernet0/2接口名称。
     security-level 0
     ip address 121.XX.XX.77 255.255.255.255    #GigabitEthernet0/2接口配置的公网IP地址。
    !
    
    route outside1 39.XX.XX.218 255.255.255.255 192.XX.XX.172   #配置访问阿里云侧隧道1公网IP地址的路由,下一跳为公网地址。
    route outside2 182.XX.XX.19 255.255.255.255 192.XX.XX.158   #配置访问阿里云侧隧道2公网IP地址的路由,下一跳为公网地址。
    route private 192.168.0.0 255.255.0.0 192.168.50.216        #配置去往本地数据中心的路由。
  3. 为公网接口开启IKEv2功能。

    crypto ikev2 enable outside1
    crypto ikev2 enable outside2
  4. 创建IKEv2 Policy,指定IKE阶段认证算法、加密算法、DH分组和SA生存周期,需和阿里云侧保持一致。

    重要

    阿里云侧配置IPsec连接时,IKE配置阶段的加密算法认证算法DH分组均只支持指定一个值,不支持指定多个值。建议在思科防火墙中IKE配置阶段的加密算法、认证算法和DH分组也均只指定一个值,该值需与阿里云侧保持一致。

    crypto ikev2 policy 10     
     encryption aes             #指定加密算法。
     integrity sha              #指定认证算法。
     group 14                   #指定DH分组。
     prf sha                    #prf和integrity保持一致,阿里云侧prf与认证算法默认保持一致。
     lifetime seconds 86400     #指定SA生存周期。
  5. 创建IPsec proposal和profile,指定思科防火墙侧的IPsec阶段加密算法、认证算法、DH分组和SA生存周期,需和阿里云侧保持一致。

    重要

    阿里云侧配置IPsec连接时,IPsec配置阶段的加密算法认证算法DH分组均只支持指定一个值,不支持指定多个值。建议在思科防火墙中IPsec配置阶段的加密算法、认证算法和DH分组也均只指定一个值,该值需与阿里云侧保持一致。

    crypto ipsec ikev2 ipsec-proposal ALIYUN-PROPOSAL    #创建ipsec proposal。
     protocol esp encryption aes                         #指定加密算法,协议使用ESP,阿里云侧固定使用ESP协议。
     protocol esp integrity sha-1                        #指定认证算法,协议使用ESP,阿里云侧固定使用ESP协议。
    crypto ipsec profile ALIYUN-PROFILE                  
     set ikev2 ipsec-proposal ALIYUN-PROPOSAL            #创建ipsec profile并应用已创建的proposal。 
     set ikev2 local-identity address                    #指定本端ID使用IP地址格式,与阿里云侧RemoteId格式保持一致。
     set pfs group14                                     #指定pfs和DH分组。
     set security-association lifetime seconds 86400     #指定基于时间的SA生存周期。
     set security-association lifetime kilobytes unlimited #关闭基于流量的SA生存周期。
  6. 创建tunnel group,指定隧道的预共享密钥,需和阿里云侧保持一致。

    tunnel-group 39.XX.XX.218 type ipsec-l2l                #指定隧道1的封装模式为l2l。
    tunnel-group 39.XX.XX.218 ipsec-attributes             
     ikev2 remote-authentication pre-shared-key 123456****  #指定隧道1对端的预共享密钥,即阿里云侧的预共享密钥。
     ikev2 local-authentication pre-shared-key 123456****   #指定隧道1本段的预共享密钥,需和阿里云侧的保持一致。
    !
    tunnel-group 182.XX.XX.19 type ipsec-l2l                #指定隧道2的封装模式为l2l。
    tunnel-group 182.XX.XX.19 ipsec-attributes
     ikev2 remote-authentication pre-shared-key 123456****  #指定隧道2对端的预共享密钥,即阿里云侧的预共享密钥。
     ikev2 local-authentication pre-shared-key 123456****   #指定隧道2本段的预共享密钥,需和阿里云侧的保持一致。
    !
  7. 创建tunnel接口。

    interface Tunnel1                                  #创建隧道1的接口。
     nameif ALIYUN1
     ip address 169.254.10.2 255.255.255.252           #指定接口的IP地址。
     tunnel source interface outside1                  #指定隧道1源地址为公网接口GigabitEthernet0/0。
     tunnel destination 39.XX.XX.218                   #指定隧道1目的地址为阿里云侧隧道1的公网IP地址。
     tunnel mode ipsec ipv4
     tunnel protection ipsec profile ALIYUN-PROFILE    #指定隧道1应用ipsec profile ALIYUN-PROFILE。
     no shutdown                                       #开启隧道1接口。
    !
    interface Tunnel2                                  #创建隧道2的接口。
     nameif ALIYUN2                
     ip address 169.254.20.2 255.255.255.252           #指定接口的IP地址。
     tunnel source interface outside2                  #指定隧道2源地址为公网接口GigabitEthernet0/2。
     tunnel destination 182.XX.XX.19                   #指定隧道2目的地址为阿里云侧隧道2的公网IP地址。
     tunnel mode ipsec ipv4                            
     tunnel protection ipsec profile ALIYUN-PROFILE    #指定隧道2应用ipsec profile ALIYUN-PROFILE。
     no shutdown                                       #开启隧道2接口。
    !
  8. 查看IPsec-VPN连接状态。

    您可以通过以下命令查看已经协商成功的SA。IPsec-sa-1IPsec-sa-2

    单击查看更多查询命令。

    IPsec SA协商相关查询命令

    show crypto isakmp sa #查看控制面协商SA信息(旧命令)
    show crypto ikev2 sa  #查看控制面协商一二阶段SA、role、感兴趣流信息
    show crypto ipsec sa peer XX.XX.XX.XX   #查询指定peer SA的详细信息
    show ipsec sa         #查看转发面一二阶段SA、role、感兴趣流、流量统计等基本信息

    VPN流量统计相关查询命令

    show crypto ikev2 stats     #查看协议报文、加密、异常报文统计数据
    show crypto protocol statistics all #查看协议报文、加密报文统计数据
    show ipsec stats            #查看IPsec统计信息
  9. 配置去往阿里云VPC(10.0.0.0/16)的静态路由。

    route ALIYUN1 10.0.0.0 255.255.0.0 39.XX.XX.218 4  #指定从本地数据中心去往阿里云VPC流量优先通过隧道1接口传输,该路由优先级较高。
    route ALIYUN2 10.0.0.0 255.255.0.0 182.XX.XX.19 5  #指定从本地数据中心去往阿里云VPC流量通过隧道2接口传输,该路由优先级低于指向隧道1接口的路由。
  10. 在本地数据中心侧,设置本地数据中心客户端到思科防火墙及思科防火墙到本地数据中心客户端的路由。

    后续您可以开始测试本地数据中心和阿里云VPC之间的网络连通性。具体操作,请参见验证测试

目的路由模式-BGP动态路由

前提条件

本文仅描述如何在思科防火墙中添加VPN配置,不再描述阿里云VPN网关侧的配置。因此在您开始配置前,请确保您已经完成创建VPN网关实例、创建用户网关、创建IPsec连接、开启BGP功能的任务。具体操作,请参见建立VPC到本地数据中心的连接(双隧道模式和BGP路由)

操作步骤

  1. 登录思科防火墙的命令行窗口并进入配置模式。

    ciscoasa> enable
    Password: ********             #输入进入enable模式的密码。
    ciscoasa# configure terminal   #进入配置模式。
    ciscoasa(config)#     
  2. 查看接口配置和公网路由配置。

    思科防火墙已完成了接口配置,并已开启接口。以下为本文的接口配置示例。

    ciscoasa(config)# show running-config interface 
    !
    interface GigabitEthernet0/0
     nameif outside1                            #GigabitEthernet0/0接口名称。
     security-level 0
     ip address 121.XX.XX.211 255.255.255.255    #GigabitEthernet0/0接口配置的公网IP地址。
    !
    interface GigabitEthernet0/1                #连接本地数据中心的接口。
     nameif private                             #GigabitEthernet0/1接口名称。
     security-level 100                         #指定连接本地数据中心接口(私网接口)的security-level低于公网接口。
     ip address 192.168.50.217 255.255.255.0    #GigabitEthernet0/1接口配置的IP地址。
    !
    interface GigabitEthernet0/2                
     nameif outside2                            #GigabitEthernet0/2接口名称。
     security-level 0
     ip address 121.XX.XX.77 255.255.255.255    #GigabitEthernet0/2接口配置的公网IP地址。
    !
    
    route outside1 39.XX.XX.218 255.255.255.255 192.XX.XX.172   #配置访问阿里云侧隧道1公网IP地址的路由,下一跳为公网地址。
    route outside2 182.XX.XX.19 255.255.255.255 192.XX.XX.158   #配置访问阿里云侧隧道2公网IP地址的路由,下一跳为公网地址。
    route private 192.168.0.0 255.255.0.0 192.168.50.216        #配置去往本地数据中心的路由。
  3. 为公网接口开启IKEv2功能。

    crypto ikev2 enable outside1
    crypto ikev2 enable outside2
  4. 创建IKEv2 Policy,指定IKE阶段认证算法、加密算法、DH分组和SA生存周期,需和阿里云侧保持一致。

    重要

    阿里云侧配置IPsec连接时,IKE配置阶段的加密算法认证算法DH分组均只支持指定一个值,不支持指定多个值。建议在思科防火墙中IKE配置阶段的加密算法、认证算法和DH分组也均只指定一个值,该值需与阿里云侧保持一致。

    crypto ikev2 policy 10     
     encryption aes             #指定加密算法。
     integrity sha              #指定认证算法。
     group 14                   #指定DH分组。
     prf sha                    #prf和integrity保持一致,阿里云侧prf与认证算法默认保持一致。
     lifetime seconds 86400     #指定SA生存周期。
  5. 创建IPsec proposal和profile,指定思科防火墙侧的IPsec阶段加密算法、认证算法、DH分组和SA生存周期,需和阿里云侧保持一致。

    重要

    阿里云侧配置IPsec连接时,IPsec配置阶段的加密算法认证算法DH分组均只支持指定一个值,不支持指定多个值。建议在思科防火墙中IPsec配置阶段的加密算法、认证算法和DH分组也均只指定一个值,该值需与阿里云侧保持一致。

    crypto ipsec ikev2 ipsec-proposal ALIYUN-PROPOSAL    #创建ipsec proposal。
     protocol esp encryption aes                         #指定加密算法,协议使用ESP,阿里云侧固定使用ESP协议。
     protocol esp integrity sha-1                        #指定认证算法,协议使用ESP,阿里云侧固定使用ESP协议。
    crypto ipsec profile ALIYUN-PROFILE                  
     set ikev2 ipsec-proposal ALIYUN-PROPOSAL            #创建ipsec profile并应用已创建的proposal。 
     set ikev2 local-identity address                    #指定本端ID使用IP地址格式,与阿里云侧RemoteId格式保持一致。
     set pfs group14                                     #指定pfs和DH分组。
     set security-association lifetime seconds 86400     #指定基于时间的SA生存周期。
     set security-association lifetime kilobytes unlimited #关闭基于流量的SA生存周期。
  6. 创建tunnel group,指定隧道的预共享密钥,需和阿里云侧保持一致。

    tunnel-group 39.XX.XX.218 type ipsec-l2l                #指定隧道1的封装模式为l2l。
    tunnel-group 39.XX.XX.218 ipsec-attributes             
     ikev2 remote-authentication pre-shared-key 123456****  #指定隧道1对端的预共享密钥,即阿里云侧的预共享密钥。
     ikev2 local-authentication pre-shared-key 123456****   #指定隧道1本段的预共享密钥,需和阿里云侧的保持一致。
    !
    tunnel-group 182.XX.XX.19 type ipsec-l2l                #指定隧道2的封装模式为l2l。
    tunnel-group 182.XX.XX.19 ipsec-attributes
     ikev2 remote-authentication pre-shared-key 123456****  #指定隧道2对端的预共享密钥,即阿里云侧的预共享密钥。
     ikev2 local-authentication pre-shared-key 123456****   #指定隧道2本段的预共享密钥,需和阿里云侧的保持一致。
    !
  7. 创建tunnel接口。

    interface Tunnel1                                  #创建隧道1的接口。
     nameif ALIYUN1
     ip address 169.254.10.2 255.255.255.252           #指定接口的IP地址。
     tunnel source interface outside1                  #指定隧道1源地址为公网接口GigabitEthernet0/0。
     tunnel destination 39.XX.XX.218                   #指定隧道1目的地址为阿里云侧隧道1的公网IP地址。
     tunnel mode ipsec ipv4
     tunnel protection ipsec profile ALIYUN-PROFILE    #指定隧道1应用ipsec profile ALIYUN-PROFILE。
     no shutdown                                       #开启隧道1接口。
    !
    interface Tunnel2                                  #创建隧道2的接口。
     nameif ALIYUN2                
     ip address 169.254.20.2 255.255.255.252           #指定接口的IP地址。
     tunnel source interface outside2                  #指定隧道2源地址为公网接口GigabitEthernet0/2。
     tunnel destination 182.XX.XX.19                   #指定隧道2目的地址为阿里云侧隧道2的公网IP地址。
     tunnel mode ipsec ipv4                            
     tunnel protection ipsec profile ALIYUN-PROFILE    #指定隧道2应用ipsec profile ALIYUN-PROFILE。
     no shutdown                                       #开启隧道2接口。
    !
  8. 查看IPsec-VPN连接状态。

    您可以通过以下命令查看已经协商成功的SA。IPsec-sa-1IPsec-sa-2

    单击查看更多查询命令。

    IPsec SA协商相关查询命令

    show crypto isakmp sa #查看控制面协商SA
    show crypto ikev2 sa  #查看控制面协商一二阶段SA、role、感兴趣流信息
    show crypto ipsec sa peer XX.XX.XX.XX   #查询指定peer SA的详细信息
    show ipsec sa         #查看转发面一二阶段SA/role/感兴趣流/SA/流量统计基本信息

    VPN流量统计相关查询命令

    show crypto ikev2 stats     #查看协议报文、加密、异常报文统计数据
    show crypto protocol statistics all #查看协议报文、加密报文统计数据
    show ipsec stats            #查看IPsec统计信息
  9. 配置BGP动态路由。

    router bgp 65000
     address-family ipv4 unicast
      neighbor 169.254.10.1 remote-as 65530       #指定BGP邻居,即阿里云侧隧道1的IP地址。
      neighbor 169.254.10.1 ebgp-multihop 255
      neighbor 169.254.10.1 activate              #激活BGP邻居。
      neighbor 169.254.20.1 remote-as 65530       #指定BGP邻居,即阿里云侧隧道2的IP地址。
      neighbor 169.254.20.1 ebgp-multihop 255
      neighbor 169.254.20.1 activate              #激活BGP邻居。
      network 192.168.0.0 mask 255.255.0.0        #宣告本地数据中心的网段。
     exit-address-family
  10. 查看BGP邻居状态和BGP路由。

    2024-07-18_13-35-41查看路由

  11. 在本地数据中心侧,设置本地数据中心客户端到思科防火墙及思科防火墙到本地数据中心客户端的路由。

    后续您可以开始测试本地数据中心和阿里云VPC之间的网络连通性。具体操作,请参见验证测试

感兴趣流模式-静态路由

前提条件

本文仅描述如何在思科防火墙中添加VPN配置,不再描述阿里云VPN网关侧的配置。因此在您开始配置前,请确保您已经完成创建VPN网关实例、创建用户网关、创建IPsec连接的任务。相关操作,请参见:建立VPC到本地数据中心的连接(双隧道模式),其中:

  • 创建IPsec连接时,路由模式需选择感兴趣流模式本端网段设置为10.0.0.0/16,对端网段设置为192.168.0.0/16。

    重要

    如果您的场景中需要指定多个本端网段或者对端网段,则推荐您使用目的路由模式-静态路由或者目的路由模式-BGP动态路由方式。更多方案,请参见多网段配置方案推荐

  • 创建IPsec连接后,您需要发布策略路由,具体操作,请参见配置策略路由。无需再配置目的路由。

操作步骤

  1. 登录思科防火墙的命令行窗口并进入配置模式。

    ciscoasa> enable
    Password: ********             #输入进入enable模式的密码。
    ciscoasa# configure terminal   #进入配置模式。
    ciscoasa(config)#     
  2. 查看接口配置和公网路由配置。

    思科防火墙已完成了接口配置,并已开启接口。以下为本文的接口配置示例。

    ciscoasa(config)# show running-config interface 
    !
    interface GigabitEthernet0/0
     nameif outside1                            #GigabitEthernet0/0接口名称。
     security-level 0
     ip address 121.XX.XX.211 255.255.255.255    #GigabitEthernet0/0接口配置的公网IP地址。
    !
    interface GigabitEthernet0/1                #连接本地数据中心的接口。
     nameif private                             #GigabitEthernet0/1接口名称。
     security-level 100                         #指定连接本地数据中心接口(私网接口)的security-level低于公网接口。
     ip address 192.168.50.217 255.255.255.0    #GigabitEthernet0/1接口配置的IP地址。
    !
    interface GigabitEthernet0/2                
     nameif outside2                            #GigabitEthernet0/2接口名称。
     security-level 0
     ip address 121.XX.XX.77 255.255.255.255    #GigabitEthernet0/2接口配置的公网IP地址。
    !
    
    route outside1 39.XX.XX.218 255.255.255.255 192.XX.XX.172   #配置访问阿里云侧隧道1公网IP地址的路由,下一跳为公网地址。
    route outside2 182.XX.XX.19 255.255.255.255 192.XX.XX.158   #配置访问阿里云侧隧道2公网IP地址的路由,下一跳为公网地址。
    route private 192.168.0.0 255.255.0.0 192.168.50.216        #配置去往本地数据中心的路由。
  3. 为公网接口开启IKEv2功能。

    crypto ikev2 enable outside1
    crypto ikev2 enable outside2
  4. 创建IKEv2 Policy,指定IKE阶段认证算法、加密算法、DH分组和SA生存周期,需和阿里云侧保持一致。

    重要

    阿里云侧配置IPsec连接时,IKE配置阶段的加密算法认证算法DH分组均只支持指定一个值,不支持指定多个值。建议在思科防火墙中IKE配置阶段的加密算法、认证算法和DH分组也均只指定一个值,该值需与阿里云侧保持一致。

    crypto ikev2 policy 10     
     encryption aes             #指定加密算法。
     integrity sha              #指定认证算法。
     group 14                   #指定DH分组。
     prf sha                    #prf和integrity保持一致,阿里云侧prf与认证算法默认保持一致。
     lifetime seconds 86400     #指定SA生存周期。
  5. 创建IPsec proposal,指定思科防火墙侧的IPsec阶段加密算法、认证算法,需和阿里云侧保持一致。

    重要

    阿里云侧配置IPsec连接时,IPsec配置阶段的加密算法认证算法DH分组均只支持指定一个值,不支持指定多个值。建议在思科防火墙中IPsec配置阶段的加密算法、认证算法和DH分组也均只指定一个值,该值需与阿里云侧保持一致。

    crypto ipsec ikev2 ipsec-proposal ALIYUN-PROPOSAL    #创建ipsec proposal。
     protocol esp encryption aes                         #指定加密算法,协议使用ESP,阿里云侧固定使用ESP协议。
     protocol esp integrity sha-1                        #指定认证算法,协议使用ESP,阿里云侧固定使用ESP协议。
  6. 定义感兴趣流。

    指定允许IPsec-VPN连接传输的流量网段。本示例指定本地数据中心的192.168.0.0/16网段和阿里云VPC10.0.0.0/16网段互通。

    access-list acl_tun extended permit ip 192.168.0.0 255.255.0.0 10.0.0.0 255.255.0.0
  7. 创建IPsec策略。

    #创建隧道1的IPsec策略
    crypto map TUNL1 1 match address acl_tun                      #应用定义的感兴趣流。
    crypto map TUNL1 1 set pfs group14                            #指定DH分组。	
    crypto map TUNL1 1 set peer 39.XX.XX.218                      #指定对端ID,即阿里云IPsec地址1。
    crypto map TUNL1 1 set ikev2 ipsec-proposal ALIYUN-PROPOSAL   #应用IPsec proposal。
    crypto map TUNL1 1 set ikev2 pre-shared-key 0 123456****      #指定预共享密钥,需和tunnel-group命令中的预共享密钥必须保持一致。
    crypto map TUNL1 1 set security-association lifetime seconds  86400             #指定基于时间的IPsec SA生存周期。
    crypto map TUNL1 1 set security-association lifetime kilobytes unlimited        #关闭基于流量的IPsec SA生存周期。
    crypto map TUNL1 interface outside1                                             #将IPsec策略应用在公网接口GigabitEthernet0/0。
    !
    #创建隧道2的IPsec策略
    crypto map TUNL2 1 match address acl_tun                      #应用定义的感兴趣流。
    crypto map TUNL2 1 set pfs group14                            #指定DH分组。	
    crypto map TUNL2 1 set peer 182.XX.XX.19                      #指定对端ID,即阿里云IPsec地址2。
    crypto map TUNL2 1 set ikev2 ipsec-proposal ALIYUN-PROPOSAL   #应用IPsec proposal。
    crypto map TUNL2 1 set ikev2 pre-shared-key 0 123456****      #指定预共享密钥,需和tunnel-group命令中的预共享密钥必须保持一致。
    crypto map TUNL2 1 set security-association lifetime seconds  86400             #指定基于时间的IPsec SA生存周期。
    crypto map TUNL2 1 set security-association lifetime kilobytes unlimited        #关闭基于流量的IPsec SA生存周期。
    crypto map TUNL2 interface outside2                                             #将IPsec策略应用在公网接口GigabitEthernet0/2。
    
    !
  8. 创建tunnel group,指定隧道的预共享密钥,需和阿里云侧保持一致。

    tunnel-group 39.XX.XX.218 type ipsec-l2l                #指定隧道1的封装模式为l2l。
    tunnel-group 39.XX.XX.218 ipsec-attributes             
     ikev2 remote-authentication pre-shared-key 123456****  #指定隧道1对端的预共享密钥,即阿里云侧的预共享密钥。
     ikev2 local-authentication pre-shared-key 123456****   #指定隧道1本段的预共享密钥,需和阿里云侧的保持一致。
    !
    tunnel-group 182.XX.XX.19 type ipsec-l2l                #指定隧道2的封装模式为l2l。
    tunnel-group 182.XX.XX.19 ipsec-attributes
     ikev2 remote-authentication pre-shared-key 123456****  #指定隧道2对端的预共享密钥,即阿里云侧的预共享密钥。
     ikev2 local-authentication pre-shared-key 123456****   #指定隧道2本段的预共享密钥,需和阿里云侧的保持一致。
    !
  9. 查看IPsec-VPN连接状态。

    您可以通过以下命令查看已经协商成功的SA。策略路由SA策略路由SA2

    单击查看更多查询命令。

    IPsec SA协商相关查询命令

    show crypto isakmp sa #查看控制面协商SA
    show crypto ikev2 sa  #查看控制面协商一二阶段SA、role、感兴趣流信息
    show crypto ipsec sa peer XX.XX.XX.XX   #查询指定peer SA的详细信息
    show ipsec sa         #查看转发面一二阶段SA/role/感兴趣流/SA/流量统计基本信息

    VPN流量统计相关查询命令

    show crypto ikev2 stats     #查看协议报文、加密、异常报文统计数据
    show crypto protocol statistics all #查看协议报文、加密报文统计数据
    show ipsec stats            #查看IPsec统计信息
  10. 配置去往阿里云VPC(10.0.0.0/16)的浮动静态路由。

    sla monitor 1                                                  # 定义一个编号为1的SLA操作。
     type echo protocol ipIcmpEcho 10.0.10.33 interface outside1   # 进行outside1接口与阿里云侧10.0.10.33地址间的icmp-echo检测。
     num-packets 2
     timeout 60
     frequency 5
    sla monitor schedule 1 life forever start-time now             #立即启动SLA 1,并永久运行。
    
    track 1 rtr 1 reachability                                     #创建Track 1并绑定SLA 1,探测outside1接口与阿里云侧10.0.10.33地址的连通性
    
    #track跟踪到outside1接口与阿里云侧10.0.10.33地址间的连通性DOWN,则撤销该路由。
    #track跟踪到outside1接口与阿里云侧10.0.10.33地址间的连通性UP,则添加该路由。
    route outside1 10.0.0.0 255.255.0.0 39.XX.XX.218 1 track 1     
    route outside2 10.0.0.0 255.255.0.0 182.XX.XX.19 5
  11. 在本地数据中心侧,设置本地数据中心客户端到思科防火墙及思科防火墙到本地数据中心客户端的路由。

    后续您可以开始测试本地数据中心和阿里云VPC之间的网络连通性。具体操作,请参见验证测试

IKEv1配置示例

如果思科防火墙中需要使用IKEv1版本,您可以参见以下内容进行配置。

使用以下配置和阿里云建立IPsec-VPN连接时,阿里云侧IPsec连接需使用目的路由模式、IKEv1版本。

目的路由模式-静态路由

  1. 登录思科防火墙的命令行窗口并进入配置模式。

    ciscoasa> enable
    Password: ********             #输入进入enable模式的密码。
    ciscoasa# configure terminal   #进入配置模式。
    ciscoasa(config)#     
  2. 查看接口配置和公网路由配置。

    思科防火墙已完成了接口配置,并已开启接口。以下为本文的接口配置示例。

    ciscoasa(config)# show running-config interface 
    !
    interface GigabitEthernet0/0
     nameif outside1                            #GigabitEthernet0/0接口名称。
     security-level 0
     ip address 121.XX.XX.211 255.255.255.255    #GigabitEthernet0/0接口配置的公网IP地址。
    !
    interface GigabitEthernet0/1                #连接本地数据中心的接口。
     nameif private                             #GigabitEthernet0/1接口名称。
     security-level 100                         #指定连接本地数据中心接口(私网接口)的security-level低于公网接口。
     ip address 192.168.50.217 255.255.255.0    #GigabitEthernet0/1接口配置的IP地址。
    !
    interface GigabitEthernet0/2                
     nameif outside2                            #GigabitEthernet0/2接口名称。
     security-level 0
     ip address 121.XX.XX.77 255.255.255.255    #GigabitEthernet0/2接口配置的公网IP地址。
    !
    
    route outside1 39.XX.XX.218 255.255.255.255 192.XX.XX.172   #配置访问阿里云侧隧道1公网IP地址的路由,下一跳为公网地址。
    route outside2 182.XX.XX.19 255.255.255.255 192.XX.XX.158   #配置访问阿里云侧隧道2公网IP地址的路由,下一跳为公网地址。
    route private 192.168.0.0 255.255.0.0 192.168.50.216        #配置去往本地数据中心的路由。
  3. 为公网接口开启IKEv1功能。

    crypto ikev1 enable outside1
    crypto ikev1 enable outside2
  4. 创建IKEv1 Policy,指定验证方式、IKE阶段认证算法、IKE加密算法、DH分组和SA生存周期,需和阿里云侧保持一致。

    重要

    阿里云侧配置IPsec连接时,IKE配置阶段的加密算法认证算法DH分组均只支持指定一个值,不支持指定多个值。建议在思科防火墙中IKE配置阶段的加密算法、认证算法和DH分组也均只指定一个值,该值需与阿里云侧保持一致。

    crypto ikev1 policy 10   
     authentication pre-share   #指定验证方式为预共享密钥。
     encryption aes             #指定加密算法。
     hash sha                   #指定认证算法。
     group 14                   #指定DH分组。
     lifetime 86400             #指定基于时间的SA生存周期。
  5. 创建IPsec transform和profile,指定思科防火墙侧的IPsec阶段加密算法、认证算法、DH分组和SA生存周期,需和阿里云侧保持一致。

    重要

    阿里云侧配置IPsec连接时,IPsec配置阶段的加密算法认证算法DH分组均只支持指定一个值,不支持指定多个值。建议在思科防火墙中IPsec配置阶段的加密算法、认证算法和DH分组也均只指定一个值,该值需与阿里云侧保持一致。

    crypto ipsec ikev1 transform-set TRANSFORM esp-aes esp-sha-hmac  #创建IPsec transform,指定加密算法和认证算法。
    crypto ipsec profile ALIYUN-PROFILE                  
     set ikev1 transform-set TRANSFORM                               #应用已创建的transform。
     set pfs group14                                                 #指定pfs和DH分组。
     set security-association lifetime seconds 86400                 #指定基于时间SA生存周期。
     set security-association lifetime kilobytes unlimited           #关闭基于流量的SA生存周期。
    
    crypto isakmp identity address                                   #FQDN采用address格式。
  6. 创建tunnel group,指定隧道的预共享密钥,需和阿里云侧保持一致。

    tunnel-group 39.XX.XX.218 type ipsec-l2l                #指定隧道1的封装模式为l2l。
    tunnel-group 39.XX.XX.218 ipsec-attributes             
     ikev1 pre-shared-key 123456****                        #指定隧道1对端的预共享密钥,即阿里云侧的预共享密钥。
    !
    tunnel-group 182.XX.XX.19 type ipsec-l2l                #指定隧道2的封装模式为l2l。
    tunnel-group 182.XX.XX.19 ipsec-attributes         
     ikev1 pre-shared-key 123456****                        #指定隧道2对端的预共享密钥,即阿里云侧的预共享密钥。
    !
  7. 创建tunnel接口。

    interface Tunnel1                                  #创建隧道1接口。
     nameif ALIYUN1
     ip address 169.254.10.2 255.255.255.252           #指定接口的IP地址。
     tunnel source interface outside1                  #指定隧道1源地址为公网接口GigabitEthernet0/0。
     tunnel destination 39.XX.XX.218                   #指定隧道1目的地址为阿里云侧隧道1的公网IP地址。
     tunnel mode ipsec ipv4
     tunnel protection ipsec profile ALIYUN-PROFILE    #指定隧道1应用ipsec profile ALIYUN-PROFILE。
     no shutdown                                       #开启隧道1接口。
    !
    interface Tunnel2                                  #创建隧道2的接口。
     nameif ALIYUN2                
     ip address 169.254.20.2 255.255.255.252           #指定接口的IP地址。
     tunnel source interface outside2                  #指定隧道2源地址为公网接口GigabitEthernet0/2。
     tunnel destination 182.XX.XX.19                   #指定隧道2目的地址为阿里云侧隧道2的公网IP地址。
     tunnel mode ipsec ipv4                            
     tunnel protection ipsec profile ALIYUN-PROFILE    #指定隧道2应用ipsec profile ALIYUN-PROFILE。
     no shutdown                                       #开启隧道2接口。
    !
  8. 配置去往阿里云VPC(10.0.0.0/16)的静态路由。

    route ALIYUN1 10.0.0.0 255.255.0.0 39.XX.XX.218 4  #指定从本地数据中心去往阿里云VPC流量优先通过隧道1接口传输,该路由优先级较高。
    route ALIYUN2 10.0.0.0 255.255.0.0 182.XX.XX.19 5  #指定从本地数据中心去往阿里云VPC流量通过隧道2接口传输,该路由优先级低于指向隧道1接口的路由。
  9. 在本地数据中心侧,设置本地数据中心客户端到思科防火墙及思科防火墙到本地数据中心客户端的路由。

    后续您可以开始测试本地数据中心和阿里云VPC之间的网络连通性。具体操作,请参见验证测试

目的路由模式-BGP动态路由

  1. 登录思科防火墙的命令行窗口并进入配置模式。

    ciscoasa> enable
    Password: ********             #输入进入enable模式的密码。
    ciscoasa# configure terminal   #进入配置模式。
    ciscoasa(config)#     
  2. 查看接口配置和公网路由配置。

    思科防火墙已完成了接口配置,并已开启接口。以下为本文的接口配置示例。

    ciscoasa(config)# show running-config interface 
    !
    interface GigabitEthernet0/0
     nameif outside1                            #GigabitEthernet0/0接口名称。
     security-level 0
     ip address 121.XX.XX.211 255.255.255.255    #GigabitEthernet0/0接口配置的公网IP地址。
    !
    interface GigabitEthernet0/1                #连接本地数据中心的接口。
     nameif private                             #GigabitEthernet0/1接口名称。
     security-level 100                         #指定连接本地数据中心接口(私网接口)的security-level低于公网接口。
     ip address 192.168.50.217 255.255.255.0    #GigabitEthernet0/1接口配置的IP地址。
    !
    interface GigabitEthernet0/2                
     nameif outside2                            #GigabitEthernet0/2接口名称。
     security-level 0
     ip address 121.XX.XX.77 255.255.255.255    #GigabitEthernet0/2接口配置的公网IP地址。
    !
    
    route outside1 39.XX.XX.218 255.255.255.255 192.XX.XX.172   #配置访问阿里云侧隧道1公网IP地址的路由,下一跳为公网地址。
    route outside2 182.XX.XX.19 255.255.255.255 192.XX.XX.158   #配置访问阿里云侧隧道2公网IP地址的路由,下一跳为公网地址。
    route private 192.168.0.0 255.255.0.0 192.168.50.216        #配置去往本地数据中心的路由。
  3. 为公网接口开启IKEv1功能。

    crypto ikev1 enable outside1
    crypto ikev1 enable outside2
  4. 创建IKEv1 Policy,指定验证方式、IKE阶段认证算法、IKE加密算法、DH分组和SA生存周期,需和阿里云侧保持一致。

    重要

    阿里云侧配置IPsec连接时,IKE配置阶段的加密算法认证算法DH分组均只支持指定一个值,不支持指定多个值。建议在思科防火墙中IKE配置阶段的加密算法、认证算法和DH分组也均只指定一个值,该值需与阿里云侧保持一致。

    crypto ikev1 policy 10   
     authentication pre-share   #指定验证方式为预共享密钥。
     encryption aes             #指定加密算法。
     hash sha                   #指定认证算法。
     group 14                   #指定DH分组。
     lifetime 86400             #指定基于时间的SA生存周期。
  5. 创建IPsec transform和profile,指定思科防火墙侧的IPsec阶段加密算法、认证算法、DH分组和SA生存周期,需和阿里云侧保持一致。

    重要

    阿里云侧配置IPsec连接时,IPsec配置阶段的加密算法认证算法DH分组均只支持指定一个值,不支持指定多个值。建议在思科防火墙中IPsec配置阶段的加密算法、认证算法和DH分组也均只指定一个值,该值需与阿里云侧保持一致。

    crypto ipsec ikev1 transform-set TRANSFORM esp-aes esp-sha-hmac  #创建IPsec transform,指定加密算法和认证算法。
    crypto ipsec profile ALIYUN-PROFILE                  
     set ikev1 transform-set TRANSFORM                               #应用已创建的transform。
     set pfs group14                                                 #指定pfs和DH分组。
     set security-association lifetime seconds 86400                 #指定基于时间SA生存周期。
     set security-association lifetime kilobytes unlimited           #关闭基于流量的SA生存周期。
    
    crypto isakmp identity address                                   #FQDN采用address格式。
  6. 创建tunnel group,指定隧道的预共享密钥,需和阿里云侧保持一致。

    tunnel-group 39.XX.XX.218 type ipsec-l2l                #指定隧道1的封装模式为l2l。
    tunnel-group 39.XX.XX.218 ipsec-attributes             
     ikev1 pre-shared-key 123456****                        #指定隧道1对端的预共享密钥,即阿里云侧的预共享密钥。
    !
    tunnel-group 182.XX.XX.19 type ipsec-l2l                #指定隧道2的封装模式为l2l。
    tunnel-group 182.XX.XX.19 ipsec-attributes         
     ikev1 pre-shared-key 123456****                        #指定隧道2对端的预共享密钥,即阿里云侧的预共享密钥。
    !
  7. 创建tunnel接口。

    interface Tunnel1                                  #创建隧道1接口。
     nameif ALIYUN1
     ip address 169.254.10.2 255.255.255.252           #指定接口的IP地址。
     tunnel source interface outside1                  #指定隧道1源地址为公网接口GigabitEthernet0/0。
     tunnel destination 39.XX.XX.218                   #指定隧道1目的地址为阿里云侧隧道1的公网IP地址。
     tunnel mode ipsec ipv4
     tunnel protection ipsec profile ALIYUN-PROFILE    #指定隧道1应用ipsec profile ALIYUN-PROFILE。
     no shutdown                                       #开启隧道1接口。
    !
    interface Tunnel2                                  #创建隧道2的接口。
     nameif ALIYUN2                
     ip address 169.254.20.2 255.255.255.252           #指定接口的IP地址。
     tunnel source interface outside2                  #指定隧道2源地址为公网接口GigabitEthernet0/2。
     tunnel destination 182.XX.XX.19                   #指定隧道2目的地址为阿里云侧隧道2的公网IP地址。
     tunnel mode ipsec ipv4                            
     tunnel protection ipsec profile ALIYUN-PROFILE    #指定隧道2应用ipsec profile ALIYUN-PROFILE。
     no shutdown                                       #开启隧道2接口。
    !
  8. 配置BGP动态路由。

    router bgp 65000
     address-family ipv4 unicast
      neighbor 169.254.10.1 remote-as 65530       #指定BGP邻居,即阿里云侧隧道1的IP地址。
      neighbor 169.254.10.1 ebgp-multihop 255
      neighbor 169.254.10.1 activate              #激活BGP邻居。
      neighbor 169.254.20.1 remote-as 65530       #指定BGP邻居,即阿里云侧隧道2的IP地址。
      neighbor 169.254.20.1 ebgp-multihop 255
      neighbor 169.254.20.1 activate              #激活BGP邻居。
      network 192.168.0.0 mask 255.255.0.0        #宣告本地数据中心的网段。
     exit-address-family
  9. 在本地数据中心侧,设置本地数据中心客户端到思科防火墙及思科防火墙到本地数据中心客户端的路由。

    后续您可以开始测试本地数据中心和阿里云VPC之间的网络连通性。具体操作,请参见验证测试

单隧道模式配置示例

单击查看单隧道配置示例

场景示例

image

本文以上图场景为例。某公司在阿里云拥有一个VPC,VPC网段为10.0.0.0/16,VPC中使用ECS部署了应用服务。同时该公司在本地拥有一个数据中心,本地数据中心中要与VPC互通的网段为192.168.0.0/16。公司计划在本地数据中心与云上VPC之间建立IPsec-VPN连接,实现资源互访。

网段规划及VPN配置示例

网段规划

资源

网段

IP地址

本地数据中心

待和VPC互通的网段:192.168.0.0/16

服务器IP地址:192.168.50.198

思科防火墙

不涉及

思科防火墙连接公网的物理接口:

  • GigabitEthernet0/0:GigabitEthernet0/0接口配置一个公网IP地址,本文示例值为39.XX.XX.218。

  • GigabitEthernet0/1:GigabitEthernet0/1接口连接本地数据中心,IP地址192.168.50.217。

VPC

主网段:10.0.0.0/16

交换机1:10.0.10.0/24

交换机2:10.0.20.0/24

ECS IP地址:10.0.10.33

VPN网关实例(公网网络类型)

不涉及

VPN网关公网IP地址:39.XX.XX.218

说明

创建VPN网关实例后,系统会自动为VPN网关实例分配地址。

BGP网段规划

本文将分别描述IPsec-VPN连接使用静态路由方式和BGP动态路由方式下如何配置思科防火墙。如果您不需要使用BGP动态路由方式,可以忽略本部分。以下为本文的BGP网段规划。

资源

BGP隧道网段

BGP IP地址

BGP AS号(本端自治系统号)

VPN网关实例

169.254.10.0/30

说明

一个VPN网关实例下,每个隧道的网段需保持唯一。

169.254.10.1

65530

思科防火墙

169.254.10.0/30

169.254.10.2

65000

VPN配置示例

阿里云侧和思科防火墙侧VPN配置需保持相同。

配置项

阿里云侧示例值

思科防火墙侧示例值

预共享密钥

123456****

123456****

IKE配置

IKE版本

ikev2

ikev2

协商模式

main

main

加密算法

aes

aes

认证算法

sha1

sha1

DH分组

group14

group14

SA生存周期(秒)

86400

86400

IPsec配置

加密算法

aes

aes

认证算法

sha1

sha1

DH分组

group14

group14

SA生存周期(秒)

86400

86400

开始配置

说明
  • 本文以思科ASA软件版本9.19.1作为配置示例。不同软件版本的配置命令可能会有所差异,操作时请根据您的实际环境查询对应文档或咨询相关厂商。

  • 在下述场景中,推荐您使用目的路由模式-静态路由或者目的路由模式-BGP动态路由方式。

目的路由模式-静态路由

前提条件

本文仅描述如何在思科防火墙中添加VPN配置,不再描述阿里云VPN网关侧的配置。因此在您开始配置前,请确保您已经完成创建VPN网关实例、创建用户网关、创建IPsec连接、配置VPN网关路由的任务。具体操作,请参见建立VPC到本地数据中心的连接(单隧道模式)

操作步骤

  1. 登录思科防火墙的命令行窗口并进入配置模式。

    ciscoasa> enable
    Password: ********             #输入进入enable模式的密码。
    ciscoasa# configure terminal   #进入配置模式。
    ciscoasa(config)#     
  2. 查看接口配置和公网路由配置。

    思科防火墙已完成了接口配置,并已开启接口。以下为本文的接口配置示例。

    ciscoasa(config)# show running-config interface 
    !
    interface GigabitEthernet0/0
     nameif outside1                            #GigabitEthernet0/0的名称。
     security-level 0
     ip address 121.XX.XX.211 255.255.255.255    #GigabitEthernet0/0接口配置的公网IP地址。
    !
    interface GigabitEthernet0/1                #连接本地数据中心的接口。
     nameif private                             #GigabitEthernet0/1接口名称。
     security-level 100                         #指定连接本地数据中心接口(私网接口)的security-level低于公网接口。
     ip address 192.168.50.217 255.255.255.0    #GigabitEthernet0/1接口配置的IP地址。
    !
    
    route outside1 39.XX.XX.218 255.255.255.255 192.XX.XX.172   #配置访问阿里云侧VPN网关公网IP地址的路由,下一跳为公网地址。
    route private 192.168.0.0 255.255.0.0 192.168.50.216        #配置去往本地数据中心的路由。
  3. 为公网接口开启IKEv2功能。

    crypto ikev2 enable outside1
  4. 创建IKEv2 Policy,指定IKE阶段认证算法、加密算法、DH分组和SA生存周期,需和阿里云侧保持一致。

    重要

    阿里云侧配置IPsec连接时,IKE配置阶段的加密算法认证算法DH分组均只支持指定一个值,不支持指定多个值。建议在思科防火墙中IKE配置阶段的加密算法、认证算法和DH分组也均只指定一个值,该值需与阿里云侧保持一致。

    crypto ikev2 policy 10     
     encryption aes             #指定加密算法。
     integrity sha              #指定认证算法。
     group 14                   #指定DH分组。
     prf sha                    #prf和integrity保持一致,阿里云侧prf与认证算法默认保持一致。
     lifetime seconds 86400     #指定SA生存周期。
  5. 创建IPsec proposal和profile,指定思科防火墙侧的IPsec阶段加密算法、认证算法、DH分组和SA生存周期,需和阿里云侧保持一致。

    重要

    阿里云侧配置IPsec连接时,IPsec配置阶段的加密算法认证算法DH分组均只支持指定一个值,不支持指定多个值。建议在思科防火墙中IPsec配置阶段的加密算法、认证算法和DH分组也均只指定一个值,该值需与阿里云侧保持一致。

    crypto ipsec ikev2 ipsec-proposal ALIYUN-PROPOSAL    #创建ipsec proposal。
     protocol esp encryption aes                         #指定加密算法,协议使用ESP,阿里云侧固定使用ESP协议。
     protocol esp integrity sha-1                        #指定认证算法,协议使用ESP,阿里云侧固定使用ESP协议。
    crypto ipsec profile ALIYUN-PROFILE                  
     set ikev2 ipsec-proposal ALIYUN-PROPOSAL            #创建ipsec profile并应用已创建的proposal。 
     set ikev2 local-identity address                    #指定本端ID使用IP地址格式,与阿里云侧emoteId格式保持一致。
     set pfs group14                                     #指定pfs和DH分组。
     set security-association lifetime seconds 86400     #指定基于时间的SA生存周期。
     set security-association lifetime kilobytes unlimited #关闭基于流量的SA生存周期。
  6. 创建tunnel group,指定隧道的预共享密钥,需和阿里云侧保持一致。

    tunnel-group 39.XX.XX.218 type ipsec-l2l                #指定隧道的封装模式为l2l。
    tunnel-group 39.XX.XX.218 ipsec-attributes             
     ikev2 remote-authentication pre-shared-key 123456****  #指定隧道对端的预共享密钥,即阿里云侧的预共享密钥。
     ikev2 local-authentication pre-shared-key 123456****   #指定隧道本段的预共享密钥,需和阿里云侧的保持一致。
    !
  7. 创建tunnel接口。

    interface Tunnel1                                  #创建隧道接口。
     nameif ALIYUN1
     ip address 169.254.10.2 255.255.255.252           #指定接口的IP地址。
     tunnel source interface outside1                  #指定隧道源地址为公网接口GigabitEthernet0/0。
     tunnel destination 39.XX.XX.218                   #指定隧道目的地址为阿里云侧VPN网关公网IP地址。
     tunnel mode ipsec ipv4
     tunnel protection ipsec profile ALIYUN-PROFILE    #指定隧道应用ipsec profile ALIYUN-PROFILE。
     no shutdown                                       #开启隧道接口。
    !
  8. 配置去往阿里云VPC(10.0.0.0/16)的静态路由。

    route ALIYUN1 10.0.0.0 255.255.0.0 39.XX.XX.218 
  9. 在本地数据中心侧,设置本地数据中心客户端到思科防火墙及思科防火墙到本地数据中心客户端的路由。

    后续您可以开始测试本地数据中心和阿里云VPC之间的网络连通性。具体操作,请参见测试连通性

目的路由模式-BGP动态路由

前提条件

本文仅描述如何在思科防火墙中添加VPN配置,不再描述阿里云VPN网关侧的配置。因此在您开始配置前,请确保您已经完成创建VPN网关实例、创建用户网关、创建IPsec连接、开启BGP功能的任务。具体操作,请参见建立VPC到本地数据中心的连接(单隧道模式和BGP路由)

操作步骤

  1. 登录思科防火墙的命令行窗口并进入配置模式。

    ciscoasa> enable
    Password: ********             #输入进入enable模式的密码。
    ciscoasa# configure terminal   #进入配置模式。
    ciscoasa(config)#     
  2. 查看接口配置和公网路由配置。

    思科防火墙已完成了接口配置,并已开启接口。以下为本文的接口配置示例。

    ciscoasa(config)# show running-config interface 
    !
    interface GigabitEthernet0/0
     nameif outside1                            #GigabitEthernet0/0的名称。
     security-level 0
     ip address 121.XX.XX.211 255.255.255.255    #GigabitEthernet0/0接口配置的公网IP地址。
    !
    interface GigabitEthernet0/1                #连接本地数据中心的接口。
     nameif private                             #GigabitEthernet0/1接口名称。
     security-level 100                         #指定连接本地数据中心接口(私网接口)的security-level低于公网接口。
     ip address 192.168.50.217 255.255.255.0    #GigabitEthernet0/1接口配置的IP地址。
    !
    
    route outside1 39.XX.XX.218 255.255.255.255 192.XX.XX.172   #配置访问阿里云侧VPN网关公网IP地址的路由,下一跳为公网地址。
    route private 192.168.0.0 255.255.0.0 192.168.50.216        #配置去往本地数据中心的路由。
  3. 为公网接口开启IKEv2功能。

    crypto ikev2 enable outside1
  4. 创建IKEv2 Policy,指定IKE阶段认证算法、加密算法、DH分组和SA生存周期,需和阿里云侧保持一致。

    重要

    阿里云侧配置IPsec连接时,IKE配置阶段的加密算法认证算法DH分组均只支持指定一个值,不支持指定多个值。建议在思科防火墙中IKE配置阶段的加密算法、认证算法和DH分组也均只指定一个值,该值需与阿里云侧保持一致。

    crypto ikev2 policy 10     
     encryption aes             #指定加密算法。
     integrity sha              #指定认证算法。
     group 14                   #指定DH分组。
     prf sha                    #prf和integrity保持一致,阿里云侧prf与认证算法默认保持一致。
     lifetime seconds 86400     #指定SA生存周期。
  5. 创建IPsec proposal和profile,指定思科防火墙侧的IPsec阶段加密算法、认证算法、DH分组和SA生存周期,需和阿里云侧保持一致。

    重要

    阿里云侧配置IPsec连接时,IPsec配置阶段的加密算法认证算法DH分组均只支持指定一个值,不支持指定多个值。建议在思科防火墙中IPsec配置阶段的加密算法、认证算法和DH分组也均只指定一个值,该值需与阿里云侧保持一致。

    crypto ipsec ikev2 ipsec-proposal ALIYUN-PROPOSAL    #创建ipsec proposal。
     protocol esp encryption aes                         #指定加密算法,协议使用ESP,阿里云侧固定使用ESP协议。
     protocol esp integrity sha-1                        #指定认证算法,协议使用ESP,阿里云侧固定使用ESP协议。
    crypto ipsec profile ALIYUN-PROFILE                  
     set ikev2 ipsec-proposal ALIYUN-PROPOSAL            #创建ipsec profile并应用已创建的proposal。 
     set ikev2 local-identity address                    #指定本端ID使用IP地址格式,与阿里云侧emoteId格式保持一致。
     set pfs group14                                     #指定pfs和DH分组。
     set security-association lifetime seconds 86400     #指定基于时间的SA生存周期。
     set security-association lifetime kilobytes unlimited #关闭基于流量的SA生存周期。
  6. 创建tunnel group,指定隧道的预共享密钥,需和阿里云侧保持一致。

    tunnel-group 39.XX.XX.218 type ipsec-l2l                #指定隧道的封装模式为l2l。
    tunnel-group 39.XX.XX.218 ipsec-attributes             
     ikev2 remote-authentication pre-shared-key 123456****  #指定隧道对端的预共享密钥,即阿里云侧的预共享密钥。
     ikev2 local-authentication pre-shared-key 123456****   #指定隧道本段的预共享密钥,需和阿里云侧的保持一致。
    !
  7. 创建tunnel接口。

    interface Tunnel1                                  #创建隧道接口。
     nameif ALIYUN1
     ip address 169.254.10.2 255.255.255.252           #指定接口的IP地址。
     tunnel source interface outside1                  #指定隧道源地址为公网接口GigabitEthernet0/0。
     tunnel destination 39.XX.XX.218                   #指定隧道目的地址为阿里云侧VPN网关公网IP地址。
     tunnel mode ipsec ipv4
     tunnel protection ipsec profile ALIYUN-PROFILE    #指定隧道应用ipsec profile ALIYUN-PROFILE。
     no shutdown                                       #开启隧道接口。
    !
  8. 配置BGP动态路由。

    router bgp 65000
     address-family ipv4 unicast
      neighbor 169.254.10.1 remote-as 65530       #指定BGP邻居,即阿里云侧隧道1的BGP IP地址。
      neighbor 169.254.10.1 ebgp-multihop 255
      neighbor 169.254.10.1 activate              #激活BGP邻居。
      network 192.168.0.0 mask 255.255.0.0        #宣告本地数据中心的网段。
     exit-address-family
  9. 在本地数据中心侧,设置本地数据中心客户端到思科防火墙及思科防火墙到本地数据中心客户端的路由。

    后续您可以开始测试本地数据中心和阿里云VPC之间的网络连通性。具体操作,请参见测试连通性

感兴趣流模式-静态路由

前提条件

本文仅描述如何在思科防火墙中添加VPN配置,不再描述阿里云VPN网关侧的配置。因此在您开始配置前,请确保您已经完成创建VPN网关实例、创建用户网关、创建IPsec连接的任务。相关操作,请参见:建立VPC到本地数据中心的连接(单隧道模式),其中:

  • 创建IPsec连接时,路由模式需选择感兴趣流模式本端网段设置为10.0.0.0/16,对端网段设置为192.168.0.0/16。

    重要

    如果您的场景中需要指定多个本端网段或者对端网段,则推荐您使用目的路由模式-静态路由或者目的路由模式-BGP动态路由方式。更多方案,请参见多网段配置方案推荐

  • 创建IPsec连接后,您需要发布策略路由,具体操作,请参见配置策略路由。无需再配置目的路由。

操作步骤

  1. 登录思科防火墙的命令行窗口并进入配置模式。

    ciscoasa> enable
    Password: ********             #输入进入enable模式的密码。
    ciscoasa# configure terminal   #进入配置模式。
    ciscoasa(config)#     
  2. 查看接口配置。

    思科防火墙已完成了接口配置,并已开启接口。以下为本文的接口配置示例。

    ciscoasa(config)# show running-config interface 
    !
    interface GigabitEthernet0/0
     nameif outside1                            #GigabitEthernet0/0的名称。
     security-level 0
     ip address 121.XX.XX.211 255.255.255.255    #GigabitEthernet0/0接口配置的公网IP地址。
    !
    interface GigabitEthernet0/1                #连接本地数据中心的接口。
     nameif private                             #GigabitEthernet0/1接口名称。
     security-level 100                         #指定连接本地数据中心接口(私网接口)的security-level低于公网接口。
     ip address 192.168.50.217 255.255.255.0    #GigabitEthernet0/1接口配置的IP地址。
    !
    
    route outside1 39.XX.XX.218 255.255.255.255 192.XX.XX.172   #配置访问阿里云侧VPN网关公网IP地址的路由,下一跳为公网地址。
    route private 192.168.0.0 255.255.0.0 192.168.50.216        #配置去往本地数据中心的路由。
  3. 为公网接口开启IKEv2功能。

    crypto ikev2 enable outside1
  4. 创建IKEv2 Policy,指定IKE阶段认证算法、加密算法、DH分组和SA生存周期,需和阿里云侧保持一致。

    重要

    阿里云侧配置IPsec连接时,IKE配置阶段的加密算法认证算法DH分组均只支持指定一个值,不支持指定多个值。建议在思科防火墙中IKE配置阶段的加密算法、认证算法和DH分组也均只指定一个值,该值需与阿里云侧保持一致。

    crypto ikev2 policy 10     
     encryption aes             #指定加密算法。
     integrity sha              #指定认证算法。
     group 14                   #指定DH分组。
     prf sha                    #prf和integrity保持一致,阿里云侧prf与认证算法默认保持一致。
     lifetime seconds 86400     #指定SA生存周期。
  5. 创建IPsec proposal,指定思科防火墙侧的IPsec阶段加密算法、认证算法,需和阿里云侧保持一致。

    重要

    阿里云侧配置IPsec连接时,IPsec配置阶段的加密算法认证算法DH分组均只支持指定一个值,不支持指定多个值。建议在思科防火墙中IPsec配置阶段的加密算法、认证算法和DH分组也均只指定一个值,该值需与阿里云侧保持一致。

    crypto ipsec ikev2 ipsec-proposal ALIYUN-PROPOSAL    #创建ipsec proposal。
     protocol esp encryption aes                         #指定加密算法,协议使用ESP,阿里云侧固定使用ESP协议。
     protocol esp integrity sha-1                        #指定认证算法,协议使用ESP,阿里云侧固定使用ESP协议。
  6. 定义感兴趣流。

    指定允许IPsec-VPN连接传输的流量网段。本示例指定本地数据中心的192.168.0.0/16网段和阿里云VPC10.0.0.0/16网段互通。

    access-list acl_tun extended permit ip 192.168.0.0 255.255.0.0 10.0.0.0 255.255.0.0
  7. 创建IPsec策略。

    #创建隧道的IPsec策略
    crypto map TUNL1 1 match address acl_tun                      #应用定义的感兴趣流。
    crypto map TUNL1 1 set pfs group14                            #指定DH分组。	
    crypto map TUNL1 1 set peer 39.XX.XX.218                      #指定对端ID,即阿里云VPN网关公网IP地址。
    crypto map TUNL1 1 set ikev2 ipsec-proposal ALIYUN-PROPOSAL   #应用IPsec proposal。
    crypto map TUNL1 1 set ikev2 pre-shared-key 0 123456****      #指定预共享密钥,需和tunnel-group命令中的预共享密钥必须保持一致。
    crypto map TUNL1 1 set security-association lifetime seconds  86400             #指定基于时间的IPsec SA生存周期。
    crypto map TUNL1 1 set security-association lifetime kilobytes unlimited        #关闭基于流量的IPsec SA生存周期。
    crypto map TUNL1 interface outside1                                             #将IPsec策略应用在公网接口GigabitEthernet0/0。
    !
  8. 创建tunnel group,指定隧道的预共享密钥,需和阿里云侧保持一致。

    tunnel-group 39.XX.XX.218 type ipsec-l2l                #指定隧道的封装模式为l2l。
    tunnel-group 39.XX.XX.218 ipsec-attributes             
     ikev2 remote-authentication pre-shared-key 123456****  #指定隧道对端的预共享密钥,即阿里云侧的预共享密钥。
     ikev2 local-authentication pre-shared-key 123456****   #指定隧道本段的预共享密钥,需和阿里云侧的保持一致。
    !
  9. 配置去往阿里云VPC(10.0.0.0/16)的静态路由。

    route outside1 10.0.0.0 255.255.0.0 39.XX.XX.218
  10. 在本地数据中心侧,设置本地数据中心客户端到思科防火墙及思科防火墙到本地数据中心客户端的路由。

    后续您可以开始测试本地数据中心和阿里云VPC之间的网络连通性。具体操作,请参见测试连通性

IKEv1配置示例

如果思科防火墙中需要使用IKEv1版本,您可以参见以下内容进行配置。

使用以下配置和阿里云建立IPsec-VPN连接时,阿里云侧IPsec连接需使用目的路由模式、IKEv1版本。

目的路由模式-静态路由

  1. 登录思科防火墙的命令行窗口并进入配置模式。

    ciscoasa> enable
    Password: ********             #输入进入enable模式的密码。
    ciscoasa# configure terminal   #进入配置模式。
    ciscoasa(config)#     
  2. 查看接口配置。

    思科防火墙已完成了接口配置,并已开启接口。以下为本文的接口配置示例。

    ciscoasa(config)# show running-config interface 
    !
    interface GigabitEthernet0/0
     nameif outside1                            #GigabitEthernet0/0的名称。
     security-level 0
     ip address 121.XX.XX.211 255.255.255.255    #GigabitEthernet0/0接口配置的公网IP地址。
    !
    interface GigabitEthernet0/1                #连接本地数据中心的接口。
     nameif private                             #指定GigabitEthernet0/1接口名称。
     security-level 100                         #指定连接本地数据中心接口(私网接口)的security-level低于公网接口。
     ip address 192.168.50.217 255.255.255.0    #GigabitEthernet0/1接口配置的IP地址。
    !
    
    route outside1 39.XX.XX.218 255.255.255.255 192.XX.XX.172   #配置访问阿里云侧VPN网关公网IP地址的路由,下一跳为公网地址。
    route private 192.168.0.0 255.255.0.0 192.168.50.216        #配置去往本地数据中心的路由。
  3. 为公网接口开启IKEv1功能。

    crypto ikev1 enable outside1
  4. 创建IKEv1 Policy,指定验证方式、IKE阶段认证算法、IKE加密算法、DH分组和SA生存周期,需和阿里云侧保持一致。

    重要

    阿里云侧配置IPsec连接时,IKE配置阶段的加密算法认证算法DH分组均只支持指定一个值,不支持指定多个值。建议在思科防火墙中IKE配置阶段的加密算法、认证算法和DH分组也均只指定一个值,该值需与阿里云侧保持一致。

    crypto ikev1 policy 10   
     authentication pre-share   #指定验证方式为预共享密钥。
     encryption aes             #指定加密算法。
     hash sha                   #指定认证算法。
     group 14                   #指定DH分组。
     lifetime 86400             #指定基于时间的SA生存周期。
  5. 创建IPsec transform和profile,指定思科防火墙侧的IPsec阶段加密算法、认证算法、DH分组和SA生存周期,需和阿里云侧保持一致。

    重要

    阿里云侧配置IPsec连接时,IPsec配置阶段的加密算法认证算法DH分组均只支持指定一个值,不支持指定多个值。建议在思科防火墙中IPsec配置阶段的加密算法、认证算法和DH分组也均只指定一个值,该值需与阿里云侧保持一致。

    crypto ipsec ikev1 transform-set TRANSFORM esp-aes esp-sha-hmac  #创建IPsec transform,指定加密算法和认证算法。
    crypto ipsec profile ALIYUN-PROFILE                  
     set ikev1 transform-set TRANSFORM                               #应用已创建的transform。
     set pfs group14                                                 #指定pfs和DH分组。
     set security-association lifetime seconds 86400                 #指定基于时间SA生存周期。
     set security-association lifetime kilobytes unlimited           #关闭基于流量的SA生存周期。
    
    crypto isakmp identity address                                   #FQDN采用address格式。
  6. 创建tunnel group,指定隧道的预共享密钥,需和阿里云侧保持一致。

    tunnel-group 39.XX.XX.218 type ipsec-l2l                #指定隧道的封装模式为l2l。
    tunnel-group 39.XX.XX.218 ipsec-attributes             
     ikev1 pre-shared-key 123456****                        #指定隧道对端的预共享密钥,即阿里云侧的预共享密钥。
    !
  7. 创建tunnel接口。

    interface Tunnel1                                  #创建隧道接口。
     nameif ALIYUN1
     ip address 169.254.10.2 255.255.255.252           #指定隧道接口的IP地址。
     tunnel source interface outside1                  #指定隧道源地址为公网接口GigabitEthernet0/0。
     tunnel destination 39.XX.XX.218                   #指定隧道目的地址为阿里云侧VPN网关的公网IP地址。
     tunnel mode ipsec ipv4
     tunnel protection ipsec profile ALIYUN-PROFILE    #指定隧道应用ipsec profile ALIYUN-PROFILE。
     no shutdown                                       #开启隧道接口。
    !
  8. 配置去往阿里云VPC(10.0.0.0/16)的静态路由。

    route ALIYUN1 10.0.0.0 255.255.0.0 39.XX.XX.218   
  9. 在本地数据中心侧,设置本地数据中心客户端到思科防火墙及思科防火墙到本地数据中心客户端的路由。

    后续您可以开始测试本地数据中心和阿里云VPC之间的网络连通性。具体操作,请参见测试连通性

目的路由模式-BGP动态路由

  1. 登录思科防火墙的命令行窗口并进入配置模式。

    ciscoasa> enable
    Password: ********             #输入进入enable模式的密码。
    ciscoasa# configure terminal   #进入配置模式。
    ciscoasa(config)#     
  2. 查看接口配置。

    思科防火墙已完成了接口配置,并已开启接口。以下为本文的接口配置示例。

    ciscoasa(config)# show running-config interface 
    !
    interface GigabitEthernet0/0
     nameif outside1                            #GigabitEthernet0/0的名称。
     security-level 0
     ip address 121.XX.XX.211 255.255.255.255    #GigabitEthernet0/0接口配置的公网IP地址。
    !
    interface GigabitEthernet0/1                #连接本地数据中心的接口。
     nameif private                             #指定GigabitEthernet0/1接口名称。
     security-level 100                         #指定连接本地数据中心接口(私网接口)的security-level低于公网接口。
     ip address 192.168.50.217 255.255.255.0    #GigabitEthernet0/1接口配置的IP地址。
    !
    
    route outside1 39.XX.XX.218 255.255.255.255 192.XX.XX.172   #配置访问阿里云侧VPN网关公网IP地址的路由,下一跳为公网地址。
    route private 192.168.0.0 255.255.0.0 192.168.50.216        #配置去往本地数据中心的路由。
  3. 为公网接口开启IKEv1功能。

    crypto ikev1 enable outside1
  4. 创建IKEv1 Policy,指定验证方式、IKE阶段认证算法、IKE加密算法、DH分组和SA生存周期,需和阿里云侧保持一致。

    重要

    阿里云侧配置IPsec连接时,IKE配置阶段的加密算法认证算法DH分组均只支持指定一个值,不支持指定多个值。建议在思科防火墙中IKE配置阶段的加密算法、认证算法和DH分组也均只指定一个值,该值需与阿里云侧保持一致。

    crypto ikev1 policy 10   
     authentication pre-share   #指定验证方式为预共享密钥。
     encryption aes             #指定加密算法。
     hash sha                   #指定认证算法。
     group 14                   #指定DH分组。
     lifetime 86400             #指定基于时间的SA生存周期。
  5. 创建IPsec transform和profile,指定思科防火墙侧的IPsec阶段加密算法、认证算法、DH分组和SA生存周期,需和阿里云侧保持一致。

    重要

    阿里云侧配置IPsec连接时,IPsec配置阶段的加密算法认证算法DH分组均只支持指定一个值,不支持指定多个值。建议在思科防火墙中IPsec配置阶段的加密算法、认证算法和DH分组也均只指定一个值,该值需与阿里云侧保持一致。

    crypto ipsec ikev1 transform-set TRANSFORM esp-aes esp-sha-hmac  #创建IPsec transform,指定加密算法和认证算法。
    crypto ipsec profile ALIYUN-PROFILE                  
     set ikev1 transform-set TRANSFORM                               #应用已创建的transform。
     set pfs group14                                                 #指定pfs和DH分组。
     set security-association lifetime seconds 86400                 #指定基于时间SA生存周期。
     set security-association lifetime kilobytes unlimited           #关闭基于流量的SA生存周期。
    
    crypto isakmp identity address                                   #FQDN采用address格式。
  6. 创建tunnel group,指定隧道的预共享密钥,需和阿里云侧保持一致。

    tunnel-group 39.XX.XX.218 type ipsec-l2l                #指定隧道的封装模式为l2l。
    tunnel-group 39.XX.XX.218 ipsec-attributes             
     ikev1 pre-shared-key 123456****                        #指定隧道对端的预共享密钥,即阿里云侧的预共享密钥。
    !
  7. 创建tunnel接口。

    interface Tunnel1                                  #创建隧道接口。
     nameif ALIYUN1
     ip address 169.254.10.2 255.255.255.252           #指定隧道接口的IP地址。
     tunnel source interface outside1                  #指定隧道源地址为公网接口GigabitEthernet0/0。
     tunnel destination 39.XX.XX.218                   #指定隧道目的地址为阿里云侧VPN网关的公网IP地址。
     tunnel mode ipsec ipv4
     tunnel protection ipsec profile ALIYUN-PROFILE    #指定隧道应用ipsec profile ALIYUN-PROFILE。
     no shutdown                                       #开启隧道接口。
    !
  8. 配置BGP动态路由。

    router bgp 65000
     address-family ipv4 unicast
      neighbor 169.254.10.1 remote-as 65530       #指定BGP邻居,即阿里云侧的BGP IP地址。
      neighbor 169.254.10.1 ebgp-multihop 255
      neighbor 169.254.10.1 activate              #激活BGP邻居。
      network 192.168.0.0 mask 255.255.0.0        #宣告本地数据中心的网段。
     exit-address-family
  9. 在本地数据中心侧,设置本地数据中心客户端到思科防火墙及思科防火墙到本地数据中心客户端的路由。

    后续您可以开始测试本地数据中心和阿里云VPC之间的网络连通性。具体操作,请参见测试连通性