建立VPC到VPC的IPsec-VPN连接(双隧道模式)

本文介绍如何使用IPsec-VPN(双隧道模式)在两个专有网络VPC(Virtual Private Cloud)之间建立安全连接,实现两个VPC内的资源互访。

场景示例

说明
  • VPN网关不支持建立跨境连接。使用IPsec-VPN建立VPC和VPC之间的连接时,两个VPC必须同属于中国内地地域或者同属于非中国内地地域。关于中国内地地域和非中国内地地域的说明,请参见中国内地地域和非中国内地地域

  • 在一个VPC属于中国内地地域,另一个VPC属于非中国内地地域的场景下,如果您需要在两个VPC之间建立连接,您可以使用云企业网产品。更多信息,请参见什么是云企业网

  • 如果您要在跨地域的VPC之间建立IPsec-VPN连接,IPsec-VPN连接的网络质量会受公网质量的影响,推荐您使用云企业网建立VPC到VPC的连接。具体操作,请参见使用云企业网实现跨地域跨账号VPC互通(企业版)

本文以下述场景为例。某企业在德国(法兰克福)地域拥有VPC1和VPC2。两个VPC均已使用云服务器ECS(Elastic Compute Service)部署了业务,企业因后续发展,现在需要VPC1和VPC2中的业务可以互相访问。

出于建设安全的网络环境考虑,企业计划使用VPN网关产品,通过在两个VPC之间建立IPsec-VPN连接,对数据进行加密传输,实现资源的安全互访。

VPCtoVPC-双隧道模式

网段规划

重要

您可以自行规划网段,请确保要互通的网段之间没有重叠。

VPC实例网段规划

VPC实例名称

VPC实例的网段

ECS实例IP地址

VPC1

  • 主网段:10.0.0.0/16

  • 交换机1网段:10.0.10.0/24,位于可用区B下

  • 交换机2网段:10.0.20.0/24,位于可用区C下

  • ECS1 IP地址:10.0.20.15

  • ECS2 IP地址:10.0.20.16

VPC2

  • 主网段:192.168.0.0/16

  • 交换机1网段:192.168.10.0/24,位于可用区B下

  • 交换机2网段:192.168.20.0/24,位于可用区C下

  • ECS3 IP地址:192.168.20.24

  • ECS4 IP地址:192.168.20.25

IPsec-VPN连接BGP网段规划

本文中将分别描述IPsec-VPN连接使用静态路由和BGP动态路由情况下如何实现VPC之间的通信。以下为本文的BGP网段规划。

说明

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

VPN网关实例名称

IPsec连接名称

隧道

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

BGP隧道网段

BGP IP地址

VPN网关1

IPsec连接1

主隧道

65530

169.254.10.0/30

169.254.10.1

备隧道

65530

169.254.20.0/30

169.254.20.1

VPN网关2

IPsec连接2

主隧道

65500

169.254.10.0/30

169.254.10.2

备隧道

65500

169.254.20.0/30

169.254.20.2

准备工作

  • 目前仅以下地域和可用区支持IPsec-VPN连接双隧道模式。

    单击查看支持的地域和可用区

    地域

    可用区

    华东1(杭州)

    K、J、I、H、G

    华东2(上海)

    K、L、M、N、B、D、E、F、G

    华东5(南京-本地地域)

    A

    华东6(福州-本地地域)

    A

    华中1(武汉-本地地域)

    A

    华南1(深圳)

    A(已停止售卖)、E、D、F

    华南2(河源)

    A、B

    华南3(广州)

    A、B

    华北1(青岛)

    B、C

    华北2(北京)

    F、E、H、G、A、C、J、I、L、K

    华北3(张家口)

    A、B、C

    华北5(呼和浩特)

    A、B

    华北6(乌兰察布)

    A、B、C

    西南1(成都)

    A、B

    中国香港

    B、C、D

    新加坡

    A、B、C

    泰国(曼谷)

    A

    日本(东京)

    A、B、C

    韩国(首尔)

    A

    菲律宾(马尼拉)

    A

    印度尼西亚(雅加达)

    A、B、C

    马来西亚(吉隆坡)

    A、B

    英国(伦敦)

    A、B

    德国(法兰克福)

    A、B、C

    美国(硅谷)

    A、B

    美国(弗吉尼亚)

    A、B

    阿联酋(迪拜)

    A

    华东1金融云

    K、J、I、H

    华东2金融云

    F、G、Z、K

    华南1金融云

    D、E

    华北2金融云(邀测)

    K、L

  • 您已经在阿里云德国(法兰克福)地域分别创建了VPC1和VPC2,两个VPC中均使用ECS部署了相关业务。具体操作,请参见搭建IPv4专有网络

  • 您已经了解两个VPC中ECS实例所应用的安全组规则,并确保安全组规则允许两个ECS实例互访。具体操作,请参见查询安全组规则添加安全组规则

