Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

组 VPNv2 概述

组 VPNv2 技术概述

注意:

组 VPNv2 是某些路由器平台上的组 VPN 技术的名称。组 VPNv2 不同于 SRX 安全性网关上实施的组 VPN 技术。本文档中有时使用术语“组 VPN”来指代一般技术,而非 SRX 技术。

有关 SRX 安全性网关设备上的组 VPN 的更多信息,请参阅 组 VPNv2 概述

有关任何 Junos OS 功能的平台和版本支持的更多信息,请使用 功能浏览器

本节介绍 VPNv2 组的技术概念。

了解组 VPNv2

组 VPN 是可信组,可消除点到点隧道及其关联的叠加路由。所有组成员共享一个通用安全关联 (SA),称为组 SA (GSA)。GSA 使组成员能够解密由任何其他组成员加密的流量。从 Junos OS 18.2R1 版开始,我们通过在 MX 路由器上运行的服务冗余协议 [SRD] 确认组 VPN 冗余。MX 路由器之间具有冗余的路由器充当组 VPN 成员。有关服务冗余协议的更多详细信息,请参阅 服务冗余守护程序概述

从 Junos OS 15.1 版开始,Junos OS 可支持组 VPNv2。组 VPNv2 是一种 VPN 类别,无需在网格架构中构建点对点 VPN 隧道。它是保护来自路由器或流经的专用WAN上的单播流量所必需的一组功能。

组 VPNv2 引入了可信组的概念,以消除点到点隧道及其相关的叠加路由。所有组成员共享一个通用安全关联 (SA),也称为组 SA。这使组成员能够解密由任何其他组成员加密的流量。

VPNv2 组具有以下优势:

  • 提供数据安全和传输身份验证,通过加密所有 WAN 流量,帮助满足安全合规性和内部法规要求。

  • 支持大规模网络网格,并通过组加密密钥消除复杂的对等密钥管理。

  • 减少由于组成员更改或策略更改而需要进行的端点更改的数量。

  • 在 MPLS 网络中维护网络智能,如全网状连接、自然路由路径和服务质量 (QoS)。

  • 通过集中式密钥服务器授予经过身份验证的成员控制。

  • 允许在组策略中定义的所有组成员之间加密和解密流量。

  • 实现站点之间的全时直接通信,无需通过中央集线器进行传输,从而帮助确保低延迟和低抖动。

  • 通过使用核心网络进行流量复制,减少客户端设备 (CPE) 和提供商边缘 (PE) 加密设备上的流量负载,从而避免在每个对等站点进行数据包复制。

组 VPNv2 和标准 IPsec VPN

VPNv2 组以基于标准的技术为基础,将路由和加密集成到网络中。IPsec 安全 SA 是 VPN 参与方之间的单向协议,用于定义用于身份验证和加密算法、密钥交换机制以及安全通信的规则。

传统的 IPsec VPN 部署通过在使用点对点隧道的基础上创建叠加网络,来解决网络中网关之间流量的安全问题。通过这些隧道传输的流量通常经过加密和身份验证,以提供数据完整性和机密性。安全组成员通过组解释域协议 (GDOI) 进行管理。GDOI 解决方案采用了不同的方法,将加密和身份验证问题与传输分离。通过这样,基于 GDOI 的解决方案提供了一种对分支机构到分支机构通信进行加密的方法,而无需配置分支机构到分支机构的隧道。

在当前的 VPN 实施中,SA 是两个端点之间的点对点隧道。VPNv2 组扩展了 IPsec 架构,以支持由一组路由器共享的 SA(请参阅 图 1)。密钥服务器将密钥和策略分发到所有已注册和经过身份验证的成员路由器。通过从集中点分发策略,并与经过身份验证的组成员共享相同的组安全关联(整个组有一个第 2 阶段 SA),可以大大简化密钥分配和管理。

图 1:标准 IPsec VPN 和组 VPNv2 Standard IPsec VPN with individual device connections and unique keys vs. Group VPN with centralized management and shared key for efficiency.

VPNv2 组是一种客户端/服务器架构。所有成员都有一个带有密钥服务器的唯一第 1 阶段 IKE SA。因此,如果有 n 成员,则总共有 n 第 1 阶段 IKE SA。但是,整个组共享一个第 2 阶段 SA。

