4. DetNet 机制的控制平面 (DetNet Control Plane for DetNet Mechanisms)
本节讨论 [RFC8655] 中定义的 DetNet 机制所请求的控制平面特性, 包括 PREOF. 不同 DetNet 服务可以根据需求实现其中任意部分或全部特性.
4.1. 显式路径
DetNet 需要显式路径 (explicit paths), 以提供稳定的转发服务, 并保证网络拓扑变化时 DetNet 服务不受影响. 为在 DetNet 中实现显式路径, 控制平面需要具备以下特性:
-
路径计算: DetNet 显式路径需要满足应用程序的 Service Level Agreement (SLA) 要求, 包括带宽, 最大端到端延迟, 最大端到端延迟变化, 最大丢包率等. 在分布式网络系统中, 可以使用带 Constrained Shortest Path First (CSPF) 的 IGP 为 DetNet 服务计算一组可行路径. 在集中式网络系统中, 控制器可以基于从 DetNet 域收集到的网络信息, 计算满足 DetNet 要求的路径.
-
路径建立: 必须将为 DetNet 服务计算出的路径发送, 配置或信令通知给网络设备, 以便相应的 DetNet flow 能够按照指定路径穿越网络域.
4.2. 资源预留
DetNet flows 预期应免受拥塞影响, 因此为 DetNet 服务预留足够资源可以保护该服务免受拥塞. 网络中有多种资源可以分配给 DetNet flows, 例如数据包处理资源, 缓冲区资源以及输出端口带宽. 指定 DetNet 服务请求的网络资源由 SLA 要求和网络能力决定.
-
资源分配: 端口带宽是网络设备的一项基本属性, 容易获取或计算. 在当前流量工程实现中, 网络资源分配通常等同于带宽分配. DetNet flow 由 [RFC9016] 中定义的流量规范刻画, 其中包括 Interval, MaxPacketsPerInterval 和 MaxPayloadSize 等属性. 流量规范描述的是最坏情况而非平均情况, 以确保预留足够的带宽和缓冲资源来满足该规范. 但是, 在 DetNet 场景中, 资源分配并不只是简单的带宽预留. 例如, 转发期间可能还需要分配缓冲区并指定所需的排队规则. 此外, 必须确保节点上有资源执行 DetNet service sub-layer 功能, 例如通过 PREOF 进行保护和重排序.
-
带有或不带有流区分的设备配置: 资源分配可以通过设备配置来保证. 例如, 输出端口带宽预留可以配置为队列管理和端口调度算法的参数. 当 DetNet flows 被聚合时, 一组 DetNet flows 共享网络设备中分配的资源. 当 DetNet flows 被独立处理时, 设备应维护 DetNet flow 与其对应资源之间的映射关系.
4.3. PREOF 支持
DetNet 通过 Packet Replication, Elimination, and Ordering Functions (PREOF) 支持路径冗余. DetNet flow 会被复制并经由多条网络路径转发, 以避免设备或链路故障导致的数据包丢失. 一般而言, 可用于建立显式路径的当前控制平面机制, 无论是分布式还是集中式, 都支持 point-to-point (P2P) 和 point-to-multipoint (P2MP) 路径建立. PREOF 需要能够从数据包复制点到数据包合并和排序点, 计算并建立一组多条路径, 例如 MPLS 网络中的多个 Label Switched Path (LSP) segment. 还必须确保 DetNet flows 或 DetNet member flows 到显式路径段的映射. 支持这些新特性需要协议扩展. 还需要术语来指代这组协调后的路径段, 例如在 DetNet MPLS 数据平面中可称为 "LSP graph".
4.4. 数据平面特定注意事项
4.4.1. MPLS 域中的 DetNet
在本文档中, "legacy MPLS" 定义为未使用 Segment Routing 的 MPLS, 关于带 Segment Routing 的 MPLS 见第 4.4.3 节, 并且也不包括 MPLS Transport Profile (MPLS-TP) [RFC5960].
在 legacy MPLS 域中, 通常使用基于分布式信令协议的动态控制平面来分发用于转发 MPLS 数据包的 MPLS 标签. 最常用于标签分发的动态信令协议是 LDP [RFC5036], RSVP-TE [RFC4875] 和 BGP [RFC8277]. 其中 BGP 支持基于 BGP 的 MPLS Layer 3 VPNs [RFC4384], Layer 2 VPNs [RFC4664] 和 EVPNs [RFC7432].
这些协议中的任何一种都可用于分发 DetNet Service Labels (S-Labels) 和 Aggregation Labels (A-Labels) [RFC8964]. 如 [RFC8938] 所讨论, S-Labels 类似于其他 MPLS 服务标签, 例如 pseudowire 标签以及 L3 VPN 和 L2 VPN 标签, 可以通过类似方式分发, 例如使用 targeted LDP 或 BGP. 如果这些协议用于 DetNet, 则需要扩展以支持 DetNet 特定特性, 例如 PREOF, 聚合 (A-Labels), 节点资源分配和队列放置.
4.4.2. IP 域中的 DetNet
在本文档中, "legacy IP" 定义为未使用 Segment Routing 的 IP, 关于带 Segment Routing 的 IP 见第 4.4.3 节. 需要注意的是, DetNet IP 数据平面 [RFC8939] 比 DetNet MPLS 数据平面 [RFC8964] 更简单, 并且不支持 PREOF, 因而每个 flow 或 flow aggregate 只需要一条路径. 因此, 可能需要的协议扩展预计较为有限, 例如限于现有 IP 路由协议.
4.4.3. Segment Routing 域中的 DetNet
Segment Routing [RFC8402] 是一种构建网络域的可扩展方法. 它通过编码在数据包头部中的源路由提供显式路由, 并结合集中式网络控制来计算穿越网络的路径. 转发路径连同关联策略一起分发给网络边缘节点, 供其在数据包头部中使用. 与 RSVP-TE 等分布式信令协议相比, Segment Routing 减少了网络信令量. 与 legacy MPLS 和 IP 路由所需状态相比, 它也减少了核心节点中的状态量, 因为状态现在位于数据包中而不是路由器中. 这对 DetNet 可能很有用, 因为 DetNet 预计会有大量 flows 穿越网络域, 如果采用其他方式, 就需要为穿越网络中每个节点的每个 flow 实例化状态.
请注意, [RFC8964] 和 [RFC8939] 中描述的 DetNet MPLS 和 IP 数据平面被构造为兼容两种 Segment Routing: Segment Routing over MPLS (SR-MPLS) [RFC8660] 和 Segment Routing over IPv6 (SRv6) [RFC8754] [RFC8986].
4.5. 封装和元数据支持
为了有效管理 DetNet flows, 控制器平面需要清楚理解底层网络节点的封装和元数据能力. 这需要一种控制机制, 能够发现, 配置和管理每个 flow 的这些参数.
控制器平面需要理解并管理网络节点的封装和元数据能力, 以便有效供应 DetNet flows. 这一过程可能需要一个发现阶段, 控制器在其中发现每个节点支持哪些封装类型, 例如 MPLS 和 IP, 以及哪些元数据方案, 例如 sequencing 和 timestamping. 发现完成后, 控制器可以指示节点为给定 flow 应用特定封装和配套元数据. 这确保 DetNet 数据包在整个网络中得到一致处理. 例如, 控制器可以指示某个节点对特定 flow 使用 MPLS 头部并添加序列号.