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

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

场景示例

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

出于建设安全的网络环境考虑,企业计划使用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专有网络

  • 您已经了解两个VPCECS实例所应用的安全组规则,并确保安全组规则允许两个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证书的操作列单击更多,在SSL证书的详情页面查看证书的主题信息,并将证书的主题信息记录为以下格式。

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

    主题信息

步骤二:创建国密型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网关2VPN网关实例,该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网关1VPN网关2下分别绑定一个加密证书和一个签名证书。本文中VPN网关1VPN网关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网关1VPN网关2互为对方的用户网关。

    本文输入VPN网关2IPsec地址1IP地址139.XX.XX.86

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

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

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

    自治系统号

    输入自治系统号。

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

    本文输入VPN网关2下主隧道的BGP AS65500

    本文输入VPN网关2下备隧道的BGP AS65500

    本文输入VPN网关1下主隧道的BGP AS65530

    本文输入VPN网关1下备隧道的BGP AS65530

步骤五:创建IPsec连接

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

  2. IPsec连接页面,单击绑定VPN网关

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

    您需要在两个VPN网关实例下分别创建一个IPsec连接,IPsec连接的配置请参见下表。

    配置项

    配置项说明

    IPsec连接1

    IPsec连接2

    IPsec连接名称

    输入IPsec连接的名称。

    本文输入IPsec连接1

    本文输入IPsec连接2

    地域

    选择IPsec连接要绑定的VPN网关实例的地域。

    IPsec连接创建完成后所属地域与VPN网关实例地域相同。

    选择华东1(杭州)

    选择华东2(上海)

    绑定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,其余配置项保持默认值。

  4. 创建成功对话框中,单击确定

    配置完成后,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网关1VPN网关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连接1IPsec连接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/30169.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/30169.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

  2. 根据以下步骤分别为VPN网关1VPN网关2开启BGP路由自动传播功能。

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

    2. VPN网关页面,找到VPN网关实例,在操作列选择更多 > 开启路由自动传播

    3. 开启路由自动传播对话框,单击确定

步骤七:验证测试

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

  1. 测试连通性。

    1. 登录VPC1内的ECS1实例

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

      ping <ECS2实例IP地址>

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

  2. 测试高可用性。

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

    1. 登录VPC1内的ECS1实例。

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

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

      本文通过修改IPsec连接1下主隧道关联的用户网关实例来中断主隧道。

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

      您可以在监控页签查看隧道的流量监控信息

      说明

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