配置流程

双隧道-配置流程

步骤一:创建VPN网关

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

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

    本文选择德国(法兰克福)

    说明

    VPN网关实例的地域和待关联的VPC实例的地域需相同。

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

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

    配置项

    说明

    实例名称

    输入VPN网关实例的名称。本文输入VPN网关1

    资源组

    选择VPN网关实例所属的资源组。本文选择默认资源组。

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

    地域和可用区

    选择VPN网关实例所属的地域。本文选择德国(法兰克福)

    网关类型

    选择VPN网关实例的网关类型。本文选择普通型

    网络类型

    选择VPN网关实例的网络类型。本文使用公网

    隧道

    默认为双隧道

    VPC

    选择VPN网关实例关联的VPC实例。本文选择VPC1。

    虚拟交换机

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

    • IPsec-VPN连接的隧道模式为单隧道时,您仅需要指定一个交换机实例。

    • IPsec-VPN连接的隧道模式为双隧道时,您需要指定两个交换机实例。

      IPsec-VPN功能开启后,系统会在两个交换机实例下各创建一个弹性网卡ENI(Elastic Network Interfaces),作为使用IPsec-VPN连接与VPC流量互通的接口。每个ENI会占用交换机下的一个IP地址。

    说明
    • 系统默认帮您选择第一个交换机实例,您可以手动修改或者直接使用默认的交换机实例。

    • 创建VPN网关实例后,不支持修改VPN网关实例关联的交换机实例,您可以在VPN网关实例的详情页面查看VPN网关实例关联的交换机、交换机所属可用区以及交换机下ENI的信息。

    虚拟交换机2

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

    • 您需要从VPN网关实例关联的VPC实例下指定两个分布在不同可用区的交换机实例,以实现IPsec-VPN连接可用区级别的容灾。

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

    带宽规格

    选择VPN网关实例的公网带宽峰值。单位:Mbps。

    IPsec-VPN

    选择开启或关闭IPsec-VPN功能。本文选择开启

    SSL-VPN

    选择开启或关闭SSL-VPN功能。本文选择关闭

    计费周期

    选择购买时长。

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

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

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

    服务关联角色

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

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

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

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

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

  6. 重复步骤3步骤4,在德国(法兰克福)地域再创建一个名称为VPN网关2的VPN网关实例,该VPN网关实例关联VPC2,其余配置与VPN网关1相同。

    创建完成后,两个VPN网关实例的信息如下表所示。

    VPN网关实例的名称

    VPN网关实例关联的VPC实例名称

    VPN网关IP地址

    VPN网关1

    VPC1

    • IPsec地址1:47.XX.XX.87

    • IPsec地址2:47.XX.XX.78

    VPN网关2

    VPC2

    • IPsec地址1:47.XX.XX.207

    • IPsec地址2:47.XX.XX.15

步骤二:创建用户网关

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

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

    说明

    用户网关实例的地域必须和待连接的VPN网关实例的地域相同。

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

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

    您需要在德国(法兰克福)地域创建4个用户网关实例,用于建立VPN隧道。用户网关实例的配置请参见下表,其余配置项保持默认值或为空。

    配置项

    配置项说明

    德国(法兰克福)地域

    德国(法兰克福)地域

    德国(法兰克福)地域

    德国(法兰克福)地域

    名称

    输入用户网关实例的名称。

    VPN网关1-Customer1

    VPN网关1-Customer2

    VPN网关2-Customer1

    VPN网关2-Customer2

    IP地址

    输入IP地址。

    为VPN网关实例对端的IP地址。

    说明

    在本文中VPN网关1和VPN网关2互为对方的用户网关。

    本文输入VPN网关2下IPsec地址1的IP地址47.XX.XX.207

    本文输入VPN网关2下IPsec地址2的IP地址47.XX.XX.15

    本文输入VPN网关1的IPsec地址1的IP47.XX.XX.87

    本文输入VPN网关1的IPsec地址2的IP47.XX.XX.78

    自治系统号

    输入自治系统号。

    为VPN网关实例对端的自治系统号。

    本文输入VPN网关2下主隧道的BGP AS号65500

    本文输入VPN网关2下备隧道的BGP AS号65500

    本文输入VPN网关1下主隧道的BGP AS号65530

    本文输入VPN网关1下备隧道的BGP AS号65530

