IPsec连接(VPN网关-双隧道模式)

创建VPN网关后,还需在分别在阿里云侧和本地IDC侧配置IPsec连接,才能实现本地数据中心与VPC互通。

工作原理

阿里云侧的IPsec连接默认为双隧道模式,即包含一条主隧道和一条备用隧道。当主隧道因网络抖动或设备故障中断时,流量会自动切换至备用隧道,从而保障业务的连续性和网络的高可用性。

  • 隧道角色:系统利用 VPN 网关的两个不同公网 IP 地址,分别建立两条隧道。

    • 隧道 1(使用 IP 地址 1)默认为主隧道,承载所有业务流量;

    • 隧道 2(使用 IP 地址 2)为备用隧道,处于待命状态。

    隧道的主备角色是固定的,无法更改。

  • 健康检查与故障切换:系统自动检测主隧道的连通性。当检测到主隧道中断后,VPN 网关会自动将流量切换到备用隧道。待主隧道恢复后,流量将自动切回。

  • 可用区容灾:IPsec连接的两条隧道默认部署在不同的可用区。当其中一个可用区发生故障时,另一可用区的隧道仍然可用,从而提供跨可用区的容灾能力。对于仅支持一个可用区的地域,两条隧道会被部署在同一个可用区,不支持可用区级别的容灾,但依旧拥有链路冗余能力。

创建IPsec连接

1. 配置IPsec连接

创建IPsec连接前,请确保已创建VPN网关实例用户网关实例

如果您创建的是国密型VPN网关实例,还需要满足以下条件:

  • 为国密型VPN网关绑定SSL证书

  • 已获得国密型VPN网关对端的CA(Certification Authority)证书和对端签名证书的主体信息。

控制台

前往VPN控制台IPsec连接页面,单击绑定VPN网关,在创建IPsec连接(VPN)页面进行配置:

IPsec配置
  • 选择要绑定的VPN网关所属地域和对应实例

  • 路由模式

    • 目的路由模式(默认值):基于目的IP地址转发流量。适用于通过 BGP 动态学习路由或在 VPN 网关配置静态路由的场景,配置简单。

    • 感兴趣流模式:基于源和目的 IP 地址转发流量,适用于仅希望特定网段之间互通的复杂网络场景。选择此模式后,需配置本端网段(VPC 内需要通信的网段)和对端网段(本地数据中心需要通信的网段)。

      IPsec连接配置完成后,系统会自动生成策略路由源网段IPsec连接本端网段目标网段IPsec连接对端网段,下一跳指向IPsec连接,可选发布到VPC路由表(默认不发布)。

      • 在本地网关设备配置感兴趣流时,应确保所用网段与阿里云端保持一致,并将两端网段对调。

      • 可通过单击文本框右侧的添加图标添加多个网段,配置多个网段时,后续IKE协议的版本需要选择ikev2

  • 立即生效:如果需要快速启用或避免流量延迟,推荐选择“是”;如果希望节省资源且流量不频繁,可选择“否”。

隧道配置
重要

创建双隧道模式的IPsec-VPN连接时,请配置两条隧道使其均为可用状态,如果您仅配置或仅使用了其中一条隧道,则无法体验IPsec-VPN连接主备链路冗余能力以及可用区级别的容灾能力。

  • 启用BGP:决定是否使用 BGP动态路由

    • 关闭(默认):使用静态路由,适用于网络拓扑简单的场景。

    • 开启:适用于网络拓扑复杂、需要自动分发和学习路由的场景。前提:关联的用户网关必须已配置 ASN。

  • 本端自治系统号:启用BGP后,阿里云侧的ASN号。两条隧道使用相同的自治系统号,默认值:45104,取值范围:1~4294967295。对端云下设备配置自治系统号时,建议使用私有 ASN 号。