在传统 IPsec 中,隧道端点地址用作新的数据包源和目标。然后,使用加密端点源 IP 地址和解密端点目标 IP 地址,在 IP 基础架构上路由数据包。如果采用组 VPN,受 IPsec 保护的数据包会在外部 IP 报头中保留主机的原始源地址和目的地址,以便保留 IP 地址。这称为隧道标头保留。隧道标头保留的最大优势在于能够使用底层网络路由基础架构路由加密数据包。

表 1:组 VPN 与传统点对点 IPsec

功能

传统的点对点 IPsec 隧道

组 VPN

可扩展性

每对对等方之间的 IKE/IPsec 隧道增加了管理和配置的复杂性。

单个 SA 和密钥对用于整个任意到任意组。降低管理和配置复杂性。

任意到任意即时连接

由于管理和配置复杂,无法进行扩展。

由于在组内使用 GDOI 和共享 SA,因此扩展性很好。

叠加路由

需要叠加路由。

无叠加原生路由。

IP 报头保留

在原始数据包中添加新的 IP 报头会导致高级服务质量 (QoS) 受到限制。可在 NAT 环境中工作。

在 IPsec 数据包上保留原始 IP 报头。保留高级 QoS 功能。在 NAT 环境中不起作用。

了解 GDOI 协议

RFC 6407 中描述的组解释域 (GDOI) 协议用于将一组加密密钥和策略分发到一组设备。GDOI 被定义为用于组密钥管理的互联网安全性关联密钥管理协议 (ISAKMP) 解释域 (DOI)。在组管理模型中,GDOI 协议在组成员和组控制器或密钥服务器 (GC/KS) 之间运行,并管理一组安全参与方的组安全关联和组密钥。ISAKMP 定义了协商的两个阶段。GDOI 是受第 1 阶段 ISAKMP 安全关联保护的第 2 阶段协议。IKEv1 在 RFC 6407 中指定为第 1 阶段协议。

GDOI 引入了两种不同的加密密钥:

  • 密钥加密密钥 (KEK) — 用于保护控制平面。KEK 是组成员用于解密来自 GC/KS 的密钥重钥消息的密钥名称。此密钥是安全性关联密钥加密密钥 (SAK) 的一部分。

  • 流量加密密钥 (TEK) — 用于保护数据平面。TEK 是组成员用于对其他组成员之间的通信进行加密或解密的密钥名称。此密钥是安全性关联传输加密密钥 (SA TEK) 的一部分。

与标准 IPsec 一样,所有密钥都有生存期,并且必须重新添加密钥。通过 GDOI 分发的密钥是组密钥,由整个组使用。

组 SA 和密钥管理通过两种类型的 GDOI 交换来处理:

  • groupkey-pull— 此交换允许成员从服务器请求组共享的 SA 和密钥。

    在拉取方式中,组成员向密钥服务器请求组SA和策略。此请求受 IKE SA 保护。

    它是 groupkey-pull GDOI 协议中的第一个交换,用于在 GC/KS 中注册组成员。组成员指定要注册的组,如果组成员有权加入组,则 GC/KS 会将所有必要的组 SA 和密钥发送给组成员。完整交换由第 1 阶段 SA (IKEv1 SA) 保护,该 SA 在交换开始之前 groupkey-pull 与 IKEv1 一起建立。这是 groupkey-pull GDOI 协议第 2 阶段的一部分。

  • groupkey-push— 此交换是一条密钥更新消息,允许服务器在现有组 SA 过期之前向成员发送组 SA 和密钥。密钥更新消息是从服务器发送到成员的未经请求的消息。

    这是 groupkey-push GDOI 协议中的第二次交换,由 GC/KS 发起给该组的所有注册成员。 表 2 显示了 MX 系列组成员期望在消息中 groupkey-push 接收的有效负载。

    表 2:groupkey-push 消息有效负载

    有效负载

    描述

    组关联策略 (GAP)

    GAP 有效负载允许分发组范围的策略,例如有关何时激活和停用 SA 的说明。此有效负载包含流量加密密钥 (TEK) 的激活时间延迟 (ATD) 和停用时间延迟 (DTD) 值,以及 IPsec 流量的 IP 传输延迟检测协议窗口类型和窗口大小。

    安全性关联传输加密密钥 (SA TEK)

    流量选择器。

    安全性关联密钥加密密钥 (SAK)(可选)

    密钥加密密钥 (KEK) 的安全关联 (SA)。也称为 SA KEK。

    注意:

    groupkey-push不包含可选有效负载的消息仍然是有效消息。

    流量加密密钥 (TEK)(可选)

    用于加密组成员之间的数据流量的密钥。

    密钥加密密钥 (KEK)(可选)

    用于保护 TEK。

    交换由 groupkey-push 交换期间 groupkey-pull 安装的 SA KEK (SAK) 保护。这是 groupkey-push GDOI 协议第 2 阶段的一部分。

