文档

建立VPC到本地数据中心的连接(双隧道模式和BGP路由)

更新时间:

本文介绍如何使用公网网络类型的VPN网关在专有网络VPC(Virtual Private Cloud)和本地数据中心之间建立IPsec-VPN连接(双隧道模式),实现本地数据中心与VPC之间加密通信以及IPsec-VPN连接的高可用。同时,使用BGP动态路由协议实现路由自动学习,降低网络维护成本和网络配置风险。

环境要求

  • IPsec连接绑定公网网络类型的VPN网关实例时,本地数据中心的网关设备必须配置公网IP地址。

    对于支持IPsec-VPN连接双隧道模式的地域,推荐本地数据中心的网关设备配置2个公网IP地址或者本地数据中心拥有两个本地网关设备,每个本地网关设备均拥有一个公网IP地址,以建立高可用的IPsec-VPN连接。关于支持IPsec-VPN连接双隧道模式的地域信息,请参见【升级公告】IPsec-VPN连接升级为双隧道模式

  • 本地数据中心的网关设备必须支持IKEv1或IKEv2协议,支持任意一种协议的设备均可以和VPN网关建立IPsec-VPN连接。

  • 本地数据中心和VPC间互通的网段没有重叠。

BGP动态路由支持的地域

区域

地域

亚太

华东1(杭州)、华东2(上海)、华东6(福州-本地地域)、华北1(青岛)、华北2(北京)、华北3(张家口)、华北5(呼和浩特)、华南1(深圳)、中国香港、日本(东京)、新加坡、澳大利亚(悉尼)、马来西亚(吉隆坡)、印度尼西亚(雅加达)、印度(孟买)

欧洲与美洲

德国(法兰克福)、英国(伦敦)、美国(弗吉尼亚)、美国(硅谷)

中东与印度

阿联酋(迪拜)

场景示例

本文以下图场景示例。某公司在阿里云华北5(呼和浩特)地域创建了VPC,VPC主网段为192.168.0.0/16。企业在呼和浩特地域拥有一个本地数据中心,因业务发展,本地数据中心172.16.0.0/16网段下的设备需要访问VPC下的资源。您可以在本地数据中心与云上VPC之间建立IPsec-VPN连接,实现云上和云下加密通信以及IPsec-VPN连接的高可用。

IDC和VPC互通(双隧道).png

BGP网段规划

本文中本地数据中心和VPN网关之间通过BGP动态路由协议实现路由自动学习和传播,下表为本地数据中心和IPsec连接的BGP网段规划。

说明

在IPsec-VPN连接配置BGP动态路由协议的情况下,两条隧道的本端自治系统号需保持相同,两条隧道对端的BGP AS号可以不相同,但建议保持相同。

资源

IPsec-VPN连接隧道

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

BGP隧道网段

BGP IP地址

IPsec连接

主隧道

65530

169.254.10.0/30

169.254.10.1

备隧道

65530

169.254.20.0/30

169.254.20.1

本地数据中心

主隧道

65500

169.254.10.0/30

169.254.10.2

备隧道

65500

169.254.20.0/30

169.254.20.2

准备工作

  • 您已经在阿里云华北5(呼和浩特)地域创建了VPC,VPC中使用云服务器ECS(Elastic Compute Service)部署了相关业务。具体操作,请参见搭建IPv4专有网络

  • 您已经了解VPC中ECS实例所应用的安全组规则以及本地数据中心应用的访问控制规则,并确保ECS安全组规则和本地数据中心访问控制规则允许本地数据中心和VPC之间互相互访。关于ECS安全组规则更多内容,请参见查询安全组规则添加安全组规则

配置流程IDC和VPC互通(双隧道+BGP)-配置流程.png

