MPLS SR技术白皮书-6W100

手册下载

MPLS SR技术白皮书

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Copyright © 2021 新华三技术有限公司 版权所有,保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。

除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。

本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品


 

1 概述··· 1-1

1.1 产生背景·· 1-1

1.2 技术优点·· 1-1

2 MPLS SR基本概念··· 2-1

3 MPLS SR运行机制··· 3-2

3.1 IGP SR· 3-2

3.1.1 Prefix SID·· 3-2

3.1.2 Adjacency SID·· 3-3

3.1.3 IGP扩展TLV· 3-4

3.2 BGP SR· 3-4

3.2.1 Prefix SID·· 3-5

3.2.2 BGP-EPE· 3-6

3.3 SRLSP 建立·· 3-9

3.4 MPLS SR报文转发过程·· 3-9

3.4.1 Prefix方式报文转发过程·· 3-9

3.4.2 Adjacency方式报文转发过程·· 3-10

3.4.3 Prefix/Adjacency组合方式报文转发过程·· 3-11

4 MPLS SR-BE场景··· 4-11

4.1 MPLS SR-BE的隧道创建·· 4-12

5 MPLS SR-TE场景··· 5-12

5.1 MPLS SR-TE相关概念·· 5-13

5.1.1 标签栈·· 5-13

5.1.2 Binding SID·· 5-13

5.2 MPLS SR-TE隧道创建·· 5-13

5.2.1 控制器算路创建MPLS SR-TE隧道·· 5-13

5.2.2 配置显式路径创建MPLS SR-TE隧道·· 5-14

5.3 MPLS SR-TE数据转发·· 5-14

6 IGP SRLDP互通··· 6-16

6.1 IGP SRLDP互通机制·· 6-16

6.1.1 SR映射·· 6-16

6.1.2 标签映射·· 6-17

6.2 SR to LDP· 6-18

6.3 LDP to SR· 6-19

6.4 SR over LDP· 6-19

6.5 LDP over SR· 6-20

7 BGP SRSR网络互通··· 7-21

7.1 SR to LDP· 7-22

7.2 LDP to SR· 7-23

8 SR-TE Policy· 8-24

8.1 SR-TE Policy基本概念·· 8-24

8.2 SR-TE Policy有效性·· 8-25

8.3 SR-TE Policy选路原则·· 8-25

8.4 SR-TE Policy转发过程·· 8-26

8.5 SR-TE Policy引流·· 8-27

8.6 SR-TE Policy热备份功能·· 8-27

8.7 MP-BGPSR-TE Policy扩展·· 8-28

9 SBFD for SR·· 9-28

9.2 SR-BE LSPSBFD联动·· 9-29

9.3 SR-TESBFD联动·· 9-30

9.4 SR-TE PolicySBFD联动·· 9-30

10 TI-LFA FRR·· 10-31

10.1 TI-LFA FRR优势·· 10-31

10.2 TI-LFA FRR相关概念·· 10-32

10.3 TI-LFA FRR保护类型·· 10-32

10.4 TI-LFA FRR路径计算·· 10-32

10.5 TI-LFA FRR转发流程·· 10-33

10.6 正切防微环·· 10-34

10.7 回切防微环·· 10-34

11 Anycast SR·· 11-35

12 SR OAM·· 12-36

12.1 MPLS SR Ping· 12-36

12.2 MPLS SR Trace route· 12-36

13 MPLS SR典型组网应用··· 13-36

13.1 LDPSR互通·· 13-36

13.2 MPLS SR TE热备份·· 13-36

13.3 MPLS SR TI-LFA· 13-37

13.4 MPLS SR BSID的应用·· 13-38

13.4.1 标签缝接·· 13-38

13.4.2 基于BSID引流·· 13-39

13.5 MPLS SR跨域VPN· 13-39

 


概述

1.1  产生背景

云计算的发展对广域网提出了新的挑战,要求传统广域网进行变革。SD-WAN作为重构广域网的核心技术,通过自动部署、集中控制、智能调度及可视化等手段,加速网络交付,优化应用体验,提高带宽利用率,简化网络运维,满足了云计算对广域网的需求。

智能调度是新一代广域网的一个关键能力,对应用质量的保障、带宽资源的优化非常重要。现有的MPLSRSVP-TE等流量工程技术可以满足应用对带宽的差异化保障需求,但存在协议种类多、部署复杂、管理困难、可扩展性差等问题,无法满足新一代广域网所要求的动态部署、灵活调度、快速、可扩展等方面的要求。因此,出现了一种新的协议Segment Routing

SRSegment Routing,分段路由)采用源路径选择机制,预先在源节点封装好路径所要经过节点分配的SIDSegment Identifier,段标识),当报文经过SR节点时,该节点根据报文的SID对报文进行转发。除源节点外,其它节点无需维护路径状态。MPLS SRSegment Routing with MPLSMPLS段路由)是指在MPLS网络中使用SR、将标签作为SID对报文进行转发。

MPLS SR既很好地继承了MPLS技术的优势,又能够适应未来SDN等技术的发展,为SD-WAN网络提供了一种灵活高效的控制手段。MPLS SR具有使用简单、容易扩展的特点,能够更好地实现流量调度和路径优化,保障关键业务质量、均衡流量分布、提高专线利用率和降低线路成本。

1.2  技术优点

MPLS SR简单、高效、易扩展,具有很多不可比拟的优势:

·     面向SDN架构设计的协议,融合了设备自主转发和集中编程控制的优势,能够更好地实现应用驱动的网络。同时,可以天然支持传统网络和SDN网络,兼容现有设备,保障网络平滑演进。

·     简化设备控制平面,减少路由协议数量,简化运维管理,降低运营成本。MPLS SR网络需要维护的标签转发表规模很小,一台设备上维护的转发表数为N(节点标签数量,一般为全网节点数量)+A(邻接标签数据,一般为设备接口数量),而传统MPLS网络则为N2

·     支持广泛的部署场景,包括骨干网、DCI网络及DC网络等场景。

·     能以更简单的方式实现TEFRROAM等功能,从而简化网络的设计和管理,快速获得网络服务,优化整个网络的性能。

MPLS SR基本概念

MPLS SR主要涉及如下概念:

·     SR节点:开启MPLS SR功能的设备通常被称为SR节点。其中,负责为进入MPLS SR网络的报文添加标签的入口节点称为源节点;负责剥离报文中标签、并将报文转发给目的网络的出口节点称为尾节点。

·     SR域:SR节点的集合。

·     Segment:段,用来指明节点对入报文所执行的操作。在MPLS SR中是指对标签的操作,即压入标签、交换标签和弹出标签。

·     SID:段标识,在MPLS SR中为MPLS标签。

·     分段类型:根据SID分配形式不同,SR的分段类型有如下两种:

·     Prefix Segment:前缀类型的段,按目的IP地址前缀为网络的节点分配SID并建立转发表项。

·     Adjacency Segment:邻接类型的段,为节点的不同邻接链路分别分配SID

·     SRLSPSegment Routing Label Switched Path,基于段路由的LSP):以标签作为SID对报文进行段路由转发,报文所经过的路径称为SRLSP

·     SRGBSegment Routing Global Block,分段路由全局标签段):专门用于Prefix Segment的全局标签范围,各个节点的SRGB范围可以不同。SRGB的标签范围由标签段基值和Range确定,其中标签段基值表示SRGB标签段的最小值,Range表示标签数目。

·     SRLBSegment Routing Local Block,分段路由本地标签段):专门用于Adjacency Segment的本地标签范围,各个节点的SRLB范围相同。SRLB的标签范围由标签段基值和Range确定,其中标签段基值表示SRLB标签段的最小值,Range表示标签数目。

MPLS SR运行机制

MPLS SR转发基于MPLS架构,转发机制与MPLS相同,使用MPLS标签作为SID对报文进行转发。采用MPLS SR转发报文前,需要完成以下工作:

(1)     进行SID分配,为报文转发路径中的每个节点和链路规划标签信息。SID根据配置方式分为

¡     静态SID:手工指定SID

¡     动态SID:由IGP/BGP协议动态分配SID,根据路由协议分为IS-IS SROSPF SRBGP SR

(2)     建立标签转发表项,SR域内的设备根据分配的标签信息形成本地的标签转发表项。

(3)     建立SRLSPSRLSP可以手工配置,也可以通过IGP/BGP协议动态建立或通过控制器下发。

(4)     完成上述步骤后,SRLSP即可用来转发流量。当源节点接收到用户网络的报文后,会为报文封装所经过路径上的标签信息,并通过SRLSP将报文转发给尾节点;尾节点从SRLSP接收到报文后,会剥离报文中的标签,根据原始报文的目的地址查找路由表进行报文转发。

如果将SRLSP与上层应用关联,如MPLS TE,则可以实现通过SRLSP来转发MPLS TE等流量。

3.1  IGP SR

IGP SR是指对IGP协议(如IS-ISOSPF)进行扩展,在AS自治域内,通过IGP协议报文通告SID,使AS内部所有节点学习到SID信息,并生成各节点的SID转发表项。

通过IGP协议动态分配和通告的SID类型分为Prefix SIDAdjacency SID