在某些情况下,GC/KS 可能希望接收来自组成员的组密钥推送确认消息。来自组成员的推送确认消息确认成员已收到消息并已对其策略采取措施。GC/KS 还可以使用确认来确定哪些组成员正在接收当前组策略,以及哪些组成员不再参与组。从 Junos OS 19.2R1 开始,当 Junos OS 收到 RFC 8263 中定义的 SA KEK 有效负载中标准 KEK_ACK_REQUESTED 值为 9 的组键推送消息,或者使用的KEK_ACK_REQUESTED值为 129 时,它会发送带有 SHA-256 校验和的确认消息。

GDOI 协议和组 VPNv2

组 VPNv2 是在瞻博网络的路由器平台上实施的安全技术的名称。VPNv2 组除提供其他功能外,还使用 GDOI 协议 (RFC 6407) 作为基础。

组 VPNv2 技术基于 GDOI 协议来处理最重要的功能。此协议在 RFC 6407 中指定,并定义了一个 ISAKMP 解释域 (DOI),用于管理一组安全参与方的组 SA 和密钥。因此,组的所有成员共享相同的信息,以便相互加密和解密流量。组 SA 和组密钥的创建、管理和分发由 GC/KS 集中执行。 图 2 简要概述了使用 GDOI 的组 VPNv2 功能。
图 2:使用 GDOI Network security architecture diagram showing a cloud for connectivity, GC/KS for group key management, GMs as group members with policies and cryptographic keys, and dashed lines for key distribution. 对 VPNv2 进行分组
组成员在隧道模式下使用封装安全性有效负载 (ESP) 协议来保护流量。但是,在组 VPN 中,隧道模式已修改。由于组成员之间没有直接关联,因此无需在外部 IP 报头中使用特殊的 IP 地址(即 IPsec 网关的 IP 地址)。每个组成员都可以解密其他每个组成员的流量。因此,内部 IP 报头被复制到外部 IP 报头,即可使用底层路由基础架构和 QoS 基础架构。此功能称为标头保留,如 图 3 所示。
图 3:标头保留 Structure of an IP packet before and after encryption using ESP protocol, highlighting header preservation and payload encryption.

要获取组 SA 和组密钥,组成员必须向特定组的 GC/KS 注册。结果是 IKEv1 SA,仅用于保护注册过程。注册后,组成员拥有与其他组成员 (SA TEK) 通信的所有信息,以及成功解密密钥更新消息 (SAK) 的信息。GC/KS 在 SA TEK 或 SAK 生存期到期之前发送密钥更新消息。也可以在同一密钥重组消息中发送 SA TEK 更新以及 SAK 更新。IKEv1 SA 不再需要,并在生存期到期后删除(无需 IKEv1 密钥更新)。

组 VPNv2 流量

组 VPNv2 流量包括:

  • control-plane-traffic — 从组成员到 GC/KS 的流量,仅使用 GDOI 协议在组 VPNv2 部署中。

  • Data-plane-traffic — 仅使用 ESP 协议的组 VPNv2 部署中组成员之间的流量,该协议已从 IPsec 中已知。

集团安全性协会

与传统的 IPsec 加密解决方案不同,组 VPN 使用组安全关联的概念。组 SA 在功能上与 SA 相似。组 SA 在公共 GDOI 组的所有组成员之间共享。组 VPN 组中的所有成员都可以使用通用加密策略和共享组 SA 进行相互通信。使用通用加密策略和共享组 SA,无需在组成员之间协商 IPsec。这减少了组成员的资源负载。传统的 IPsec 可扩展性问题(隧道数量和关联的 SA)不适用于组 VPN 组成员。

组控制器/密钥服务器

