「SR-MPLS-TE」- 原理 | 集中式架构 | 通过控制器管理

在 SR-MPLS TE 隧道创建之前,需要在各转发器之间建立 IS-IS/OSPF 邻居关系,实现网络层互通,完成标签的分配以及网络拓扑信息的收集,并将标签和网络拓扑信息上送给控制器,供控制器进行路径计算。

SR 标签由 IGP 协议发布。控制器使用 BGP-LS 收集网络拓扑、网络带宽、时延、标签等属性;

根据约束条件,控制器计算出符合业务需求的转发路径,然后将算路结果通过 PCEP 或 NETCONF 下发到转发器。也可由工程师手工配置严格转发路径,然后通过 PCEP 将路径托管到控制器。

标签分配

SR-MPLS TE 方案中,由转发器的 IGP 协议分配标签,并通过 BGP-LS 将分配的标签上报给控制器:

  • SR-MPLS TE 主要使用邻接标签,也可以使用节点标签;
  • 邻接标签是源节点分配的,只在本地有效,并且具有一定的方向性;

标签分配过程示例

在设备上分别使能 IGP SR 能力。对于使能了 SR 能力的 IGP 实例,会对所有使能 IGP 协议的出接口分配 SR 邻接标签;

邻接标签通过 IGP 的 SR 协议扩展,泛洪到整个网络中。以 R4 为例,IGP 分配标签的具体过程如下:

  1. R4 的 IGP 协议为其邻接分配本地动态标签。例如为邻接 R4->R5 分配的邻接标签为 1045;
  2. R4 的 IGP 协议发布邻接标签,泛洪到整个网络;
  3. R4 上生成邻接标签对应的标签转发表;
  4. 网络中的其它设备的 IGP 协议学习到 R4 发布的邻接标签,但是不生成标签转发表;

其他设备按照 R4 的方式分配和发布邻接标签,生成标签转发表。BGP-LS 将带有 SR 标签信息的网络拓扑和 TE 信息上报给控制器;

拓扑收集

通过 IGP 协议收集网络拓扑信息

转发器的 IGP 协议收集网络拓扑信息,收集 SR 的邻接标签和节点标签;

对于使能了 SR 能力的 IGP,会为所有使能 IGP 协议的出接口分配 SR 邻接标签。邻接标签通过 IGP 泛洪到整个网络中。

通过 BGP-LS 上报网络拓扑信息

BGP-LS 将带有 SR 标签信息的网络拓扑和 TE 信息上报给控制器;

在华为早期的解决方案中,也可以使用 IGP 收集网络拓扑。由于 IGP 具有域的限制,当前主要采用 BGP-LS;

隧道创建

SR-MPLS TE(Segment Routing-MPLS Traffic Engineering)是指基于 TE 的约束属性,利用 SR 创建的隧道;

如图所示,两条 LSP 分别作为主路径和备份路径。两条 LSP 隧道都对应同个隧道 ID 的 SR-MPLS TE 隧道;

SR-MPLS TE 隧道创建包括:隧道属性配置;隧道建立过程;

隧道属性配置

SR-MPLS TE 隧道的属性是创建隧道的依据。SR-MPLS TE 隧道可以在控制器或转发器上配置;
1)控制器上配置隧道:在控制器上进行 SR-MPLS TE 隧道配置后,控制器将隧道属性通过 NETCONF 下发给转发器,转发器通过 PCEP 协议将隧道托管给控制器进行管理;
2)转发器上配置隧道:在转发器上进行 SR-MPLS TE 隧道配置后,转发器将隧道托管给控制器进行管理;

手工配置显示路径隧道

[R1] interface tunnel1
[R1-Tunnel1] ip address unnumbered interface LoopBack0
[R1-Tunnel1] tunnel-protocol mpls te
[R1-Tunnel1] destination 3.3.3.3
[R1-Tunnel1] mpls te tunnel-id 1
[R1-Tunnel1] mpls te signal-protocol segment-routing
[R1-Tunnel1] mpls te path explicit-path p1 #手工指定路径

控制器 NETCONF 下发隧道配置

[R1] interface tunnel1
[R1-Tunnel1] ip address unnumbered interface LoopBack0
[R1-Tunnel1] tunnel-protocol mpls te
[R1-Tunnel1] destination 3.3.3.3
[R1-Tunnel1] mpls te tunnel-id 1
[R1-Tunnel1] mpls te signal-protocol segment-routing
[R1-Tunnel1] mpls te pce delegate   #托管给 PCE Server

SR-MPLS TE 隧道是通过 Tunnel 接口来建立和管理的,因此需要在隧道的入节点上配置 SR-MPLS TE 隧道接口;

在转发器上配置 SR-MPLS TE 隧道的方式除了手工配置显示路径外,也可以使用头节点算路功能;

隧道建立过程(控制器算路)

当配置某种业务(例如 VPN 业务)时,该业务需要绑定到 SR-MPLS TE 隧道,将按照以下过程建立 SR-MPLS TE 隧道:

  1. 控制器基于 SR-MPLS TE 的隧道约束属性,通过路径计算单元 PCE(Path Computation Element)进行类似普通 TE 的路径计算,生成一个标签栈(即算路结果);
  2. 控制器通过 NETCONF 将隧道配置信息下发给转发器、通过 PCEP 将标签栈下发给转发器;
  3. 根据控制器下发的隧道配置和标签栈信息,转发器将建立 SR-MPLS TE 隧道 LSP;

基于控制器的 SR-MPLS TE 隧道建立的优势

  • 支持带宽计算与资源预留
  • 可以站在全局视角计算最优路径
  • 控制器可以与应用配合,由应用提出网络诉求,控制器计算满足诉求的转发路径,实现业务驱动网络
  • 省去大量的手工配置,适合大规模网络

流量导入

SR-MPLS TE(隧道接口)引流方式:

  • 隧道策略:按照隧道策略配置的优先级顺序,来选择 SR-TE 隧道;
  • 静态路由:配置静态路由时,将路由的出接口指定为 SR-TE 隧道的接口;
  • 自动路由:将 SR-TE 隧道当做逻辑链路参与 IGP 路由计算;
  • 策略路由:在策略路由的执行执行语句中,使用 SR-TE 隧道接口作为出接口;

数据转发

转发器上根据 SR-MPLS TE 隧道 LSP 对应的标签栈,对报文进行标签操作,并根据栈顶标签逐跳查找转发出接口,指导数据报文转发到隧道目的地址;

标签转发的类型(标签结构)

主要分为:

  • 基于邻接标签转发:基于邻接标签转发也被称为严格路径方式转发。标签栈严格确定转发路径,不支持负载分担;
  • 基于节点 + 邻接标签转发:基于节点标签 + 邻接标签转发也称作松散路径方式转发。设备在处理节点标签时,可以按照最短路径进行转发,也可以进行负载分担,其路径并不是严格固定;

当数据转发时,标签的切换

当报文转发给下一跳时,最外层标签是下一跳出方向的标签。这样,下一跳收到报文后,会根据最外层标签选择出接口。

补充说明

如果没有控制器,也可以在 SR-MPLS TE 隧道的头节点使能 CSPF 算路功能,这样转发器也可以使用 CSPF 完成路径计算;