3.1.1  Prefix SID

每个SR节点均手工为自己的Loopback地址指定SID,该SID用来标识特定的SR节点。在SR域内通过IGP通告SR节点的Prefix SID,其他节点根据收到的报文自动计算到达该SR节点的Prefix SID。通告的形式有两种:

·     通告绝对值:直接将Prefix SID和本地SRGB标签段通告出去;

·     通告索引值:为每个SR节点分配一个全局唯一的Index,即每个SR节点的前缀与Index一一对应。通过IGP扩展通告各个SR节点的SRGB标签段和段内IndexSR节点的SRGB基值+前缀的Index即为该节点为该前缀分配的Prefix SID

说明

目前,仅支持以索引值的形式通告Prefix SID

 

SR域内的其他设备根据收到的路由信息计算出本地的标签转发表项,入标签为本地SRGB标签段基值+Index,出标签为下一跳的SRGB基值+Index

图1 根据IGP Prefix SID建立标签转发表项

 

1所示,网络管理员将索引值201分配给Device C上的Loopback地址1.1.1.1/32Device C通过IGP协议报文将该索引值以及本地SRGB通告出去。运行IGP SR的节点,形成的标签转发表项如下:

(1)     Device C上标签转发表项的入标签为16201

(2)     Device B收到该通告后,形成SRLSP标签转发表项,入标签为16201,出标签为16201,下一跳为Device C

(3)     Device A收到该通告后,形成SRLSP标签转发表项,入标签为16201,出标签为16201,下一跳为Device B

3.1.2  Adjacency SID

SR域内通过IGP协议为邻接链路分配SID,该SID用来标识本地设备的特定邻接链路。该SID只在本地有效,不同设备上的Adjacency SID可以相同。Adjacency SID分配方式有两种:

·     自动分配Adjacency SID:自动从SRLB中选择标签分配给邻接链路。

·     手工指定Adjacency SID

¡     绝对值方式:直接指定Adjacency SID

¡     索引值方式:为邻接链路手工指定IndexSR节点的SRLB基值+Index即为该节点为邻接链路分配的Adjacency SID

图2 根据Adjacency SID建立标签转发表项

 

2所示,设备之间运行IGP协议,当IGP邻居建立后,Device A为与Device B连接的链路分配的标签为203Device B为与Device C连接的链路分配的标签为202Device C为与Device D连接的链路分配的标签为201。各设备上形成的标签转发表项如下:

(1)     Device A形成标签转发表项的入标签203、下一跳为Device B

(2)     Device B形成标签转发表项的入标签为202、下一跳为Device C

(3)     Device C形成标签转发表项的入标签为201、下一跳为Device D

3.1.3  IGP扩展TLV

为了完成在IGP协议报文通告SID功能,IGP协议报文进行了一些扩展。

·     IS-IS协议主要定义了针对SID和网元SR能力的子TLVSub-TLV):

¡     Prefix-SID Sub-TLV:用于通告SRPrefix SID

¡     Adj-SID Sub-TLV:用于在P2P网络中通告SRAdjacency SID

¡     LAN-Adj-SID Sub-TLV:用于在LAN网络中通告SRAdjacency SID

¡     SID/Label Sub-TLV:用于通告SRSIDMPLS Label

¡     SID/Label Binding TLV:用于通告前缀和SID的映射。

¡     SR-Capabilities Sub-TLV:用于对外通告SR能力。

¡     SR-Algorithm Sub-TLV:用于对外通告使用的算法。

¡     SR Local Block Sub-TLV:用于通告网元为本地SID预留的标签范围。

·     OSPF协议主要定义了针对SID和网元SR能力的TLV和子TLVSub-TLV

¡     SR-Algorithm TLV用于对外通告使用的算法。

¡     SID/Label Range TLV:用于通告SRSIDMPLS Label范围。

¡     SRMS Preference TLV:用于通告网元做为SR Mapping Server的优先级。

¡     SID/Label Sub-TLV:用于通告SRSIDMPLS Label

¡     Prefix SID Sub-TLV:用于通告SRPrefix SID

¡     Adj-SID Sub-TLV:用于在P2P网络中通告SRAdjacency SID

¡     LAN Adj-SID Sub-TLV:用于在LAN网络中通告SRAdjacency SID

3.2  BGP SR

BGP SR是指对BGP协议进行扩展,在AS自治域内或AS自治域之间,通过BGP协议报文分配或通告SID

根据BGP协议分配和通告SID方式不同可以分为Prefix SIDBGP-EPE。在域内或域间发布前缀路由时可以携带发布Prefix SIDBGP-EPE仅能为BGP对等体或域间链路分配Peer SID,但Peer SID仅本地有效,不能传递发布。

3.2.1  Prefix SID

1. 路由属性BGP Prefix-SID报文结构

BGP协议报文中携带一种新的路由属性BGP Prefix-SID,通过BGP Prefix-SID中定义的TLV携带并发布Prefix SID信息并建立标签转发表项。BGP Prefix-SID路由属性和Prefix SID相关TLV报文结构如3所示:

图3 BGP Prefix-SID路由属性及TLV结构图

 

BGP Prefix-SID属性携带在BGP Update报文中,是BGP为支持SR而扩展的一种路由属性:

·     路由属性的Flags字段:长度1字节,标识该属性是可选,可传递的。

·     Code属性字段:长度1字节,取值为40,标识路由属性的类型。

·     Length字段:长度2字节,表示BGP Prefix-SID属性携带的TLV总长度。

MPLS SR转发平面BGP Prefix-SID属性会携带两种TLV

·     Label-Index TLV

¡     Type:长1字节,取值为1

¡     Length:长2字节,取值为7

¡     Label-Index:长4字节,表示Prefix SID的标签索引值。

·     Originator SRGB TLV

¡     Type:长1字节,取值为3

¡     Length:长2字节,取值取决于SRGB字段的个数

¡     SRGB:长6字节,表示通告Prefix SIDBGP对等体本地的SRGB起始值和范围。SRGB字段可能出现多次。

2. Prefix SID通告和标签转发表项的建立

BGP通告Prefix SID支持以下两种分配方式:

·     IGP路由引入BGPBGP向对等体通告路由前缀时,使用IGP协议为路由前缀分配的SID

·     BGP对等体学习路由时指定路由策略,通过路由策略中配置SID的索引值绑定SID和路由前缀。

BGP协议进行扩展后,BGP对等体之间可以通过协议报文通告Prefix SID

BGP为前缀分配Prefix SID后,将路由前缀和SID索引值一同通告给对等体,其他节点根据收到的BGP报文中的索引值和本地SRGB计算到达该SR节点的Prefix SID,入标签为本地SRGB标签段基值+Index,出标签为收到的SID

通过BGP协议动态分配的Prefix SID信息只能通过IPv4单播路由在BGP对等体间进行交换,通常应用于跨域VPN-Option C方式组网。

图4 根据Prefix SID建立标签转发表项

 

4所示,Device D引入Loopback地址的路由时,为其分配索引值201,并计算SID,然后通过BGP协议报文将该SID以及SID的索引值通告出去。运行BGP SR的节点,形成的标签转发表项如下:

·     Device D上标签转发表项的入标签为16201

·     Device C收到该通告后,形成SRLSP标签转发表项,入标签为16201,出标签为16201,下一跳为Device D

·     Device B收到该通告后,形成SRLSP标签转发表项,入标签为16201,出标签为16201,下一跳为Device C

·     Device A收到该通告后,形成SRLSP标签转发表项,入标签为16201,出标签为16201下一跳为Device B

3.2.2  BGP-EPE

BGP-EPEBGP Egress Peer EngineeringBGP出口对等体工程)功能通过为对等体分配SID来标识指定对等体或者链路,从而控制跨域的流量从指定对等体或链路进行转发。

BGP-EPE为对等体分配SID时可以自动分配,也可以手工指定。如5所示,BGP-EPE能够针对对等体分配以下SID

·     PeerNode SID:节点类型SID,用于标识一个对等体节点。每一个对等体分配一个PeerNode SID。对于基于Loopback接口建立的EBGP邻居,其对应的物理链路可能有多条,那么针对该邻居的PeerNode SID就会对应多个出接口,转发时可以使用任意一个出接口转发,也可以使用多个出接口负载分担。

·     PeerAdj SID:邻接类型SID,用于标识到达对等体的一条链路。对于基于Loopback接口建立的EBGP邻居,其对应的物理链路可能有多条,则每条链路都会分配一个PeerAdj SID,转发时只能使用指定的链路(对应指定的出接口)进行转发。

·     PeerSet SIDSet类型SID,用于标识一组对等体。BGP支持将一组对等体规划为一个Set,基于该组分配SID,这个SID称为PeerSet SIDPeerSet SID在转发时可以对应多个出接口。一个PeerSet SID对应多个PeerNode SIDPeerAdj SID

图5 BGP-EPE示意图

 

5所示,BGP-EPE的标签分配方式为:

·     ASBR 1ASBR 3间存在两条直连物理链路,二者通过LoopBack接口建立EBGP邻居,BGP-EPE针对对等体分配了PeerNode SID 28001,为物理链路分配了PeerAdj SID 1800118002当通过PeerNode SID转发流量时,会在两条链路间负载分担。