Tunnel 1(主隧道)和Tunnel 2 (备隧道)配置:

  • 用户网关:选择代表您本地网关设备的用户网关实例。两条隧道可以关联同一个用户网关。

  • RemoteId:VPN网关为国密型时需配置此项。设置对端签名证书的主体信息。请确保申请对端签名证书时填写的主体信息(例如公司名称、部门、公司所在区域等信息)为英文,格式例如:

    CN=z****,O=hangzhou,OU=hangzhou,C=CN
  • 对端CA证书:VPN网关为国密型时需配置此项。通过输入对端CA证书,VPN网关实例可以在建立IPsec-VPN连接时校验对端证书的合法性。

    如果您已经在本地保存了对端CA证书,可单击上传证书,将已经保存的对端CA证书上传至阿里云。

  • 预共享密钥:用于身份认证的密钥,两条隧道的密钥必须与本地网关设备上的配置完全一致。若不填则由系统随机生成。

单击查看加密配置

  • IKE配置

    • 版本:推荐使用ikev2。IKEv2版本简化了SA的协商过程并且对于多网段的场景提供了更好的支持。国密型VPN网关的IKE版本仅支持ikev1

    • 协商模式

      • main(默认值):主模式。此模式加密传输身份信息,协商过程安全性比aggressive高。

        国密型VPN网关的协商模式仅支持main

      • aggressive:野蛮模式,协商快速且协商成功率高。

      协商成功后两种模式的信息传输安全性相同。

    • 加密算法:第一阶段协商使用的加密算法,必须与本地网关设备一致。

      • IPsec连接绑定普通型VPN网关时,则加密算法支持aes(aes128,默认值)、aes192aes256des3des

      • IPsec连接绑定国密型VPN网关时,加密算法支持sm4(默认值)。

      VPN网关实例的带宽规格为200 Mbps及以上时,推荐使用aesaes192aes256加密算法,不推荐使用3des加密算法。

      • aes是一种对称密钥加密算法,提供高强度的加密和解密,在保证数据安全传输的同时对网络延迟、吞吐量、转发性能影响较小。

      • 3des是三重数据加密算法,加密时间较长且算法复杂度较高,运算量较大,相比aes会降低转发性能。

    • 认证算法:第一阶段协商使用的认证算法,必须与本地网关设备一致。

      • IPsec连接绑定普通型VPN网关时,认证算法支持sha1(默认值)、md5sha256sha384sha512

      • IPsec连接绑定国密型VPN网关时,认证算法支持sm3(默认值)。

      在部分本地网关设备上添加VPN配置时,可能需要指定PRF算法,PRF算法与IKE阶段认证算法保持一致即可。
    • DH分组(完美向前加密 PFS):选择第一阶段协商的Diffie-Hellman密钥交换算法。

      • group1:表示DH分组中的DH1。

      • group2(默认值):表示DH分组中的DH2。

      • group5:表示DH分组中的DH5。

      • group14:表示DH分组中的DH14。

    • SA生存周期(秒):设置第一阶段协商出的SA(Security Association,安全关联)的生存周期。默认值:86400。取值范围:0~86400

    • LocalId:隧道本端的标识符。默认使用隧道的IP地址作为隧道本端标识符。

      该参数仅作为标识符用于在IPsec-VPN连接协商中标识阿里云,无其他作用。支持使用IP地址格式或FQDN(Fully Qualified Domain Name)格式,不能包含空格。推荐使用私网IP地址作为隧道本端的标识。

      如果LocalId使用了FQDN格式,例如输入example.aliyun.com,则本地网关设备上IPsec连接的对端ID需与LocalId的值保持一致,协商模式建议选择为aggressive(野蛮模式)。

    • RemoteId:隧道对端的标识符。默认值使用隧道关联的用户网关中的IP地址作为隧道对端标识符。

      该参数仅作为标识符用于在IPsec-VPN连接协商中标识本地网关设备,无其他作用。支持使用IP地址格式或FQDN(Fully Qualified Domain Name)格式,不能包含空格。推荐使用私网IP地址作为隧道对端的标识。

      如果RemoteId使用了FQDN格式,例如输入example.aliyun.com,则本地网关设备上IPsec连接的本端ID需与RemoteId的值保持一致,协商模式建议选择为aggressive(野蛮模式)。

  • IPsec配置

    • 加密算法:第二阶段协商的加密算法。

      • IPsec连接绑定普通型VPN网关时,加密算法支持aes(aes128,默认值)、aes192aes256des3des

      • IPsec连接绑定国密型VPN网关时,加密算法支持sm4(默认值)。

      VPN网关实例的带宽规格为200 Mbps及以上时,推荐使用aesaes192aes256加密算法,不推荐使用3des加密算法。

      • aes是一种对称密钥加密算法,提供高强度的加密和解密,在保证数据安全传输的同时对网络延迟、吞吐量、转发性能影响较小。

      • 3des是三重数据加密算法,加密时间较长且算法复杂度较高,运算量较大,相比aes会降低转发性能。

    • 认证算法:第二阶段协商的认证算法。

      • IPsec连接绑定普通型VPN网关时,认证算法支持sha1(默认值)、md5sha256sha384sha512

      • IPsec连接绑定国密型VPN网关时,认证算法支持sm3(默认值)。

    • DH分组(完美向前加密 PFS):第二阶段协商的Diffie-Hellman密钥交换算法。

      • disabled:表示不使用DH密钥交换算法。

        • 对于不支持PFS的客户端请选择disabled

        • 如果选择为非disabled的任何一个组,会默认开启完美向前加密PFS(Perfect Forward Secrecy)功能,使得每次重协商都要更新密钥,因此,相应的客户端也要开启PFS功能。

      • group1:表示DH分组中的DH1。

      • group2(默认值):表示DH分组中的DH2。

      • group5:表示DH分组中的DH5。

      • group14:表示DH分组中的DH14。

    • SA生存周期(秒):设置第二阶段协商出的SA的生存周期。默认值:86400。取值范围:0~86400

    • DPD:对等体存活检测,建议始终开启(默认)。它能及时发现对端故障并触发切换,是实现高可用的关键。

      开启DPD功能后,IPsec连接会发送DPD报文用来检测对端的设备是否存活,如果在设定时间内未收到正确回应则认为对端已经断线,IPsec连接将删除ISAKMP SA和相应的IPsec SA,安全隧道同样也会被删除。DPD检测超时后,IPsec连接会自动重新发起IPsec-VPN隧道协商。DPD报文的超时时间为30秒。

      IPsec连接使用IKEv2版本的场景下,对于部分存量VPN网关实例,DPD超时时间可能为130秒或3600秒,此时可将VPN网关实例升级为最新版。
    • NAT穿越:建议保持默认开启。开启后,IKE协商过程会删除对UDP端口号的验证过程,同时能发现加密通信通道中的NAT网关设备。

