本文介绍如何使用IPsec-VPN建立专有网络VPC(Virtual Private Cloud)到本地数据中心的VPN连接,并通过BGP动态路由协议自动学习路由实现VPC与本地数据中心间的资源互通,降低网络维护成本和网络配置风险。

前提条件

  • 您已经注册了阿里云账号。如未注册,请先完成账号注册
  • 确保本地数据中心的网关设备支持IKEv1和IKEv2协议,只要支持这两种协议的设备均可以和云上VPN网关互连。
  • 本地数据中心的网关设备已经配置了静态公网IP。
  • 本地数据中心和VPC互通的网段没有重叠。
  • VPN网关的BGP功能默认不开放,请提交工单申请开通。
  • 您已经了解VPC中的ECS实例所应用的安全组规则,并确保安全组规则允许本地数据中心的网关设备访问云上资源。具体操作,请参见查询安全组规则

背景信息

本文以下图场景为例。某公司已在德国(法兰克福)地域创建了一个VPC,私网网段为10.0.0.0/8,自治系统号ASN(Autonomous System Number)为10001。该公司在法兰克福拥有本地数据中心,公网IP为2.XX.XX.2,私网网段为172.17.0.0/16,ASN为10002。因业务发展,需要云上VPC与本地数据中心互通。
您可以通过IPsec-VPN建立VPC到本地数据中心的VPN连接,并配置BGP动态路由。配置成功后,VPC和本地数据中心通过BGP动态路由协议自动学习路由实现资源互通,降低网络维护成本和网络配置风险。
说明 在互联网中,一个自治系统AS(Autonomous System)是一个有权自主决定在本系统中应采用何种路由协议的小型单位。这个网络单位可以是一个简单的网络也可以是一个或多个普通的网络管理员来控制的网络群体,它是一个单独的可管理的网络单元。一个自治系统将会分配一个全局的唯一的号码,这个号码叫做自治系统号(ASN)。
VPC-本地IDC

配置步骤

配置步骤

步骤一:创建VPN网关

  1. 登录VPN网关管理控制台
  2. VPN网关页面,单击创建VPN网关
  3. 在购买页面,根据以下信息创建VPN网关,然后单击立即购买并完成支付。
    • 实例名称:输入VPN网关的实例名称。本示例输入VPN。
    • 地域和可用区:选择VPN网关的地域。

      确保VPC的地域和VPN网关的地域相同。本示例选择德国(法兰克福)

    • 网关类型:选择要创建的VPN网关类型。本示例选择普通型
    • VPC:选择要连接的VPC。本示例选择德国(法兰克福)地域创建的VPC。
    • 指定交换机:选择是否为VPN网关指定所属的交换机。本示例选择

      如果您选择了,您还需要指定具体的虚拟交换机

    • 带宽规格:选择带宽规格。 单位:Mpbs。

      带宽规格是VPN网关所具备的公网带宽峰值。本示例选择5 Mbps

    • IPsec-VPN:选择是否开启IPsec-VPN功能。 本示例选择开启
    • SSL-VPN:选择是否开启SSL-VPN功能。 本示例选择关闭
    • 计费周期:选择购买时长。关于计费的更多信息, 请参见计费说明
刚创建好的VPN网关的状态是准备中,约1~5分钟左右会变更为正常正常状态表明VPN网关已经完成了初始化,可以正常使用。VPN网关创建后,系统会为VPN网关自动分配一个公网IP地址用于建立VPN连接。VPN网关公网IP地址

步骤二:开启BGP

BGP用于在不同的自治系统(AS)之间交换路由信息。使用BGP动态路由功能前,您需要为VPN网关开启BGP功能。
说明 VPN网关开启BGP功能后,不支持关闭。
  1. 在左侧导航栏,选择网间互联 > VPN > VPN网关
  2. 在顶部菜单栏,选择VPN网关实例的地域。
  3. VPN网关页面,找到已创建的VPN网关,在操作列下选择更多 > 开启路由自动传播
    开启路由自动传播
  4. 开启路由自动传播对话框,单击确定
    开启后,VPN网关会将BGP路由条目自动传播到VPC中。

步骤三:创建用户网关

您可以通过创建用户网关,将本地数据中心的网络信息注册到云上,然后将用户网关和VPN网关连接起来。

  1. 在左侧导航栏,选择网间互联 > VPN > 用户网关
  2. 在顶部菜单栏,选择用户网关的地域。
    说明 用户网关的地域必须和要连接的VPN网关的地域相同。
  3. 用户网关页面,单击创建用户网关
  4. 创建用户网关面板,根据以下信息配置用户网关,然后单击确定
    • 名称:输入用户网关的名称。本示例输入CGW。
    • IP地址:输入本地数据中心网关设备的公网IP地址。本示例输入2.XX.XX.2。
    • 自治系统号:输入本地数据中心网络的自治系统号。本示例输入10002。
    • 描述:输入用户网关的描述信息。
    关于参数的更多信息,请参见创建用户网关