·     ASBR 1ASBR 5ARBR 2ASBR 4,以及ASBR 2ASBR 5仅使用直连物理接口建立的EBGP邻居,BGP-EPE为对等体只分配了PeerNode SID 280022800328004

·     ASBR 4ASBR 5均和ASBR 2建立EBPG邻居关系,BGP-EPE将对等体ASBR 4ASBR 5加入同一Set组,为其分配PeerSet SID 29001当通过PeerSet SID转发流量时,会在多个邻居间负载分担。

通过BGP-EPE功能为邻居分配的SID仅具有本地意义,不会向其他设备通告。不同设备的PeerNode SIDPeerAdj SID可以相同。

BGP-EPE目前应用于跨域VPN业务。

通过在边界路由器上配置BGP-EPE功能,为指定对等体/对等体组分配SID

图6 跨域MPLS SR-TE场景配置BGP-EPE功能建立标签转发表项

 

6所示,以跨域MPLS SR-TE标签转发表项建立过程为例:

·     Device A上建立从Device ADevice B域内SR-TE隧道并绑定BSID 4000BSID的详细内容,请参见“5.1.2  Binding SID”。

·     Device B上开启BGP-EPE功能,分别为EBGP邻居Device CDevice D分配PeerNode SID,在EBGP邻居关系建立后:

¡     Device BEBGP邻居Device C分配PeerNode SID 5000,形成SRLSP标签转发表项,入标签5000、下一跳为Device C

¡     Device BEBGP邻居Device D分配PeerNode SID 6000,形成SRLSP标签转发表项,入标签6000、下一跳为Device D

·     Device C上建立Device CDevice E域内SR-TE隧道并绑定BSID 7000,类似地建立Device DDevice E域内SR-TE隧道并绑定BSID 8000

·     Device A上通过引用AS域内SR-TE隧道BSIDPeer SID,建立到Device E的端到端隧道。那么经过Device CDevice E的隧道路径为(400050007000);经过Device DDevice E的隧道路径为(400060008000)。

以从Device A经过Device CDevice E的隧道路径为例,报文转发过程如下:

(1)     Device A节点上的流量封装SRH扩展头,显式路径为(400050007000)。根据4000查找标签转发表项,判断该标签对应的是SR-TE隧道,4000代表的标签栈是(1610116102),弹出标签4000并压入AS 100域内显式路径的标签(1610116102),根据域内显式路径(1610116102)转发到Device B

(2)     Device B弹出AS 100域内显式路径标签后,根据5000查找标签转发表,判断该标签对应的下一跳为Device C,弹出5000标签后,发送给下一个节点Device C

(3)     中间节点Device C的转发过程与节点Device A类似,通过域内隧道将报文转发给Device E

报文到达尾节点Device E后,Device E删除报文中的域内标签后,根据报文目的IP地址查找FIB表转发。

3.3  SRLSP 建立

SID标签分配完成,SR域内设备建立标签转发表项后需要计算SRLSPSRLSP建立方式包括:

·     静态配置:根据转发路径需要,在隧道头节点上指定报文转发时携带的标签栈。标签栈中的每个标签对应一个Prefix SIDAdjacency SID,根据Prefix SIDAdjacency SID可以找到报文的出标签、下一跳等信息。

·     根据IGP/BGP协议动态建立:SR节点通过IGP/BGP协议搜集MPLS SR网络中的前缀SID信息,并根据该信息及IGP/BGP网络拓扑信息,通过SPF算法计算出到达MPLS SR网络中各个SR节点的最短路径,并在该路径上建立SRLSP,即MPLS SR-BEMPLS Segment Routing Best Effort

·     控制器算路:由控制器算路并下发算路路径到源节点,在设备上创建SRLSP。该方式的详细介绍请参见控制器相关资料。使用控制器算路建立SRLSP可以实现MPLS SR-TEMPLS Segment Routing Traffic Engineering),可以通过丰富的链路信息更灵活地选择转发路径。

3.4  MPLS SR报文转发过程

根据SID分配方式的不同,MPLS SR报文转发过程主要分为以下几种:

·     Prefix方式:在源节点将为尾节点分配的Prefix SID封装到报文中,各中间节点查找标签转发表项进行转发。报文在SRLSP转发中间节点执行的动作是交换标签。

·     Adjacency方式:在源节点将所有经过节点为邻接链路分配的Adjacency SID组成的标签栈封装到报文中,各中间节点根据标签栈最外层标签查找下一跳邻居,并在转发报文时删除标签栈最外层标签。报文在SRLSP转发中间节点执行的动作是弹出标签。

·     Prefix/Adjacency方式:采用PrefixAdjacency组合方式进行报文转发。

3.4.1  Prefix方式报文转发过程

7所示,Device A通过SRLSP将报文转发到Device E时,需要为报文指定出标签为16201Prefix方式报文转发过程如下:

(1)     在源节点Device A根据16201查找标签转发表项,判断该标签对应的下一跳为Device B,出标签为16201Device A为报文封装标签16201,发送给中间节点Device B

(2)     中间节点Device B的入标签为16201,出标签为16201,将16201替换为16201,发送给下一个中间节点Device C继续转发。

(3)     中间节点Device CDevice D的转发过程和Device B类似。

(4)     报文到达尾节点Device E后,Device E删除报文中的标签16201,根据报文目的IP地址查找FIB表转发。

图7 Prefix方式报文转发过程示意图

 

3.4.2  Adjacency方式报文转发过程

8所示,Device ADevice BDevice CDeivce D为链路分配的Adjacency SID分别为200201202203Device A通过SRLSP将报文转发到Device E时,需要为报文指定出标签栈为(200201202203)。Adjacency方式报文转发过程如下:

(1)     在源节点Device A根据栈顶标签200查找标签转发表项,判断该标签对应的下一跳为Device BDevice A为报文封装标签栈(201202203)后,将该报文转发给Device B

(2)     中间节点Device B接收到报文后,根据入标签201查找标签转发表项,判断该标签对应的下一跳为Device CDevice B删除标签栈最外层标签201后,发送给下一个中间节点Device C继续转发。

(3)     中间节点Device C接收到报文后,根据入标签202查找标签转发表项,判断该标签对应的下一跳为Device DDevice C删除标签栈最外层标签202后,发送给下一个中间节点Device D继续转发。

(4)     中间节点Device D接收到报文后,根据入标签203查找标签转发表项,判断该标签对应的下一跳为Device EDevice D删除标签栈最外层标签203后,发送给Device E继续转发。

(5)     Device E收到IP报文据报文目的IP地址查找FIB表转发

图8 Adjacency方式报文转发过程示意图

 

3.4.3  Prefix/Adjacency组合方式报文转发过程

9所示,Device C为本节点分配的Prefix SID索引值为1Device ADevice BDevice C上对应的Prefix SID分别为160011600116001Device CDevice D为邻接链路分配的Adjacency SID分别为1617Device A通过SRLSP将报文转发到Device E时,需要为报文指定出标签栈为(160011617)。

Adjacency/Prefix组合方式报文转发过程如下:

(1)     在源节点Device A根据16001查找标签转发表项,判断该标签对应的下一跳为Device B,出标签为16001Device A为报文封装标签栈(160011617),发送给中间节点Device B

(2)     中间节点Device B入标签为16001,出标签为16001,将16001替换为16001,发送给下一个中间节点Device C继续转发。

(3)     中间节点Device C接收到报文后,根据入标签1600116查找标签转发表项,判断该标签对应的下一跳为Device DDevice C删除标签栈最外层标签(1600116)后,发送给下一个中间节点Device D继续转发。

(4)     中间节点Device D接收到报文后,根据入标签17查找标签转发表项,判断该标签对应的下一跳为Device EDevice D删除标签栈最外层标签17后,发送给Device E继续转发。

(5)     Device E收到IP报文后,据报文目的IP地址查找FIB表转发。

图9 Adjacency/Prefix组合方式报文转发过程示意图

 

MPLS SR-BE场景

MPLS SR-BEMPLS Segment Routing Best Effort)是指IGP使用最短路径算法计算得到的最优SRLSP,由SID指导数据转发过程。SR LSP的创建过程和数据转发与LDP LSP类似。MPLS SR-BE不需要建立隧道接口。

4.1  MPLS SR-BE的隧道创建

图10 MPLS SR-BESRLSP隧道创建

 

MPLS SR-BESRLSP隧道创建与IGP计算收敛过程完全同步,当IGP算路完成时,MPLS SR-BESRLSP隧道也同步建立。如10所示,MPLS SR-BESRLSP隧道建立过程如下:

(1)     Device CLoopback接口上配置Prefix SID,生成转发表项并通过IGP通告。Device CDevice B建立IGP邻居关系后,开始发布链路状态更新报文LSPLink State PDU),LSP报文将携带SR的相关信息在IGP网络内部泛洪。域内设备通过ISIS协议互通,ISIS协议在LSP报文中将携带含SR Capabilities Sub-TLVIS-IS Router Capability TLV-242通告Device C支持MPLS SR能力,并在Sub-TLV中携带Prefix SID标签信息和Device CSRGB信息。

