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

场景示例

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

BGP动态路由支持的地域

区域地域
亚太华东1(杭州)、华东2(上海)、华东6(福州-本地地域)、华北1(青岛)、华北2(北京)、华北3(张家口)、华北5(呼和浩特)、华南1(深圳)、中国香港、日本(东京)、新加坡、澳大利亚(悉尼)、马来西亚(吉隆坡)、印度尼西亚(雅加达)、印度(孟买)
欧洲与美洲德国(法兰克福)、英国(伦敦)、美国(弗吉尼亚)、美国(硅谷)
中东与印度阿联酋(迪拜)

前提条件

  • 您已经注册了阿里云账号。如未注册,请先完成账号注册
  • 您已经在德国(法兰克福)地域创建了VPC并部署了云服务。具体操作,请参见搭建IPv4专有网络
  • 确保本地数据中心的网关设备支持IKEv1和IKEv2协议,支持这两种协议的设备均可以和云上VPN网关互连。
  • 本地数据中心的网关设备已经配置了静态公网IP。
  • 本地数据中心和VPC互通的网段没有重叠。
  • 您已经了解VPC中的ECS实例所应用的安全组规则,并确保安全组规则允许本地数据中心的网关设备访问云上资源。具体操作,请参见查询安全组规则添加安全组规则

配置步骤

本地数据中心和VPC(BGP)-配置流程

步骤一:创建VPN网关

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

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

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

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

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

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

    IPsec-VPN选择是否开启IPsec-VPN功能。 本示例选择开启
    SSL-VPN选择是否开启SSL-VPN功能。 本示例选择关闭
    计费周期选择购买时长。关于计费的更多信息, 请参见计费说明
    服务关联角色单击创建关联角色,系统自动创建服务关联角色AliyunServiceRoleForVpn。VPN网关使用此角色来访问其他云产品中的资源,更多信息,请参见AliyunServiceRoleForVpn

    已创建若本配置项显示为已创建,则表示您的账号下已创建了该角色,无需重复创建。

创建好的VPN网关的状态是准备中,约1~5分钟左右会变更为正常正常状态表明VPN网关已经完成了初始化,可以正常使用。VPN网关创建后,系统会为VPN网关自动分配一个公网IP地址用于建立VPN连接。VPN网关公网IP地址
说明 如果您没有创建新的VPN网关,计划使用存量的VPN网关实现本文场景,请确保您存量的VPN网关已升级至最新版本。如果您存量VPN网关不是最新版本,默认您无法使用BGP动态路由功能。

您可以在升级按钮处查看VPN网关是否是最新版本,如果不是最新版本,您可以通过升级按钮进行升级。具体操作,请参见升级VPN网关

步骤二:开启BGP

BGP用于在不同的自治系统(AS)之间交换路由信息。使用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
    自治系统号输入本地数据中心网络的自治系统号。本示例输入65531
    描述输入用户网关的描述信息。
    关于参数的更多信息,请参见创建用户网关
    创建完成后,返回用户网关页面,您可以看到已创建的用户网关。系统会为用户网关自动分配一个公网IP地址用于和VPN网关建立连接。用户网关

步骤四:创建IPsec连接

  1. 在左侧导航栏,选择网间互联 > VPN > IPsec连接
  2. 在顶部菜单栏,选择IPsec连接实例的地域。
    说明 IPsec连接实例的地域必须和要连接的VPN网关的地域相同。
  3. IPsec连接页面,单击创建IPsec连接
  4. 创建IPsec连接页面,根据以下信息创建IPsec连接,然后单击确定

    本示例只提供与创建VPC到本地数据中心间的IPsec连接强相关的配置参数,其他选项使用默认配置。更多信息,请参见创建和管理IPsec连接

    IPsec
    配置说明
    名称输入IPsec连接的名称。本示例输入VPCTOIDC
    VPN网关选择要连接的VPN网关。

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

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

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

    路由模式选择路由模式。

    IPsec连接支持目的路由模式感兴趣流模式。在IPsec连接使用BGP动态路由协议的情况下,推荐使用目的路由模式。本示例选择目的路由模式

    立即生效选择是否立即生效。
    • :配置完成后立即进行协商。
    • :当有流量进入时进行协商。

    本示例选择

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

    请确保要建立的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侧的自治系统号。本示例输入65530

步骤五:在本地网关设备中加载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 alicloud
    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,并调用transform、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 65531                         //开启bgp路由协议,并配置本端(本地数据中心)ASN。本示例配置ASN为65531。
    bgp router-id 169.254.10.2               //bgp路由器id,本示例设置为169.254.10.2。
    bgp log-neighbor-changes
    neighbor 169.254.10.1 remote-as 65530    //配置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网关自动学习VPC系统路由表中的系统路由条目和自定义路由条目,并自动宣告给本地数据中心侧VPN网关设备。本地网关路由表

步骤六:测试连通性

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