步骤一:创建VPN网关

  1. 登录VPN网关管理控制台

  2. 在顶部菜单栏,选择VPN网关的地域。

    VPN网关的地域需和本地数据中心要访问的VPC实例的地域相同。

  3. VPN网关页面,单击创建VPN网关

  4. 在购买页面,根据以下信息配置VPN网关,然后单击立即购买并完成支付。

    配置项

    说明

    本文示例值

    实例名称

    输入VPN网关实例的名称。

    输入VPNGW。

    资源组

    选择VPN网关实例所属的资源组。

    如果不选择,VPN网关实例创建后将归属于默认资源组。

    本文保持为空。

    地域和可用区

    选择VPN网关实例所属的地域。

    选择华北5(呼和浩特)

    网关类型

    选择VPN网关实例的网关类型。

    选择普通型

    网络类型

    选择VPN网关实例的网络类型。

    • 公网:VPN网关通过公网建立VPN连接。

    • 私网:VPN网关通过私网建立VPN连接。

    选择公网

    隧道

    系统直接展示当前地域IPsec-VPN连接支持的隧道模式。

    • 双隧道

    • 单隧道

    关于单隧道和双隧道的说明,请参见【升级公告】IPsec-VPN连接升级为双隧道模式

    本文保持默认值双隧道

    VPC

    选择VPN网关实例关联的VPC实例。

    选择阿里云华北5(呼和浩特)地域的VPC实例。

    虚拟交换机

    从VPC实例中选择一个交换机实例。

    • IPsec-VPN连接的隧道模式为单隧道时,您仅需要指定一个交换机实例。
    • IPsec-VPN连接的隧道模式为双隧道时,您需要指定两个交换机实例。
    说明
    • 系统默认帮您选择第一个交换机实例,您可以手动修改或者直接使用默认的交换机实例。
    • 创建VPN网关实例后,不支持修改VPN网关实例关联的交换机实例,您可以在VPN网关实例的详情页面查看VPN网关实例关联的交换机以及交换机所属可用区的信息。

    选择VPC实例下的一个交换机实例。

    虚拟交换机2

    从VPC实例中选择第二个交换机实例。

    • 您需要从VPN网关实例关联的VPC实例下指定两个分布在不同可用区的交换机实例,以实现IPsec-VPN连接可用区级别的容灾。
    • 对于仅支持一个可用区的地域 ,不支持可用区级别的容灾,建议您在该可用区下指定两个不同的交换机实例以实现IPsec-VPN连接的高可用,支持选择和第一个相同的交换机实例。
    说明

    如果VPC实例下没有第二个交换机实例,您可以新建交换机实例。具体操作,请参见创建和管理交换机

    选择VPC实例下的第二个交换机实例。

    带宽规格

    选择VPN网关实例的带宽规格。单位:Mbps。

    本文使用默认值。

    IPsec-VPN

    选择开启或关闭IPsec-VPN功能。默认值:开启

    选择开启IPsec-VPN功能。

    SSL-VPN

    选择开启或关闭SSL-VPN功能。默认值:关闭

    选择关闭SSL-VPN功能。

    计费周期

    选择购买时长。

    您可以选择是否自动续费:

    • 按月购买:自动续费周期为1个月。

    • 按年购买:自动续费周期为1年。

    本文使用默认值。

    服务关联角色

    单击创建关联角色,系统自动创建服务关联角色AliyunServiceRoleForVpn。

    VPN网关使用此角色来访问其他云产品中的资源,更多信息,请参见AliyunServiceRoleForVpn。

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

    根据需求创建服务关联角色或跳过本配置项。

  5. 返回VPN网关页面,查看创建的VPN网关实例。

    刚创建好的VPN网关实例的状态是准备中,约1~5分钟左右会变成正常状态。正常状态表明VPN网关已经完成了初始化,可以正常使用。

    系统会为公网网络类型的VPN网关实例分配两个不同的公网IP地址,用于建立两个加密隧道。本文中系统分配的两个公网IP地址如下表:

    IPsec-VPN连接隧道

    地址

    IPsec地址1(主隧道)

    47.XX.XX.157

    IPsec地址2(备隧道)

    47.XX.XX.138