(2)     Device B接收到Device C发布的LSP报文后,发现本地LSDB中不存在去往1.1.1.1/32的路由,更新本地LSDB。同时去往路由前缀1.1.1.1/32LSP中携带了Prefix SIDDevice B根据Prefix SID信息生成本地的标签转发表项,包括出方向标签=Device CSRGB+Index,入方向标签= Device BSRGB+Index。同时Device B将更新后的LSDB通过SNP报文向其他邻居发布。

(3)     Device A收到Device B更新后的SNP报文,发现存在新的路由前缀信息,向Device B请求完整的LSPDevice A收到LSP报文后重复第二步Device B的计算过程并更新自己的LSDB生成本地的标签转发表项。最终达到整个IGP网络链路状态数据库LSDB同步。

MPLS SR-BE的数据转发可以参见“3.4.1  Prefix方式报文转发过程”。

MPLS SR-TE场景

MPLS SR-TEMPLS Segment Routing Traffic Engineering)是使用SR作为控制协议的一种新型的TE隧道技术。与MPLS SR-BE不同在于SRLSP的建立方式,MPLS SR-TE的隧道可以是由静态手工配置显式路径创建,也可以是通过控制器算路,并将标签栈下发给设备来创建。在MPLS SR-TE隧道的入节点上,需要创建隧道Tunnel接口,设备封装标签栈,控制报文在网络中的传输路径。

5.1  MPLS SR-TE相关概念

5.1.1  标签栈

标签栈是标签的排序集合,用于标识一条完整的LSP。标签栈中每一个标签标识一个出接口,整个标签栈标识了整条转发路径LSP的所有链路。在报文转发过程中,通过标签栈中的栈顶标签查找对应的标签转发表转发。将标签栈中所有标签弹出后,报文就走完了整条LSP,到达MPLS SR TE隧道的目的地。

5.1.2  Binding SID

MPLS SR-TE作为一个Tunnel接口,如果为这个接口分配一个Adjacency SID,那么该Adjacency SID可以作为MPLS TE隧道的唯一标识,利用这个Adjacency SID就可以将流量导入MPLS SR-TE隧道。这个标识MPLS SR-TE隧道的Adjacency SID就是Binding SID

通过Binding SID也可以实现标签粘连的功能。当标签栈深度超过转发器所支持的标签栈深度时,一个标签栈无法携带整条LSP的标签,控制器需要为转发器分配多个标签栈,在合适的节点下发标签栈的同时分配一种特殊的标签,通过该特殊标签将这些标签栈关联起来,实现逐段转发。这种特殊的标签称为粘连标签,这个合适的节点称为粘连节点。

5.2  MPLS SR-TE隧道创建

5.2.1  控制器算路创建MPLS SR-TE隧道

图11 控制器通过NETCONF下发隧道配置信息创建隧道示意图

 

11所示,通过控制器建立MPLS SR-TE隧道过程如下:

(1)     控制器基于MPLS TE的隧道约束属性,通过PCEPath Computation Element,路径计算单元)计算路径,计算出来的路径根据拓扑和邻接标签,将整条路径的邻接标签整合在一起,生成一个标签栈(即算路结果)。

当标签栈深度超过设备所支持的标签栈深度时,一个标签栈无法携带所有的邻接标签,则控制器需要将整条路径分为多个标签栈携带。

11所示,控制器计算出MPLS SR TE隧道路径为PE 1->P 3->P 1->P 2->P 4->PE 2,对应2个标签栈(200120092101)和(230526012689),其中2101为粘连标签,其他为邻接标签。

(2)     控制器通过NETCONFPCEP分别将隧道配置信息和标签栈下发给设备。

11所示,控制器下发标签栈的过程如下:

a.     控制器将标签栈(230526012689)下发给粘连节点P 1,并分配一个2101的粘连标签与该标签栈关联。

b.     控制器将2101作为PE 1上标签栈的栈底,将标签栈(200120092101)下发给入节点PE 1

(3)     设备根据控制器下发的隧道配置和标签栈信息建立MPLS SR-TE隧道。

5.2.2  配置显式路径创建MPLS SR-TE隧道

通过静态手工配置显式路径创建MPLS SR-TE的隧道过程:

(1)     根据规划,手工配置显式路径,指定显式路径中到达目的节点时所经过节点的标签或IP地址。

(2)     创建MPLS SR-TE隧道Tunnel接口,指定接口的信令协议为Segment Routing

(3)     通过在MPLS SR-TE隧道Tunnel接口下引用显式路径静态建立SRLSP

5.3  MPLS SR-TE数据转发

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

图12 MPLS SR-TE数据报文转发示意图

 

12所示,控制器计算出MPLS SR-TE隧道路径为PE 1->P 3->P 1->P 2->P 4->PE 2,对应2个标签栈(200120092101)和(230526012689),分别下发给入节点PE 1和粘连节点P 1。其中,2101为粘连标签,与标签栈(230526012689)相关联,其他为邻接标签。这种方式的MPLS SR TE数据报文转发过程如下:

(1)     入节点PE 1为数据报文添加标签栈(200120092101),然后根据栈顶的标签2001匹配标签转发表,找到对应的转发出接口为Interface A2,之后将标签2001弹出。报文携带标签栈(20092101),通过Interface A2向下游节点P 3转发。

(2)     中间节点P 3收到报文后,根据栈顶的标签2009匹配标签转发表,找到对应的转发出接口为Interface C3,之后将标签2009弹出。报文携带标签栈(2101),通过Interface C3向下游节点P 1转发。

(3)     粘连节点P 1收到报文后,通过查询粘连标签表项识别出栈顶标签2101为粘连标签,将粘连标签2101交换为与其关联的标签栈(230526012689),然后根据新的栈顶标签2305匹配标签转发表,找到对应的转发出接口为Interface B2,之后将标签2305弹出。报文携带标签栈(26012689),通过Interface B2向下游节点P 2转发。

(4)     节点P 2P 4收到报文后,转发方式与P 3相同。直到节点P 4弹出最后一个标签2689,将IP报文转发至节点PE 2

(5)     出节点PE 2收到不带标签的IP报文,根据目的IP地址查找IP路由表转发。

IGP SRLDP互通

MPLS SRLDP共存的网路环境中,需要解决SR网络和LDP网络之间互通的问题。SRLDP互通是一项让SR协议和LDP协议在同一网络中共同工作的技术。通过此技术可以让SR网络连接到LDP网络中,实现两个网络之间的MPLS转发。

SRLDP互通包括以下组网方式:

·     SR to LDP:数据流量从SR网络转发到LDP网络。

·     LDP to SR:数据流量从LDP网络转发到SR网络。

·     SR over LDPSR网络跨越LDP网络交互数据流量。

·     LDP over SRLDP网络跨越SR网络交互数据流量。

6.1  IGP SRLDP互通机制

6.1.1  SR映射

13所示,LDP网络和MPLS SR网络的标签分配方式如下:

·     LDP网络中,设备只要学习到前缀路由,即可为其分配标签,无需特殊处理。例如,对于SR网络中的前缀1.1.1.1/32LDP网络中的设备只要学习到该路由,就会为其分配标签。

·     MPLS SR网络中,设备不仅要学习到前缀路由,还需要接收到该前缀的SID,才会为其分配本地的SID。例如,对于LDP网络中的前缀5.5.5.5/32SR网络中的设备虽然能够学习到其前缀路由,但由于LDP设备无法发布5.5.5.5/32的前缀SID,因此,SR设备不会为其分配本地的SID

图13 LDP网络和MPLS SR网络的标签分配示意图

 

14所示,通过部署SRMSSRMC,可以解决SR设备无法为LDP网络前缀分配SID的问题。

·     SRMSSR Mapping ServerSR映射服务器):代替LDP网络中的设备设置前缀地址与SID的映射关系,并且发布给SRMC

·     SRMCSR Mapping ClientSR映射客户端):接收SRMS发布的前缀地址与SID的映射关系,为该前缀地址分配SID,并创建标签转发表。

图14 SR映射示意图

 

6.1.2  标签映射

15所示,为了实现SRLDP互通,在同时连接SR网络与LDP网络的设备上,对于如下两种情况需要进行标签映射:

·     SR网络到LDP网络的标签连接:Device B运行的LDP自动为从节点Device C学到的主机路由分配出标签,同时Device B作为SRMS为从Device C学到的主机路由分配Prefix SID通告给SR域内的Device A作为入标签。当不存在到达LDP网络设备的有效MPLS SR出标签时,将有效的LDP出标签作为MPLS SR出标签。

·     LDP网络到SR网络的标签连接:Device B运行的SR从节点Device A学到的主机路由以及SR的出标签Prefix SID,同时Device B将从节点Device A学到的主机路由发布给Device C后,Device C触发LDP为路由自动分配出标签此出标签在Device B上就是入标签,而Device B上不存在有效出标签。当不存在到达SR网络设备的有效LDP出标签时,将有效的MPLS SR出标签作为LDP出标签。

图15 标签映射示意图

 

6.2  SR to LDP

