使用国密型VPN网关实现VPC互通

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

场景示例

本文以下述场景为例。某企业在华东1(杭州)地域拥有VPC1、在华东2(上海)拥有VPC2。两个VPC均已使用云服务器ECS(Elastic Compute Service)部署了业务,企业因后续发展,现在需要VPC1和VPC2中的业务可以互相访问。

出于建设安全的网络环境考虑,企业计划使用VPN网关产品,通过在两个VPC之间建立IPsec-VPN连接,对数据进行加密传输,实现资源的安全互访。应企业政策要求,在数据加密传输过程中必须使用国密算法对数据进行加密,企业需使用国密型VPN网关,在VPC之间建立IPsec-VPN连接。

image

网段规划

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

  • IPsec-VPN连接在大部分地域已支持双隧道模式,因此在您规划VPC实例的网段时,需确保VPC实例在双隧道IPsec-VPN连接支持的地域和可用区拥有两个交换机实例,且交换机实例分布在不同的可用区。对于仅支持一个可用区的地域,两个交换机实例可以位于同一个可用区。

VPC实例网段规划

VPC实例名称

VPC实例的地域

VPC实例的网段

ECS实例IP地址

VPC1

华东1(杭州)

  • 主网段:192.168.0.0/16

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

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

ECS1 IP地址:192.168.10.106

VPC2

华东2(上海)

  • 主网段:10.0.0.0/16

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

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

ECS2 IP地址:10.0.0.178

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

准备工作

  • 您已经在阿里云华东1(杭州)地域创建了VPC1、在华东2(上海)地域创建了VPC2,两个VPC中均使用ECS部署了相关业务。具体操作,请参见搭建IPv4专有网络

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

配置流程

image

步骤一:上传SSL证书

  1. 生成国密型证书。

    1. 登录gmcert

    2. 选择在线生成密钥&证书

    3. 线上签发证书页面,请参见下图进行配置,然后下载证书。

    本文中生成的证书即可用于加密也可以用于签名。2024-03-01_14-13-48

  2. 下载证书后,请在本地电脑上解压证书。解压后,文件夹下将包含以下三个文件。2024-03-01_14-24-12

  3. 上传证书至数字证书管理服务控制台,相关配置项说明如下。具体操作,请参见上传和分享SSL证书

    配置项

    说明

    证书标准

    选择国密(SM2)标准

    证书名称

    自定义证书名称。

    证书文件

    上传.cert.pem格式文件。

    证书私钥

    上传.key.pem格式文件。

    加密证书

    上传.cert.pem格式文件。

    加密私钥

    上传.key.pem格式文件。

  4. 上传证书后,保持在上传证书页签,查看并记录SSL证书的主题信息,用于后续建立IPsec-VPN连接。

    在目标SSL证书的操作列,选择更多 > 详情,在证书详情面板,查看证书详细信息,并将证书的主题信息记录为以下格式。

    CN=z****,O=hangzhou,OU=hangzhou,C=CN

    2024-03-01_14-42-23

步骤二:创建国密型VPN网关

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

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

    本文选择华东1(杭州)

    说明

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

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

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

    配置项

    说明

    实例名称

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

    资源组

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

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

    地域和可用区

    选择VPN网关实例所属的地域。本文选择华东1(杭州)

    网关类型

    选择VPN网关实例的网关类型。本文选择国密型

    隧道

    默认为双隧道

    VPC

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

    虚拟交换机1

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

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

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

    虚拟交换机2

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

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

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

    带宽规格

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

    IPsec-VPN

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

    计费周期

    选择购买时长。

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

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

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

    VPN网关的计费周期。默认值:按小时计费。

    服务关联角色

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

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

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

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

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

  6. 重复步骤2步骤4,在华东2(上海)地域再创建一个名称为VPN网关2的VPN网关实例,该VPN网关实例关联VPC2,其余配置与VPN网关1相同。

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

    VPN网关实例的名称

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

    VPN网关IP地址

    VPN网关1

    VPC1

    • IPsec地址1:120.XX.XX.33

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

    VPN网关2

    VPC2

    • IPsec地址1:139.XX.XX.86

    • IPsec地址2:139.XX.XX.89