组控制器或密钥服务器 (GC/KS) 是用于创建和维护组 VPNv2 控制平面的设备。它负责创建和分发组 SA 和组密钥。小组成员与其他小组成员沟通所需的所有信息均由 GC/KS 提供。所有加密策略(如关注流量、加密协议、安全关联、密钥更新计时器等)均在 GC/KS 上集中定义,并在注册时向下推送给所有组成员。组成员使用 IKE 第 1 阶段向 GC/KS 进行身份验证,然后下载组 VPN作所需的加密策略和密钥。GC/KS 还负责刷新和分发密钥。

注意:

MX 系列路由器不支持 GC/KS 功能。配置为组成员的 MX 系列路由器只能与 Cisco GC/KS 连接。不支持MX 系列组成员与充当 GC 的瞻博网络 SRX 系列进行交互。有关各种类型的组成员与 GC/KS 之间的兼容性,请参见 表 5

组成员

组成员是用于流量加密过程的 IPsec 端点设备,负责数据流量的实际加密和解密。组成员配置了 IKE 第 1 阶段参数和 GC/KS 信息。加密策略在 GC/KS 上集中定义,并在成功注册时下载给组成员。然后,每个组成员根据其组成员身份确定是否应解密或加密传入和传出流量(使用其 SA)。

从功能的角度来看,组成员类似于 IPsec 网关。但是,正常 IPsec 中的 SA 存在于两个 IPsec 网关之间。在 GDOI 中,组成员向 GC/KS 注册以加入组 VPN。在注册期间,组成员向 GC/KS 提供组 ID,以获取此组所需的相应策略、SA 和密钥。密钥更新由组成员通过该 groupkey-pull 方法(重新注册)或由 GC/KS 通过该 groupkey-push 方法完成。

VPNv2 组流量的防重放保护

由于组 VPN 通信本质上是通过同一共享安全关联进行的任意到任意通信,因此使用序列号进行防重放保护是不起作用的。因此,Junos OS 支持基于时间的防重放机制的 IETF 草案规范 draft-weis-delay-detection-01。可在 http://tools.ietf.org/html/draft-weis-delay-detection-01 获得。

为了实现此功能,MX 系列成员路由器会在数据包中使用新的 IP 传输延迟检测协议时间戳标头。有关详细信息,请参阅实施 IP 传输延迟检测协议(基于时间的防重放保护)。

MX 系列成员路由器上的部分故障打开

组 VPN 中的组成员依靠 GC/KS 为共享 SA 生成密钥材料。因此,需要组成员与 GC/KS 之间的连接,才能初始保护流量并通过密钥更新事件持续保护流量。如果组成员与 GC/KS 之间出现通信故障,组成员的默认行为是停止转发流量。这称为故障闭合。

非默认配置选项可用于允许某些特定定义的流量流经组成员而不加密,直到该成员能够联系 GC/KS 并检索活动 SA。这称为部分故障打开。

部分故障开放功能需要一个策略配置选项,用于在适用的 MX 系列组成员上为由源地址和目标地址定义的特定组 VPNv2 创建规则。仅当组 SA 由于与密钥服务器的连接失败而处于禁用状态时,此故障开放规则才会激活。通常通过组 VPN 但与故障开放规则不匹配的流量将被丢弃。可以为组 VPN 对象定义多个故障开放规则。如果未配置故障开放规则,则禁用故障开放功能。

组 VPNv2 实施概述

本节介绍用于实施组 VPNv2 的瞻博网络解决方案。

启用组 VPNv2

服务集用于在适用的 MX 系列路由器上的特定接口上启用 VPNv2 组。

配置服务集

VPNv2 组在服务集中使用层次结构级别的[edit services service-set service-set-name]语句进行ipsec-group-vpn配置。

示例服务集配置

[edit services]
service-set service-set-name {
    interface-service {
        service-interface service-interface-name;
    }
}
ipsec-group-vpn vpn-name;
注意:
  • 每个服务集只能配置一个组成员。

  • VPNv2 组不支持下一跃点样式的服务集。

应用服务集

服务集在接口级别应用。

应用服务集配置示例

[edit interfaces]
interface-name {
    unit 0 {
        family inet {
            service {
                input {
                    service-set service-set-name;
                }
                output {
                    service-set service-set-name;
                }
            }
            address 10.0.30.2/30;
        }
    }
}

