跳到主要内容

5. 使用 Controller 构建 P2MP Tree

Controller 配置有 SR P2MP Policy 及其 CPs, 负责计算 PTIs 并在 SR domain 中实例化. Provisioning 细节不在本文范围内.

5.1. Controller 上的 SR P2MP Policy

Operator, network node 或 machine 可以向 controller 配置 Root address, Leaf-node set 和 CPs. 随后可通过 signaling protocol 在 Root node 上实例化 policy 和 CPs. 反过来, 它们也可以先配置在 Root node 上, 再在 controller 上实例化. CP 约束和优化目标基于 SR Policy 工作, 也 MAY 使用其他 P2MP tree computation 约束.

5.2. Controller Functions

Controller 通常执行:

  • Topology discovery: 跨 IGP areas, levels 或 Autonomous Systems (ASes) 发现拓扑.
  • Capability exchange: 发现节点参与 SR P2MP Policy 的能力, 并通告其支持 SR P2MP Policy 的能力.

5.3. P2MP Tree Compute

Controller 为 SR P2MP Policy 的 CPs 计算一个或多个 PTIs. 如果无法计算合适的 P2MP tree, CP 可以没有 PTI. Controller MUST 按 RFC 9524 要求计算稳态无环的 P2MP tree.

当 topology 变化影响 tree instance, 或根据新的 network state 可以找到更优路径时, controller SHOULD 修改 CP 的 PTI. Controller MAY 采用 Make-Before-Break: 创建新 PTI, 网络中实例化后激活新实例, 然后移除旧 PTI, 以降低流量丢失.

5.4. SID Management

Controller 为 PTI 的 Replication segments 分配 Replication-SIDs. 它们可以由 controller 动态分配, 或由配置 SR P2MP Policy 的实体静态分配.

对 SR-MPLS, Replication-SID 可以从 SR Local Block (SRLB) 或 SR Global Block (SRGB) 分配. RECOMMENDED 从 SRLB 分配, 因为 Replication segments 对 PTI 的每个节点是本地的. NOT RECOMMENDED 从 SRGB 分配, 因为 SRGB 在 SR domain 中具有全局意义, 大量 PTIs 可能耗尽该 block.

Controller 也可以分配 BSID, 或允许 Root node 分配 BSID. 对 SR-MPLS, RECOMMENDED 从 SRLB 分配 SR P2MP Policy 的 BSID. Controller 可配置 reserved block 用于 Replication-SIDs 和 BSIDs; 这些 block 可与 SRLB, SRGB 或二者重叠, 但冲突消解过程不在本文范围内.

5.5. 在 Nodes 上实例化 P2MP Tree Instance

计算 P2MP trees 后, controller 使用 PCEP, BGP, NETCONF/YANG 或其他机制实例化组成 PTI 的 Replication segments. Nodes SHOULD 报告 Replication segment 成功实例化. 如果实例化失败, 例如 Replication-SID 与节点上的另一个 SID 冲突, node SHOULD 报告失败, 最好包含原因.

如果实例化失败, controller SHOULD 尝试重新实例化, 且 SHOULD 对尝试次数设置上限. 多次失败后, controller SHOULD 通过 syslog 等机制生成告警. 这些告警 SHOULD 限速. 如果某些 Replication segments 实例化失败, controller MAY 拆除 PTI; 如果 Root node 上的 Replication segment 实例化失败, RECOMMENDED 拆除该 PTI.

一种批量方式是先实例化 Leaf nodes 和 intermediate Replication nodes 的 Replication segments. 如果它们全部成功, 再实例化 Root node 上的 Replication segment. 如果 Root 成功, controller 可以在需要承载流量时立即激活该实例.

5.6. Protection

5.6.1. Local Protection

PTI 上的 link, node 或 replication branch 可以使用 SR Policies 保护. Backup SR Policies 关联到 Replication segment 的 replication branches, 并编程进 data plane. Backup SR Policy 的 segment list 叠加到 replication branch 的 downstream Replication-SID 上. 也可以使用 LFA, TI-LFA, Micro-Loop 或 SR Micro-Loop prevention 机制保护 PTI 的 links/nodes.

5.6.2. Path Protection

如果 topology 允许, controller 可以创建 disjoint backup tree instance 提供 end-to-end tree protection. 通常可通过 backup CP 的约束或优化目标确保其 PTIs 与 primary/active CP 的 PTIs 分离.