可将阿里云侧的双隧道IPsec-VPN,与AWS侧的两个“站点到站点VPN连接”进行对接,实现阿里云VPC与AWS VPC的网络互通。
场景示例
本文以下图场景为例。某企业在阿里云德国(法兰克福)地域创建了一个VPC,并在AWS的欧洲(法兰克福)地域也拥有一个VPC,企业希望阿里云VPC和AWS VPC可以互相通信。
企业可以使用阿里云VPN网关产品(使用公网网络类型的VPN网关实例)和AWS VPN产品在两个VPC之间建立IPsec-VPN连接,实现两个VPC之间的加密通信。
网段规划
您可以自行规划网段,请确保要互通的网段之间没有重叠。
VPC实例网段规划
资源 | VPC实例的网段 | 实例IP地址 |
阿里云VPC |
| ECS IP地址:10.0.0.223 |
AWS VPC |
| EC2 IP地址:192.168.10.113 |
IPsec-VPN连接BGP网段规划
本文中将分别描述IPsec-VPN连接使用静态路由和BGP动态路由情况下如何实现阿里云VPC和AWS VPC之间的通信。如果您不需要使用BGP动态路由方式,可以忽略本部分。以下为本文的BGP网段规划。
在IPsec-VPN连接配置BGP动态路由协议的情况下,阿里云侧两条隧道的本端自治系统号需保持相同,两条隧道对端的BGP AS号可以不相同,但建议保持相同。
资源 | IPsec连接名称 | 隧道 | BGP隧道网段 | BGP IP地址 | BGP AS号(本端自治系统号) |
阿里云VPN网关 | IPsec连接 | 主隧道 | 169.254.116.208/30 说明 一个VPN网关实例下,每个隧道的网段需保持唯一。 | 169.254.116.210 | 65530 |
备隧道 | 169.254.214.96/30 | 169.254.214.98 | |||
AWS虚拟私有网关 | 站点到站点VPN连接1 | 隧道1 | 169.254.116.208/30 | 169.254.116.209 | 64512 |
隧道2 | 备隧道不使用。 | ||||
站点到站点VPN连接2 | 隧道1 | 169.254.214.96/30 | 169.254.214.97 | ||
隧道2 | 备隧道不使用。 | ||||
准备工作
您已经在阿里云德国(法兰克福)地域创建一个VPC,VPC下通过云服务器 ECS(Elastic Compute Service)部署相关资源。具体操作,请参见搭建IPv4专有网络。
您已经在AWS欧洲(法兰克福)地域创建了一个VPC,VPC下通过EC2部署了相关资源。具体操作,请咨询AWS平台。
配置流程
步骤一:在阿里云创建VPN网关实例
您需要先在阿里云创建一个VPN网关实例,VPN网关实例创建完成后,系统会为VPN网关实例分配2个IP地址,这2个IP地址用于与AWS平台建立IPsec-VPN连接。
登录VPN网关管理控制台。
在顶部菜单栏,选择VPN网关的地域。
VPN网关的地域需和待绑定的VPC实例的地域相同。
在VPN网关页面,单击创建VPN网关。
在购买页面,根据以下信息配置VPN网关,然后单击立即购买并完成支付。
以下仅列举本文强相关的配置,其余配置项保持默认值或为空。更多信息,请参见创建和管理VPN网关实例。
配置项
说明
本文示例值
实例名称
输入VPN网关实例的名称。
输入VPN网关。
地域
选择VPN网关实例所属的地域。
选择德国(法兰克福)。
网关类型
选择VPN网关实例的网关类型。
选择普通型。
网络类型
选择VPN网关实例的网络类型。
选择公网。
隧道
系统直接展示当前地域IPsec-VPN连接支持的隧道模式。
双隧道
单隧道
关于单隧道和双隧道的说明,请参见绑定VPN网关。
本文保持默认值双隧道。
专有网络
选择VPN网关实例关联的VPC实例。
选择阿里云德国(法兰克福)地域的VPC实例。
虚拟交换机
从VPC实例中选择一个交换机实例。
IPsec-VPN连接的隧道模式为单隧道时,您仅需要指定一个交换机实例。
IPsec-VPN连接的隧道模式为双隧道时,您需要指定两个交换机实例。
IPsec-VPN功能开启后,系统会在两个交换机实例下各创建一个弹性网卡ENI(Elastic Network Interfaces),作为使用IPsec-VPN连接与VPC流量互通的接口。每个ENI会占用交换机下的一个IP地址。
说明系统默认帮您选择第一个交换机实例,您可以手动修改或者直接使用默认的交换机实例。
创建VPN网关实例后,不支持修改VPN网关实例关联的交换机实例,您可以在VPN网关实例的详情页面查看VPN网关实例关联的交换机、交换机所属可用区以及交换机下ENI的信息。
选择VPC实例下的一个交换机实例。
虚拟交换机2
从VPC实例中选择第二个交换机实例。
您需要从VPN网关实例关联的VPC实例下指定两个分布在不同可用区的交换机实例,以实现IPsec-VPN连接可用区级别的容灾。
对于仅支持一个可用区的地域 ,不支持可用区级别的容灾,建议您在该可用区下指定两个不同的交换机实例以实现IPsec-VPN连接的高可用,支持选择和第一个相同的交换机实例。
说明如果VPC实例下没有第二个交换机实例,您可以新建交换机实例。具体操作,请参见创建和管理交换机。
选择VPC实例下的第二个交换机实例。
IPsec-VPN
选择开启或关闭IPsec-VPN功能。默认值:开启。
选择开启IPsec-VPN功能。
SSL-VPN
选择开启或关闭SSL-VPN功能。默认值:关闭。
选择关闭SSL-VPN功能。
返回VPN网关页面,查看创建的VPN网关实例
刚创建好的VPN网关实例的状态是准备中,约1~5分钟左右会变成正常状态。正常状态表明VPN网关已经完成了初始化,可以正常使用。
系统为VPN网关实例分配的2个IP地址如下表所示:
VPN网关实例的名称
VPN网关实例ID
IP地址
VPN网关
vpn-gw8dickm386d2qi2g****
IPsec地址1(默认为主隧道地址):8.XX.XX.146
IPsec地址2(默认为备隧道地址):8.XX.XX.74
步骤二:在AWS平台部署VPN
为在AWS VPC和阿里云VPC之间建立IPsec-VPN连接,您需要根据以下信息在AWS平台部署VPN,配置需要的具体命令或操作请咨询AWS平台。
使用静态路由方式
创建客户网关。
您需要在AWS侧创建2个客户网关,将阿里云VPN网关实例的2个IP地址作为客户网关的IP地址。