16所示,Device CDevice DDevice E运行LDP协议;Device ADevice BDevice C运行MPLS SR功能。在Device ADevice BDevice C上部署SRMSSRMC,为LDP网络内设备分配前缀SID,实现数据流量从SR网络转发到LDP网络。

图16 SR to LDP报文转发过程示意图

 

MPLS SR标签与LDP标签关联过程如下:

(1)     Device CDevice DDevice E为目的地址5.5.5.5/32分配标签,形成LDP标签转发表项。

(2)     Device C作为SRMS,为目的地址5.5.5.5/32分配前缀类型SID索引值5,并将前缀SID索引值发布给Device ADevice BDevice C同时作为SRMC,为目的地址5.5.5.5/32分配SID 16005,形成对应的MPLS SR标签转发表项,该表项的出标签为无效值。Device C将到达Device E的无效MPLS SR出标签替换为有效的LDP出标签2110

(3)     Device ADevice B作为SRMC,接收通告信息,为目的地址5.5.5.5/32分配SID 16005,形成各自的MPLS SR标签转发表项。

6.3  LDP to SR

17所示,Device ADevice BDevice C运行LDP协议;Device CDevice DDevice E运行MPLS SR功能。要实现LDP to SR的流量转发,不需要部署SRMSSRMCLDP标签与SR标签可以自动关联,直接根据标签转发表转发数据报文。

图17 LDP to SR报文转发过程示意图

 

MPLS SR标签与LDP标签关联过程如下:

(1)     Device E5.5.5.5/32分配前缀类型SID索引值5,并通过IGP协议将该索引值以及本地SRGB通告出去。同时Device E为目的地址5.5.5.5/32分配SID 16005,形成对应的MPLS SR标签转发表项。

(2)     Device CDevice D接收通告信息后,为目的地址5.5.5.5/32分配SID 16005,形成对应的MPLS SR标签转发表项。

(3)     Device ADevice BDevice C为目的地址5.5.5.5/32分配标签,形成LDP标签转发表项。

(4)     Device C将到达Device E的无效LDP出标签替换为有效的MPLS SR出标签16005

6.4  SR over LDP

18所示,Device CDevice DDevice E运行LDP协议;Device ADevice BDevice CDevice EDevice FDevice G运行MPLS SR功能。由于SR网络内的设备可以通过IGP协议跨越LDP网络,将前缀SID发布到另一端的SR网络,所以不需要在SR网络内部署SRMSSRMC

图18 SR over LDP网络互通示意图

 

MPLS SR标签与LDP标签关联过程如下:

(1)     Device G7.7.7.7/32分配前缀类型SID索引值7,并通过IGP协议将该索引值以及本地SRGB通告出去。同时Device G为目的地址7.7.7.7/32分配SID 16007,形成对应的MPLS SR标签转发表项。

(2)     Device ADevice BDevice CDevice EDevice F接收到通告信息后,为目的地址7.7.7.7/32分配SID 16007,形成对应的MPLS SR标签转发表项。

(3)     Device CDevice DDevice E为目的地址5.5.5.5/32分配标签,形成LDP标签转发表项。

(4)     Device C将到达Device G的无效MPLS SR出标签替换为有效的LDP出标签2112

(5)     Device E将到达Device G的无效LDP出标签替换为有效的MPLS SR出标签16007

6.5  LDP over SR

Device ADevice BDevice CDevice EDevice FDevice G运行LDP协议;Device CDevice DDevice E运行MPLS SR功能。在LDP over SR组网环境下,需要在SR网络中部署SRMSSRMC,以便在SR网络中建立到达LDP设备的标签转发表项。

图19 LDP over SR网络互通示意图

 

MPLS SR标签与LDP标签关联过程如下:

(1)     Device ADevice BDevice CDevice EDevice FDevice G为目的地址7.7.7.7/32分配标签,形成LDP标签转发表项。

(2)     Device E作为SRMS,为Device G7.7.7.7/32分配前缀类型SID索引值7,并将前缀SID索引值发布给Device CDevice DDevice E同时作为SRMC,为目的地址7.7.7.7/32分配SID 16007,形成对应的MPLS SR标签转发表项,该表项的出标签为无效值。Device E将到达Device G的无效MPLS SR出标签替换为有效的LDP出标签2165

(3)     Device CDevice D作为SRMC,接收通告信息,为目的地址7.7.7.7/32分配SID 16007,形成各自的MPLS SR标签转发表项。

(4)     Device C将到达Device G的无效LDP出标签替换为有效的MPLS SR出标签16007

BGP SRSR网络互通

在跨域的组网场景中,BGP SR可以实现与非SR网络互通,非SR网络的隧道协议包括RSVP-TELDPGRE等,下文以LDP网络为例说明互通机制。

当使用BGP协议通告SIDMPLS SR网络和LDP网络共存时,为了实现SR网络与LDP网络互通,需要为LDP网络中不支持SR的设备分配SID。因此定义了以下两个角色:

·     SRMSSR网络中代替不支持MPLS SRLDP设备发布SID。在SRMS上配置前缀地址与SID的映射关系,并且发布给SRMC

·     SRMCSR网络中接收SRMS发布的前缀地址与SID的映射关系,创建MPLS SR标签转发表。

BGP SRLDP互通包括以下过程:

·     SR to LDP:通过BGP IPv4单播路由将LDP网络的前缀地址映射为SR网络的SID,实现数据流量从SR网络转发到LDP网络。

·     LDP to SR:通过BGP协议通告SID,将SIDBGP申请的标签关联,实现数据流量从LDP网络转发到SR网络。

7.1  SR to LDP

设备通过BGP协议实现SR to LDP时,只能根据本地配置的前缀地址和SID映射关系为LDP网络中不支持SR的节点分配SID,所以同时开启MPLS SR功能和LDP功能的节点需要同时作为SRMSSRMC

20所示,Device BDevice CDevice D运行LDP协议,Device D通过BGP为目的地址3.3.3.3/32分发标签,Device BDevice CDevice D上形成LDP标签转发表项;Device ADevice B开启BGPMPLS SR功能,标签发布的过程如下:

(1)     Device DDevice B发布带标签1274BGP路由3.3.3.3/32,此标签由BGP申请,下一跳为Device D

(2)     Device B作为SRMS,为Device D上的Loopback地址3.3.3.3/32分配索引值201

(3)     Device B作为SRMC,根据本地配置的前缀地址和SID映射关系,形成MPLS SR标签转发表。此时去往3.3.3.3/32的标签转发表项入标签为MPLS SR标签16201,出标签为BGP申请的标签1274

(4)     Device B通过BGP协议报文向Device A通告3.3.3.3/32Prefix SIDDevice A根据收到的BGP协议报文建立对应的MPLS SR标签转发表。

图20 SR to LDP报文转发过程示意图

 

数据报文从Device ADevice D的转发过程如下:

(1)     源节点Device A为报文封装标签16201,发送给中间节点Device B

(2)     中间节点Device B根据报文的入标签16201,查找MPLS SR标签转发表项,发现出标签不存在,此时设备上存在关于目的地址3.3.3.3/32的有效LDP出标签1274,将出标签1274作为SR的出标签,在标签转发表项中下一跳是Device D,去往Device D需要迭代到LDP LSPLDP为报文封装外层标签20,并发送报文给下一个中间节点Device C继续转发。

(3)     Device C收到报文后,根据报文的入标签20查找对应的LDP标签转发表项,删除报文中的标签,将报文发送给尾节点Device D

(4)     报文到达尾节点Device D后,Device D弹出内层标签1274,按IP继续转发即可。

7.2  LDP to SR

21所示,Device ADevice BDevice C运行LDP协议,收到3.3.3.3/32的路由后,通过BGP为其申请标签,形成标签转发表项。Device CDevice D运行BGPMPLS SR功能,MPLS SR标签与BGP通告3.3.3.3/32的路由时携带的1280标签关联,标签分配过程如下:

(1)     网络管理员将索引值201分配给Device D上的Loopback地址3.3.3.3/32Device DDevice C建立EBGP邻居,通过BGP IPv4单播路由将该索引值通告出去。

(2)     Device C收到通告信息后,形成去往路由3.3.3.3/32MPLS SR标签转发表。

(3)     Device CIBGP邻居Device A发布带标签1280的路由3.3.3.3/32

(4)     Device CMPLS SR标签与BGP标签1280关联。

图21 LDP to SR报文转发过程示意图

 

数据报文从Device ADevice D的转发过程如下:

(1)     Device A3.3.3.3/32转发报文,根据Device C分配的标签1280封装内层标签,迭代下一跳是Device C。去往下一跳Device C需要迭代到LDP隧道,LDP为去往Device CFEC分配的外层标签20,根据标签转发表转发至Device B

(2)     Device B收到报文后,根据LDP标签转发表项将报文转发给下一跳Device C,出标签为3。倒数第二跳弹出LDP的外层标签。

(3)     Device C接收到携带1280的内层标签报文,根据MPLS SR标签与BGP标签1280的映射关系,将出标签替换为MPLS SR 标签16201,发送报文给尾节点Device D

(4)     报文到达尾节点Device D后,Device D删除报文中的标签16201,按IP继续转发即可。

SR-TE Policy