步骤三:创建IPsec连接

VPN网关和用户网关创建完成后,您需要分别创建两个IPsec连接以建立IPsec-VPN连接。

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

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

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

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

    您需要在德国(法兰克福)地域创建2个IPsec连接,IPsec连接的配置请参见下表。

    配置项

    配置项说明

    IPsec连接1

    IPsec连接2

    名称

    输入IPsec连接的名称。

    本文输入IPsec连接1

    本文输入IPsec连接2

    资源组

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

    如果您不选择,系统直接展示所有资源组下的VPN网关实例。

    本文选择默认资源组。

    本文选择默认资源组。

    绑定资源

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

    本文选择VPN网关

    本文选择VPN网关

    VPN网关

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

    本文选择VPN网关1

    本文选择VPN网关2

    路由模式

    选择路由模式。

    说明

    如果IPsec连接要使用BGP动态路由协议,建议选择目的路由模式

    本文选择目的路由模式

    本文选择目的路由模式

    立即生效

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

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

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

    说明

    使用VPN网关在两个VPC之间建立IPsec-VPN连接的场景下,推荐其中一个IPsec连接的立即生效配置为,以便在配置完成后,两个VPC之间可以立即开始IPsec协议的协商。

    本文选择

    本文选择

    启用BGP

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

    本文此处保持默认值不打开BGP配置开关。IPsec连接创建完成后再另行添加BGP配置。

    本文此处保持默认值不打开BGP配置开关。IPsec连接创建完成后再另行添加BGP配置。

    Tunnel 1

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

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

    用户网关

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

    本文选择VPN网关1-Customer1

    本文选择VPN网关2-Customer1

    预共享密钥

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

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

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

    重要

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

    本文输入fddsFF123****

    本文输入fddsFF123****

    加密配置

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

    本文保持默认配置。

    本文保持默认配置。

    Tunnel 2

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

    用户网关

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

    本文选择VPN网关1-Customer2

    本文选择VPN网关2-Customer2

    预共享密钥

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

    本文输入fddsFF456****

    本文输入fddsFF456****

    加密配置

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

    本文保持默认配置。

    本文保持默认配置。

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

    配置完成后,VPC实例、VPN网关实例、IPsec连接、用户网关实例之间的对应关系如下表所示。

    VPC实例名称

    VPN网关实例名称

    IPsec连接名称

    隧道

    隧道关联的用户网关实例名称

    VPC1

    VPN网关1

    IPsec连接1

    主隧道

    VPN网关1-Customer1

    备隧道

    VPN网关1-Customer2

    VPC2

    VPN网关2

    IPsec连接2

    主隧道

    VPN网关2-Customer1

    备隧道

    VPN网关2-Customer2

步骤四:配置路由

双隧道模式下,IPsec-VPN连接支持配置静态路由和BGP动态路由,以下内容分别介绍如何配置。您选择一种路由协议进行配置即可。

配置静态路由

本文以目的路由为例进行说明。

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

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

  3. VPN网关页面,找到目标VPN网关实例,单击实例ID。

  4. 目的路由表页签,单击添加路由条目

  5. 添加路由条目面板,根据以下信息配置目的路由,然后单击确定

    您需要分别为VPN网关1和VPN网关2配置路由条目,配置信息如下表所示。

    配置项

    配置项说明

    VPN网关1

    VPN网关2

    目标网段

    输入待互通的目标网段。

    输入VPC2的私网网段192.168.0.0/16

    输入VPC1的私网网段10.0.0.0/16

    下一跳类型

    选择下一跳的类型。

    选择IPsec连接

    选择IPsec连接

    下一跳

    选择下一跳。

    选择IPsec连接1。

    选择IPsec连接2。

    发布到VPC

    选择是否将新添加的路由发布到VPN网关关联的VPC中。

    本文选择

    本文选择