步骤二:创建用户网关

  1. 在左侧导航栏,选择网间互联 > VPN > 用户网关

  2. 在顶部菜单栏选择用户网关的地域。

    用户网关地域需和VPN网关实例的地域相同。

  3. 用户网关页面,单击创建用户网关

  4. 创建用户网关面板,根据以下信息进行配置,然后单击确定

    您需要创建两个用户网关用于创建两个加密隧道。以下仅列举本文强相关配置项,其余配置保持默认值或为空。更多信息,请参见创建和管理用户网关

    配置项

    说明

    用户网关1

    用户网关2

    名称

    输入用户网关的名称。

    输入CustomerGW1

    输入CustomerGW2

    IP地址

    输入VPC要连接的本地数据中心的网关设备的公网IP地址。

    输入211.XX.XX.36

    输入211.XX.XX.71

    自治系统号

    输入本地网关设备BGP AS号。

    输入65500

    输入65500

步骤三:创建IPsec连接

  1. 在左侧导航栏,选择网间互联 > VPN > IPsec连接

  2. 在顶部菜单栏选择IPsec连接的地域。

    IPsec连接的地域需和VPN网关实例的地域相同。

  3. IPsec连接页面,单击创建IPsec连接

  4. 创建IPsec连接页面,根据以下信息进行配置,然后单击确定

    配置项

    说明

    本文示例值

    名称

    输入IPsec连接的名称。

    输入IPsec-Connection

    资源组

    选择VPN网关实例所属的资源组。

    选择默认资源组。

    绑定资源

    选择IPsec连接绑定的资源类型。

    选择VPN网关

    VPN网关

    选择IPsec连接关联的VPN网关实例。

    选择VPNGW

    路由模式

    选择路由模式。

    • 目的路由模式:基于目的IP地址路由和转发流量。

    • 感兴趣流模式:基于源IP地址和目的IP地址精确的路由和转发流量。

    选择目的路由模式

    立即生效

    选择IPsec连接的配置是否立即生效。取值:

    • :配置完成后立即进行协商。

    • :当有流量进入时进行协商。

    选择

    启用BGP

    如果IPsec连接需要使用BGP路由协议,需要打开BGP功能的开关,系统默认关闭BGP功能。

    本文开启BGP功能。

    本端自治系统号

    输入隧道本端的自治系统号。默认值:45104。自治系统号取值范围:1~4294967295

    输入65530。

    Tunnel 1

    为隧道1(主隧道)添加VPN相关配置。

    系统默认隧道1为主隧道,隧道2为备隧道,且不支持修改。

    用户网关

    为主隧道添加待关联的用户网关实例。

    选择CustomerGW1

    预共享密钥

    输入主隧道的认证密钥,用于身份认证。

    • 密钥长度为1~100个字符,支持数字、大小写英文字母及右侧字符~`!@#$%^&*()_-+={}[]\|;:',.<>/?

    • 若您未指定预共享密钥,系统会随机生成一个16位的字符串作为预共享密钥。

    重要

    隧道及其对端网关设备配置的预共享密钥需一致,否则系统无法正常建立IPsec-VPN连接。

    输入fddsFF123****

    加密配置

    添加IKE配置、IPsec配置、DPD、NAT穿越等配置。

    使用IKEv2版本,其余使用默认值。关于默认值的说明,请参见创建和管理IPsec连接(双隧道模式)

    BGP配置

    为IPsec连接主隧道添加BGP配置。

    • 隧道网段输入隧道的网段。

      该网段需要在169.254.0.0/16网段内,且掩码长度为30。

      说明

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

    • 本端BGP地址输入隧道本端的BGP IP地址。

      该地址为隧道网段内的一个IP地址。

    • 隧道网段169.254.10.0/30

    • 本端BGP地址169.254.10.1

    Tunnel 2

    为隧道2(备隧道)添加VPN相关配置。

    用户网关

    为备隧道添加待关联的用户网关实例。

    选择CustomerGW2

    预共享密钥

    输入备隧道的认证密钥,用于身份认证。

    输入fddsFF456****

    加密配置

    添加IKE配置、IPsec配置、DPD、NAT穿越等配置。

    使用IKEv2版本,其余使用默认值。关于默认值的说明,请参见创建和管理IPsec连接(双隧道模式)

    BGP配置

    为IPsec连接备隧道添加BGP配置。

    • 隧道网段169.254.20.0/30

    • 本端BGP地址169.254.20.1

    标签

    为IPsec连接添加标签。

    本文保持为空。

  5. 创建成功对话框中,单击确定

  6. 返回IPsec连接页面,找到创建的IPsec连接,在操作列单击生成对端配置

    对端配置是指需要在IPsec连接对端添加的VPN配置。本文场景中您需要将这些配置添加在本地网关设备上。

  7. IPsec连接配置对话框,复制配置并保存在您的本地,用于后续配置本地网关设备。

步骤四:开启BGP路由自动传播功能

为VPN网关实例开启BGP路由自动传播功能后,VPN网关实例才会将学习到的本地数据中心的路由传播至VPC实例中。

  1. 在左侧导航栏选择网间互联 > VPN > VPN网关

  2. VPN网关页面,找到目标VPN网关实例,在操作列选择开启路由自动传播

  3. 开启路由自动传播对话框单击确定

步骤五:配置本地网关设备

在阿里云侧完成配置后,您需要在本地网关设备上添加VPN配置和路由配置,使本地网关设备与VPN网关之间成功建立IPsec-VPN连接,同时使本地数据中心去往VPC的流量优先通过主隧道进行传出,在主隧道中断后自动切换至备隧道进行传输。

说明

以下内容包含第三方产品信息,第三方产品信息仅供参考。阿里云对第三方产品的性能、可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。

不同厂商的设备配置命令可能会有所不同。具体命令,请咨询相关设备厂商。

  1. 登录本地网关设备的命令行配置界面。

  2. 执行以下命令,配置ikev2 proposal和policy。

    //分别在本地网关设备1、本地网关设备2中添加如下配置
    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。

    //在本地网关设备1中添加如下配置
    crypto ikev2 keyring alicloud
    peer alicloud
    address 47.XX.XX.157             //配置云上主隧道的公网IP地址,本文为47.XX.XX.157。
    pre-shared-key fddsFF123****     //配置预共享密钥,本文为fddsFF123****。
    exit
    !
    //在本地网关设备2中添加如下配置
    crypto ikev2 keyring alicloud
    peer alicloud
    address 47.XX.XX.138               //配置云上备隧道的公网IP地址,本文为47.XX.XX.138。
    pre-shared-key fddsFF456****     //配置预共享密钥,本文为fddsFF456****。
    exit
    !
  4. 执行以下命令,配置ikev2 profile。

    //在本地网关设备1中添加如下配置
    crypto ikev2 profile alicloud
    match identity remote address 47.XX.XX.157 255.255.255.255    //匹配云上主隧道的公网IP地址,本文为47.XX.XX.157。
    identity local address 211.XX.XX.36    //本地网关设备1的公网IP地址,本文为211.XX.XX.36。
    authentication remote pre-share   //认证对端的方式为PSK(预共享密钥的方式)。
    authentication local pre-share    //认证本端的方式为PSK。
    keyring local alicloud            //调用密钥串。
    exit
    !
    //在本地网关设备2中添加如下配置
    crypto ikev2 profile alicloud
    match identity remote address 47.XX.XX.138 255.255.255.255    //匹配云上备隧道的公网IP地址,本文为47.XX.XX.138。
    identity local address 211.XX.XX.71    //本地网关设备2的公网IP地址,本文为211.XX.XX.71。
    authentication remote pre-share   //认证对端的方式为PSK(预共享密钥的方式)。
    authentication local pre-share    //认证本端的方式为PSK。
    keyring local alicloud            //调用密钥串。
    exit
    !
    
  5. 执行以下命令,配置transform。

    //分别在本地网关设备1、本地网关设备2中添加如下配置
    crypto ipsec transform-set TSET esp-aes esp-sha-hmac
    mode tunnel
    exit
    !
  6. 执行以下命令,配置IPsec Profile,并调用transform、pfs和ikev2 profile。

    //分别在本地网关设备1、本地网关设备2中添加如下配置
    crypto ipsec profile alicloud
    set transform-set TSET
    set pfs group2
    set ikev2-profile alicloud
    exit
    !
  7. 执行以下命令,配置IPsec隧道。

    //在本地网关设备1中添加如下配置
    interface Tunnel100
    ip address 169.254.10.2 255.255.255.252    //配置本地网关设备1的BGP隧道地址,本文为169.254.10.2。
    tunnel source GigabitEthernet1
    tunnel mode ipsec ipv4
    tunnel destination 47.XX.XX.157            //配置云上主隧道的公网IP地址,本文为47.XX.XX.157。
    tunnel protection ipsec profile alicloud
    no shutdown
    exit
    !
    interface GigabitEthernet1                 //配置与阿里云建立IPsec-VPN连接的接口IP地址。
    ip address 211.XX.XX.36 255.255.255.0
    negotiation auto
    !
    //在本地网关设备2中添加如下配置
    interface Tunnel100
    ip address 169.254.20.2 255.255.255.252    //配置本地网关设备2的BGP隧道地址,本文为169.254.20.2。
    tunnel source GigabitEthernet1
    tunnel mode ipsec ipv4
    tunnel destination 47.XX.XX.138            //配置云上备隧道的公网IP地址,本文为47.XX.XX.138。
    tunnel protection ipsec profile alicloud
    no shutdown
    exit
    !
    interface GigabitEthernet1                 //配置与阿里云建立IPsec-VPN连接的接口IP地址。
    ip address 211.XX.XX.71 255.255.255.0
    negotiation auto
    !
    
  8. 执行以下命令,配置BGP路由协议。

    //在本地网关设备1中添加如下配置
    router bgp 65500                         //开启BGP路由协议,并配置本地IDC的BGP AS号。本文为65500。
    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邻居的AS号,本文为云上主隧道的BGP AS号65530。
    neighbor 169.254.10.1 ebgp-multihop 10   //配置EBGP跳数为10。  
    !
    address-family ipv4
    network 172.16.0.0 mask 255.255.0.0   //宣告本地IDC的网段.
    neighbor 169.254.10.1 activate           //激活BGP邻居。
    exit-address-family
    !
    //在本地网关设备2中添加如下配置
    router bgp 65500                         //开启BGP路由协议,并配置本地IDC的BGP AS号。本文为65500。
    bgp router-id 169.254.20.2               //BGP路由器ID,本文设置为169.254.20.2。
    bgp log-neighbor-changes
    neighbor 169.254.20.1 remote-as 65530    //配置BGP邻居的AS号,本文为云上备隧道的BGP AS号65530。
    neighbor 169.254.20.1 ebgp-multihop 10   //配置EBGP跳数为10。  
    !
    address-family ipv4
    network 172.16.0.0 mask 255.255.0.0   //宣告本地IDC的网段。 
    neighbor 169.254.20.1 activate           //激活BGP邻居。
    exit-address-family
    !

    完成上述配置后,本地数据中心和VPN网关之间已经建立了IPsec-VPN连接,并且也通过BGP路由协议学习到了对方的路由。

  9. 请根据您的实际网络环境按需在本地数据中心添加路由配置,使本地数据中心去往VPC的流量优先通过本地网关设备1进行传输,在本地网关设备1故障后可以自动通过本地网关设备2进行传输。具体命令,请咨询相关设备厂商。

步骤六:验证测试

  1. 测试本地数据中心和VPC之间的连通性。

    1. 登录VPC下任意一个ECS实例。关于如何登录ECS实例,请参见连接方式概述

    2. 在ECS实例中执行ping命令,访问本地数据中心内的服务器,验证通信是否正常。

      如果ECS实例可以收到本地数据中心服务器的回复报文,则证明本地数据中心和VPC之间可以正常通信。

      ping <本地数据中心服务器IP地址>
  2. 测试IPsec-VPN连接的高可用性。

    1. 登录VPC下任意一个ECS实例。关于如何登录ECS实例,请参见连接方式概述

    2. 执行以下命令,使VPC下的ECS实例连续向本地数据中心发送访问报文。

      ping <本地数据中心服务器IP地址> -c 10000
    3. 中断IPsec-VPN连接下的主隧道。

      您可以通过修改IPsec连接主隧道的预共享密钥来中断主隧道,主隧道两端的预共享密钥不一致,则主隧道会中断。

    4. 中断主隧道后,您可以观察VPC实例下ECS实例的通信情况,发现ECS实例下的流量在短暂中断后,又重新恢复通信,则表示在主隧道中断后,流量自动通过备隧道进行通信。

  • 本页导读 (1)
文档反馈