SR-TE PolicySegment Routing Policy,段路由策略)提供了灵活的转发路径选择方法,满足用户不同的转发需求。当Segment Routing网络的源节点和目的节点之间存在多条路径时,合理利用SR-TE Policy选择转发路径,不仅可以方便管理员对网络进行管理和规划,还可以有效地减轻网络设备的转发压力。

8.1  SR-TE Policy基本概念

SR-TE Policy通过三元组{HeadendColorEndpoint}来标识:

·     Headend:源节点。源节点将报文引入SRv6-TE Policy,并由SRv6-TE Policy引导报文在选定的路径上转发。

·     Color:转发路径的Color属性,用于在相同的源和目的节点之间区分多个SR-TE Policy

·     End-pointSR-TE Policy目的节点,可由IP地址标识。

一个SR-TE PolicyBSID和多条具有不同优先级的Candidate Paths(候选路径)组成,每个候选路径包括由Segment ListSID列表)标识的一条或多条转发路径:

·     BSID

Binding SIDSR-TE Policy对外提供网络服务的接口。报文封装该SID,即将流量引导到该SR-TE Policy

·     Candidate Paths

Candidate Paths是指SR-TE Policy的候选路径,SR-TE Policy中的转发路径。SR-TE Policy包含一条或多条候选路径。不同SR-TE Policy不能共享同一条候选路径。

·     Segment List

Segment ListSID列表)是包含报文转发路径信息的列表。SID列表中的SID为转发路径上各个节点到下一跳的SID。候选路径由一个SID列表或者多个带权重的SID列表组成。

SR-TE Policy配置和应用时还涉及以下概念:

1. Preference

Preference为候选路径的优先级,用于在通过SR-TE Policy转发流量时,选择候选路径。

2. Weight

每个SID列表对应一个Weight(权重)。SR-TE Policy选择某条候选路径后,会根据SID列表的Weight,在候选路径的多个SID列表间进行负载分担。

3. SR-TE Policy隧道

建立SR-TE Policy后,会自动创建SR-TE Policy隧道,即从部署SR-TE Policy的节点到SR-TE Policy目的节点的一条虚拟点到点连接。SR-TE Policy隧道由SRLSP构成。

4. SR-TE Policy

一组SR-TE Policy的集合。将SR-TE Policy加入SR-TE Policy组后,可以实现通过不同的SR-TE Policy转发不同DSCPDifferentiated Services Code Point,区分服务编码点)的报文。

8.2  SR-TE Policy有效性

SR-TE Policy有效性判断规则如22所示。

图22 SR-TE Policy有效性判断示意图

http://press.h3c.com/data/infoblade/Comware%20V7%E5%B9%B3%E5%8F%B0B75%E5%88%86%E6%94%AF%E4%B8%AD%E6%96%87/11-Segment%20Routing/03-SR-TE%20Policy/SR-TE%20Policy%E9%85%8D%E7%BD%AE.files/20210129_5546823_x_Img_x_png_0_1381055_30005_0.png

 

判断SID列表是否有效时,存在以下情况SID列表无效:

·     SID列表为空;

·     SID列表的权重为0

·     SR节点无法根据SID列表中的栈顶SID找到出接口或下一跳地址。

8.3  SR-TE Policy选路原则

通过SR-TE Policy转发流量时选路过程为:

(1)     设备收到栈顶标签为BSID的报文后,根据BSID选择对应的有效SR-TE Policy转发流量。

(2)     如果BSID匹配到多个有效SR-TE Policy,则按照配置BSID的顺序选择SR-TE Policy转发流量。先配置BSIDSR-TE Policy优先被选择转发流量。

(3)     设备在选中的SR-TE Policy中选择优先级取值最大的有效候选路径转发流量。

(4)     在优先级取值最大的有效候选路径的各个SID列表间进行WECMPWeighted ECMP,权重负载分担),即基于权重对通过SR-TE Policy转发的流量进行负载分担。SR-TE Policy中有效SID列表转发流量的比例为Weight x/(Weight 1+Weight 2+…+Weight n)

如所示,根据BSID选择有效的SR-TE Policy转发流量,再选取优先级取值最大的有效候选路径转发流量。该候选路径中有两个有效的SID列表:SID List 1SID List 2,其权重分别为2080。通过该SR-TE Policy转发流量时,SID List 1SID List 2转发的流量占比分别为1/54/5

图23 SR-TE Policy转发流量时选路过程示意图

http://press.h3c.com/data/infoblade/Comware%20V7%E5%B9%B3%E5%8F%B0B75%E5%88%86%E6%94%AF%E4%B8%AD%E6%96%87/11-Segment%20Routing/03-SR-TE%20Policy/SR-TE%20Policy%E9%85%8D%E7%BD%AE.files/20210129_5546824_x_Img_x_png_1_1381055_30005_0.png

 

8.4  SR-TE Policy转发过程

24所示,SR-TE Policy转发过程为:

(1)     Device A收到栈顶标签为16001的报文后,查找LFIBLabel Forwarding Information Base,标签转发信息库)表判断该标签为BSID,需要根据SR-TE Policy转发该报文。Device A根据LFIB表获取出标签和下一跳(Device B),将BSID弹出并压入SID列表的标签栈(200022100322004),然后将报文发送给Device B。其中,20002Device A到达Device BSID21003Device B到达Device CSID22004Device C到达Device DSID

(2)     Device B收到报文后查找LFIB表,根据入标签获取到下一跳为Device C,将报文发送给Device C

(3)     Device C收到报文后查找LFIB表,根据入标签获取到下一跳为Device D,将报文发送给Device D

(4)     Device D收到报文后,如果报文携带标签,则查找LFIB表转发报文;如果报文未携带标签,则查找IP转发表转发报文。

图24 SR-TE Policy转发过程示意图

http://press.h3c.com/data/infoblade/Comware%20V7%E5%B9%B3%E5%8F%B0B75%E5%88%86%E6%94%AF%E4%B8%AD%E6%96%87/11-Segment%20Routing/03-SR-TE%20Policy/SR-TE%20Policy%E9%85%8D%E7%BD%AE.files/20210129_5546835_x_Img_x_png_2_1381055_30005_0.png

 

8.5  SR-TE Policy引流

可以通过如下方式将数据报文引流到SR-TE Policy,通过SR-TE Policy转发该报文:

·     基于BSID引流:如果接收到的报文的栈顶标签为某个SR-TE PolicyBSID,则通过该SR-TE Policy转发该报文。

·     基于Color引流:查找是否存在ColorEndpoint地址与BGP路由的Color扩展团体属性和下一跳地址完全相同的SR-TE policy。若存在,则将该BGP路由迭代到SR-TE Policy当设备收到匹配该BGP路由的报文时,会通过SR-TE Policy转发该报文。

·     基于隧道策略引流:MPLS L3VPNEVPN L3VPN组网中,通过首选隧道策略或负载分担隧道策略,可以实现用指定SR-TE Policy的路径作为公网隧道来承载特定VPN实例的私网报文。

·     基于DSCP引流:根据报文的目的地址匹配隧道绑定策略,关联到SR-TE Policy组后,根据报文的DSCP值查找与其关联的Color属性,再通过Color属性匹配到SR-TE Policy组中的某个SR-TE Policy。这样,携带指定DSCP的报文可以通过指定SR-TE Policy转发。

·     基于静态路由引流:配置静态路由迭代到SR-TE Policy,如果设备收到匹配该静态路由的报文,则通过指定SR-TE Policy转发该报文。

·     基于QoS策略引流:通过QoS策略将流量重定向到SR-TE Policy,如果设备收到匹配该QoS策略流分类规则的报文,则通过指定SR-TE Policy转发该报文。

·     基于Flowspec引流:通过Flowspec路由将流量重定向到SR-TE Policy,如果设备收到匹配该Flowspec路由规则的报文,则通过指定SR-TE Policy转发该报文。

8.6  SR-TE Policy热备份功能

SR-TE Policy中存在多条有效候选路径时,设备通过优先级最大的候选路径转发报文。如果该候选路径发生故障,则SR-TE Policy需要重新选择有效候选路径转发报文。由于选择新的有效候选路径会耗费一些时间,所以在切换转发路径的过程中会造成丢包,影响业务流量转发。

SR-TE Policy的热备份功能可以解决上述问题。SR-TE Policy的热备份是指通过备份候选路径对主候选路径进行保护。如果一个SR-TE Policy下存在多条候选路径,则优先级最高的有效候选路径作为主路径,优先级次高的有效候选路径作为备份路径。如25所示,如果主路径下所有SID列表对应的转发路径都发生故障,则将流量立即切换到备份候选路径转发,以减少对业务的影响。

图25 SR-TE Policy热备份示意图

http://press.h3c.com/data/infoblade/Comware%20V7%E5%B9%B3%E5%8F%B0B75%E5%88%86%E6%94%AF%E4%B8%AD%E6%96%87/11-Segment%20Routing/03-SR-TE%20Policy/SR-TE%20Policy%E9%85%8D%E7%BD%AE.files/20210129_5546859_x_Img_x_png_5_1381055_30005_0.png

 

