Datacom-HCIE-14 Segment Routing简介

目录

段路由SR(Segment Routing)是基于源路由理念而设计的在网络上转发数据包的一种技术架构。
本文档介绍了Segment Routing的源路由机制、Segment定义、SR-MPLS与SRv6区别和基于华为NetEngine系列路由器的SRMPLS场景化应用。

Segment Routing概述

MPLS LDP与RSVP-TE存在的问题

业务驱动网络:由业务来定义网络的架构5G和云业务的发展改变了网络连接的属性和范围。它们对连接提出了更多的要求,例如更强的SLA保证、

确定性时延或者要求报文携带更多的信息。
如果仍旧按照网络适配业务的思路,则不仅无法匹配业务的快速发展,而且会使网络越来越复杂,变的难以维护。
解决思路就是业务驱动网络,由业务来定义网络的架构——由应用提出需求(时延、带宽、丢包率等),控制器收集网络拓扑、带宽利用率、时延等信息,根据业务需求计算显式路径。

Segment Routing的解决思路


简化协议,基于现有协议扩展:
扩展后的IGP/BGP具有标签分发能力,因此网络中无需LDP,实现协议简化。且设备仅需进行软件升级,无需进行硬件更换,保护现网投资。
引入源路由机制:
通过在头端节点实例化转发策略为标签列表,控制业务流量的转发路径。
由业务来定义网络:
应用提出需求(时延、带宽、丢包率等),控制器收集网络拓扑、带宽利用率、时延等信息,根据业务需求计算显式路径。

SR解决方案

首先业务提出网络需求(时延、带宽、丢包率等),然后控制器集中计算显式路径,最后下发SR路径来承载业务。

SR概述

SR(Segment Routing,段路由)是基于源路由理念而设计的在网络上转发数据包的一种架构。
SR将网络路径分成一个个段(Segment),并且为这些段和网络中的转发节点分配段标识ID。通过对段和网络节点进行有序排列(Segment List),就可以得到一条转发路径。
SR将代表转发路径的段序列编码在数据包头部,随数据包传输。接收端收到数据包后,对段序列进行解析,如果段序列的顶部段标识是本节点时,则弹出该标识,然后进行下一步处理;如果不是本节点,则使用ECMP(Equal Cost Multiple Path,等价负载分担)方式将数据包转发到下一节点。
SR具有如下特点:
通过对现有协议(例如IGP)进行扩展,能使现有网络更好的平滑演进。
同时支持控制器的集中控制模式和转发器的分布控制模式,提供集中控制和分布控制之间的平衡。
采用源路由技术,提供网络和上层应用快速交互的能力。

SR的优势

Segment Routing技术原理

基本概念

基本概念:Segment


Segment是节点针对所收到的数据包要执行的指令,该指令包含在数据包头部中。
例如:
指令1:沿着最短路径到达R4(支持ECMP)
指令2:沿着R4的GE0/0/2接口转发数据包
指令3:沿着最短路径到达R8

基本概念:Segment ID

Segment ID(SID)用于标识Segment,它的格式取决于具体的技术实现,例如可以使用MPLS标签、MPLS标签空间中的索引、IPv6地址。
Segment List是一个或多个SID构成的有序列表。
例如:
指令1(400):沿着支持ECMP的最短路径到达R4
指令2(1046):沿着R4的GE0/0/2接口转发数据包
指令3(800):沿着支持ECMP的最短路径到达R8

基本概念:源路由


源路由(Source Routing):源节点选择一条路径并在报文中压入一个有序的Segment List,网络中的其他节点按照报文封装的Segment List进行转发。

基本概念:Segment分类

基本概念:Prefix Segment


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

基本概念:SRGB


SRGB(Segment Routing Global Block):用户指定的为Segment Routing MPLS预留的全局标签集合。
每台设备通过扩展的路由协议通告自己的SRGB。
节点通过扩展的路由协议通告前缀SID索引(Index)后,各台设备分别根据SRGB计算入站及出站SID。
在实际部署中,建议设备采用统一的SRGB。
为什么需要SRGB:
SR要求前缀SID全局有效。
在MPLS中,设备的一部分标签空间可能被其他协议,例如LDP占用,因此需指定明确的空间用于SR全局标签。

