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

前提条件

开始前,请确保满足以下条件:
  • 您已经注册了阿里云账号。如还未注册,请先完成账号注册。详细信息,请参见账号注册
  • 您已经创建了需要与本地数据中心互通的VPC,且VPC的网段与本地数据中心的网段不重叠。详细信息,请参见创建专有网络

背景信息

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

配置步骤

配置步骤

步骤一:创建VPN网关

VPN网关是一款基于Internet的网络连接服务,通过加密通道的方式实现网络互通。使用VPN网关建立VPC到本地数据中心的VPN连接前,您需要为要与本地数据中心互通的VPC创建VPN网关。

完成以下操作,为VPC创建VPN网关。

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

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

    • VPC:选择要连接的VPC。本示例选择德国(法兰克福)地域创建的VPC。
    • 指定交换机:选择是否为VPN网关指定所属的交换机。本示例选择
    • 虚拟交换机:选择VPN网关所属的交换机。
      说明指定交换机选择时,才会显示该选项。
    • 带宽规格:选择带宽规格。

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

    • IPsec-VPN:选择开启或关闭IPsec-VPN功能。

      IPsec-VPN功能可以实现本地数据中心与VPC或不同VPC之间进行连接。本示例选择开启

    • SSL-VPN:选择开启或关闭SSL-VPN功能。

      SSL-VPN功能可以实现任何位置的单台计算机连接到VPC。本示例选择关闭

    • SSL连接数:选择您需要同时连接的客户端最大规格。
      说明 本选项只有在选择开启了SSL-VPN功能后才可配置。
    • 计费周期:选择购买时长。
  4. 单击立即购买并完成支付。
VPN网关的创建一般需要1~5分钟。刚创建好的VPN网关的状态是准备中,约两分钟左右会变更为正常。正常状态表明VPN网关已经完成了初始化,可以正常使用。VPN网关创建后,系统会为VPN网关自动分配一个公网IP用于建立VPN连接。 VPN网关公网IP

步骤二:开启BGP

BGP用于在不同的自治系统(AS)之间交换路由信息。使用BGP动态路由功能前,您需要为VPN网关开启BGP功能。
说明 VPN网关开启BGP功能后,不支持关闭。

完成以下操作,为VPN网关开启BGP功能。

  1. 在左侧导航栏,单击VPN > VPN网关
  2. VPN网关页面,找到步骤一创建的VPN网关,单击操作列下的开启BGP
    开启BGP
  3. 开启BGP对话框,选择BGP路由是否传播到VPC。
    • :VPN网关会将BGP路由自动传播到VPC。
    • :VPN网关不会将BGP路由传播到VPC。如需传播,您需要手动将BGP路由发布到VPC。
    本示例选择
  4. 单击确定
为VPN网关开启BGP功能后,VPN网关的BGP状态变更为已开启BGP开启BGP

步骤三:创建用户网关

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

完成以下操作,创建用户网关。

  1. 在左侧导航栏,单击VPN > 用户网关
  2. 用户网关页面,单击创建用户网关
  3. 创建用户网关对话框,根据以下信息配置用户网关。
    • 名称:输入用户网关的名称。本示例输入CGW
    • IP地址:输入本地数据中心网关设备的公网IP。本示例输入2.2.2.2
    • 自治系统号:输入本地数据中心网络的自治系统号。本示例输入10002
    • 描述:输入用户网关的描述信息。
  4. 单击确定

步骤四:创建IPsec连接

IPsec-VPN基于路由,不仅可以更方便的配置和维护VPN策略,而且还提供了灵活的流量路由方式。

完成以下操作,创建VPC到本地数据中心间的IPsec连接。

  1. 在左侧导航栏,单击VPN > IPsec连接
  2. IPsec连接页面,单击创建IPsec连接
  3. 创建IPsec连接对话框,根据以下信息创建VPC到本地数据中心间的IPsec连接。
    • 名称:输入IPsec连接的名称。本示例输入VPC TO IDC
    • VPN网关:选择要连接的VPN网关。

      本示例选择步骤一中创建的VPN网关。详细信息,请参见步骤一:创建VPN网关

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

      本示例选择步骤三中创建的用户网关。详细信息,请参见步骤三:创建用户网关

    • 本端网段:输入VPC的网段。本示例输入10.0.0.0/8
    • 对端网段:输入本地数据中心的网段。本示例输入172.17.0.0/16
    • 立即生效:选择是否立即生效。
      • 是:配置完成后立即进行协商。
      • 否:当有流量进入时进行协商。

      本示例选择

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

      请确保要建立的IPsec连接的预共享密钥一致。本示例输入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

    其他选项使用默认配置。

  4. 单击确定

步骤五:在本地网关设备中加载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.1.1.1    //配置VPC侧VPN网关的公网IP地址,本示例配置为1.1.1.1。
    pre-shared-key 123456  //配置钥匙串,本示例配置为123456。
    exit
    !
  4. 执行以下命令,配置ikev2 profile。
    crypto ikev2 profile alicloud
    match identity remote address 1.1.1.1 255.255.255.255    //匹配VPC侧VPN网关的公网IP,本示例匹配的地址为1.1.1.1。
    identity local address 2.2.2.2    //本地数据中心的公网IP,本示例配置为2.2.2.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.1.1.1    //隧道对端(云上VPN网关)公网IP地址,本示例配置为1.1.1.1。
    tunnel protection ipsec profile alicloud
    no shutdown
    exit
    !
    interface GigabitEthernet1
    ip address 2.2.2.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.2 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网关设备。本地网关路由表

步骤六:测试网络连通性

IPsec连接建立成功后,您可以测试VPC与本地数据中心间的网络连通性。
说明 请确保要访问的本地数据中心终端的防火墙规则允许远程连接。
  1. 登录VPC下的ECS实例。
  2. 通过ping命令ping本地数据中心的终端的IP地址,验证通信是否正常。
    经验证,VPC ECS实例可以访问本地数据中心终端。VPC 访问本地IDC
  3. 登录本地数据中心终端。
  4. 通过ping命令pingVPC下的ECS实例的IP地址,验证通信是否正常。
    经验证,本地数据中心终端可以访问VPC ECS实例。本地IDC访问VPC