BGP配置(可选)

如果已开启BGP功能,需在每条隧道下完成BGP配置

确认配置
  1. 仔细检查配置,确认无误后单击页面底部的确定

  2. 在弹出的“是否要配置VPN网关路由”对话框中,单击取消,后续再进行路由配置。

  3. 在目标IPsec连接,在操作列单击生成对端配置,在IPsec连接配置对话框复制配置并保存到您本地,以便用于配置本地网关设备。

API

调用CreateVpnConnection创建IPsec连接。

2. 配置VPN网关和VPC路由

根据配置VPN网关路由进行配置。

3. 配置本地网关设备

根据在“配置IPsec连接”步骤中下载的对端配置,在本地数据中心的网关设备(如防火墙或路由器)上完成 IPsec 和 BGP(如果启用)的配置。具体配置方法请参考相应设备的厂商文档,示例:配置本地网关设备

管理IPsec连接

开启/关闭BGP

在为IPsec连接开启BGP功能前,请确保IPsec连接关联的用户网关实例已经配置了自治系统号。若未配置,需删除重建IPsec连接,并为IPsec连接关联已配置有自治系统号的用户网关实例。

IPsec连接相关的BGP配置项:

  • 本端自治系统号:启用BGP后,阿里云侧的ASN号。两条隧道使用相同的自治系统号,默认值:45104,取值范围:1~4294967295。对端云下设备配置自治系统号时,建议使用私有 ASN 号。

  • 隧道网段:用于 BGP 邻居建立连接的互联地址段。一个VPN网关实例下,每个隧道的网段需保持唯一。需要是在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/30169.254.169.252/30。

  • 本端BGP地址:阿里云侧的 BGP IP,必须属于隧道网段。例如,在 169.254.10.0/30 网段中,可使用 169.254.10.1