基本概念:Adjacency Segment


Adjacency Segment(邻接段)
用于标识网络中的某个邻接。通过IGP协议扩散到其他网元,全局可见,但是仅本地有效。
Adjacency Segment通过Adjacency Segment ID(SID)标识。
Adjacency SID为SRGB范围之外的本地SID。

AS内Node SID及Adjacency SID的泛洪

SR-MPLS使用IGP协议进行拓扑信息、前缀信息、SRGB和标签信息的通告。IGP协议为了完成上述功能,对于协议报文的TLV进行了一些扩展。

OSPF for SR-MPLS

IS-IS for SR-MPLS

基本概念:SR Policy

RFC 8402中定义SR Policy是一段有序的段列表(an ordered list of segments)。更完整的说法是SRPolicy最终呈现为一段有序的段列表,还包含了计算、生成和维护这个段列表及引入流量等SR技术的一种框架。SR Policy是当前最主流的实现SR的方式。
一个SR Policy由头端节点引导流量进入这个段策略中。它的段列表被精确的分配为标签栈指导流量转发。这个段列表由一系列的优化目标和限制综合计算得到。这个计算可由本地或者控制器完成,然后应用到网络中。

SR Policy示例


SR Policy:
可以由CLI、NETCONF、PCEP、BGP SR Policy等多种方式生成。
包含Segment List,完整的指导流量引入和转发。

基本概念:SR-MPLS与SRv6

标签栈、粘连标签与粘连节点

基本原理

SID的使用

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

场景1:基于Prefix Segment的转发路径


基于Prefix Segment的转发路径是由IGP通过最短路径算法(SPF)计算得出。

  1. 通过IGP扩散之后,整个IGP域的所有设备学习到R2的Prefix SID(100)。
  2. 以R1为例(其他设备类似),它通过SPF算法计算出一条到达R2的最短路径。
    基于Prefix Segment的转发路径并不是一条固定路径,头节点也无法控制报文的整条转发路径。

场景2:基于Adjacency Segment的转发路径


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

场景3:基于Adjacency Segment + Node Segment的转发路径


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

SR-MPLS BE

SR-MPLS BE


SR-MPLS BE
使用SID来指导设备基于最短路径进行数据转发,这种工作机制称为SR-MPLS BE(Best Effort)。
例如在本例中使用R6的Node SID 606可以指导数据沿着去往R6的最短路径来转发数据,该最短路径是基于路由协议计算得出的,并且支持等价路径。
SR-MPLS BE是一种替代“LDP+IGP方案”的一种新方案。

SR-MPLS TE


SR-MPLS TE
使用多个SID进行组合来指导数据转发,这种工作机制可以对数据的转发路径进行一定约束,从而满足流量工程的需求,因此被称为SR-MPLS TE(Traffic Engine)。
SID的组合形式:
使用多个Node SID。
使用多个Adjacency SID。
使用Node SID与Adjacency SID组合,如图中所示。

SR-MPLS BE LSP


SR-MPLS BE LSP是指使用SR技术建立的标签转发路径,由一个Prefix或Node Segment指导数据包转发。
其中,SR-MPLS BE是指IGP使用最短路径算法计算得到的最优SR LSP。
SR-MPLS BE LSP的创建过程和数据转发与LDP LSP类似。这种LSP不存在Tunnel接口。

SR-MPLS BE LSP的创建


LSP创建需要完成以下动作:
网络拓扑上报(仅在基于控制器创建LSP时需要) / 标签分配。
路径计算。
对于SR-MPLS BE LSP,主要基于前缀标签创建。目的节点通过IGP协议发布Prefix SID,转发器解析Prefix SID,并根据自己的SRGB计算标签值。此后各节点使用IGP协议收集的拓扑信息,根据最短路径算法计算标签转发路径,并将计算的下一跳及出标签(OuterLabel)信息下发转发表,指导数据报文转发。

