对于一些大型企业用户,如果您已经在阿里云部署了多个专有网络 VPC(Virtual Private Cloud),希望多个VPC可以与企业本地数据中心IDC(Internet Data Center)实现网络全互通,您可以通过建立IPsec-VPN连接将本地数据中心加密接入阿里云,其中IPsec连接绑定转发路由器,通过转发路由器实现同地域或跨地域的多个VPC与本地数据中心网络全互通。
环境要求
公网网络类型的IPsec连接绑定转发路由器时,本地数据中心的网关设备必须配置公网IP地址。
对于支持IPsec-VPN连接双隧道模式的地域,推荐本地数据中心的网关设备配置2个公网IP地址或者本地数据中心拥有两个本地网关设备,每个本地网关设备均拥有一个公网IP地址,以建立高可用的IPsec-VPN连接。
本地数据中心的网关设备必须支持IKEv1或IKEv2协议,支持任意一种协议的设备均可以和转发路由器建立IPsec-VPN连接。
本地数据中心和VPC间互通的网段没有重叠。
场景示例
本文将以下图场景为例。某企业已经在泰国(曼谷)地域创建了VPC1、在菲律宾(马尼拉)地域创建了VPC2。VPC1和VPC2中使用云服务器ECS(Elastic Compute Service)部署了相关业务。本文将介绍如何通过IPsec-VPN连接(IPsec连接使用公网网络类型)将本地数据中心加密接入阿里云,并通过转发路由器实现本地数据中心、泰国(曼谷)地域VPC1、菲律宾(马尼拉)地域VPC2网络全互通。
本文将以双隧道模式的IPsec-VPN连接为例进行说明,一个双隧道模式的IPsec-VPN连接包含两条隧道,两条隧道分布在不同的可用区并自动形成ECMP(Equal-Cost Multipath Routing)链路,支持可用区级别的容灾。双隧道模式的IPsec-VPN连接功能公测中,开始操作前,请确保您已经向客户经理申请了使用权限。更多信息,请参见绑定转发路由器场景双隧道IPsec-VPN连接说明。
如果您的地域仅支持单隧道模式的IPsec-VPN连接,如何建立高可用的IPsec-VPN连接,请参见建立多条公网IPsec-VPN连接实现流量的负载分担。
网段规划
规划网段时,请确保本地数据中心、VPC1、VPC2之间要互通的网段没有重叠。
创建IPsec-VPN连接时,推荐使用BGP动态路由方式。如果您要使用静态路由方式,请确保本地网关设备支持配置静态ECMP路由。本文将以BGP动态路由方式为例进行说明。
本地数据中心和VPC网段规划
资源 | 网段 | IP地址 |
本地数据中心 | 待和VPC互通的网段:192.168.55.0/24 | 服务器IP地址:192.168.55.65 |
本地网关设备 | 不涉及 | 本地网关设备连接公网的物理接口:
|
VPC1 | 主网段:192.168.0.0/16 交换机1:192.168.66.0/24 交换机2:192.168.20.0/24 | ECS1 IP地址:192.168.66.193 |
VPC2 | 主网段:10.0.0.0/16 交换机1:10.0.10.0/24 交换机2:10.0.20.0/24 | ECS2 IP地址:10.0.20.61 |
BGP网段规划
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。一个IPsec连接下两条隧道的隧道网段不能相同。
资源 | 隧道 | BGP隧道网段 | BGP IP地址 | BGP AS号(本端自治系统号) |
IPsec连接实例 | 隧道1 | 169.254.10.0/30 | 169.254.10.1 | 65535 |
隧道2 | 169.254.20.0/30 | 169.254.20.1 | ||
本地网关设备 | 隧道1 | 169.254.10.0/30 | 169.254.10.2 | 65530 |
隧道2 | 169.254.20.0/30 | 169.254.20.2 |
操作步骤
步骤一:创建云企业网实例和转发路由器实例
创建IPsec-VPN连接前,需要先创建云企业网实例,并在云企业网实例下创建转发路由器实例。
创建云企业网实例。创建云企业网实例时使用默认配置即可。
分别在菲律宾(马尼拉)和泰国(曼谷)地域各创建一个转发路由器实例。具体操作,请参见创建转发路由器实例。
菲律宾(马尼拉)地域的转发路由器用于连接菲律宾(马尼拉)地域下的VPC2,在菲律宾(马尼拉)地域创建转发路由器实例时使用默认配置即可。
泰国(曼谷)地域的转发路由器用于连接泰国(曼谷)地域下的VPC1以及本地数据中心。创建泰国(曼谷)地域的转发路由器实例时需要配置TR地址段,用于创建IPsec-VPN连接,其余配置项使用默认值即可。
说明建议您依据就近原则,在离本地数据中心最近的阿里云地域创建转发路由器实例。
本文使用的TR地址段为10.10.10.0/24。TR地址段需和本地数据中心、VPC1、VPC2中要参与网络互通的网段不冲突。
步骤二:创建IPsec-VPN连接
创建转发路由器实例后,可以开始创建IPsec-VPN连接,用于将本地数据中心连接至阿里云。
创建用户网关
您需要通过创建用户网关将数据中心本地网关设备的公网IP地址注册到阿里云上,本地数据中心仅能使用注册过的公网IP地址与阿里云建立IPsec-VPN连接。
- 登录VPN网关管理控制台。
在左侧导航栏,选择 。
在顶部菜单栏,选择用户网关实例的地域。
说明用户网关实例的地域必须和转发路由器实例的地域相同。
在用户网关页面,单击创建用户网关。
在创建用户网关面板,根据以下信息配置用户网关实例,然后单击确定。
根据以下信息创建2个用户网关实例,注册本地网关设备的2个公网IP地址。以下仅列举本文强相关的配置项,其余配置项保持默认状态。更多信息,请参见创建和管理用户网关。
名称
IP地址
自治系统号
用户网关1
输入本地网关设备的公网IP地址1120.XX.XX.104。
输入本地网关设备自治系统号65530。
说明IPsec-VPN连接使用BGP动态路由方式时,需配置该项。
用户网关2
输入本地网关设备的公网IP地址2121.XX.XX.3。
创建IPsec连接
用户网关创建完成后,需要在阿里云侧创建IPsec连接,用于对接本地数据中心。创建IPsec连接时需要指定VPN隧道使用的加密算法、认证算法、预共享密钥等信息。
在左侧导航栏,选择 。
在顶部菜单栏,选择IPsec连接的地域。
IPsec连接的地域需和待绑定的转发路由器实例所属的地域相同。
在IPsec连接页面,单击创建IPsec连接。
在创建IPsec连接页面,根据以下信息配置IPsec连接,然后单击确定。
以下仅列举本文强相关的配置项,其余配置项保持默认状态。更多信息,请参见创建和管理IPsec连接(双隧道模式)。
配置项
IPsec连接
名称
定义为IPsec连接1。
绑定资源
选择IPsec连接要绑定的资源。
需要选择云企业网。
网关类型
选择IPsec连接的网络类型。
需要选择公网。
云企业网实例ID
选择在步骤一中创建的云企业网实例。
转发路由器
系统自动显示云企业网实例已在当前地域创建的转发路由器实例ID。
路由模式
选择IPsec连接的路由模式。
如果IPsec-VPN连接计划使用BGP动态路由,推荐使用目的路由模式。本文使用目的路由模式。
立即生效
本文使用默认值是,在IPsec连接配置完成后,会立即开始IPsec-VPN连接协商。
Tunnel 1
用户网关
关联用户网关1。
预共享密钥
fddsFF111****。
重要IPsec连接及其对端网关设备配置的预共享密钥需一致,否则系统无法正常建立IPsec-VPN连接。
加密配置
除以下参数外,其余配置项保持默认值。
IKE配置的DH分组选择group14。
IPsec配置的DH分组选择group14。
说明您需要根据本地网关设备的支持情况选择加密配置参数,确保IPsec连接和本地网关设备的加密配置保持一致。
Tunnel 2
用户网关
关联用户网关2。
预共享密钥
fddsFF222****。
加密配置
除以下参数外,其余配置项保持默认值。
IKE配置的DH分组选择group14。
IPsec配置的DH分组选择group14。
说明您需要根据本地网关设备的支持情况选择加密配置参数,确保IPsec连接和本地网关设备的加密配置保持一致。
高级配置
使用默认路由配置,即开启所有高级配置选项。
在创建成功对话框中,单击取消。
保持在IPsec连接页面,找到创建的IPsec连接,在操作列单击生成对端配置。
对端配置是指需要在IPsec连接对端添加的VPN配置。本文场景中您需要将这些配置添加在本地网关设备上。
在IPsec连接配置对话框,复制配置并保存在您的本地,用于后续配置本地网关设备。
配置本地网关设备
创建IPsec连接后,您需要在本地网关设备上添加VPN配置,使本地网关设备与阿里云之间成功建立IPsec-VPN连接。
说明本文以思科防火墙ASA(软件版本9.19.1)作为配置示例。不同软件版本的配置命令可能会有所差异,操作时请根据您的实际环境查询对应文档或咨询相关厂商。更多本地网关设备配置示例,请参见本地网关设备配置示例。
以下内容包含的第三方产品信息仅供参考。阿里云对第三方产品的性能、可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。
登录思科防火墙的命令行窗口并进入配置模式。
ciscoasa> enable Password: ******** #输入进入enable模式的密码。 ciscoasa# configure terminal #进入配置模式。 ciscoasa(config)#
查看接口配置和公网路由配置。
思科防火墙已完成了接口配置,并已开启接口。以下为本文的接口配置示例。
ciscoasa(config)# show running-config interface ! interface GigabitEthernet0/0 nameif outside1 #GigabitEthernet0/0接口名称。 security-level 0 ip address 120.XX.XX.104 255.255.255.255 #GigabitEthernet0/0接口配置的公网IP地址。 ! interface GigabitEthernet0/1 #连接本地数据中心的接口。 nameif private #GigabitEthernet0/1接口名称。 security-level 100 #指定连接本地数据中心接口(私网接口)的security-level低于公网接口。 ip address 192.168.55.217 255.255.255.0 #GigabitEthernet0/1接口配置的IP地址。 ! interface GigabitEthernet0/2 nameif outside2 #GigabitEthernet0/2接口名称。 security-level 0 ip address 121.XX.XX.3 255.255.255.255 #GigabitEthernet0/2接口配置的公网IP地址。 ! route outside1 121.XX.XX.170 255.255.255.255 192.XX.XX.172 #配置访问阿里云侧隧道1公网IP地址的路由,下一跳为公网地址。 route outside2 121.XX.XX.232 255.255.255.255 192.XX.XX.158 #配置访问阿里云侧隧道2公网IP地址的路由,下一跳为公网地址。 route private 192.168.55.0 255.255.255.0 192.168.55.216 #配置去往本地数据中心的路由。
为公网接口开启IKEv2功能。
crypto ikev2 enable outside1 crypto ikev2 enable outside2
创建IKEv2 Policy,指定IKE阶段认证算法、加密算法、DH分组和SA生存周期,需和阿里云侧保持一致。
重要阿里云侧配置IPsec连接时,IKE配置阶段的加密算法、认证算法和DH分组均只支持指定一个值,不支持指定多个值。建议在思科防火墙中IKE配置阶段的加密算法、认证算法和DH分组也均只指定一个值,该值需与阿里云侧保持一致。
crypto ikev2 policy 10 encryption aes #指定加密算法。 integrity sha #指定认证算法。 group 14 #指定DH分组。 prf sha #prf和integrity保持一致,阿里云侧prf与认证算法默认保持一致。 lifetime seconds 86400 #指定SA生存周期。
创建IPsec proposal和profile,指定思科防火墙侧的IPsec阶段加密算法、认证算法、DH分组和SA生存周期,需和阿里云侧保持一致。
重要阿里云侧配置IPsec连接时,IPsec配置阶段的加密算法、认证算法和DH分组均只支持指定一个值,不支持指定多个值。建议在思科防火墙中IPsec配置阶段的加密算法、认证算法和DH分组也均只指定一个值,该值需与阿里云侧保持一致。
crypto ipsec ikev2 ipsec-proposal ALIYUN-PROPOSAL #创建ipsec proposal。 protocol esp encryption aes #指定加密算法,协议使用ESP,阿里云侧固定使用ESP协议。 protocol esp integrity sha-1 #指定认证算法,协议使用ESP,阿里云侧固定使用ESP协议。 crypto ipsec profile ALIYUN-PROFILE set ikev2 ipsec-proposal ALIYUN-PROPOSAL #创建ipsec profile并应用已创建的proposal。 set ikev2 local-identity address #指定本端ID使用IP地址格式,与阿里云侧RemoteId格式保持一致。 set pfs group14 #指定pfs和DH分组。 set security-association lifetime seconds 86400 #指定基于时间的SA生存周期。 set security-association lifetime kilobytes unlimited #关闭基于流量的SA生存周期。
创建tunnel group,指定隧道的预共享密钥,需和阿里云侧保持一致。
tunnel-group 121.XX.XX.170 type ipsec-l2l #指定隧道1的封装模式为l2l。 tunnel-group 121.XX.XX.170 ipsec-attributes ikev2 remote-authentication pre-shared-key fddsFF111**** #指定隧道1对端的预共享密钥,即阿里云侧的预共享密钥。 ikev2 local-authentication pre-shared-key fddsFF111**** #指定隧道1本段的预共享密钥,需和阿里云侧的保持一致。 ! tunnel-group 121.XX.XX.232 type ipsec-l2l #指定隧道2的封装模式为l2l。 tunnel-group 121.XX.XX.232 ipsec-attributes ikev2 remote-authentication pre-shared-key fddsFF222**** #指定隧道2对端的预共享密钥,即阿里云侧的预共享密钥。 ikev2 local-authentication pre-shared-key fddsFF222**** #指定隧道2本段的预共享密钥,需和阿里云侧的保持一致。 !
创建tunnel接口。
interface Tunnel1 #创建隧道1的接口。 nameif ALIYUN1 ip address 169.254.10.2 255.255.255.252 #指定接口的IP地址。 tunnel source interface outside1 #指定隧道1源地址为公网接口GigabitEthernet0/0。 tunnel destination 121.XX.XX.170 #指定隧道1目的地址为阿里云侧隧道1的公网IP地址。 tunnel mode ipsec ipv4 tunnel protection ipsec profile ALIYUN-PROFILE #指定隧道1应用ipsec profile ALIYUN-PROFILE。 no shutdown #开启隧道1接口。 ! interface Tunnel2 #创建隧道2的接口。 nameif ALIYUN2 ip address 169.254.20.2 255.255.255.252 #指定接口的IP地址。 tunnel source interface outside2 #指定隧道2源地址为公网接口GigabitEthernet0/2。 tunnel destination 121.XX.XX.232 #指定隧道2目的地址为阿里云侧隧道2的公网IP地址。 tunnel mode ipsec ipv4 tunnel protection ipsec profile ALIYUN-PROFILE #指定隧道2应用ipsec profile ALIYUN-PROFILE。 no shutdown #开启隧道2接口。 !
完成上述配置后,本地数据中心已经可以与阿里云成功建立IPsec-VPN连接,您可以在阿里云IPsec连接实例详情页面查看IPsec-VPN连接状态。如果您的环境中未成功建立IPsec-VPN连接,请尝试自助排查问题。具体操作,请参见IPsec-VPN自助诊断概述。
配置路由
IPsec-VPN连接成功建立后,本地数据中心还无法与云上资源进行互通,您需要在本地数据中心和IPsec连接中添加BGP路由。
说明本部分将一并提供使用静态路由的方式,但推荐您使用BGP动态路由方式。使用静态路由方式时,请确保本地网关设备支持配置静态ECMP路由,否则本地数据中心去往阿里云的流量无法通过ECMP路径进行传输,云上的流量却能通过ECMP路径传输至本地数据中心,可能会导致流量的传输路径不符合您的期望。
BGP动态路由
在本地网关设备中配置BGP路由。
router bgp 65530 address-family ipv4 unicast neighbor 169.254.10.1 remote-as 65535 #指定BGP邻居,即阿里云侧隧道1的IP地址。 neighbor 169.254.10.1 ebgp-multihop 255 neighbor 169.254.10.1 activate #激活BGP邻居。 neighbor 169.254.20.1 remote-as 65535 #指定BGP邻居,即阿里云侧隧道2的IP地址。 neighbor 169.254.20.1 ebgp-multihop 255 neighbor 169.254.20.1 activate #激活BGP邻居。 network 192.168.55.0 mask 255.255.255.0 #宣告本地数据中心的网段。 maximum-paths 5 #提升BGP ECMP等价路由条目数量。 exit-address-family
请根据您的实际网络环境按需在本地数据中心添加路由配置,使本地数据中心的客户端可以通过本地网关设备访问云上资源。
为阿里云IPsec连接实例配置BGP路由。
在左侧导航栏,选择 。
在IPsec连接页面,找到IPsec连接,单击IPsec连接ID。
在IPsec连接基本信息区域,在启用BGP右侧单击按钮,在BGP配置对话框根据以下信息进行配置,然后单击确定。
关于配置项的说明,请参见BGP配置。
配置项
IPsec连接1配置
本端自治系统号
本文输入65535。
Tunnel 1
隧道网段
本文输入169.254.10.0/30。
本端BGP地址
本文输入169.254.10.1。
Tunnel 2
隧道网段
本文输入169.254.20.0/30。
本端BGP地址
本文输入169.254.20.1。
BGP配置完成后,可以在阿里云IPsec连接实例详情页面查看BGP协商状态。BGP状态正常后,本地数据中心和IPsec连接之间会自动开始传播路由。IPsec连接会将云上的路由自动传播至本地数据中心,同时也会将学习到的本地数据中心的路由自动传播至转发路由器中。
静态路由
说明如何配置静态路由本文仅作描述,具体配置命令请查阅本地网关设备厂商的相关文档。
在本地网关设备中添加去往VPC的静态路由。
添加去往VPC2的两条路由。目标网段为10.0.0.0/16,下一跳分别指向隧道1和隧道2,使两条路由组成ECMP路径。
添加去往VPC1的两条路由。目标网段为192.168.66.0/24,下一跳分别指向隧道1和隧道2,使两条路由组成ECMP路径。
按需在本地数据中心添加路由配置,使本地数据中心的客户端可以通过本地网关设备访问云上资源。
在阿里云IPsec连接实例中添加去往本地数据中心的目的路由。目标网段为192.168.55.0/24,下一跳指向IPsec连接1。具体操作,请参见配置目的路由。
步骤三:实现本地数据中心和VPC全互通
本地数据中心成功连接至阿里云后,您需要将VPC1和VPC2连接至转发路由器,通过转发路由器实现本地数据中心、VPC1、VPC2的全互通。
创建VPC连接。
将VPC1接入至泰国(曼谷)地域的转发路由器,VPC2接入至菲律宾(马尼拉)地域的转发路由器。
- 登录云企业网管理控制台。
在云企业网实例详情页面的
页签,找到菲律宾(马尼拉)地域的转发路由器实例,在操作列单击创建网络实例连接。在连接网络实例页面,根据以下信息进行配置,然后单击确定创建。
创建VPC连接的主要配置下表所示,其余配置项保持默认状态。更多信息,请参见使用企业版转发路由器创建VPC连接。
配置项
VPC1连接
VPC2连接
实例类型
选择专有网络(VPC)。
地域
选择泰国(曼谷)。
本文选择菲律宾(马尼拉)。
资源归属UID
选择同账号。
连接名称
定义为VPC1连接。
定义为VPC2连接。
网络实例
选择VPC1。
选择VPC2。
交换机
请确保选择的每个交换机实例下拥有一个空闲的IP地址。如果VPC实例在转发路由器支持的可用区中并没有交换机实例或者交换机实例下没有空闲的IP地址,您需要新建一个交换机实例。 具体操作,请参见创建和管理交换机。
高级配置
使用默认路由配置,即开启所有高级配置选项。
连接VPC1和VPC2后,本地数据中心和VPC1位于相同地域,已经可以通过转发路由器实现网络互通,但VPC2与VPC1、本地数据中心位于不同地域,还需要创建跨地域连接才能实现相互通信。
创建跨地域连接。
需要在泰国(曼谷)转发路由器和菲律宾(马尼拉)转发路由器之间创建跨地域连接,实现两个转发路由器下的资源跨地域互通。
在云企业网实例详情页面的
页签,单击设置跨地域带宽。在连接网络实例页面,根据以下信息配置跨地域连接,然后单击确定创建。
配置项
说明
实例类型
选择跨地域连接。
地域
选择泰国(曼谷)。
对端地域
选择菲律宾(马尼拉)。
带宽分配方式
选择按流量付费,该带宽分配方式将按照产生的流量计费,费用由CDT产品结算。
带宽
输入跨地域连接的带宽值。单位:Mbps。
默认链路类型
链路类型默认为金。本文保持默认值。
高级配置
使用默认路由配置,即开启所有高级配置选项。
查看路由。
VPC连接、跨地域连接创建完成后,转发路由器会根据高级配置自动完成路由的传播和学习。您可以在转发路由器实例、IPsec连接实例、本地数据中心查看路由学习情况。
泰国(曼谷)地域转发路由器路由表
IPsec连接BGP路由表
本地数据中心路由
步骤四:测试网络连通性
完成上述操作后,本地数据中心、VPC1、VPC2之间已经可以实现任意互通。本部分介绍如何测试网络连通性,以及如何测试IPsec-VPN连接的高可用性。
测试本地数据中心、VPC1、VPC2之间网络连通性。
测试IPsec-VPN连接的高可用性。
登录VPC1的ECS1实例。
执行以下命令,使VPC1下的ECS1实例连续向本地数据中心发送访问报文。
ping <本地数据中心服务器IP地址> -c 10000
中断IPsec-VPN连接下的一条隧道。
您可以通过修改IPsec连接隧道的预共享密钥来中断隧道,隧道两端的预共享密钥不一致,则隧道会中断。
中断隧道后,您可以观察到VPC1实例下ECS1实例的通信会有短暂中断,则表示在一条隧道中断后,流量自动通过另一条隧道进行通信。
您可以在IPsec连接实例监控页签查看每条隧道的流量监控数据。具体操作,请参见监控IPsec连接。
隧道1
隧道2