创建虚拟私有网关。
您需要在AWS侧创建虚拟私有网关,并将虚拟私有网关绑定到需要和阿里云互通的VPC实例上。

创建站点到站点VPN连接。
重要阿里云和AWS平台下的IPsec-VPN连接均支持双隧道模式,但由于AWS平台的两条隧道默认关联至同一个客户网关,而阿里云侧两条隧道拥有不同的IP地址,导致AWS平台和阿里云侧的两条隧道无法做到一一对应建立连接。为确保阿里云侧IPsec-VPN连接下两条隧道同时启用,您需要在AWS平台创建两个站点到站点的VPN连接,每个站点到站点VPN连接关联不同的客户网关。
下图展示其中一个站点到站点VPN连接的配置,隧道选项配置使用默认值。另一个站点到站点VPN连接关联与当前VPN连接不同的客户网关,其余配置与当前VPN连接相同。
说明上图中本地IPv4网络CIDR需指定为阿里云VPC下的网段,远程IPv4网络CIDR需指定为AWS VPC下的网段。
站点到站点VPN连接创建完成后,您可以查看VPN连接下的隧道地址信息,用于后续在阿里云侧创建IPsec-VPN连接。

本文中,2个VPN连接隧道1的外部IP地址以及关联的客户网关IP地址如下表所示:
站点到站点VPN连接
隧道
外部IP地址
关联的客户网关IP地址
站点到站点VPN连接1
Tunnel 1
3.XX.XX.52
8.XX.XX.146
站点到站点VPN连接2
Tunnel 1
3.XX.XX.56
8.XX.XX.74
配置路由传播。
您需要在虚拟私有网关关联的VPC实例的路由表下开启路由传播,以确保站点到站点VPN连接下的路由可以自动传播到VPC实例的路由表中。