数据转发过程


Push(压入):当报文进入LSP时,入节点设备在报文二层首部和IP首部之间插入一个标签;或者根据需要,在报文标签栈的栈顶增加一个新的标签。
Swap(置换):当报文在SR域内转发时,根据标签转发表,用下一跳分配的标签替换SR报文的栈顶标签。
Pop(弹出):当报文在离开SR域时,根据栈顶的标签查找转发出接口,然后将SR报文的栈顶的标签剥掉。

SR-MPLS TE

流量工程简介

流量工程(TE,Traffic Engineering)是最重要的网络业务之一。历史上流行的TE技术是基于MPLS的,被称为MPLSTE。它可以精确的控制流量流经的路径,从而充分的利用现有带宽资源

传统分布式MPLS TE功能架构

传统MPLS TE采用分布式的方法,由头节点根据路径约束计算路径,然后通过RSVP-TE信令建立基于约束的LSP。
由MPLS节点维护完整的TE功能架构,有以下四大组件:信息发布组件、路径计算组件、路径建立组件(或信令组件)和报文转发组件。

  1. 扩展IS-IS/OSPF携带TE信息,在域内泛洪IGP和TE信息,生成TEDB。
  2. 通过CSPF(约束性最短路径优先)算法,基于TEDB计算满足约束的路径。
  3. 使用RSVP-TE建立LSP。
  4. 基于MPLS标签转发数据。

集中式SR-MPLS TE功能架构

SR-MPLS TE(Segment Routing-MPLS Traffic Engineering)是使用SR作为控制协议的一种新型的TE隧道技术。SR-MPLS TE支持采用集中式架构,控制器收集全局网络拓扑信息和TE信息,集中算路,然后把算路结果下发给网络设备。
SR-MPLS TE也支持使用手工方式配置。

集中式SR-MPLS TE:

  1. 扩展IS-IS/OSPF携带TE信息,在域内泛洪IGP和TE信息,生成TEDB。
  2. 通过BGP-LS收集网络信息,建立全局TE数据库。
  3. 控制器基于约束全局算路。
  4. 使用PCEP或BGP SR Policy将算路结果下发设备。

SR-MPLS TE 与 RSVP-TE 的比较

比较项 SR-MPLS TE RSVP-TE
标签分配 通过对IGP协议扩展进行标签分配和扩散。每条链路仅分配一个标签,所有的LSP共用这一个标签,减少了标签资源的占用,减轻了标签转发表的维护工作量。 通过对RSVP协议扩展进行标签分配和扩散。每条LSP分配一个标签,当有多条LSP时,同一条链路上需要分配多个标签,标签资源占用的多,标签转发表的维护工作量大。
控制平面 信令控制协议为IGP协议扩展,减少协议数量。 需要RSVP-TE作为MPLS的控制协议,控制平面较复杂。
可扩展性 网络中间设备不感知隧道,隧道信息携带在每个报文中,无需维护隧道状态信息,只需维护转发表项,可扩展性强。 需要维护隧道状态信息,也需要维护转发表项,可扩展性差。
路径调整和控制 网络中间设备不感知隧道,仅通过对入节点的报文进行标签操作即可任意控制业务路径,无需逐节点下发配置。当路径中的某个节点发生故障,由控制器重新计算路径并更新入节点的标签栈,即可完成路径调整。 无论是正常业务调整还是故障场景的被动路径调整,都需逐节点下发配置。

SR-MPLS TE - 网络拓扑收集

SR-MPLS TE - 标签分配


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信息上报给控制器。