数据包引导

接口样式服务集配置用于将流量从数据包转发引擎引导到 PIC。在服务集指向组 VPNv2 对象的接口上收到的数据包将通过注入到相应的服务接口中来转发到 PIC。

注册群组成员

当为服务集配置语 ipsec-group-vpn 句且服务接口已开启时,将开始向服务器注册组成员。当服务接口关闭时,与此接口关联的所有组 SA 都将被清除,并且在接口启动之前,不会触发这些组 VPN 的注册。

组成员注册涉及使用 GC/KS 建立 IKE SA,然后 groupkey-pull 进行交换以下载指定组标识符的 SA 和流量密钥。

注意:

Junos OS 不支持对 VPNv2 组中的组 VPN 触发基于流量的 SA 协商。

重新生成组成员密钥(groupkey-push 方法)

GC/KS 将向已注册的小组成员发送单播 groupkey-push 消息,以便:

  • 发送新密钥加密密钥 (KEK) 或流量加密密钥 (TEK)。

    推送消息可以包含全部或仅包含 表 2 中所示的部分有效负载元素。当 GAP 有效负载同时包含旧 SA 和新的替换 SA 时,组成员路由器将通过推送将 ATD 和 DTD 值作为正常密钥重新生成。如果更新中没有 ATD 值,成员路由器将立即安装新的 SA。如果没有 DTD 值,旧的 SA 将一直保留到到期。

  • 更新现有 SA 的组关联策略 (GAP)。

    GC/KS 可以随时向组成员发送单播推送消息以更新配置。GAP 有效负载可能包括对 IP 传输延迟检测协议、加密算法、生存期等的配置更改。更新后的配置要么立即应用,要么延迟应用。ATD和DTD值分别用于实现激活新TEK和删除现有TEK的时间。如果必须缩短现有 TEK 生存期,则在推送消息中相应设置 DTD 值。推送消息中的新 TEK 将根据有效负载中的 ATD 值激活。

  • 发送 TEK 或 KEK 的删除密钥通知。

    GC/KS 可以在推送消息中发送可选的删除通知有效负载,用于删除成员上的密钥和 SA。推送消息包含协议 ID,指示删除通知是针对 TEK 还是 KEK。组成员路由器根据有效负载中包含的组 ID 和 SPI 值删除密钥。删除特定的 TEK 或 KEK 可以使用 DTD 属性中指定的延迟值来完成。如果延迟值为 0,且有效负载包含特定的 SPI,则匹配的 TEK 或 KEK 将立即删除。如果需要删除组中的所有 TEK 或 KEK(或两者),则有效负载中相应协议 ID 的 SPI 值将设置为 0。

  • 从组 VPNv2 中的组 VPN 中移除成员路由器。

    推送消息用于允许 GC/KS 从组 VPN 中删除成员。在一种情况下,GC/KS 发送仅包含旧 SA 和较小 DTD 值的密钥重钥消息。组成员路由器安装新的、较小的 DTD 值。由于未收到新的 SA 密钥,因此成员路由器会尝试使用该 groupkey-pull 方法重新注册。此重新注册尝试被 GC/KS 拒绝,从而从组 VPN 中删除成员。在第二种情况下,GC/KS 为旧 SA 的 SPI 发送删除有效负载。组成员路由器会立即删除 SA,并尝试使用该 groupkey-pull 方法重新注册。此重新注册尝试被 GC/KS 拒绝,从而从组 VPN 中删除成员。

注册的 MX 系列组成员向 GC/KS 发送单播 PUSH ACK 消息,以确认收到原始推送消息。

重新生成组成员的密钥(groupkey-pull 方法)

对于组成员密钥更新,使用该 groupkey-pull 方法,当现有 TEK 或 KEK 软生存期剩余 7% 到 5% 时,组成员通常会向 GC/KS 重新注册。如果现有 IKE SA 可用,则在拉取消息中使用该 SA。GC/KS 使用新密钥响应后,旧密钥和新密钥都可以用于解密。但是,在旧密钥的生存期剩余 30 秒之前,新密钥不会用于加密。如果现有 IKE SA 不可用,则拉取消息将导致组成员与 GC/KS 之间进行新的 IKE 协商。