使用BGP动态路由方式
创建客户网关。
您需要在AWS侧创建2个客户网关,将阿里云VPN网关实例的2个IP地址作为客户网关的IP地址,同时将阿里云IPsec连接的BGP AS号注册到AWS上。

创建虚拟私有网关。
您需要在AWS侧创建虚拟私有网关,并将虚拟私有网关绑定到需要和阿里云互通的VPC实例上。创建虚拟私有网关时需要指定AWS侧的BGP AS号。

创建站点到站点VPN连接。
重要阿里云和AWS平台下的IPsec-VPN连接均支持双隧道模式,但由于AWS平台的两条隧道默认关联至同一个客户网关,而阿里云侧两条隧道拥有不同的IP地址,导致AWS平台和阿里云侧的两条隧道无法做到一一对应建立连接。为确保阿里云侧IPsec-VPN连接下两条隧道同时启用,您需要在AWS平台创建两个站点到站点的VPN连接,每个站点到站点VPN连接关联不同的客户网关。
下图展示其中一个站点到站点VPN连接的配置,未展示的配置项使用默认值。另一个站点到站点VPN连接关联与当前VPN连接不同的客户网关、隧道 1的内部IPv4 CIDR配置为169.254.214.96/30,其余配置与当前VPN连接相同。
说明上图中本地IPv4网络CIDR需指定为阿里云VPC下的网段,远程IPv4网络CIDR需指定为AWS VPC下的网段。
站点到站点VPN连接创建完成后,您可以查看VPN连接下的隧道地址信息。

查看隧道的预共享密钥和阿里云侧需配置的BGP IP地址。
站点到站点VPN连接创建完成后,您需要在AWS平台下载隧道对端设备(本文中指阿里云VPN网关)的VPN配置文件,在VPN配置文件中查看阿里云侧需配置的预共享密钥和BGP IP地址。下载配置文件的操作,请参见下载配置文件。本文下载配置文件时供应商选择Generic、IKE版本选择IKEv2。
说明创建站点到站点的VPN连接时如果您指定了预共享密钥,无需再通过VPN配置文件查看。如果您使用了系统自动生成的预共享密钥,您可以通过VPN配置文件查看系统生成的预共享密钥。阿里云侧和AWS侧隧道的预共享密钥需保持一致。
本文中,两个VPN连接隧道1的外部IP地址、BGP IP地址以及关联的客户网关IP地址如下表所示:
站点到站点VPN连接
隧道
外部IP地址
AWS侧BGP IP地址
阿里云侧BGP IP地址
关联的客户网关IP地址
站点到站点VPN连接1
Tunnel 1
3.XX.XX.52
169.254.116.209
169.254.116.210
8.XX.XX.146
站点到站点VPN连接2
Tunnel 1
3.XX.XX.56
169.254.214.97
169.254.214.98
8.XX.XX.74
配置路由传播。
您需要在虚拟私有网关关联的VPC实例的路由表下开启路由传播,以确保站点到站点VPN连接下的路由可以自动传播到AWS VPC实例的路由表中。