SR-MPLS TE LSP的创建

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隧道的属性是创建隧道的依据。SR-MPLS TE隧道可以在控制器或转发器上配置。
控制器上配置隧道:在控制器上进行SR-MPLS TE隧道配置后,控制器将隧道属性通过NETCONF下发给转发器,转发器通过PCEP协议将隧道托管给控制器进行管理。
转发器上配置隧道:在转发器上进行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-MPLS TE隧道LSP对应的标签栈,对报文进行标签操作,并根据栈顶标签逐跳查找转发出接口,指导数据报文转发到隧道目的地址。主要分为基于邻接标签转发和基于节点+邻接标签转发:
基于邻接标签转发:
基于邻接标签转发也被称为严格路径方式转发。标签栈严格确定转发路径,不支持负载分担。
基于节点+邻接标签转发:
基于节点标签+邻接标签转发也称作松散路径方式转发。设备在处理节点标签时,可以按照最短路径进行转发,也可以进行负载分担,其路径并不是严格固定。

SR-MPLS BE与SR-MPLS TE的流量导入

流量导入:SR隧道建立完成后,需将业务流量引入到SR隧道。
SR-MPLS BE(没有隧道接口)引流方式
隧道策略:按照隧道的优先级顺序选择SR-BE隧道。
静态路由:将静态路由的下一跳指定为SR-BE隧道的目的地址,根据下一跳地址迭代到SR-BE隧道。
根据路由下一跳迭代:BGP等公网路由可以根据路由的下一跳迭代到SR-BE隧道。
SR-MPLS TE(隧道接口)引流方式
隧道策略:按照隧道的优先级顺序选择SR-TE隧道。
静态路由:配置静态路由时,将路由的出接口指定为SR-TE隧道的接口。
自动路由:将SR-TE隧道当做逻辑链路参与IGP路由计算。
策略路由:在策略路由的执行执行语句中,使用SR-TE隧道接口作为出接口。

SR-MPLS Policy

早期SR-MPLS TE不足

早期的SR-MPLS TE沿用RSVP-TE的“隧道接口”概念,采用隧道接口实现SR。

