如果本地数据中心拥有多个本地网关设备(本地网关设备上均拥有公网IP地址),您可以使用其中的2个本地网关设备分别与阿里云专有网络VPC(Virtual Private Cloud)建立IPsec-VPN连接,每个IPsec-VPN连接关联不同的VPN网关,实现本地数据中心与VPC之间链路的高可用,同时实现流量的负载分担。
场景示例
本文以下图场景为例。某企业在中国杭州拥有一个本地数据中心,在阿里云华东1(杭州)地域拥有一个VPC,VPC中已使用云服务器ECS(Elastic Compute Service)部署了应用。现在企业希望本地数据中心可以加密访问VPC中的应用,且希望本地数据中心和VPC之间拥有多条连接,实现上云链路的高可用。
企业本地数据中心中拥有多个本地网关设备,本地网关设备上均拥有公网IP地址,企业可以使用其中的2个本地网关设备分别与VPC建立IPsec-VPN连接,每个IPsec-VPN连接关联不同的VPN网关,在实现本地数据中心加密访问VPC中应用的同时,实现上云链路的高可用以及流量的负载分担。
本场景流量传输说明如下:
本地数据中心可以分别通过两个VPN网关学习到VPC的路由,本地数据中心去往VPC的流量可以同时通过这两个VPN网关进行传输,实现流量的负载分担。在其中一个VPN网关不可用时,当前VPN网关下的流量默认会自动通过另一个VPN网关进行传输,实现链路的高可用。
VPC可以分别通过两个VPN网关学习到本地数据中心的路由,但是VPC默认仅通过一个VPN网关(系统优先选择实例ID较小的VPN网关)转发从VPC去往本地数据中心的流量,在当前VPN网关不可用后,才会通过另一个VPN网关转发流量(系统自动切换),因此VPC去往本地数据中心的流量可以通过两个VPN网关实现链路的高可用,但不支持负载分担。
网络规划
网络功能规划
本文场景中使用的网络功能如下:
购买2个公网网络类型的VPN网关实例,本地数据中心通过公网和VPC之间建立IPsec-VPN连接。
创建2个IPsec连接,每个IPsec连接关联不同的VPN网关实例。
2个VPN网关实例均开启BGP路由传播功能,同时每个IPsec连接使用BGP动态路由和本地网关设备建立IPsec-VPN连接,简化路由配置。
重要如果要实现本场景,2个IPsec-VPN连接必须使用BGP动态路由协议,2个IPsec连接需配置相同的BGP AS号,2个本地网关设备也需配置相同的BGP AS号,否则系统无法实现路由自动切换。
目前仅部分地域的VPN网关实例支持配置BGP动态路由协议。关于地域的详细信息, 请参见支持BGP动态路由功能的地域。
网段规划
在您规划网段时,请确保本地数据中心和VPC之间要互通的网段没有重叠。
资源 | 网段及IP地址 |
VPC | 主网段:172.16.0.0/16
|
IPsec连接 | BGP配置:
|
本地网关设备 | 本地网关设备的公网IP地址:
|
本地网关设备BGP配置:
| |
本地数据中心 | 待和VPC互通的网段:192.168.0.0/24 |
准备工作
在开始配置前,请确保您已完成以下操作:
- 您已经在阿里云华东1(杭州)地域创建了一个VPC,并使用ECS部署了相关业务。具体操作,请参见搭建IPv4专有网络。
- 确保本地数据中心的本地网关设备支持IKEv1和IKEv2协议,支持这两种协议的本地网关设备均可以和阿里云VPN网关建立IPsec-VPN连接。
- 您已经了解VPC中的ECS实例所应用的安全组规则,并确保安全组规则允许本地数据中心的网关设备访问云上资源。具体操作,请参见查询安全组规则和添加安全组规则。
配置流程
步骤一:创建VPN网关
在建立IPsec-VPN连接前,您需要先创建2个VPN网关,并为VPN网关开启IPsec-VPN功能。
- 登录VPN网关管理控制台。
在顶部菜单栏,选择VPN网关的地域。
VPN网关的地域需和待关联的VPC实例的地域相同。本文选择华东1(杭州)地域。
- 在VPN网关页面,单击创建VPN网关。
在购买页面,根据以下信息配置VPN网关,然后单击立即购买并完成支付。
请根据以下信息在华东1(杭州)地域分别创建2个VPN网关。
配置项
说明
VPN网关1
VPN网关2
实例名称
输入VPN网关的名称。
本文输入VPN网关1。
本文输入VPN网关2。
地域和可用区
选择VPN网关所属的地域。
本文选择华东1(杭州)。
本文选择华东1(杭州)。
网关类型
选择VPN网关的类型。
本文选择普通型。
本文选择普通型。
网络类型
选择VPN网关的网络类型。
本文选择公网。
本文选择公网。
隧道
系统直接展示当前地域支持的IPsec-VPN连接的隧道模式。
本文保持默认值。
本文保持默认值。
VPC
选择VPN网关待关联的VPC实例。
本文选择在准备工作中创建的VPC。
本文选择在准备工作中创建的VPC。
虚拟交换机
从VPC实例中选择一个交换机实例。
- IPsec-VPN连接的隧道模式为单隧道时,您仅需要指定一个交换机实例。
- IPsec-VPN连接的隧道模式为双隧道时,您需要指定两个交换机实例。
说明- 系统默认帮您选择第一个交换机实例,您可以手动修改或者直接使用默认的交换机实例。
- 创建VPN网关实例后,不支持修改VPN网关实例关联的交换机实例,您可以在VPN网关实例的详情页面查看VPN网关实例关联的交换机以及交换机所属可用区的信息。
从VPC实例中选择一个交换机实例。
从VPC实例中选择一个交换机实例。
虚拟交换机2
从VPC实例中选择第二个交换机实例。
IPsec-VPN连接的隧道模式为单隧道时,无需配置该项。
从VPC实例中选择第二个交换机实例。
从VPC实例中选择第二个交换机实例。
带宽规格
选择VPN网关的带宽峰值。单位:Mbps。
请根据您的实际需求选择带宽峰值。
请根据您的实际需求选择带宽峰值。
IPsec-VPN
选择是否开启IPsec-VPN功能。
本文保持默认值,即开启IPsec-VPN功能。
本文保持默认值,即开启IPsec-VPN功能。
SSL-VPN
选择是否开启SSL-VPN功能。
本文保持默认值,即关闭SSL-VPN功能。
本文保持默认值,即关闭SSL-VPN功能。
计费周期
选择购买时长。
您可以选择是否自动续费:
按月购买:自动续费周期为1个月。
按年购买:自动续费周期为1年。
请根据您的实际需求选择带宽购买时长。
请根据您的实际需求选择带宽购买时长。
服务关联角色
VPN网关使用AliyunServiceRoleForVpn角色来访问其他云产品中的资源,更多信息,请参见AliyunServiceRoleForVpn。
单击创建关联角色,系统自动创建服务关联角色AliyunServiceRoleForVpn。
若本配置项显示为已创建,则表示您的账号下已创建了该角色,无需重复创建。
单击创建关联角色,系统自动创建服务关联角色AliyunServiceRoleForVpn。
若本配置项显示为已创建,则表示您的账号下已创建了该角色,无需重复创建。
返回VPN网关页面,查看已创建的VPN网关。
创建VPN网关后,其状态是准备中,约1~5分钟会变成正常状态。正常状态表明VPN网关已经完成了初始化,可以正常使用。
VPN网关名称
VPN网关公网IP地址
VPN网关1
47.XX.XX.48
VPN网关2
47.XX.XX.224
步骤二:创建用户网关
在建立IPsec-VPN连接前,您需要创建用户网关,将本地网关设备的信息注册至阿里云上。
- 在左侧导航栏,选择 。
在顶部菜单栏,选择用户网关的地域。
说明用户网关的地域必须和步骤一:创建VPN网关中创建的VPN网关的地域相同。
在用户网关页面,单击创建用户网关。
在创建用户网关面板,根据以下信息配置用户网关,然后单击确定。
请根据下表信息创建2个用户网关分别配置不同的公网IP地址。
配置项
配置项说明
用户网关1
用户网关2
名称
输入用户网关的名称。
本文输入用户网关1。
本文输入用户网关2。
IP地址
输入用户网关的公网IP地址。
本文输入本地网关设备的公网IP地址1118.XX.XX.20。
本文输入本地网关设备的公网IP地址2120.XX.XX.40。
自治系统号
输入本地网关设备的自治系统号。
本文输入本地网关设备1的自治系统号65530。
本文输入本地网关设备2的自治系统号65530。
步骤三:创建IPsec连接
创建用户网关后,您需要创建IPsec连接,VPN网关将通过IPsec连接与本地网关设备建立IPsec-VPN连接。
- 在左侧导航栏,选择 。
在顶部菜单栏,选择IPsec连接的地域。
说明IPsec连接的地域必须和步骤一:创建VPN网关中创建的VPN网关的地域相同。
在IPsec连接页面,单击创建IPsec连接。
在创建IPsec连接页面,根据以下信息配置IPsec连接,然后单击确定。
请根据下表信息创建2个IPsec连接分别关联不同的VPN网关和用户网关。以下仅列举本文强相关的配置项,其余配置项保持默认值,如果您想要了解更多信息,请参见创建和管理IPsec连接(单隧道模式)。
配置项
配置项说明
IPsec连接1
IPsec连接2
名称
输入IPsec连接的名称。
本文输入IPsec连接1
本文输入IPsec连接2
绑定资源
选择IPsec连接绑定的资源类型。
本文选择VPN网关。
VPN网关
选择已创建的VPN网关。
本文选择VPN网关1。
本文选择VPN网关2。
用户网关
选择已创建的用户网关。
本文选择用户网关1。
本文选择用户网关2。
路由模式
选择路由模式。
本文选择目的路由模式。
立即生效
选择IPsec连接的配置是否立即生效。取值:
- 是:配置完成后立即进行协商。
- 否:当有流量进入时进行协商。
本文选择否。
预共享密钥
输入IPsec连接的认证密钥,用于本地网关设备和IPsec连接之间的身份认证。
- 密钥长度为1~100个字符,支持数字、大小写英文字母及右侧字符
~`!@#$%^&*()_-+={}[]\|;:',.<>/?
。 - 若您未指定预共享密钥,系统会随机生成一个16位的字符串作为预共享密钥。创建IPsec连接后,您可以通过编辑按钮查看系统生成的预共享密钥。具体操作,请参见修改IPsec连接。
重要 IPsec连接及其对端网关设备配置的预共享密钥需一致,否则系统无法正常建立IPsec-VPN连接。本文输入fddsFF123****。
本文输入fddsFF456****。
加密配置
添加IKE配置和IPsec配置。
本文IKE配置的版本选择ikev2,其余配置项保持默认配置。
BGP配置
选择是否开启BGP配置。
本文选择开启BGP配置。
隧道网段
输入建立加密隧道时使用的网段。
该网段需是一个在169.254.0.0/16网段内,掩码长度为30的网段。
本文输入169.254.10.0/30。
本文输入169.254.11.0/30。
本端BGP地址
输入IPsec连接的BGP IP地址。
该地址为隧道网段内的一个IP地址。
本文输入169.254.10.1。
本文输入169.254.11.1。
本端自治系统号
输入IPsec连接的自治系统号。
本文输入65531。
本文输入65531。
健康检查
选择是否开启健康检查功能。
本文保持默认值,即不开启健康检查配置。
在创建成功对话框中,单击确定。
返回至IPsec连接页面,找到目标IPsec连接,在操作列单击下载对端配置。
将IPsec连接1和IPsec连接2的对端配置保存在您的本地,用于后续配置本地网关设备。
步骤四:配置本地网关设备
创建IPsec连接后,请依据下载的IPsec连接配置以及下述步骤,分别在本地网关设备1和本地网关设备2中添加VPN配置和BGP配置,以便本地数据中心和VPC之间建立IPsec-VPN连接。
以下配置示例仅供参考,不同厂商的设备配置命令可能会有所不同。具体命令,请咨询相关设备厂商。
登录本地网关设备的命令行配置界面。
执行以下命令,配置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 !
执行以下命令,配置ikev2 keyring。
//在本地网关设备1中添加如下配置 crypto ikev2 keyring alicloud peer alicloud address 47.XX.XX.48 //配置云上VPN网关1的公网IP地址,本文为47.XX.XX.48。 pre-shared-key fddsFF123**** //配置预共享密钥,本文为fddsFF123****。 exit ! //在本地网关设备2中添加如下配置 crypto ikev2 keyring alicloud peer alicloud address 47.XX.XX.224 //配置云上VPN网关2的公网IP地址,本文为47.XX.XX.224。 pre-shared-key fddsFF456**** //配置预共享密钥,本文为fddsFF456****。 exit !
执行以下命令,配置ikev2 profile。
//在本地网关设备1中添加如下配置 crypto ikev2 profile alicloud match identity remote address 47.XX.XX.48 255.255.255.255 //匹配云上VPN网关1的公网IP地址,本文为47.XX.XX.48。 identity local address 118.XX.XX.20 //本地网关设备1的公网IP地址,本文为118.XX.XX.20。 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.224 255.255.255.255 //匹配云上VPN网关2的公网IP地址,本文为47.XX.XX.224。 identity local address 120.XX.XX.40 //本地网关设备2的公网IP地址,本文为120.XX.XX.40。 authentication remote pre-share //认证对端的方式为PSK(预共享密钥的方式)。 authentication local pre-share //认证本端的方式为PSK。 keyring local alicloud //调用密钥串。 exit !
执行以下命令,配置transform。
//分别在本地网关设备1、本地网关设备2中添加如下配置 crypto ipsec transform-set TSET esp-aes esp-sha-hmac mode tunnel exit !
执行以下命令,配置IPsec Profile,并调用transform、pfs和ikev2 profile。
//分别在本地网关设备1、本地网关设备2中添加如下配置 crypto ipsec profile alicloud set transform-set TSET set pfs group2 set ikev2-profile alicloud exit !
执行以下命令,配置IPsec隧道。
//在本地网关设备1中添加如下配置 interface Tunnel100 ip address 169.254.10.2 255.255.255.252 //配置本地网关设备1的隧道地址,本文为169.254.10.2。 tunnel source GigabitEthernet1 tunnel mode ipsec ipv4 tunnel destination 47.XX.XX.48 //配置隧道对端的云上VPN网关1的公网IP地址,本文为47.XX.XX.48。 tunnel protection ipsec profile alicloud no shutdown exit ! interface GigabitEthernet1 //配置与阿里云建立IPsec-VPN连接的接口IP地址。 ip address 118.XX.XX.20 255.255.255.0 negotiation auto ! //在本地网关设备2中添加如下配置 interface Tunnel100 ip address 169.254.11.2 255.255.255.252 //配置本地网关设备2的隧道地址,本文为169.254.11.2。 tunnel source GigabitEthernet1 tunnel mode ipsec ipv4 tunnel destination 47.XX.XX.224 //配置隧道对端的云上VPN网关2的公网IP地址,本文为47.XX.XX.224。 tunnel protection ipsec profile alicloud no shutdown exit ! interface GigabitEthernet1 //配置与阿里云建立IPsec-VPN连接的接口IP地址。 ip address 120.XX.XX.40 255.255.255.0 negotiation auto !
执行以下命令,配置BGP路由协议。
//在本地网关设备1中添加如下配置 router bgp 65530 //开启BGP路由协议,并配置本地数据中心的BGP AS号。本文为65530。 bgp router-id 169.254.10.2 //BGP路由器ID,本文设置为169.254.10.2。 bgp log-neighbor-changes neighbor 169.254.10.1 remote-as 65531 //配置BGP邻居的AS号,本文为云上IPsec连接1的BGP AS号65531。 neighbor 169.254.10.1 ebgp-multihop 10 //配置EBGP跳数为10。 ! address-family ipv4 network 192.168.0.0 mask 255.255.255.0 //宣告本地数据中心的网段,本文配置为192.168.0.0/24。 neighbor 169.254.10.1 activate //激活BGP邻居。 exit-address-family ! //在本地网关设备2中添加如下配置 router bgp 65530 //开启BGP路由协议,并配置本地数据中心的BGP AS号。本文为65530。 bgp router-id 169.254.11.2 //BGP路由器ID,本文设置为169.254.11.2。 bgp log-neighbor-changes neighbor 169.254.11.1 remote-as 65531 //配置BGP邻居的AS号,本文为云上IPsec连接2的BGP AS号65531。 neighbor 169.254.11.1 ebgp-multihop 10 //配置EBGP跳数为10。 ! address-family ipv4 network 192.168.0.0 mask 255.255.255.0 //宣告本地数据中心的网段,本文配置为192.168.0.0/24。 neighbor 169.254.11.1 activate //激活BGP邻居。 exit-address-family !
重要配置本地网关设备后,本地网关设备1和本地网关设备2将分别能通过IPsec-VPN连接学习到VPC实例的路由,为确保从本地数据中心去往VPC实例的流量可以通过2个IPsec-VPN连接实现负载分担,请确保要访问VPC实例的客户端或设备能够同时从本地网关设备1和本地网关设备2学习到VPC实例的路由。具体配置命令,请咨询相关设备厂商。
步骤五:开启BGP路由自动传播
您需要为VPN网关开启BGP路由自动传播功能,开启后,VPN网关才会将BGP路由表中的路由传播至VPC的系统路由表中。关于BGP路由的自动传播机制,请参见BGP动态路由宣告原则。
请根据以下步骤分别为VPN网关1和VPN网关2开启BGP路由自动传播功能。
- 登录VPN网关管理控制台。
- 在左侧导航栏,选择 。
- 在顶部菜单栏,选择VPN网关实例的地域。
在VPN网关页面,找到已创建的VPN网关,在操作列下选择 。
在开启路由自动传播对话框,单击确定。
为VPN网关开启BGP路由自动传播功能后,VPC实例将会从VPN网关1和VPN网关2分别学习到本地数据中心的路由。
步骤六:验证测试
完成上述配置后,本地数据中心和VPC之间已经可以通过IPsec-VPN连接相互通信。以下内容介绍如何测试网络连通性以及如何验证流量已通过2个IPsec-VPN连接实现负载分担。
网络连通性测试。
登录VPC实例下的ECS实例。具体操作,请参见ECS远程连接操作指南。
在ECS实例中执行ping命令,尝试访问本地数据中心的客户端。
ping <本地数据中心客户端的IP地址>
如果可以收到响应报文,则表示本地数据中心和VPC实例之间的网络已连通,可以实现资源互访。
验证流量的负载分担。
在本地数据中心的多个客户端中持续向ECS实例发送访问请求或者在客户端中使用iPerf3工具持续向ECS实例发送访问请求,如果您可以分别在IPsec连接1和IPsec连接2的详情页面查看到流量监控数据,则证明从本地数据中心去往VPC实例的流量已通过2个IPsec-VPN连接实现了流量的负载分担。关于如何安装、使用iPerf3工具,请参见物理专线网络性能测试方法。
- 登录VPN网关管理控制台。
- 在顶部状态栏处,选择IPsec连接所属的地域。
- 在左侧导航栏,选择 。
- 在IPsec连接页面,找到目标IPsec连接,单击IPsec连接ID。进入IPsec连接详情页面在监控页签下查看流量监控数据。
- 本页导读 (1)