步骤三:在阿里云部署VPN网关
在AWS平台完成VPN配置后,请根据以下信息在阿里云侧部署VPN网关,以便AWS VPC和阿里云VPC之间建立IPsec-VPN连接。
创建用户网关。
登录VPN网关管理控制台。
在左侧导航栏,选择。
在顶部菜单栏选择用户网关的地域。
用户网关地域需和VPN网关实例的地域相同。
在用户网关页面,单击创建用户网关。
在创建用户网关面板,根据以下信息进行配置,然后单击确定。
您需要创建两个用户网关,并将AWS平台站点到站点VPN连接的隧道外部IP地址作为用户网关的IP地址,以建立两个加密隧道。以下仅列举本文强相关配置项,其余配置保持默认值或为空。更多信息,请参见用户网关。
重要仅使用每个站点到站点VPN连接的Tunnel1的外部IP地址作为用户网关的地址。每个站点到站点VPN连接的Tunnel2的外部IP地址默认不使用,IPsec-VPN连接创建完成后,每个站点到站点VPN连接的Tunnel2默认不通。
配置项
说明
用户网关1
用户网关2
名称
输入用户网关的名称。
输入用户网关1。
输入用户网关2。
IP地址
输入AWS平台隧道的外部IP地址。
输入3.XX.XX.52。
输入3.XX.XX.56。
自治系统号
输入AWS虚拟私有网关的BGP AS号。
说明使用BGP动态路由方式时,需配置该项。
输入64512。
输入64512。
创建IPsec连接。
在左侧导航栏,选择。
-
在IPsec连接页面,单击绑定VPN网关。
在创建IPsec连接(VPN)页面,根据以下信息配置IPsec连接,然后单击确定。
配置项
说明
本文示例值
IPsec连接名称
输入IPsec连接的名称。
输入IPsec连接。
地域
选择IPsec连接要绑定的VPN网关实例的地域。
IPsec连接创建完成后所属地域与VPN网关实例地域相同。
选择德国(法兰克福)。
绑定VPN网关
选择IPsec连接关联的VPN网关实例。
选择已创建的VPN网关。
路由模式
选择路由模式。
目的路由模式:基于目的IP地址路由和转发流量。
感兴趣流模式:基于源IP地址和目的IP地址精确的路由和转发流量。
本文使用静态路由方式时,选择使用感兴趣流模式(推荐)。
本端网段:输入10.0.0.0/16。
对端网段:输入192.168.0.0/16。
本文使用BGP动态路由方式时,选择使用目的路由模式(推荐)。
立即生效
选择IPsec连接的配置是否立即生效。取值:
是:配置完成后立即进行协商。
否:当有流量进入时进行协商。
选择是。
启用BGP
如果IPsec连接需要使用BGP路由协议,需要打开BGP功能的开关,系统默认关闭BGP功能。
本文此处保持默认值不打开BGP配置开关,默认为静态路由方式。IPsec连接创建完成后如需使用BGP动态路由,则再单独添加BGP配置。
Tunnel 1
为隧道1(主隧道)添加VPN相关配置。
系统默认隧道1为主隧道,隧道2为备隧道,且不支持修改。
用户网关
为主隧道添加待关联的用户网关实例。
选择用户网关1。
预共享密钥
输入主隧道的认证密钥,用于身份认证。
密钥长度为1~100个字符,支持数字、大小写英文字母及右侧字符
~`!@#$%^&*()_-+={}[]\|;:',.<>/?。若您未指定预共享密钥,系统会随机生成一个16位的字符串作为预共享密钥。
重要隧道及其对端网关设备配置的预共享密钥需一致,否则系统无法正常建立IPsec-VPN连接。
当前隧道的认证密钥需和连接的AWS平台隧道的密钥一致。
加密配置
添加IKE配置、IPsec配置、DPD、NAT穿越等配置。
IKE配置的SA生存周期(秒)需与AWS平台保持一致,本文设置为28800。
IPsec配置的SA生存周期(秒)需与AWS平台保持一致,本文设置为3600。
其余配置项使用默认值。关于默认值的说明,请参见IPsec连接(绑定VPN网关)。
Tunnel 2
为隧道2(备隧道)添加VPN相关配置。
用户网关
为备隧道添加待关联的用户网关实例。
选择用户网关2。
预共享密钥
输入备隧道的认证密钥,用于身份认证。
当前隧道的认证密钥需和连接的AWS平台隧道的密钥一致。
加密配置
添加IKE配置、IPsec配置、DPD、NAT穿越等配置。
IKE配置的SA生存周期(秒)需与AWS平台保持一致,本文设置为28800。
IPsec配置的SA生存周期(秒)需与AWS平台保持一致,本文设置为3600。
其余配置项使用默认值。关于默认值的说明,请参见IPsec连接(绑定VPN网关)。
在创建成功对话框中,单击取消。
配置VPN网关路由。
使用静态路由方式
创建IPsec连接后需要为VPN网关实例配置路由。创建IPsec连接时,如果路由模式您选择了感兴趣流模式,在IPsec连接创建完成后,系统会自动在VPN网关实例下创建策略路由,路由是未发布状态。您需要执行本操作,将VPN网关实例下的策略路由发布至VPC中。
-
在左侧导航栏,选择网间互联 - VPN - VPN网关。
-
在顶部菜单栏,选择VPN网关实例的地域。
在VPN网关页面,单击目标VPN网关实例ID。
在VPN网关实例详情页面单击策略路由表页签,找到目标路由条目,在操作列单击发布。
在发布路由对话框,单击确定。
使用BGP动态路由方式
为IPsec连接添加BGP配置。
-
在左侧导航栏,选择网间互联 - VPN - IPsec连接。
在IPsec连接页面,找到IPsec连接,单击IPsec连接ID。
在IPsec连接基本信息区域,在启用BGP右侧单击按钮,在BGP配置对话框根据以下信息进行配置,然后单击确定。
配置项
配置项说明
IPsec连接配置
本端自治系统号
输入IPsec连接的自治系统号。
本文输入65530。
Tunnel 1
为主隧道添加BGP配置。
为IPsec连接的主隧道添加BGP配置。
隧道网段
输入建立加密隧道时使用的网段。
本文输入169.254.116.208/30。
本端BGP地址
输入IPsec连接的BGP IP地址。
该地址为隧道网段内的一个IP地址。
本文输入169.254.116.210。
Tunnel 2
为备隧道添加BGP配置。
为IPsec连接的备隧道添加BGP配置。
隧道网段
输入建立加密隧道时使用的网段。
本文输入169.254.214.96/30。
本端BGP地址
输入IPsec连接的BGP IP地址。
该地址为隧道网段内的一个IP地址。
本文输入169.254.214.98。
-
根据以下步骤为VPN网关实例开启BGP路由自动传播功能。
-
在左侧导航栏,选择网间互联 - VPN - VPN网关。
在VPN网关页面,找到VPN网关实例,在操作列选择。
在开启路由自动传播对话框,单击确定。
-
-
步骤四:测试连通性
配置完成后,阿里云VPC和AWS VPC之间已经成功建立IPsec-VPN连接。下文以阿里云ECS实例访问AWS EC2实例为例,测试VPC之间的连通性。
在测试连通性前,请先在AWS平台和阿里云侧分别排查VPC实例所应用的访问控制策略(例如网络ACL、安全组规则等),以确保访问控制策略允许两个VPC实例下的资源互相访问。
登录阿里云VPC实例下的一个ECS实例。关于如何登录ECS实例,请参见选择ECS远程连接方式。
在ECS实例中执行
ping命令,访问AWS平台的EC2实例,验证通信是否正常。如果ECS实例可以收到AWS平台EC2实例的回复报文,则证明VPC之间可以正常通信。
ping <AWS平台EC2实例的私网IP地址>
测试IPsec-VPN连接的高可用性。
双隧道模式的IPsec-VPN拥有高可用性,在主隧道中断的情况下,流量自动通过备隧道进行传输。以下内容介绍如何验证双隧道模式IPsec-VPN连接的高可用性。
保持登录阿里云VPC实例下的ECS实例。
执行以下命令,使阿里云下的ECS实例持续访问AWS平台的EC2实例。
ping <AWS平台EC2实例的私网IP地址> -c 10000中断IPsec-VPN连接的主隧道。
本文通过在阿里云侧修改IPsec连接下主隧道的预共享密钥来中断主隧道,主隧道两端的预共享密钥不一致,则主隧道会中断。
查看阿里云ECS实例下的通信情况,会发现ECS实例下的流量在短暂中断后,又重新恢复通信,表示在主隧道中断后,流量自动通过备隧道进行通信。
您可以在阿里云监控页签查看隧道的流量监控信息。具体操作,请参见监控IPsec-VPN连接。