从组成员收到有关特定组VPN的拉取消息后,GC/KS会使用该组的所有TEK和KEK进行响应。

如果 GC/KS 的响应中未包含任何现有 SA,则组成员将删除丢失的 SA。

以GC/KS为例,生命周期配置为3600秒,连接到一个组成员,无需重传。根据服务器配置,当生存期剩余 10% 时,GC/KS 会生成一个新密钥。然而,当剩余寿命的 5% 到 7% 时,组成员会在 GC/KS 重新注册。

图 4 表示了 GC/KS 和组成员之间的密钥更新过程。
图 4:组成员密钥重新生成 Timeline of cryptographic key lifecycle events in group communication system, showing key generation, expiration, re-registration, and interactions between group controller and members.

对组成员进行身份验证

Junos OS 不为组 VPNv2 中的组 VPN 提供公钥基础架构 (PKI) 支持。因此,预共享密钥用于组成员身份验证。

分片组 VPNv2 流量

由于标头保留功能和底层路由基础架构的使用,有必要在加密之前对数据包进行分片(如果无法阻止)。

因此,支持预分段,建议用于所有部署。

为避免后分段,请在组 VPNv2 配置中为 DF 位设置 clearsetcopy 选项。

根据此标志设置,IPsec 报头将 df-bit clearsetcopy 或 来自内部数据包。

注意:

DF 位的 clear 选项设置为默认值。

示例 DF 位配置

[edit]
security {
    group-vpn {
        member {
            ipsec {
                vpn group-vpn-name {
                    df-bit clear;
                }
            }
        }
    }
}

加密组 VPNv2 流量

组成员根据 GC/KS 提供的组 SA 和密钥对流量进行加密。组 VPNv2 加密路径如下:

  1. 数据包转发引擎收到的数据包将根据流匹配进行检查。如果找到匹配项,则进一步处理和传输数据包。

  2. 如果未找到匹配项,则执行规则查找。如果找到匹配项,则会创建流程,然后对数据包进行进一步处理和传输。

  3. 如果规则查找失败,数据包将被丢弃。

注意:

数据包处理期间不会触发组 SA。

解密组 VPNv2 流量

注册成功并安装组 VPN SA 后,将创建 ESP 会话。组 VPNv2 创建源和目标 IP 为零的 ESP 会话。由于 ESP 会话已在 SA 安装时创建,因此数据包应与现有 ESP 会话匹配。

组 VPNv2 解密路径如下:

  1. 数据包转发引擎接收到的数据包需要进行分段检查。如果数据包已分段,则会将其组装在一起以进行进一步处理。

  2. 数据包组装完成后或如果数据包未分片,则在五元组解密流查找中使用零源和目标 IP。如果找到匹配项,则进一步处理和传输数据包。

  3. 如果解密流查找失败,将根据源 IP 和目标 IP 为零的 SPI 流检查数据包。

  4. 如果 SPI 流查找失败,数据包将被丢弃。

  5. 如果找到匹配的 SPI 流,将创建解密流,以避免对后续数据包进行 SPI 流查找。

为 VPNv2 组配置路由实例

控制和数据流量都支持路由实例。要对控制平面流量启用路由实例支持,以便组成员到达给定 VRF 路由实例中的 GC/KS,请在[edit security group-vpn member ike gateway gateway-name local-address address]层次结构级别添加该routing-instance语句。

支持数据平面数据包的路由实例不需要其他 CLI,因为它是根据应用服务集的介质接口确定的。

建立多个组、策略和 SA

Junos OS 为组 VPNv2 中的每个服务集提供一个组 VPN 支持。但是,可以创建多个服务集来支持路由实例中的多个组。每个组可以配置多个 SA。但是,不支持对同一流量密钥/SPI 采用多个策略。如果服务器为同一 TEK 发送两个策略,则必须将它们配对才能被接受,例如 A-B 和 B-A,其中 A 和 B 是 IP 地址或子网。如果收到针对给定 TEK 的多个未配对策略,则注册将失败,并生成系统日志消息。

与多个合作的 GC/KS 连接

要使组成员在合作模式下使用 GC/KS,配置将得到扩展,以允许服务器列表中最多有四台服务器。