[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
…

隧道接口方式实现SR简单且易于理解,但是有以下不足:
隧道接口和流量导入独立实现造成引流方式复杂和性能不高。
隧道需要预先配置部署,在无法明确隧道终点场景下有明显限制。
基于隧道接口实现的ECMP使用场景受限。

SR Policy简介

SR Policy使用段列表(Segment List)指定转发路径,但是抛弃了隧道接口的概念。
SR Policy根据Segment不同分为SR-MPLS Policy和SRv6 Policy。本文将介绍SR-MPLS Policy。
控制器基于代表业务SLA的Color属性计算路径,并将结果下发转发器构成SR-MPLS Policy隧道(如图所示转发器上隧道信息不同于SR-TE隧道)。网络头端结点通过业务路由的Color团体属性和下一跳信息匹配到对应的SR-MPLSPolicy隧道进行业务转发。

<PE1>display tunnel-info all
Tunnel ID Type Destination Status
----------------------------------------------------------------------------------------
0x0000000001004c4c04 ldp 1.0.0.12 UP
0x000000002900000004 srbe-lsp 1.0.0.12 UP
0x000000000300002001 sr-te 1.0.0.12 UP
0x00000000320000c001 srtepolicy 1.0.0.12 UP
0x000000003400002001 srv6tepolicy FC01::12 UP 

SR-MPLS Policy元组标识

一个SR-MPLS Policy由一个元组标识<headend, color, endpoint>。
对于一个指定的节点SR-MPLS Policy则由<color, endpoint>标识:
头端(headend):SR-MPLS Policy生成的节点,一般是全局唯一的IP地址。
颜色(color):32比特扩展团体属性,用于标识某一种业务意图(例如低延时)。
尾端(endpoint):SR-MPLS Policy的目的地址,一般是全局唯一的IP地址。
Color和endpoint被用于SR-MPLS Policy在特定头端标识转发路径。

SR-MPLS Policy标准介绍


RFC-draft-ietf-spring-segment-routing-policy中提出,BGP多协议扩展新增地址族BGP SR Policy(SAFI=73)用于下发SR-MPLS Policy:
控制器通过BGP下发SR的SID组合给Ingress节点。在头端节点创建出一条到Egress节点的、带Policy Color的TE隧道。
当需要引用此隧道时,可以使用Policy Color对应到隧道。

SR-MPLS Policy方案架构


在华为SR-MPLS Policy解决方案架构中,包含BGP-LS、BGP SR Policy和NETCONF三个关键协议:

  1. BGP-LS收集隧道拓扑、网络带宽、链路时延等信息并上报隧道状态,用于控制器计算SR Policy路径和隧道状态呈现。
  2. BGP SR Policy用于控制器下发SR Policy信息(color、headend、endpoint等)。
  3. NETCONF用于下发业务接口、路由策略(添加Color属性)等其他配置。

SR-MPLS Policy模型

一个SR-MPLS Policy可以包含多个候选路径(Candidate Path)。候选路径携带优先级属性(Preference)。优先级最高的有效候选路径为SR Policy的主路径,优先级次高的有效路径为SR-MPLS Policy的备份路径。
一个候选路径就是SR-MPLS Policy通过PCEP或者BGP SR Policy向头端发送的段列表。

Binding SID

为了提供更好的扩展性、网络不透明度和服务独立性,SR运用了BSID(Binding SID) [RFC 8402-5.Binding Segment]。每条候选路径都可以被定义一个BSID。
与RSVP-TE隧道相似,SR-MPLS TE隧道也可做为一种转发邻接。如果将SR-MPLS TE隧道做为转发邻接分配一个邻接SID,这个SID就被称为Binding SID。一个Binding SID代表一条SR-MPLS TE隧道。
静态配置BSID

sr-te policy P1
 binding-sid 200
 endpoint 5.5.5.5 color 100

每个SR-MPLS Policy最多配置1个Binding SID,Binding SID可以像其他类型SID一样,用于SR-MPLS TE路径计算。

SR Policy业务流程:信息收集


背景:R3作为Egress路由器向Ingress路由器R1通告路由5.5.5.5/32,最终从R1-R3建立SR Policy隧道。隧道路径如图,Color为Green。

  1. BGP-LS收集网络拓扑、网络带宽、链路时延等信息,用于计算SR Policy路径和隧道状态呈现。

SR Policy业务流程:路由着色


2. 控制器通过NETCONF向Egress路由器下发VPN出口策略或BGP出口策略。为路由前缀5.5.5.5/32设置扩展团体属性Color Green,路由下一跳是R3的地址
3.3.3.3。

SR Policy业务流程:路由传递


3. Egress路由器将着色的路由5.5.5.5/32通过MP-BGP通告给Ingress路由器。

SR Policy业务流程:下发SR Policy


4. 如下,控制器向头端下发SR Policy。R1接收到R3的BGP路由5.5.5.5/32。后续执行转发时,根据此路由的Color和下一跳迭代到SR Policy隧道。

SR Policy业务流程:引流及报文转发


5. Ingress路由器将SR Policy生成转发面隧道。头结点根据Color完成引流转发及转发(本例)。
支持其他引流方式,例如DSCP引流。

扩展:BGP SR Policy NLRI

SR Policy的NLRI在BGP Update消息中携带。在BGP路由表呈现为[distinguisher][policycolor][endpoint]。

[PE1]display bgp sr-policy routing-table
…
RPKI validation codes: V - valid, I - invalid, N - not-found
Total Number of Routes: 3
 Network Nexthop MED LocPrf PrefVal Path/Ogn
*>i [22][5][1.0.0.12] 172.21.17.102 4294967286 100 0 ?
*>i [26][3][1.0.0.12] 172.21.17.102 4294967286 100 0 ?
*>i [27][3][1.0.0.12] 172.21.17.102 4294967286 100 0 ?

小结:SR-MPLS路径的生成方式

Segment Routing是一种允许在头端节点选路而不需要依靠逐跳信令交互(LDP/RSVP-TE)的技术。SR-MPLS的路径依靠由IGP通告的Segment组成。SR-MPLS路径有多种生成机制:
转发器算路(SPF/CSPF)
静态配置显式路径(CLI/NETCONF)
控制器算路( PCEP/ BGP SR Policy )
BGP SR Policy是当前主流的路径下发方式。

Segment Routing隧道保护与检测技术

TI-LFA FRR

SR-MPLS故障保护技术概览

TE隧道故障保护有两种思路局部保护与端到端保护。SR-MPLS TE沿用此思路,并在此基础上增强。

TI-LFA FRR

TI-LFA(Topology-Independent Loop-free Alternate)FRR能为Segment Routing隧道提供链路及节点的保护。当某处链路或节点故障时,流量会快速切换到备份路径继续转发。

TI-LFA FRR保护路径计算

TI-LFA FRR可以同时保护链路故障和节点故障。由于节点故障的保护路径一定可以保护链路故障,所以TI-LFA优先计算节点保护。

TI-LFA FRR的应用场景与配置

为了实现整体路径的保护,需要在多个节点IGP中使能TI-LFA FRR局部保护。

TI-LFA FRR的局限

对于SR隧道中的指定必经节点(首节点、尾节点、路径约束节点)故障,TI-LFA无法生成保护。如图SR转发路径中,对于作为必经节点的R1、R4和R6,TI-LFA无法生成保护路径。

Anycast FRR

Anycast FRR

通过Anycast FRR可以实现对于指定节点的故障保护。
如图让R4和R5发布相同的SID,这个SID就是Anycast SID。此时Anycast SID会在IGP中发布,其下一跳会指向路径中最近的节点,例如R4,那么R4被称为Anycast SID的最优节点,R5则是备份节点。

Anycast FRR故障保护

Anycast FRR构造一个虚拟节点发布SID,然后采用TI-LFA算法计算虚拟节点的备份下一跳。
此时如果R4节点故障,TI-LFA根据计算的备份路径,通过R5继续转发。

Hot-Standby

Hot-Standby

SR的Hot-Standby就是通过控制器算出一条与主路径不同的备份路径,实现端到端的路径保护。
SR-MPLS Policy由主候选路径和备候选路径形成Hot-Standby。主、备候选路径属于一个SR-MPLS Policy。

SR-MPLS Policy Hot-Standby原理


SR-MPLS Policy的多条候选路径形成Hot-Standby保护,如果Segment List发生故障,将触发其故障切换。
SR-MPLS Policy的故障感知需要依靠BFD或SBFD等检测机制。

SR policy P1 <headend, color, endpoint>
 Candidate-path CP1 <protocol, origin, discriminator>
 Preference 200
 SID-List <SID11...SID1i>
 Candidate-path CP2 <protocol, origin, discriminator>
 Preference 100
 SID-List <SID21...SID2i>

Hot-Standby的局限

Hot-Standby能够保护端到端路径,但是不能解决隧道宿端PE设备的故障。例如本例中PE1会同时收到PE2和PE3发布的路由,并且优选PE2。如果PE2发生故障,只能通过路由收敛来恢复业务。

VPN FRR

VPN FRR

VPN FRR利用基于VPN的私网路由快速切换技术。通过预先在源端PE中设置指向主用PE和备用PE的主备用转发路径,并结合PE故障快速探测,旨在解决CE双归PE的MPLS VPN网络中,PE节点故障导致的端到端业务收敛时间长的问题。

VPN FRR故障切换示例

本例中当TI-LFA FRR、Hot-Standby和VPN FRR一起使用的时候,其故障切换保护情况如下:

防微环

SR防微环简介


IGP协议的链路状态数据库各节点独立计算,导致其在无序收敛时可能会产生环路。这种环路会在转发路径上所有设备都完成收敛之后消失,此类暂态的环路被称为微环(Micro Loop)。
TI-LFA功能正常情况如图,P1感知到P2节点发生故障后进入TI-LFA FRR切换流程。向报文中插入Repair List<16005,16057>,通过16005转发到16006。

SR本地正切防微环


设备的收敛时间不同导致微环:例如P1路由收敛后不再携带Repair List。此时查询到达16006路由下一跳节点为P3。
如果P3此时未完成收敛,其指向16006的下一跳依然为P1,产生本地正切环路。
启用防微环后P1启动定时器T1,期间报文依旧按照TI-LFA策略<16005, 16057>转发,等待其他节点收敛。

[P1] isis 1
[P1-isis-1] avoid-microloop frr-protected

SR本地回切防微环

在故障恢复后路径回切时也可能出现微环:例如此时P2故障恢复,如果P1未完成收敛将流量转发给P3,但是P3已完成收敛会将流量转发回P1,形成本地回切微环。
启用防微环,P3完成收敛后计算出防微环Segment List为<16002, 16024>。PE1将报文转发P1,此时由于P1未完成收敛将报文转发给P3。P3将插入此防微环Segment List,从P1转发给P2最后到PE2。

[P3] isis 1
[P3-isis-1] avoid-microloop frr-protected

SR远端防微环

在路径切换过程中,不仅可能导致本地微环,也可能引起远端节点之间形成环路,即远端微环。
如图PE2和PE3之间链路故障,如果P2率先完成收敛而P1未完成收敛,报文在P1-P2间将形成环路。
使能远端防微环后,P2收敛后针对访问PE3的报文计算防微环Segment List <16003,16037>。此时即使P1为未完成收敛,依然会将流量从P3转发到PE3。

[P2] isis 1
[P2-isis-1] avoid-microloop segment-routing

小结:TI-LFA与防微环的对比

SBFD

SBFD简介


BFD进行大量链路检测时,其状态机的协商时间会变长,不适合Segement Routing。SBFD(Seamless Bidirectional Forwarding Detection)是BFD的一种简化机制,它简化了BFD的状态机,缩短了协商时间,提高了整个网络的灵活性,能够支撑SR隧道检测。

SBFD工作原理

BFD

单臂BFD检测

BFD和SBFD均需要两端设备支持此功能。在特定场景下要与不支持BFD的设备对接时,华为设备支持配置BFD单臂功能(也称为单臂Echo功能) 。通过在支持BFD功能的设备上创建单臂Echo功能的BFD会话,不支持BFD功能的设备接收到该BFD报文后,直接将该报文环回,从而达到快速检测链路的目的。
单臂Echo不需要双方协商Echo能力,一端配置BFD检测,另一端无需有BFD能力。使能单臂Echo的设备发送特殊的BFD报文(IP头中的源和目的IP都是本端设备的IP地址,BFD报文中的本地标识和远端标识相同)。对端收到后直接环回到本端,以此判断链路是否正常,有很强的适配能力。

Segment Routing的典型应用场景

单域SR-MPLS BE


SR-MPLS BE适用于无严格SLA要求、无需路径规划的业务。
下游路由器向上游分配SID,形成SR-MPLS转发路径。
控制面使用MP-BGP发布私网业务标签。
另外,SR-MPLS BE在生产网络中可以作为SRMPLS TE业务的备份方案。

域SR-MPLS TE

SR-MPLS TE适用于有严格SLA要求、需要路径规划的场景,例如DCI(Data Center Interconnection)。
SR标签由IGP协议发布。控制器使用BGP-LS收集网络拓扑、网络带宽、时延和标签等属性。
控制器根据约束条件计算出符合业务需求的转发路径,然后将算路结果通过PCEP或NETCONF下发到转发器。也可由工程师手工配置严格转发路径,然后通过PCEP将路径托管到控制器。

单域SR-MPLS Policy

SR-MPLS Policy适用于有严格SLA要求、需要路径规划的场景。
SR标签由IGP协议发布。控制器使用BGP-LS收集网络拓扑、网络带宽、时延和标签等属性。
控制器根据约束条件计算出符合业务需求的转发路径,然后将算路结果通过BGP SR Policy或PCEP下发到转发器。也可由工程师手工配置严格转发路径,然后通过PCEP将路径托管到控制器。

跨域E2E SR-MPLS TE

跨自治域访问场景下,推荐由控制集中计算然后下发端到端SR-MPLS TE。
在ASBR之间配置BGP EPE(Egress Peer Engineering),互相分配BGP Peer SID。
然后ASBR通过BGP-LS上报BGP EPE生成的标签和网络拓扑信息。

在E2E SR-MPLS TE隧道创建之前,控制器需要先完成域内SR-MPLS TE隧道创建。
如需减少标签深度,可以为域内隧道配置Binding SID。
如图PE1和PE2到达ASBR的隧道分别配置BSID 1000和2000。

控制器全局计算,将路径标签整合生成标签栈下发给转发器。
如图所示,PE1到PE2的标签栈为<1000, 304, 2000>。
标签栈中1000和2000为BSID,在域内转发时会替换为域内的SR标签栈。

Segment Routing的基础配置

SR-MPLS BE

L3VPN over SR-MPLS BE


组网需求:

  1. PE1和PE2设备各有一个CE属于VPN实例 vpna。
  2. 在骨干网络中部署L3VPN迭代SR-MPLS BE隧道,使得CE1和CE2的loopback1接口可以相互通信。
    配置思路:
  3. 完成设备接口IP地址及OSPF配置(略)。
  4. 骨干网上使能MPLS,配置Segment Routing,建立SR LSP。
  5. 在PE1与PE2之间建立MP-BGP对等体关系。
  6. PE上使能VPN实例IPv4地址族。
  7. 在PE设备上配置隧道选择策略,优选SR LSP。
  8. 结果验证。





SR-MPLS TE

L3VPN over SR-MPLS TE


组网需求:

  1. PE1和PE2设备各有一个CE属于VPN实例 vpna。
  2. 在骨干网络中部署L3VPN迭代SR-MPLS TE隧道,使得CE1和CE2的loopback1接口可以相互通信。
    配置思路:
  3. 完成设备接口IP地址及OSPF配置(略)。
  4. 骨干网上使能MPLS,配置Segment Routing,建立SR-MPLS TE LSP。
  5. 在PE1与PE2之间建立MP-BGP对等体关系。
  6. PE上使能VPN实例IPv4地址族。
  7. PE之间配置MP-IBGP交换路由信息。
  8. 在PE设备上配置隧道选择策略,优选SR-MPLS TE
  9. 结果验证。





SR-MPLS Policy

L3VPN over 静态SR-MPLS Policy


组网需求:

  1. PE1和PE2设备各有一个CE属于VPN实例 vpna。
  2. 在骨干网络中部署L3VPN迭代静态SR-MPLS Policy,使得CE1和CE2的loopback1接口可以相互通信。
    配置思路:
  3. 完成设备接口IP地址及OSPF配置(略)。
  4. 骨干网上使能MPLS,配置SR-MPLS Policy。
  5. 在PE1与PE2之间建立MP-BGP对等体关系。
  6. PE上使能VPN实例IPv4地址族。
  7. 在PE设备为路由配置扩展团体属性Color,并交换路由信息。
  8. 在PE设备上配置隧道选择策略
  9. 结果验证。





SR是基于源路由理念而设计的在网络上转发数据包的一种架构。 SR-MPLS相比于LDP和RSVP-TE,简化
了MPLS网络的控制平面,仅通过通IGP协议的扩展,即可携带标签等相关信息;具有更强的扩展能力,
中间节点不需要维护路径信息;通过源节点即可控制数据包在网络中的转发路径。配合集中算路模块,即
可灵活简便的实现路径控制与调整,从而更好的向SDN平滑演进。
• SR-MPLS支持三种不同类型的LSP,分别是SR-MPLS BE、SR-MPLS TE、SR-MPLS Policy。针对不同
类型的LSP,SR-MPLS可提供多种检测和保护机制,例如TI-LFA FRR与Anycast FRR、Hot-Standby、
VPN FRR、防微环、BFD与SBFD。
• SR-MPLS同时支持传统网络和SDN网络,兼容现有设备,支持跨域对接等多种场景。为了方便理解,
本文给出了基于命令行配置SR-MPLS的举例,在后续的随笔中将介绍如何使用控制器完成SR-MPLS的
配置。

posted @ 2024-12-08 17:25  Liam-Wu  阅读(91)  评论(0编辑  收藏  举报