本文介绍如何使用IPsec-VPN(双隧道模式)在两个专有网络VPC(Virtual Private Cloud)之间建立安全连接,实现两个VPC内的资源互访。
场景示例
如果您要在跨地域的VPC之间建立IPsec-VPN连接,IPsec-VPN连接的网络质量会受公网质量的影响,推荐您使用云企业网建立VPC到VPC的连接。具体操作,请参见跨账号VPC互通。
本文以下述场景为例。某企业在德国(法兰克福)地域拥有VPC1和VPC2。两个VPC均已使用云服务器ECS(Elastic Compute Service)部署了业务,企业因后续发展,现在需要VPC1和VPC2中的业务可以互相访问。
出于建设安全的网络环境考虑,企业计划使用VPN网关产品,通过在两个VPC之间建立IPsec-VPN连接,对数据进行加密传输,实现资源的安全互访。

网段规划
您可以自行规划网段,请确保要互通的网段之间没有重叠。
VPC实例网段规划
| VPC实例名称 | VPC实例的网段 | ECS实例IP地址 | 
| VPC1 | 
 | 
 | 
| VPC2 | 
 | 
 | 
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连接双隧道模式。 
- 您已经在阿里云德国(法兰克福)地域分别创建了VPC1和VPC2,两个VPC中均使用ECS部署了相关业务。具体操作,请参见搭建IPv4专有网络。 
- 您已经了解两个VPC中ECS实例所应用的安全组规则,并确保安全组规则允许两个ECS实例互访。具体操作,请参见查询安全组规则和添加安全组规则。 
配置流程

步骤一:创建VPN网关
- 登录VPN网关管理控制台。 
- 在顶部菜单栏,选择VPN网关实例所属的地域。 - 本文选择德国(法兰克福)。 说明- VPN网关实例的地域和待关联的VPC实例的地域需相同。 
- 在VPN网关页面,单击创建VPN网关。 
- 在购买页面,根据以下信息配置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。 - 若本配置项显示为已创建,则表示您的账号下已创建了该角色,无需重复创建。 
- 返回VPN网关页面,查看已创建的VPN网关实例。 - 创建VPN网关实例后,其状态是准备中,约1~5分钟会变成正常状态。正常状态表明VPN网关实例已经完成了初始化,可以正常使用。 
- 重复步骤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 
 
步骤二:创建用户网关
- 在左侧导航栏,选择。 
- 在顶部菜单栏,选择用户网关实例的地域。 说明- 用户网关实例的地域必须和待连接的VPN网关实例的地域相同。 
- 在用户网关页面,单击创建用户网关。 
- 在创建用户网关面板,根据以下信息配置用户网关实例,然后单击确定。 - 您需要在德国(法兰克福)地域创建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连接。
- 在左侧导航栏,选择。 
- 在IPsec连接页面,单击绑定VPN网关。 
- 在创建IPsec连接(VPN)页面,根据以下信息配置IPsec连接,然后单击确定。 - 您需要在德国(法兰克福)地域创建2个IPsec连接,IPsec连接的配置请参见下表。 - 配置项 - 配置项说明 - IPsec连接1 - IPsec连接2 - IPsec连接名称 - 输入IPsec连接的名称。 - 本文输入IPsec连接1。 - 本文输入IPsec连接2。 - 地域 - 选择IPsec连接要绑定的VPN网关实例的地域。 - IPsec连接创建完成后所属地域与VPN网关实例地域相同。 - 选择德国(法兰克福)。 - 选择德国(法兰克福)。 - 资源组筛选 - 选择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穿越等配置。 - 本文保持默认配置。 - 本文保持默认配置。 
- 在创建成功对话框中,单击确定。 - 配置完成后,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动态路由,以下内容分别介绍如何配置。您选择一种路由协议进行配置即可。
配置静态路由
本文以目的路由为例进行说明。
- 在左侧导航栏,选择。 
- 在顶部菜单栏,选择VPN网关实例的地域。 
- 在VPN网关页面,找到目标VPN网关实例,单击实例ID。 
- 在目的路由表页签,单击添加路由条目。 
- 在添加路由条目面板,根据以下信息配置目的路由,然后单击确定。 - 您需要分别为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动态路由
- 为IPsec连接添加BGP配置。 - 在左侧导航栏,选择。 
- 在IPsec连接页面,找到IPsec连接,单击IPsec连接ID。 
- 在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。 
 
- 根据以下步骤分别为VPN网关1和VPN网关2开启BGP路由自动传播功能。 - 在左侧导航栏,选择。 
- 在VPN网关页面,找到VPN网关实例,在操作列选择。 
- 在开启路由自动传播对话框,单击确定。 
 
配置路由后,在IPsec连接页面可以查看到IPsec连接的隧道已经可用。
步骤五:验证测试
完成上述步骤后,VPC1和VPC2之间已经可以相互通信。以下内容介绍如何测试VPC1和VPC2之间的连通性以及如何验证IPsec-VPN连接双隧道模式下的高可用性。
- 测试连通性。 - 登录VPC1内的ECS1实例。 - 关于如何登录ECS实例,请参见ECS远程连接方式概述。 
- 执行ping命令,访问VPC2下的ECS3实例,验证两个VPC之间的资源是否可以互访。 - ping <ECS3实例IP地址>- 收到如下所示的回复报文,则证明两个VPC之间的资源可以正常互访。  
 
- 测试高可用性。 - 登录VPC1内的ECS1实例。 - 关于如何登录ECS实例,请参见ECS远程连接方式概述。 
- 执行以下命令,使ECS1连续向ECS3发送访问报文。 - ping <ECS3实例IP地址> -c 10000
- 中断IPsec-VPN连接下的主隧道。 - 本文通过修改IPsec连接1下主隧道的预共享密钥来中断主隧道,主隧道两端的预共享密钥不一致,则主隧道会中断。  
- 查看ECS1下的通信情况,会发现ECS1实例下的流量在短暂中断后,又重新恢复通信,表示在主隧道中断后,流量自动通过备隧道进行通信。  说明 说明- 在本地数据中心通过IPsec-VPN连接双隧道模式与VPC互通的场景中,主隧道中断后,从VPC去往本地数据中心的流量自动切换至备隧道进行传输(由阿里云侧自动切换),从本地数据中心去往VPC的流量路径依赖本地数据中心的路由配置,如果本地数据中心不支持切换流量至备隧道,您可以通过配置云监控来监控主隧道,在监控到主隧道中断后,手动更改本地数据中心的路由配置,切换流量至备隧道进行传输。具体操作,请参见监控IPsec连接。 
 
 > 开启路由自动传播
 > 开启路由自动传播