跳到主要内容

1. Introduction (简介)

分段路由 (Segment Routing, SR) 利用了源路由范式 (source routing paradigm)。节点通过一个SR策略 (SR Policy) 来引导数据包, 该策略被实例化为一个称为"段" (segments) 的有序指令列表。段可以表示任何指令, 基于拓扑或基于服务。段可以具有SR节点本地的语义, 也可以在SR域内是全局的。SR支持每流显式路由 (per-flow explicit routing), 同时仅在SR域的入口节点维护每流状态 (per-flow state)。

段通常通过其段标识符 (Segment Identifier, SID) 来引用。

段可能与拓扑指令相关联。拓扑本地段 (topological local segment) 可能指示节点通过特定的出接口 (outgoing interface) 转发数据包。拓扑全局段 (topological global segment) 可能指示SR域通过特定路径将数据包转发到目的地。同一目的地可能存在不同的段, 每个段具有不同的路径目标 (path objectives), 例如最小化哪个度量 (metric), 指定了什么约束 (constraints)。

段可能与服务指令相关联, 例如数据包应该由与该段关联的容器 (container) 或虚拟机 (Virtual Machine, VM) 处理。段可能与QoS处理相关联, 例如以x Mbps的速率对使用此段接收的数据包进行整形 (shape)。

SR架构支持与段关联的任何类型的指令。

SR架构支持任何类型的控制平面: 分布式、集中式或混合式。

在分布式场景中, 段由IS-IS、OSPF或BGP分配和信令。节点单独决定在SR策略上引导数据包, 例如预计算的本地保护 (pre-computed local protection) [RFC8355]。节点单独计算SR策略。

在集中式场景中, 段由SR控制器 (SR controller) 分配和实例化。SR控制器决定哪些节点需要在哪些源路由策略 (source-routed policies) 上引导哪些数据包。SR控制器计算源路由策略。SR架构不限制控制器如何编程网络。可能的选项包括网络配置协议 (Network Configuration Protocol, NETCONF)、路径计算元素通信协议 (Path Computation Element Communication Protocol, PCEP) 和BGP。SR架构不限制SR控制器的数量。具体来说, 多个SR控制器可以编程同一个SR域。SR架构允许这些SR控制器发现哪些SID在哪些节点实例化, 以及哪些本地 (SRLB) 和全局 (SRGB) 标签集在哪个节点可用。

混合场景将基础分布式控制平面与集中式控制器相结合。例如, 当目的地在IGP域之外时, SR控制器可以代表IGP节点计算SR策略。SR架构不限制作为分布式控制平面一部分的节点如何与SR控制器交互。可能的选项包括PCEP和BGP。

主机 (Hosts) 可以是SR域的一部分。集中式控制器可以通过将策略推送给主机或响应主机的请求来通知主机策略。

SR架构可以在各种数据平面上实例化。本文档介绍了SR的两种数据平面实例化: 基于MPLS的SR (SR over MPLS, SR-MPLS) 和基于IPv6的SR (SR over IPv6, SRv6)。

SR可以直接应用于MPLS架构, 无需对转发平面进行任何更改 [SR-MPLS]。段被编码为MPLS标签 (label)。SR策略被实例化为标签栈 (stack of labels)。要处理的段 (活动段, active segment) 位于栈顶。当一个段完成时, 相关的标签从栈中弹出 (popped)。

SR可以应用于IPv6架构, 使用一种称为SR头部 (SR Header, SRH) [IPv6-SRH] 的新型路由头部。指令与段关联并编码为IPv6地址。SRv6段也称为SRv6 SID。SR策略被实例化为路由头部中的SRv6 SID有序列表。活动段由数据包的目标地址 (Destination Address, DA) 指示。下一个活动段由SRH中的SegmentsLeft (SL) 指针指示。当SRv6 SID完成时, SL递减, 下一个段被复制到DA。当数据包被引导到SR策略上时, 相关的SRH被添加到数据包中。

在基于IGP的分布式控制平面上下文中, 定义了两种拓扑段: IGP邻接段 (IGP-Adjacency segment) 和IGP前缀段 (IGP-Prefix segment)。

在基于BGP的分布式控制平面上下文中, 定义了两种拓扑段: BGP对等段 (BGP peering segment) 和BGP前缀段 (BGP-Prefix segment)。

SR策略的头端 (headend) 将SID (称为绑定段或BSID, Binding segment) 绑定到其策略。当头端接收到活动段与本地SR策略的BSID匹配的数据包时, 头端将数据包引导到关联的SR策略中。

本文档为SR-MPLS和SRv6数据平面定义了IGP、BGP和绑定段。

注意: 本文档定义了分段路由的架构, 包括基本对象和功能的定义以及整体设计的描述。它不定义实现架构的方法 -- 这些内容包含在许多引用的文档中, 其中一些在本文档中提及以方便读者。