SR-TE Policy热备份功能和SR-TE PolicySBFD联动配合使用时,SBFD可以同时检测SR-TE Policy中优先级最高和次高的两条候选路径里的所有SID列表对应的转发路径。如果优先级最高的候选路径里所有SID列表对应的转发路径都发生故障,则将流量切换到备份路径。当流量切换到备份路径后,会再次重新计算主备路径。原备份路径将作为主路径,并重新选择一个有效的候选路径作为新的备份路径。当主备路径同时故障时,SR-TE Policy将重新计算主备路径。

8.7  MP-BGPSR-TE Policy扩展

为了支持SR-TE PolicyMP-BGP定义了新的子地址族——IPv4 SR-TE Policy地址族,并新增了SR-TE Policy NLRINetwork Layer Reachability Information,网络层可达性信息),即SR-TE Policy路由。SR-TE Policy路由中包含SR-TE Policy的相关配置,包括BSIDcolorEndpointPreferenceWeight等。设备将SR-TE Policy路由发布给对等体后,对等体也可以根据SR-TE Policy转发流量。

设备支持为BGP路由添加Color扩展团体属性,为BGP路由添加Color扩展团体属性后,如果设备收到匹配该路由的报文,则会根据该路由Color扩展团体属性中的Color值查找具有相同Color值的SR-TE Policy,使设备可以该通过SR-TE Policy转发报文。如果未查找到具有相同Color值的SR-TE Policy,则设备通过最优路由转发报文。

Color属性的格式:2位二进制数CO(Color-Only)标记位:32位用户自定义Color值,例如:10:3

SBFD for SR

SBFDSeamless BFD,无缝BFD)是一种单向的故障检测机制,简化了BFD的状态机(SBFD仅支持UPDOWN两个状态),缩短了会话协商时间,其检测速度比BFD更快速。SBFD适用于仅一端需要进行链路状态检测的情况。

SBFD会话中,节点的角色分为发起端(Initiator)和响应端(Reflector):

·     InitiatorSBFD会话的发起者,负责维护SBFD会话的状态。Initiator周期性发送SBFD控制报文。

·     Reflector:监听到达本地节点的SBFD控制报文,并判断是否需要生成SBFD响应报文。Reflector无需维护SBFD会话状态。

SBFD的检测机制如下:

(1)     Initiator周期性向Reflector发送SBFD控制报文。

(2)     Reflector收到Initiator发送的SBFD报文后,检查报文中携带的远端标识符是否与本地节点为Reflector指定的标识符一致。如果一致,Reflector将向Initiator发送SBFD响应报文。如果不一致,Reflector将丢弃收到的SBFD报文。

(3)     Initiator在检测时间超时前收到响应报文,则认为链路可达。否则,认为链路不可达。

9.2  SR-BE LSPSBFD联动

SR-BE LSP场景下,使用SBFD可以快速检测SR-BE主路径故障。

图26 SBFD检测SR-BE主路径故障示意图

 

 

26所示,所有设备的SRGB范围都是1600017000SBFD检测SR-BE路径过程如下:

(1)     源节点Device A对外发送SBFD报文,SBFD报文迭代到SR-BE隧道并封装下一跳节点SID,根据IGP SPF算路结果优选SR-BE主路径转发,在中间节点B上进行标签交换后继续转发至尾节点Device D

(2)     尾节点Device D收到SBFD报文后,通过查找IP路由表按照最短路径发送回应报文。

(3)     源节点Device A如果收到SBFD回应报文,则认为SR-BE主路径正常,否则,会认为该SR-BE主路径故障。如果该SR-BE LSP存在备路径,则SBFD触发主备路径切换。

9.3  SR-TESBFD联动

SR-TE场景下,使用SBFD可以快速检测SR-TE隧道的故障。

图27 SBFD检测SR-TE路径故障示意图

 

SBFD检测SR-TE路径过程如下:

(1)     源节点Device A对外发送SBFD报文,SBFD报文封装SR-TE LSP显式路径的SID列表。

(2)     尾节点Device E收到SBFD报文后,通过查找IP路由表按照最短路径发送回应报文。

(3)     源节点Device A如果收到SBFD回应报文,则认为主路径正常;否则,会认为主路径故障。如果SR-TE存在热备隧道,则SBFD触发主备路径切换。

9.4  SR-TE PolicySBFD联动

SR-TE Policy场景下,使用SBFD可以快速检测SR-TE Policy路径中所发生的故障。相比SR-TE场景,SBFD可以检测多个SID列表所代表的显式路径。

缺省情况下,SBFD仅检测SR-TE Policy中优先级最高的候选路径里的所有SID列表。

图28 SR-TE PolicySBFD联动示意图

http://press.h3c.com/data/infoblade/Comware%20V7%E5%B9%B3%E5%8F%B0B75%E5%88%86%E6%94%AF%E4%B8%AD%E6%96%87/11-Segment%20Routing/03-SR-TE%20Policy/SR-TE%20Policy%E9%85%8D%E7%BD%AE.files/20210129_5546846_x_Img_x_png_3_1381055_30005_0.png

 

28所示,源节点Device A开启SR-TE PolicySBFD联动功能后,将Endpoint地址作为SBFD的远端描述符。当SR-TE Policy中优先级最高的候选路径里存在多个SID列表时,会建立多个SBFD会话分别用来检测每一个SID列表对应的转发路径,所有SBFD会话的远端描述符均相同。如果一个候选路径下所有Segment List都发生故障,则SBFD触发候选路径切换。

通过SBFD检测SR-TE Policy路径过程如下:

(1)     源节点Device A对外发送SBFD报文,SBFD报文封装SR-TE Policy对应的SID列表。

(2)     尾节点Device E收到SBFD报文后,通过查找IP路由表按照最短路径发送回应报文。

(3)     源节点Device A如果收到SBFD回应报文,则认为该SID列表对应的转发路径正常;否则,会认为该SID列表对应转发路径故障。如果一个候选路径下所有SID列表对应的转发路径都发生故障,则SBFD触发候选路径切换。

10  TI-LFA FRR

TI-LFA FRRTopology-Independent Loop-free Alternate Fast Reroute,拓扑无关无环备份快速重路由)用来为Segment Routing隧道提供链路及节点的保护。当某处链路或节点故障时,流量会快速切换到备份路径,继续转发。从而最大程度上避免流量的丢失。

10.1  TI-LFA FRR优势

基于Segment RoutingTI-LFA FRR技术有如下优势:

·     满足IP FRR快速收敛的基本要求。

·     原则上,对流量的保护不受组网环境的限制。

·     算法复杂度适中。

·     选择收敛后的路径作为备份路由转发路径,相比其他FRR技术,转发过程中设备不会有正在收敛的中间态。

10.2  TI-LFA FRR相关概念

TI-LFA FRR主要涉及以下概念:

·     P空间:以保护链路源端为根节点建立SPFShortest Path First,最短路径优先)树,所有从根节点不经过保护链路可达的节点集合称为P空间。P空间内的节点被称为P节点。

·     扩展P空间:以保护链路源端的所有邻居为根节点分别建立SPF树,所有从根节点不经过保护链路可达的节点集合称为扩展P空间。P空间在扩展P空间范围内。

·     Q空间:以目的节点为根节点建立反向SPF树,所有从根节点不经过保护链路可达的节点集合称为Q空间。Q空间内的节点被称为Q节点。

10.3  TI-LFA FRR保护类型

TI-LFA流量保护分为以下两种类型:

·     链路保护:当需要保护的对象是经过特定链路的流量时,流量保护类型为链路保护。

·     节点保护:当需要保护的对象是经过特定设备的流量时,流量保护类型为节点保护。

节点保护优先级高于链路保护。

10.4  TI-LFA FRR路径计算

29所示,PE 1为源节点,P 1节点为故障节点,PE 2为目的节点,链路中间的数字表示cost值。假设流量路径为:PE 1>P 1>PE 2,为避免P 1节点故障导致流量丢失,TI-LFA会计算出扩展P空间、Q空间、P 1故障收敛后的SPF树、Repair List和备份出接口,最终生成备份转发表项。

图29 TI-LFA典型组网图

 

TI-LFA计算备份路径步骤如下:

(1)     计算扩展P空间:至少存在一个邻居节点到P节点的路径不经过故障链路的集合,即P 2

(2)     计算Q空间:Q节点到目的节点不经过故障链路的集合,即PE 2P 4

(3)     计算收敛后的SPF树:计算P 1故障收敛后的SPF树,即P 1故障后的最优转发路径。SPF树为PE 1>P 2>P 4>PE 2

(4)     计算Repair ListRepair List是一个约束路径,当P空间和Q空间没有交集时,用来指示如何到达最近的Q节点,Repair List由“P节点的标签+P节点到最近的Q节点路径上的邻接标签”组成。29中,Repair ListP 2的节点标签16030,加上P 2P 3的邻接标签2168,以及P 3P 4的邻接标签2178

(5)     计算备份出接口:PE 1P 1链路故障后的下一跳出接口,即PE 1连接P 2的接口。

10.5  TI-LFA FRR转发流程

TI-LFA备份路径计算完成之后,如果主路径发生故障,就可以根据备份路径进行转发,避免流量丢失。

30所示,P 2P节点,P 4PE 2Q节点。主下一跳P 1故障时,触发FRR切换到备路径,详细过程如下:

