Segment routingMPLS

Segment Routing MPLS基本原理

基本概念

Segment Routing MPLS特性涉及的概念如下:

  • SR域(Segment Routing Domain):SR节点的集合。
  • SID:即Segment ID,用来标识唯一的段。在转发层面,可以映射为MPLS标签。
  • SRGB(Segment Routing Global Block):用户指定的为Segment Routing MPLS预留的全局标签集合。
  • SRLB(Segment Routing Local Block):用户指定的为Segment Routing MPLS预留的本地标签集合。这些标签在本地配置,仅在本地有效,但是会通过IGP对外发布,所以是全局可见。SRLB当前主要用于配置Binding SID

Segment分类

表1-1 Segment分类

标签 生成方式 作用
Prefix Segment(前缀段) 手工配置。 Prefix Segment用于标识网络中的某个目的地址前缀(Prefix)。Prefix Segment通过IGP协议扩散到其他网元,全局可见,全局有效。Prefix Segment通过Prefix Segment ID(SID)标识。Prefix SID是源端发布的SRGB范围内的偏移值,接收端会根据自己的SRGB计算实际标签值用于生成MPLS转发表项。
Adjacency Segment(邻接段) 源节点通过协议动态分配。也可以手工配置。 Adjacency Segment用于标识网络中的某个邻接。Adjacency Segment通过IGP协议扩散到其他网元,全局可见,本地有效。Adjacency Segment通过Adjacency Segment ID(SID)标识。Adjacency SID为SRGB范围外的本地SID。
Node Segment(节点段) 手工配置。 Node Segment是特殊的Prefix Segment,用于标识特定的节点(Node)。在节点的Loopback接口下配置IP地址作为前缀,这个节点的Prefix SID实际就是Node SID。

Prefix SID、Adjacency SID和Node SID的示例如图1-2所示。

图1-2 Prefix SID、Adjacency SID和Node SID
img

通俗的理解,Prefix SID代表目的地址,Adjacency SID代表数据包的外发链路,可以分别类似于传统IP转发中的目的IP地址和出接口。在IGP区域内,网元设备使用扩展IGP消息将自身的Node SID以及Adjacency SID进行泛洪,这样任意一个网元都可以获得其他网元的信息。

通过按序组合前缀(节点)SID和邻接SID,可以构建出网络内的任何路径。在路径中的每一跳,使用栈顶段信息区分下一跳。段信息按照顺序堆叠在数据头的顶部。当栈顶段信息包含另一个节点的标识时,接收节点使用等价多路径(ECMP)将数据包转发到下一跳。当栈顶段信息是本节点的标识时,接收节点弹出顶部段并执行下一个段所需的任务。

Prefix SID

基于Prefix SID的转发路径是由IGP通过最短路径算法(SPF)计算得出。如图1-3所示,以节点Z为目的节点,其Prefix SID是100,通过IGP扩散之后,整个IGP域的所有设备学习到节点Z的Prefix SID,之后都会使用SPF算法得出一条到节点Z的最短路径(Shortest Path),也即开销最小路径。

图1-3 基于Prefix SID的转发路径
img

如果网络中存在等价路径,则可以实现负载分担(ECMP);如果存在不等价路径,则可以形成链路备份。由此可见,基于Prefix SID的转发路径并不是一条固定路径,头节点也无法控制报文的整条转发路径。

Adjacency SID

图1-4所示,通过给网络中每个邻接分配一个Adjacency SID,然后在头节点定义一个包含多个Adjacency SID的Segment List,就可以严格指定任意一条显式路径(Strict Explicit)。这种方式可以更好的配合实现SDN。

图1-4 基于Adjacency SID的转发路径
img

Adjacency SID + Node SID

图1-5所示,这种方式是将Adjacency SID和Node SID结合,通过Adjacency SID,可以强制整条路径包含某一个邻接。而对于Node SID,节点可以使用SPF算法计算最短路径,也可以负载分担。这种方式的路径并不是严格固定,所以也称作松散路径(Loose Explicit)。

图1-5 基于Adjacency SID + Node SID的转发路径
img

Segment Routing转发机制

Segment Routing可以直接应用在MPLS架构,转发机制没有变化。代表段的SID被编码为MPLS标签。段序列被编码为标签栈。要处理的段位于栈顶。一个段处理完成后,相关标签从标签栈中弹出。

基于MPLS转发机制的SR,通常也称为SR-MPLS。

Segment Routing标签冲突处理原则

由于Prefix SID通过手工配置生成,不同设备上的配置可能发生标签冲突。标签冲突分为前缀冲突和SID冲突,前缀冲突是指相同的前缀关联了两个不同的SID,SID冲突是指相同的SID关联到不同的前缀。

标签冲突处理原则:当冲突产生后,优先处理前缀冲突,之后根据处理结果再进行SID冲突处理,并按如下规则进行优选。

  1. 前缀掩码更大者优选;
  2. 前缀更小者优选;
  3. SID更小者优选。

假如现在有如下四条路由(前缀/掩码 SID):

  • a. 1.1.1.1/32 1
  • b. 1.1.1.1/32 2
  • c. 2.2.2.2/32 3
  • d. 3.3.3.3/32 1

使用冲突处理原则后效果如下:

  1. 先进行前缀冲突处理,a和b为前缀冲突,根据标签冲突处理原则,a的SID比b的SID小,优选a,则处理后:
    • a. 1.1.1.1/32 1
    • c. 2.2.2.2/32 3
    • d. 3.3.3.3/32 1
  2. 再根据上一步处理结果进行SID冲突处理,a和d为SID冲突,根据标签冲突处理原则,a的前缀比d的前缀小,优选a。冲突解决后,最终优选出两条路由:
    • a. 1.1.1.1/32 1
    • c. 2.2.2.2/32 3

Segment routingMPLS
http://example.com/2023/09/12/Segment routing MPLS/
Author
John Doe
Posted on
September 12, 2023
Licensed under