步骤四:创建IPsec连接

  1. 在左侧导航栏,选择网间互联 > VPN > IPsec连接
  2. 在顶部菜单栏,选择IPsec连接实例的地域。
    说明 IPsec连接实例的地域必须和要连接的VPN网关的地域相同。
  3. IPsec连接页面,单击创建IPsec连接
  4. 创建IPsec连接页面,根据以下信息创建VPC到本地数据中心间的IPsec连接,然后单击确定
    • 名称:输入IPsec连接的名称。本示例输入VPC TO IDC。
    • VPN网关:选择要连接的VPN网关。

      选择步骤一中创建的VPN网关。

    • 用户网关:选择要连接的用户网关。

      选择步骤三中创建的用户网关。

    • 路由模式:选择路由模式。本示例选择目的路由模式
    • 立即生效:选择是否立即生效。
      • :配置完成后立即进行协商。
      • :当有流量进入时进行协商。

      本示例选择

    • 预共享密钥:输入预共享密钥。

      请确保要建立的IPsec连接VPC侧和本地数据中心侧的预共享密钥一致。本示例输入123456。

    • 版本:选择IKE的版本。本示例选择ikev2
    • 加密算法:选择加密算法。本示例选择aes
    • 认证算法:选择认证算法。本示例选择sha1
    • DH分组:选择DH分组。本示例选择group2
    • 隧道网段:输入IPsec隧道的网段,该网段在169.254.0.0/16内的掩码长度为30的网段。本示例输入169.254.10.0/30。
    • 本端BGP地址:输入本端BGP地址,该地址为隧道网段内的一个IP地址。本示例输入169.254.10.1。
      说明 请确保IPsec隧道两端的BGP地址不冲突。
    • 本端自治系统号:输入VPC侧的自治系统号。本示例输入10001。

    其他选项使用默认配置。更多信息,请参见创建IPsec连接

步骤五:在本地网关设备中加载VPN配置

云上创建IPsec连接后,您还需要在本地网关设备中加载VPN配置,才能建立VPC到本地数据中心的VPN连接。

本示例以思科IOSXE系统的防火墙为例,介绍如何在本地网关设备中加载VPN配置。

  1. 登录思科防火墙设备的命令行配置界面。
  2. 执行以下命令,配置ikev2 proposal和policy 。
    crypto ikev2 proposal alicloud  
    encryption aes-cbc-128          //配置加密算法,本示例配置为aes-cbc-128。
    integrity sha1                  //配置认证算法,本示例配置为sha1。
    group 2                         //配置DH分组,本示例配置为group2。
    exit
    !
    crypto ikev2 policy Pureport_Pol_ikev2
    proposal Pureport_prop
    exit
    !
  3. 执行以下命令,配置ikev2 keyring。
    crypto ikev2 keyring alicloud
    peer alicloud
    address 1.XX.XX.1                //配置VPC侧VPN网关的公网IP地址,本示例配置为1.XX.XX.1。
    pre-shared-key 123456          //配置钥匙串,本示例配置为123456。
    exit
    !
  4. 执行以下命令,配置ikev2 profile。
    crypto ikev2 profile alicloud
    match identity remote address 1.XX.XX.1 255.255.255.255    //匹配VPC侧VPN网关的公网IP,本示例匹配的地址为1.XX.XX.1。
    identity local address 2.XX.XX.2    //本地数据中心的公网IP,本示例配置为2.XX.XX.2。
    authentication remote pre-share   //认证对端的方式为PSK。
    authentication local pre-share    //认证本端的方式为PSK。
    keyring local alicloud            //调用密钥串。
    exit
    !
  5. 执行以下命令,配置transform。
    crypto ipsec transform-set TSET esp-aes esp-sha-hmac
    mode tunnel
    exit
    !
  6. 执行以下命令,配置IPsec Profile,并调用transoform、pfs和ikev2 profile。
    crypto ipsec profile alicloud
    set transform-set TSET
    set pfs group2
    set ikev2-profile alicloud
    exit
    !
  7. 执行以下命令,配置IPsec隧道。
    interface Tunnel100
    ip address 169.254.10.2 255.255.255.252    //配置本端(本地数据中心)隧道地址,本示例配置为169.254.10.2。
    tunnel source GigabitEthernet1
    tunnel mode ipsec ipv4
    tunnel destination 1.XX.XX.1                 //隧道对端(云上VPN网关)公网IP地址,本示例配置为1.XX.XX.1。
    tunnel protection ipsec profile alicloud
    no shutdown
    exit
    !
    interface GigabitEthernet1
    ip address 2.XX.XX.2 255.255.255.0
    negotiation auto
    !
  8. 执行以下命令,配置BGP路由协议。
    router bgp 10002                         //开启bgp路由协议,并配置本端(本地数据中心)ASN。本示例配置ASN为10002。
    bgp router-id 169.254.10.2               //bgp路由器id,本示例设置为169.254.10.2。
    bgp log-neighbor-changes
    neighbor 169.254.10.1 remote-as 10001    //配置bgp邻居的ASN。
    neighbor 169.254.10.1 ebgp-multihop 10   //配置ebgp跳数为10。  
    !
    address-family ipv4
    network 172.17.0.0 mask 255.255.0.0      //宣告本端(本地数据中心)网段,本示例配置为172.17.0.0/16。
    neighbor 169.254.10.1 activate           //激活bgp邻居。
    exit-address-family
    !
IPsec连接建立成功后,云上云下VPN网关会进行如下路由宣告:
  • 本地数据中心VPN网关通过BGP动态路由协议自动学习本地数据中心网段路由,并自动宣告给云上VPN网关。云上VPN网关会将学习到的BGP路由自动传播到VPC的系统路由表中。云上VPC路由表
  • 云上VPN网关通过BGP路由协议自动学习VPC系统路由表中的路由,并自动宣告给本地数据中心侧VPN网关设备。本地网关路由表

步骤六:测试连通性

  1. 登录到VPC内一台无公网IP的ECS实例。关于如何登录ECS实例,请参见连接方式概述
  2. 通过ping命令,访问本地数据中心的客户端,验证通信是否正常。
    经验证,VPC ECS实例可以正常访问本地数据中心的客户端。VPC 访问本地IDC
  3. 登录本地数据中心客户端。
  4. 通过ping命令,访问VPC下的ECS实例,验证通信是否正常。
    经验证,本地数据中心客户端可以正常访问VPC ECS实例。本地IDC访问VPC