(1)     PE 1为报文封装标签栈,包括Repair List和目的节点标签。最外层封装P节点(P 2)的节点标签=P节点的SRGB起始值+P节点前缀SID索引值=16030,然后封装P节点到最近的Q节点的标签,分别为21682178,目的节点标签=Q节点的SRGB起始值+目的节点(PE 2)的前缀SID索引值=16010

(2)     P 2收到报文后,根据最外层标签查找标签转发表,弹出2168标签,将报文转发给P 3

(3)     P 3收到报文后,根据最外层标签查找标签转发表,弹出2178标签,将报文转发给P 4

(4)     P 4收到报文后,根据最外层标签查找标签转发表,出标签为16010,下一跳为PE 2。于是将最外层标签替换成16010,报文转发给PE 2,如此按照最短路径的方式将报文转发到目的节点PE 2

图30 TI-LFA FRR备份路径转发流程图

 

10.6  正切防微环

31所示,当Device B故障时,到Device C的流量将切换到TI-LFA计算的备份路径转发。在此之前,需要备份路径上各个设备完成收敛,才能转发流量。在Device A收敛完成后,流量将沿着备份路径转发,此时如果Device DDevice F还没有收敛,仍按照收敛前的路径转发流量,则Device ADevice F之间形成环路,直到Device DDevice F收敛完成。

Device B故障以后,首先流量切换到TI-LFA计算的备份路径,然后Device A延迟一段时间收敛,等待Device DDevice F收敛完成以后,Device A开始收敛,收敛完成以后,流量再通过TI-LFA计算的备份路径转发,从而避免发生环路。

图31 正切防微环故障场景

 

10.7  回切防微环

32所示,Device BDevice C之间的链路故障恢复前,数据流量沿着备份路径转发。当Device BDevice C之间的链路故障恢复后,如果Device A先于Device B收敛,则Device A会将流量转发给Device B,但是Device B没有收敛,仍旧沿着备份路径转发,这样Device ADevice B之间就会形成环路。

Device A在故障回切以后,会自动计算一条最优路径达到Device C,并按照该路径转发流量,即Device A在转发时为报文添加端到端路径信息(例如Device BDevice C的邻接标签),这样Device B收到报文后,根据报文的路径信息将报文转发给Device C,避免环路的产生。

经过SR防微环延迟时间后,Device B节点完成收敛,Device A去除额外添加的路径信息,按正常转发的方式将报文转发到Device C

图32 回切防微环故障场景

 

11  Anycast SR

为了提高网络可靠性,可以将几个SR节点作为一组,这些SR节点在网络中发布相同地址和相同SID。在配置前缀SID时可以通过指定n-flag-clear参数将前缀SID标志位置为0,表示该前缀SID代表一组SR节点,即Anycast SR,这个前缀SIDAnycast SID

通常FRR算法只能利用SPF计算从单一源发布路由的备份下一跳,对于多个源发布相同路由的场景无法支持。在多个源发布相同路由场景下,为了计算前缀SID的备份下一跳,通过部署Anycast SR可以将多个路由发布节点变成单个路由发布节点,再进行计算。

33所示,可以将Device DDevice E配置在同一个组里。假设Device A到达Device B的路径经过Device D的路径最优,则经过Device E的路径会作为Anycast SR FRR备份路径。当Device E或去往Device B的下一跳故障时,则Device A到达Device B业务可以通过Device E的备份路径到达Device B

图33 Anycast SR典型组网示意图

 

12  SR OAM

MPLS OAMOperationAdministration and Maintenance,操作、管理和维护)功能为MPLS网络提供了数据平面连通性检测、数据平面与控制平面一致性校验、故障点定位等多种错误管理(Fault Management)工具。MPLS OAM利用这些错误管理工具对LSPMPLS TE隧道和MPLS PW进行检测和故障定位,降低了MPLS网络的管理和维护的复杂度,提高了MPLS网络的可用性。

12.1  MPLS SR Ping

用来对SR-BE隧道、SR-TE隧道或SR-TE Policy隧道的连通性进行手工检测。MPLS Ping的工作机制是:在Ingress节点为MPLS Echo Request报文压入待检测隧道对应的标签;经过隧道将该报文转发到Egress节点;Egress节点处理该报文后,回应MPLS Echo Reply报文;如果Ingress节点接收到表示成功的MPLS Echo Reply报文,则说明该隧道可以用于数据转发;如果Ingress节点接收到带有错误码的MPLS Echo Reply报文,则说明该隧道存在故障。

12.2  MPLS SR Trace route

用来查看SR-BE隧道、SR-TE隧道或SR-TE Policy隧道从Ingress节点到Egress节点所经过的路径,以便对SR-BE隧道、SR-TE隧道或SR-TE Policy隧道的错误点进行定位。MPLS Trace route功能通过沿着隧道连续发送TTL1到某个值的MPLS Echo Request报文,让隧道经过的每一跳收到该报文后,返回MPLS Echo Reply报文。这样,Ingress节点可以收集到隧道上每一跳的信息,从而定位出故障节点。同时,MPLS Trace route功能还可用于收集整条隧道上每个节点的重要信息,如下游分配的标签等。

13  MPLS SR典型组网应用

13.1  LDPSR互通

34所示,MPLS SR网络被LDP网络隔断,在Device BDevice D上需要完成MPLS SRLDP网络间标签的连接,以实现MPLS SR网络间用户互通。

图34 MPLS SR over LDP网络互通示意图

 

13.2  MPLS SR TE热备份

热备份(Hot-Standby)是指创建主LSP后随即创建备份LSP,备份LSP始终处于热备状态。热备份LSP提供整条LSP的保护,是一种端到端的流量保护措施。

35所示,入节点A上配置Hot-Standby,这样节点A在创建完Primary LSP后,立即创建Hot-Standby LSP,也即一条MPLS SR TE隧道里包含两条LSP。当首节点感知到Primary LSP故障,会将流量切换到Hot-Standby LSP;如果Primary LSP故障恢复,流量回切到Primary LSP。整个过程中,MPLS SR TE隧道始终是Up状态。

图35 MPLS SR TE Hot-Standby保护示意图

 

13.3  MPLS SR TI-LFA

36所示,数据报文需要从节点A发往节点F。当节点B和节点E之间发生故障后,节点B将数据报文转发给节点C。由于节点C和节点D之间开销是100,且节点C上路由还未收敛,因此节点C认为到达节点F的最优路径的下一跳是节点B。节点C将数据报文重新转回到节点B,形成环路。

图36 TI-LFA应用场景示意图

 

MPLS SR网络中部署TI-LFA,可以解决上述问题。如37所示,当节点B和节点E之间发生故障后,节点B启用TI-LFA计算的备份路径,为报文指定显式路径B->C->D->E,保证报文可以沿着备份路径转发。

图37 TI-LFA转发示意图

 

13.4  MPLS SR BSID的应用

Binding SID作为MPLS SR-TE/MPLS SR-TE Policy隧道的Adjacency SID可以实现标签缝接和引流到隧道功能。

13.4.1  标签缝接

缝接技术主要是解决由于设备标签深度不够,导致头端设备无法指定完整的路径的问题。

38所示,建立A->B->C->D->E的严格显式路径,如果各个设备的标签深度足够,直接封装(200300400)的标签栈即可。假设设备只支持封装两层标签,则需要将B作为一个粘连节点,引入一个粘连标签2000。节点B预先下发标签转发表<Label_in: 2000 Label_out: 300400>;节点A封装标签栈(2002000),到达节点B后弹出标签栈(2002000),重新压入标签栈(300400),从而实现A->B->C->D->E的严格转发路径。

图38 缝接标签示意图

 

13.4.2  基于BSID引流

SR-TE Policy为例,在Device A上创建BSID16001SR-TE Policy后,如果收到栈顶标签为16001的报文,则根据LFIBLabel Forwarding Information Base,标签转发信息库)表判断报文需要根据SR-TE Policy转发。Device A根据LFIB表获取出标签和下一跳(Device B),将BSID弹出并压入SID列表的标签栈(200022100322004),然后将报文发送给Device B。其中,20002Device A到达Device BSID21003Device B到达Device CSID22004Device C到达Device DSID

图39 基于BSID引流示意图

http://press.h3c.com/data/infoblade/Comware%20V7%E5%B9%B3%E5%8F%B0B75%E5%88%86%E6%94%AF%E4%B8%AD%E6%96%87/11-Segment%20Routing/03-SR-TE%20Policy/SR-TE%20Policy%E9%85%8D%E7%BD%AE.files/20210129_5546835_x_Img_x_png_2_1381055_30005_0.png

 

13.5  MPLS SR跨域VPN

40所示,使用跨域MPLS SR TE网络来承载VPN业务,为跨域VPN业务提供数据通道。在自治系统内部署IGP SR,建立域内MPLS SR TE隧道;AS域间部署BGP-EPE,实现域间SID分配。将AS域内MPLS SR TE隧道、域间BGP-EPE Peer SID组合为跨域MPLS SR TE隧道,实现VPN内数据流量跨域转发。

图40 MPLS SR跨域示意图

 

联系我们