跳到主要内容

4. P2MP Tree Instance

PTI 在 SR domain 中建立从 Root node 经由 intermediate Replication nodes 到 Leaf nodes 的 forwarding structure. 它包含 Root node 上的 Replication segment, intermediate Replication nodes 上的零个或多个 Replication segments, 以及 Leaf nodes 上的 Replication segments.

4.1. Leaf Nodes 上的 Replication Segments​

一个 PTI 通常关联一个 multipoint service. 在 Leaf node 上, transport identifier, 即 Tree-SID 或 Leaf node Replication-SID, 也关联 service context, 因为在 core 中高效复制时并不总能分离 transport 和 service context.

对 SR-MPLS, 如果预先知道映射到 PTI 的 multipoint services 可以由其 service label 唯一标识, controller MAY 选择不在 Leaf nodes 上实例化 Replication segments. 上游 Replication nodes 可以在转发前移除 Tree-SID. RFC 9573 中的 upstream-assigned label 或 Domain-wide Common Block (DCB) 是全局唯一 context 的例子.

对 SRv6, PTI 的 Replication segments MUST 在 Leaf nodes 上实例化, 因为无法执行类似 Penultimate Hop Popping (PHP) 的行为: Tree-SID 位于外层 IPv6 Destination Address. 如果多个 services 映射到同一个 SRv6 PTI, service-context SRv6 SID MUST 作为 Segment Routing Header Segment List 的最后一个 segment 编码, 以便 Leaf node 推导 packet processing context (PPC).

4.2. Shared Replication Segments​

Replication segment MAY 在不同 PTIs 之间共享, 例如用于 Replication node 上的 local protection. Shared Replication segment MUST 使用 Root zero (0.0.0.0 for IPv4 and :: for IPv6), Instance-ID zero, 以及在实例化该 segment 的节点上下文中唯一的 Tree-ID 标识:

Root = 0.0.0.0 or ::
Instance-ID = 0
Tree-ID = unique in the local node context

这符合更新后的 Replication-ID 定义. 不同 PTIs 共享 P2MP sub-tree 是可能的, 但相关过程不在本文范围内.

4.3. P2MP Tree Instance 中的 Packet Forwarding​

Packet 被引入 PTI 后, Root node 的 Replication segment 执行 packet replication 并向 downstream nodes 转发副本. 每个复制 packet 携带 downstream Replication segment 的 Replication-SID. Downstream node 可以是 Leaf node, 此时复制终止; 也可以是 intermediate Replication node, 继续复制直到所有 Leaf nodes 都收到 packet.

Replication node 和 downstream node 可以不相邻. SR-MPLS 在 downstream Replication-SID 前插入一个或多个 SIDs 来引导 packet. SRv6 可以使用 downstream Replication-SID 的 LOC, 或可选 segment list, 将复制 packet 引到指定路径.