在使用该 groupkey-pull 方法时重新生成密钥期间,组成员会尝试连接到 GC/KS。当与 GC/KS 连接失败时,组成员会尝试重新连接到 GC/KS。以 10 秒为间隔重试 3 次后,如果未恢复与 GC/KS 的连接,则组成员会尝试与服务器列表中的下一个可用服务器建立连接。重复此过程,直到组成员连接到 GC/KS。在此期间,组成员上未过期的 GDOI SA 不会被清理,因此组 VPN 流量不会受到影响。在这种情况下,密钥更新和硬生存期到期之间的时间间隔为组成员提供了足够的时间连接到下一个可用服务器。

实施 IP 传输延迟检测协议(基于时间的防重放保护)

实施 IP 传输延迟检测协议不需要任何配置。MX 系列组成员获得重放窗口大小,用作来自密钥服务器的推送或拉取消息的 GAP 有效负载的一部分。如果接收到的窗口大小为 0,则禁用基于时间的防重放保护。

如果启用了 IP 传输延迟检测协议,发送方将添加其当前时间戳并对数据包进行加密。接收方解密数据包,并将其当前时间与数据包中的时间戳进行比较。超出窗口大小的数据包将被丢弃。因此,所有组成员都应使用网络时间协议 (NTP) 同步其时钟。

IP 传输延迟检测协议时间以秒为单位。有关详细信息,请参阅 IP 传输延迟检测 Protocol-draft-weis-delay-detection-01

注意:

与 NTP 相关的所有延迟问题也适用于 IP 传输延迟检测协议。因此,建议最小窗口大小为 1 秒。

更改组 VPNv2 配置

大多数组 VPNv2 配置更改都会导致删除现有 SA 并重新注册。这将使用新的流量密钥触发第 1 阶段和 SA 下载。

绕过组 VPNv2 配置

如果路由协议等某些流量需要绕过 VPNv2 组中的组 VPN,则需要在应用服务集的接口上配置服务过滤器。与服务过滤器匹配的数据包不会进入 PIC 进行服务处理,而是直接转发到路由引擎。

示例服务集过滤器配置

[edit interfaces]
interface-name {
    unit 0 {
        family inet {
            service {
                input {
                    service-set service-set-name service-filter filter-name;
                }
                output {
                    service-set service-set-name service-filter filter-name;
                }
            }
        }
    }
}

在 MX 系列成员路由器上实施部分故障开放

默认情况下,如果组成员路由器由于连接丢失而无法从 GC/KS 获取 SA,则数据包将被丢弃。如果希望在组成员与 GC/KS 之间发生通信故障时,某些流量以未加密的方式通过,则必须在 [edit security group-vpn member ipsec vpn vpn-name ] 层次结构级别配置规则fail-open

仅在服务器连接断开时,才会对流量应用故障开放规则。一旦连接恢复并从 GC/KS 收到密钥,故障开放规则将被停用。

故障打开规则配置示例

[edit security group-vpn member ipsec vpn vpn-name]
fail-open {
    rule rule-name{
        source-address source-ip-address
            destination-address destination-ip-address}
        }
    }

最多可以为任何给定组配置 10 个故障开放规则。

支持的 GDOI IPsec 参数

每个 GDOI 组都有一个唯一的 ID。它用作 GC/KS 和组成员之间的公共基础,用于通信组 SA 和组密钥。

在注册过程中,GC/KS 向组成员发送安全性关联传输加密密钥 (SA TEK)。有关整个组安全策略的所有参数均在 GC/KS 上配置。组成员使用 SA TEK 来保护彼此之间交换的流量。 表 3 显示了 SA TEK 的参数。

表 3:SA TEK 参数

参数

支持的值

加密

  • DES-CBC

  • 3DES-CBC

  • AES-CBC 128

  • AES-CBC 192

  • AES-CBC 256

诚信

  • HMAC-MD5-96

  • HMAC-SHA1-96

  • HMAC-SHA-256-128

生存期

任何支持的值

除了加密算法之外,应由组成员加密的流量也是 SA TEK 策略(流量选择器)的一部分。

以下语句可用于瞻博网络组成员。因此,必须在 IKE 层次结构级别下指定地址。枚举也会被确定优先级。因此,在以下示例配置中,KS1 先于 KS2 联系。

GDOI IPsec 参数配置示例