配置BGP动态路由

  1. 为IPsec连接添加BGP配置。

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

    2. IPsec连接页面,找到IPsec连接,单击IPsec连接ID。

    3. IPsec连接基本信息区域,在启用BGP右侧单击按钮,在BGP配置对话框根据以下信息进行配置,然后单击确定

      根据下表分别为IPsec连接1和IPsec连接2添加BGP配置。

      配置项

      配置项说明

      IPsec连接1

      IPsec连接2

      本端自治系统号

      输入IPsec连接的自治系统号。

      本文输入65530

      本文输入65500

      Tunnel 1

      为主隧道添加BGP配置。

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

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

      隧道网段

      输入建立加密隧道时使用的网段。

      隧道网段需要是在169.254.0.0/16内的子网掩码为30的网段,且不能是169.254.0.0/30、169.254.1.0/30、169.254.2.0/30、169.254.3.0/30、169.254.4.0/30、169.254.5.0/30、169.254.6.0/30和169.254.169.252/30。

      说明

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

      本文输入169.254.10.0/30

      本文输入169.254.10.0/30

      本端BGP地址

      输入IPsec连接的BGP IP地址。

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

      本文输入169.254.10.1

      本文输入169.254.10.2

      Tunnel 2

      为备隧道添加BGP配置。

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

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

      隧道网段

      输入建立加密隧道时使用的网段。

      隧道网段需要是在169.254.0.0/16内的子网掩码为30的网段,且不能是169.254.0.0/30、169.254.1.0/30、169.254.2.0/30、169.254.3.0/30、169.254.4.0/30、169.254.5.0/30、169.254.6.0/30和169.254.169.252/30。

      说明

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

      本文输入169.254.20.0/30

      本文输入169.254.20.0/30

      本端BGP地址

      输入IPsec连接的BGP IP地址。

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

      本文输入169.254.20.1

      本文输入169.254.20.2

  2. 根据以下步骤分别为VPN网关1和VPN网关2开启BGP路由自动传播功能。

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

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

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

配置路由后,在IPsec连接页面可以查看到IPsec连接的隧道已经可用。双隧道建立成功

步骤五:验证测试

完成上述步骤后,VPC1和VPC2之间已经可以相互通信。以下内容介绍如何测试VPC1和VPC2之间的连通性以及如何验证IPsec-VPN连接双隧道模式下的高可用性。

  1. 测试连通性。

    1. 登录VPC1内的ECS1实例。

      关于如何登录ECS实例,请参见连接实例

    2. 执行ping命令,访问VPC2下的ECS3实例,验证两个VPC之间的资源是否可以互访。

      ping <ECS3实例IP地址>

      收到如下所示的回复报文,则证明两个VPC之间的资源可以正常互访。

      双隧道测试图

  2. 测试高可用性。

    1. 登录VPC1内的ECS1实例。

      关于如何登录ECS实例,请参见连接实例

    2. 执行以下命令,使ECS1连续向ECS3发送访问报文。

      ping <ECS3实例IP地址> -c 10000
    3. 中断IPsec-VPN连接下的主隧道。

      本文通过修改IPsec连接1下主隧道的预共享密钥来中断主隧道,主隧道两端的预共享密钥不一致,则主隧道会中断。双隧道测试-主隧道中断

    4. 查看ECS1下的通信情况,会发现ECS1实例下的流量在短暂中断后,又重新恢复通信,表示在主隧道中断后,流量自动通过备隧道进行通信。

      双隧道测试-高可用性

      说明

      在本地数据中心通过IPsec-VPN连接双隧道模式与VPC互通的场景中,主隧道中断后,从VPC去往本地数据中心的流量自动切换至备隧道进行传输(由阿里云侧自动切换),从本地数据中心去往VPC的流量路径依赖本地数据中心的路由配置,如果本地数据中心不支持切换流量至备隧道,您可以通过配置云监控来监控主隧道,在监控到主隧道中断后,手动更改本地数据中心的路由配置,切换流量至备隧道进行传输。具体操作,请参见监控IPsec连接