在 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 分配标签的具体过程如下:
- R4 的 IGP 协议为其邻接分配本地动态标签。例如为邻接 R4->R5 分配的邻接标签为 1045;
- R4 的 IGP 协议发布邻接标签,泛洪到整个网络;
- R4 上生成邻接标签对应的标签转发表;
- 网络中的其它设备的 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 隧道:
- 控制器基于 SR-MPLS TE 的隧道约束属性,通过路径计算单元 PCE(Path Computation Element)进行类似普通 TE 的路径计算,生成一个标签栈(即算路结果);
- 控制器通过 NETCONF 将隧道配置信息下发给转发器、通过 PCEP 将标签栈下发给转发器;
- 根据控制器下发的隧道配置和标签栈信息,转发器将建立 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 完成路径计算;