步骤三:为VPN网关实例绑定证书

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

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

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

  4. 在VPN网关实例详情页面,单击关联证书页签。

  5. 关联证书页签,单击绑定SSL证书。在绑定SSL证书对话框,绑定加密证书或签名证书,然后单击确定

    您需要在VPN网关1和VPN网关2下分别绑定一个加密证书和一个签名证书。本文中VPN网关1和VPN网关2绑定相同的SSL证书,详情如下表所示。

    VPN网关实例

    证书类型

    证书

    VPN网关1

    加密证书

    选择在数字证书管理服务控制台上传的证书。

    签名证书

    选择在数字证书管理服务控制台上传的证书。

    VPN网关2

    加密证书

    选择在数字证书管理服务控制台上传的证书。

    签名证书

    选择在数字证书管理服务控制台上传的证书。

步骤四:创建用户网关

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

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

    说明

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

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

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

    您需要创建4个用户网关实例,用于建立VPN隧道。用户网关实例的配置请参见下表,其余配置项保持默认值或为空。

    配置项

    配置项说明

    华东1(杭州)

    华东1(杭州)

    华东2(上海)

    华东2(上海)

    名称

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

    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地址139.XX.XX.86

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

    本文输入VPN网关1的IPsec地址1的IP120.XX.XX.33

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

    自治系统号

    输入自治系统号。

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

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

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

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

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

步骤五:创建IPsec连接

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

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

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

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

    您需要在两个VPN网关实例下分别创建一个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

    RemoteId

    输入对端证书的主题信息。

    本文输入VPN网关2绑定的签名证书的主题信息CN=z****,O=hangzhou,OU=hangzhou,C=CN

    本文输入VPN网关1绑定的签名证书的主题信息CN=z****,O=hangzhou,OU=hangzhou,C=CN

    对端CA证书

    选择对端使用的CA证书。

    单击上传证书,并在本地电脑中选择VPN网关2使用的.cert.pem格式文件。

    单击上传证书,并在本地电脑中选择VPN网关1使用的.cert.pem格式文件。

    加密配置

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

    国密型VPN网关需选择ikev1,其余配置项保持默认值。

    国密型VPN网关需选择ikev1,其余配置项保持默认值。

    Tunnel 2

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

    用户网关

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

    本文选择VPN网关1-Customer2

    本文选择VPN网关2-Customer2

    RemoteId

    输入对端证书的主题信息。

    本文输入VPN网关2绑定的签名证书的主题信息CN=z****,O=hangzhou,OU=hangzhou,C=CN

    本文输入VPN网关1绑定的签名证书的主题信息CN=z****,O=hangzhou,OU=hangzhou,C=CN

    对端CA证书

    选择对端使用的CA证书。

    单击上传证书,并在本地电脑中选择VPN网关2使用的.cert.pem格式文件。

    单击上传证书,并在本地电脑中选择VPN网关1使用的.cert.pem格式文件。

    加密配置

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

    国密型VPN网关需选择ikev1,其余配置项保持默认值。

    国密型VPN网关需选择ikev1,其余配置项保持默认值。

  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连接的地域。

    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的网段。

      说明

      一个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的网段。

      说明

      一个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. 开启路由自动传播对话框,单击确定

步骤七:验证测试

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

  1. 测试连通性。

    1. 登录VPC1内的ECS1实例。

      关于如何登录ECS实例,请参见连接方式概述

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

      ping <ECS2实例IP地址>

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

  2. 测试高可用性。

    双隧道模式的IPsec-VPN拥有高可用性,在主隧道中断的情况下,流量自动通过备隧道进行传输。以下内容介绍如何验证双隧道模式IPsec-VPN连接的高可用性。

    1. 登录VPC1内的ECS1实例。

      关于如何登录ECS实例,请参见连接方式概述

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

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

      本文通过修改IPsec连接1下主隧道的IKE版本为IKEv2来中断主隧道。国密型VPN网关下,IPsec-VPN连接不支持IKEv2。

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

      您可以在监控页签查看隧道的流量监控信息。具体操作,请参见监控IPsec连接

      说明

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