关于BGP路由功能支持状态、路由宣告原则、使用限制,请查看配置BGP动态路由

控制台

开启BGP

  • 创建IPsec连接时,可启用BGP,并配置本端自治系统号隧道网段本端BGP地址,直接开启BGP功能。

  • 针对已创建的IPsec连接,可在IPsec连接实例详情页面的IPsec连接基本信息区域,启用BGP

关闭BGP

IPsec连接实例详情页面的IPsec连接基本信息区域,关闭启用BGP

API

  • 新创建IPsec连接时,调整CreateVpnConnectionEnableTunnelsBgp参数开启BGP并调整TunnelOptionsSpecification -> TunnelBgpConfig 参数来配置每个隧道的BGP选项。

  • 针对已创建的IPsec连接,调整ModifyVpnConnectionAttribute的的EnableTunnelsBgp参数开启/关闭BGP通过调整TunnelOptionsSpecification -> TunnelBgpConfig 参数来配置每个隧道的BGP选项。

修改隧道的配置

控制台

  1. 前往VPC控制台IPsec连接页面,切换到目标地域并单击目标IPsec连接ID。

  2. IPsec连接实例详情页面,找到目标隧道,在操作列单击编辑

  3. 在编辑页面,修改隧道的配置,然后单击确定

    隧道下各个配置项的说明,请参见隧道和加密配置

API

调用ModifyTunnelAttribute修改隧道配置。

修改IPsec连接的配置

IPsec连接已绑定了VPN网关实例的场景下,不支持修改IPsec连接关联的VPN网关实例,仅支持修改IPsec连接路由模式立即生效的配置。

控制台

  1. 前往VPC控制台IPsec连接页面,切换到目标地域并在目标IPsec连接的操作列单击编辑

  2. 编辑IPsec连接页面,修改IPsec连接的名称、互通网段等配置,然后单击确定

    参数的详细说明详见创建IPsec连接

API

调用ModifyVpnConnectionAttribute修改IPsec连接的配置。

删除IPsec连接

控制台

  1. 前往VPC控制台IPsec连接页面,切换到目标地域并在目标IPsec连接的操作列单击删除

  2. 在弹出的对话框中,确认信息,然后单击确定

API

调用DeleteVpnConnection删除IPsec连接。

计费说明

IPsec连接绑定至VPN网关时,IPsec连接本身不收费,但其依赖的 VPN 网关 实例会产生费用,详见IPsec-VPN计费说明

常见问题

为什么隧道状态显示“第一阶段协商失败”?

如果云上云下都已完成IPsec相关配置,则通常原因为:

  1. 预共享密钥不匹配:请仔细核对阿里云侧和本地网关设备上的预共享密钥,确保完全一致,包括大小写和特殊字符。

  2. IKE 参数不一致:检查 IKE 版本、协商模式、加密算法、认证算法、DH 分组等参数是否在两端完全匹配。

  3. 网络问题:检查本地网关设备的公网 IP 是否可达,以及是否有防火墙或运营商策略拦截了 UDP 500/4500 端口。

隧道状态正常(第二阶段协商成功),但无法 ping 通对端服务器,是什么原因?

隧道协商成功仅代表加密通道已建立,数据能否通过还需检查以下环节:

  1. 路由配置:检查阿里云 VPC 路由表和本地数据中心的路由表是否已正确配置,将流量指向 IPsec连接。

  2. 安全组和网络 ACL:检查云上 ECS 实例的安全组是否允许来自本地网段的 ICMP 或其他业务端口的流量。

  3. 本地防火墙策略:检查本地数据中心的防火墙是否允许来自 VPC 网段的流量。

我想使用 BGP 动态路由,但在配置时无法“启用 BGP”,怎么办?

这是因为您创建 IPsec 连接时所关联的用户网关没有配置 ASN(自治系统号)。您必须删除当前的 IPsec 连接,重新创建一个配置了 ASN 的用户网关,然后再用这个新的用户网关来创建 IPsec 连接。

可以将隧道 2 设置为主隧道吗?

不可以。隧道 1(使用 VPN 网关 IP 地址 1)固定为主隧道,隧道 2(使用 VPN 网关 IP 地址 2)固定为备隧道,该角色无法更改。