[edit security]
group-vpn {
    member {
        ike {
            gateway gateway-name {
                ike-policy policy-name;
                server-address <IP_KS1> <IP_KS2> <IP_KS3> <IP_KS4>;
                local-address <IP_GM> routing-instance routing-instance-name;
            }
        }
        ipsec {
            vpn vpn-group-name {
                ike-gateway gateway-name;
                fail-open {
                    rule rule-name {
                    source-address 198.51.100.1/24 
                    destination-address 192.0.2.1/24 
                    }
                }
                group group-ID;
                match-direction output;
            }
        }
    }
}

支持的 GDOI IKEv1 参数

在组 VPNv2 环境中的注册过程中,组成员仅使用 IKEv1。 表 4 概述了 IKEv1 SA 的定义参数。
表 4:组成员的 IKEv1 SA 参数

参数

支持的值

加密

  • DES-CBC

  • 3DES-CBC

  • AES-CBC 128

  • AES-CBC 192

  • AES-CBC 256

身份验证

预共享密钥(最少 20 个标志)

诚信

  • MD5

  • SHA1

  • SHA256

Diffie-Hellman 组

  • 第 1 组

  • 第 2 组

  • 第 5 组

  • 第 14 组

生存期

任何支持的值

上述IKEv1标准配置如下:

应用动态策略

input语句下的 ipsec-group-vpn and output 选项指定当应用服务集的接口为传入接口还是传出接口时,是使用从服务器接收的动态策略。这提供了在传入和传出方向上指定不同规则的灵活性。

支持 TOS 和 DSCP

服务类型 (TOS) 和 DiffServ 代码点 (DSCP) 位从内部数据包复制到 ESP 数据包。

组成员的互作性

思科的 GDOI 实施称为组加密传输 (GET) VPN。虽然 Junos OS 中的组 VPNv2 和 Cisco 的 GET VPN 均基于 RFC 6407( 解释的组域),但在包括瞻博网络安全和路由设备以及 Cisco 路由器的网络环境中部署 GDOI 时,您需要注意一些实施差异。有关更多信息,请参阅当前的 Junos OS 发行说明。

组 VPNv2 互作性如下:

  • Junos OS 提供与 Cisco IOS GC/KS 支持的互作性支持。

  • Junos OS 不支持组 VPNv2 与 SRX 系列组 VPN 服务器的互作性。

    表 5:组 VPNv2 互作性

    组成员

    SRX 组成员

    MX 组 VPNv2 成员

    Cisco 集团成员

    SRX 气相色谱

    SRX KS

    思科 GC/KS

    MX 组 VPNv2 成员

    是的

    是的

    是的

    是的

    SRX 组成员

    是的

    是的

    是的

    是的

Junos OS 不支持在 Cisco GC/SK 服务器上用于向组策略添加例外的拒绝策略。变通方法可通过在 MX 系列组成员上配置防火墙规则来完成此作。此外,Junos OS 组成员可以使用拒绝策略,方法是不使协商失败,而只需忽略内容即可。这使得系统管理员能够轻松管理同时 Cisco 组成员和 Junos OS 组成员共存的网络。

组 VPNv2 限制

Junos OS 组 VPNv2 不支持以下内容:

  • 组播推送消息

  • 组播流量

  • GDOI SNMP MIB

  • 服务器发送的策略中的协议和端口。组成员仅采用策略中指定的 IP 地址/子网。

  • 同一流量密钥/SPI 的多个未配对策略

  • 在 IKE 网关配置中跨路由实例的本地和远程 IP 重叠

  • 重叠组 VPNv2 策略,可能导致 SA 不匹配

  • IPv6 控制和数据流量

  • IPsec 和组 VPN 在同一服务集中共存

  • NAT 和 ALG 等服务可以在同一服务集中共存。NAT 和组 VPN 可以在不同的服务集中共存。但是,它们不能在同一服务集中共存。

  • 站点到站点 (S2S) VPN 和动态端点 (DEP) VPN 可以在不同的服务集中与组 VPN 共存。但是,它们不能在同一服务集中共存。

  • 同一服务集中有多个组

  • 通过 SRX 系列 GC/KS 提供组成员支持

  • 组成员与 SRX 系列组成员的支持 组成员

  • 逻辑密钥层次结构 (LKH)

  • 平滑重启

  • 高可用性

  • 统一 ISSU

  • PKI 支持身份验证