SRv6技术白皮书-6W101

手册下载

SRv6技术白皮书

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

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


 

1 概述··· 1

1.1 产生背景·· 1

1.2 技术优势·· 1

2 SRv6基本原理··· 2

2.1 SRv6节点·· 2

2.2 SRv6 SID·· 2

2.2.1 SID组成及分类·· 2

2.2.2 SID附加行为·· 4

2.2.3 Local SID·· 4

2.3 SRv6报文和SRH· 4

2.4 SRv6报文转发过程·· 6

2.5 G-SRv6· 6

2.5.1 G-SRv6简介·· 6

2.5.2 G-SID格式·· 7

2.5.3 G-SRv6报文·· 7

2.6 IS-IS SRv6扩展·· 8

2.6.1 IS-IS SRv6协议原理·· 8

2.6.2 SRv6 Capabilities sub-TLV· 8

2.6.3 Node MSD sub-TLV· 9

2.6.4 SRv6 Locator TLV· 10

2.6.5 SRv6 End SID sub-TLV· 11

2.6.6 SRv6 End.X SID sub-TLV· 11

2.6.7 SRv6 LAN End.X SID sub-TLV· 12

2.6.8 SRv6 SID Structure Sub-Sub-TLV· 13

2.6.9 SRv6 Endpoint Function· 14

2.7 TI-LFA FRR· 15

2.7.1 TI-LFA FRR简介·· 15

2.7.2 TI-LFA FRR应用场景·· 15

2.7.3 TI-LFA FRR相关概念·· 16

2.7.4 TI-LFA FRR路径计算·· 16

2.7.5 TI-LFA FRR转发流程·· 17

2.7.6 正切防微环·· 18

2.7.7 回切防微环·· 19

2.8 BGP-EPE· 20

2.8.1 BGP-EPE应用背景·· 20

2.8.2 BGP Peer SID·· 20

2.8.3 BGP-EPE工作过程·· 21

3 SRv6-TE Policy· 22

3.1 SRv6-TE Policy标识及构成·· 22

3.2 SRv6-TE Policy创建方式·· 23

3.2.1 通过命令行手工创建·· 23

3.2.2 通过SRv6-TE Policy路由学习·· 23

3.2.3 通过ODN功能自动创建·· 27

3.3 采用PCE计算的路径建立SID列表·· 27

3.3.1 基本概念·· 27

3.3.2 PCE路径计算方式·· 28

3.4 SRv6-TE Policy有效性判断·· 28

3.5 SRv6-TE Policy引流·· 28

3.6 SRv6-TE Policy的封装方式·· 30

3.7 SRv6-TE Policy选路原则·· 30

3.8 SRv6-TE Policy报文转发过程·· 31

3.9 SRv6-TE Policy CBTS· 32

3.9.1 SRv6-TE Policy CBTS简介·· 32

3.9.2 SRv6-TE Policy CBTS工作原理·· 32

3.9.3 SRv6-TE Policy CBTS优选规则·· 32

3.9.4 SRv6-TE Policy CBTS示例·· 33

3.10 SRv6-TE PolicySBFD联动·· 33

3.11 SRv6-TE Policy热备份功能·· 34

4 SRv6 VPN·· 35

4.1 BGP overlay服务扩展·· 35

4.1.1 SRv6 service TLV· 35

4.1.2 SRv6 Service Sub-TLV· 36

4.2 SRv6 VPN报文转发方式·· 37

4.2.1 SRv6 BE· 37

4.2.2 SRv6 TE· 37

4.3 IP L3VPN over SRv6· 37

4.3.1 IP L3VPN over SRv6 BE实现过程·· 38

4.3.2 IP L3VPN over SRv6 TE实现过程·· 40

4.4 EVPN L3VPN over SRv6· 41

4.4.1 EVPN L3VPN over SRv6 BE实现过程·· 42

4.4.2 EVPN L3VPN over SRv6 TE实现过程·· 43

4.5 EVPN VPWS over SRv6· 45

4.5.1 EVPN VPWS over SRv6 BE实现过程·· 46

4.5.2 EVPN VPWS over SRv6 TE实现过程·· 47

4.5.3 多归属站点·· 49

4.5.4 FRR功能·· 50

4.6 EVPN VPLS over SRv6· 51

4.6.1 EVPN VPLS over SRv6 BE实现过程·· 52

4.6.2 EVPN VPLS over SRv6 TE实现过程·· 54

4.6.3 多归属站点·· 56

4.7 公网IP over SRv6· 57

4.7.1 公网IP over SRv6 BE实现过程·· 58

4.7.2 公网IP over SRv6 TE实现过程·· 59

4.8 SRv6-TE Policy尾节点保护功能·· 61

4.8.1 End.M SID·· 62

4.8.2 远端SRv6 SID·· 62

4.8.3 路由发布·· 63

4.8.4 报文转发·· 63

5 SRv6 OAM·· 64

5.1 SRv6 OAM协议扩展·· 65

5.1.1 OAM O-bit 65

5.1.2 End.OP SID·· 65

5.2 SRv6 SID Ping· 66

5.2.1 逐段检测·· 66

5.2.2 端到端检测·· 67

5.3 SRv6 SID Tracert 68

5.3.1 Overlay检测·· 68

5.3.2 Overlay检测·· 69

5.4 SRv6-TE Policy Ping· 70

5.5 SRv6-TE Policy Tracert 71

6 BGP LS for SRv6· 72

6.1 BGP LS for SRv6应用场景·· 72

6.2 BGP-LS for SRv6的路由扩展·· 72

6.2.1 路由扩展简介·· 72

6.2.2 SRv6 Capabilities TLV· 74

6.2.3 SRv6 Node MSD Types· 75

6.2.4 SRv6 End.X SID TLV· 75

6.2.5 SRv6 LAN End.X SID TLV· 77

6.2.6 SRv6 Link MSD Types· 78

6.2.7 SRv6 Locator TLV· 78

6.2.8 SRv6 SID Information TLV· 79

6.2.9 SRv6 Endpoint Behavior TLV· 79

6.2.10 SRv6 BGP Peer Node SID TLV· 80

6.2.11 SRv6 SID Structure TLV· 81

7 参考文献··· 82

 


概述

1.1  产生背景

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

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

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

SRv6Segment Routing IPv6IPv6段路由)是指基于IPv6转发平面实现SRSRv6通过在IPv6报文中插入一个路由扩展头SRHSegment Routing HeaderIPv6 SR报文头),并在SRH中添加路径所要经过的所有段的SID,即SID List,来显式指定该报文的转发路径。

SRv6SD-WAN网络提供了一种灵活高效的控制手段,具有部署简单、容易扩展的特点,能够更好地实现流量调度和路径优化,保障关键业务质量、均衡流量分布、提高专线利用率和降低线路成本。

1.2  技术优势

SRv6技术具有如下优势:

·     简化维护

仅需要在源节点上控制和维护路径信息,网络中其他节点不需要维护路径信息。

·     智能控制

SRv6基于SDN架构设计,跨越了应用和网络之间的鸿沟,能够更好地实现应用驱动网络。SRv6中转发路径、转发行为、业务类型均可控。

·     部署简单

SRv6基于IGPBGP扩展实现,无须使用MPLS标签,不需要部署标签分发协议,配置简单。

SRv6网络中,不需要大规模升级网络设备,就可以部署新业务。在DCData Center,数据中心)和WAN(广域网)中,只需网络边界设备及特定网络节点支持SRv6,其他设备支持IPv6即可。

·     适应5G业务需求

随着5G业务的发展,IPv4地址已经无法满足运营商的网络需求。可通过在运营商网络中部署SRv6,使所有设备通过IPv6地址转发流量,实现IPv6化网络,以满足5G业务需求。

·     易于实现VPN等新业务

SRv6定义了多种类型的SID,不同SID具有不同的作用,指示不同的转发动作。通过不同的SID操作,可以实现VPN等业务处理。

日后,用户还可以根据实际需要,定义新的SID类型,具有很好的扩展性。

SRv6基本原理

2.1  SRv6节点

按照功能的不同,SRv6网络中的节点分为三种角色:

·     源节点:负责在IPv6报文的IPv6头中插入SRH扩展头,或者在报文外加上IPv6头并插入SRH扩展头。该节点将报文流引入SRHSegment List定义的SRv6路径。

¡     如果Segment List中只包含一个SID,并且不需要在SRH中携带信息或TLV,则只需要将IPv6头的目的地址设置为这个SID,不需要插入SRH

¡     如果Segment List中包含多个SID,则需要插入SRH

源节点可以是产生SRv6报文的主机,也可以是SRv6域的边缘设备。

·     中转节点:在报文的SRv6路径上,不参与SRv6处理,只执行普通的IPv6报文转发。中转节点可以是支持SRv6的节点,也可以是不支持SRv6的节点。

·     Endpoint节点:对接收到的SRv6报文进行SRv6相关处理。接收到的SRv6报文的IPv6目的地址必须是Endpoint节点上配置的SRv6 SID,该节点需要按SRv6 SID的指令进行处理,并更新SRH

同一个节点可以是不同的角色,比如节点在某个SRv6路径里可能是源节点,在其他SRv6路径里可能就是中转节点或者Endpoint节点。

2.2  SRv6 SID

SRv6中,SID用来定义某种网络功能、代表某种网络指令。SRv6 SID采用IPv6地址形式,但不与任何设备上的接口地址对应。

2.2.1  SID组成及分类

1所示,SRv6 SIDLocatorFunctionArgumentsMBZ四部分组成:

·     Locator:标识SID所属的网段。LocatorSR域内唯一。

·     Function:标识与SID绑定的本地操作指令,SR域内指定节点收到流量后,根据SRv6 SIDFunction字段执行相关操作。

·     Arguments定义报文的流和服务等信息。

·     MBZMust be zero):当LocatorFunctionArguments的位数之和小于128bits时,其他位使用0补齐。

图1 SRv6 SID

 

根据SRv6 SID功能的不同,SRv6 SID分为:

·     End SID:用于标识网络中的某个目的地址前缀。End SID对应的转发动作是将SRH中的SL的值减1,并根据SLSRH取出下一个SID更新到IPv6报文头的目的地址,再根据IPv6目的地址查表转发。

·     End.X SID:用于标识网络中的某条链路。End.X SID对应的转发动作是根据该SID绑定的三层接口转发给特定下一跳。

·     End.DT4 SID:用于标识网络中的某个IPv4 VPN实例。End.DT4 SID对应的转发动作是解封装报文,并且查找IPv4 VPN实例路由表转发。End.DT4 SID用于IPv4 L3VPN over SRv6EVPN IPv4 L3VPN over SRv6和公网IPv4 over SRv6场景。

·     End.DT6 SID:用于标识网络中的某个IPv6 VPN实例。End.DT6 SID对应的转发动作是解封装报文,并且查找IPv6 VPN实例路由表转发。End.DT6 SID用于IPv6 L3VPN over SRv6EVPN IPv6 L3VPN over SRv6和公网IPv6 over SRv6场景。

·     End.DT46 SID:用于标识网络中的某个IPv4 VPN实例或IPv6 VPN实例。End.DT46 SID对应的转发动作是解封装报文,并且查找IPv4 VPN实例或IPv6 VPN实例路由表转发。End.DT46 SID用于IPv4 L3VPN over SRv6EVPN IPv4 L3VPN over SRv6、公网IPv4 over SRv6IPv6 L3VPN over SRv6EVPN IPv6 L3VPN over SRv6和公网IPv6 over SRv6场景。

·     End.DX4 SID:用于标识网络中的某个IPv4下一跳。End.DX4 SID对应的转发动作是解封装报文,并且将解封后的IPv4报文通过该SID绑定的三层接口转发给特定下一跳。End.DX4 SID用于IPv4 L3VPN over SRv6EVPN IPv4 L3VPN over SRv6和公网IPv4 over SRv6场景。

·     End.DX6 SID:用于标识网络中的某个IPv6下一跳。End.DX6 SID对应的转发动作是解封装报文,并且将解封后的IPv6报文通过该SID绑定的三层接口转发给特定下一跳。End.DX6 SID用于IPv6 L3VPN over SRv6EVPN IPv6 L3VPN over SRv6和公网IPv6 over SRv6场景。

·     End.DX2 SID:用于标识一个端点。End.DX2 SID对应的转发动作是解封装报文,并将解封装后的报文转发到SID对应的出接口。End.DX2 SID用于EVPN VPWS over SRv6EVPN VPLS over SRv6场景。

·     End.DX2L SID:用于标识报文来自Bypass SRv6 PW,携带该SID的报文不会再转发到该Bypass SRv6 PW,从而避免产生环路。End.DX2L SID对应的转发动作是解封装报文,并将解封装后的报文转发到SID对应的出接口。End.DX2L SID用于EVPN VPWS over SRv6多归属站点和EVPN VPLS over SRv6多归属站点场景。

·     End.DT2M SID:用于转发VSI实例中的泛洪流量。End.DT2M SID对应的转发动作是解封装报文,并将解封装后的报文在VSI内广播泛洪。End.DT2M SID用于EVPN VPLS over SRv6场景。

·     End.DT2U SID:用于转发VSI实例中的单播流量。End.DT2U SID对应的转发动作是解封装报文,根据解封装后报文的目的MAC地址查找VSI实例的MAC地址表,根据MAC表项将报文转发到对应的出接口。End.DT2U SID用于EVPN VPLS over SRv6场景。

·     End.DT2UL SID:用来标识报文来自Bypass SRv6 PW,携带该SID的报文不会再转发到该Bypass SRv6 PW,从而避免产生环路。End.DT2UL SID对应的转发动作是解封装报文,并根据解封装后报文的目的MAC地址查找VSI实例的MAC地址表,根据MAC表项将报文转发到对应的出接口。End.DX2L SID用于EVPN VPLS over SRv6多归属站点场景。

·     End.OP SIDOAM类型的SIDEnd.OP SID对应的转发动作是对下一个SRv6 SID进行检查。如果下一个SRv6 SID是本地SRv6 SID,则回复应答报文;否则丢弃该报文。End.OP SID用于SRv6 OAM场景。

·     End.M SID:用于保护指定的Locator,即保护指定Locator段内的SRv6 SID。如果远端设备发布的SRv6 SID在指定Locator段的范围内,则使用End.M SID对该SRv6 SID(称为远端SRv6 SID)进行保护。End.M SID对应的转发动作为解封装报文,获取内层报文信息。内层报文的目的IPv6地址作为远端SRv6 SID,执行远端SRv6 SID对应的转发动作。End.M SID用于SRv6-TE Policy尾节点保护场景。

2.2.2  SID附加行为

SID附加行为(Flavors)可以改变SRv6 SID的转发行为,以便适配多种业务需求。目前,支持的SRv6 SID附加行为包括:

·     PSPPenultimate Segment POP of the SRH):倒数第二Endpoint节点执行SRH移除操作。为了减轻SRv6网络尾节点的负担,可以在倒数第二Endpoint节点将SRH移除,尾节点不需要查看SRH信息,只需根据目的IPv6地址查找Local SID表进行处理。

·     USPUltimate Segment POP of the SRH):最后一Endpoint节点执行SRH移除操作。SRv6 VPN网络中,PE节点根据SID查找到对应的转发动作后,执行SRH移除操作,将报文转发给CE设备。

·     USDUltimate Segment Decapsulation):最后一Endpoint节点执行外层IPv6头移除操作。

·     COCContinue of Compression:标识SID之后是G-SID,用于SID压缩场景,以减少SRH大小。

2.2.3  Local SID

SRv6节点维护一个Local SID表,记录本节点生成的SRv6 SID,以及与SRv6 SID绑定的操作指令和转发信息,例如VPN实例、出接口和下一跳等。

SRv6节点接收到SRv6报文后,根据报文中的SID,查找Local SID表,并根据查找结果执行SID对应的转发动作。

2.3  SRv6报文和SRH

IPv6 SR的报文封装格式为:在原始数据报文前面添加新的IPv6基本头和SRHSegment Routing HeaderIPv6 SR报文头)。SRH是路由类型取值为4的一种路由扩展头。

说明

在某些场景下,源节点不会添加新的IPv6头,而是在原始IPv6报文的IPv6头中插入SRH扩展头。插入的SRH扩展头的格式与2相同。本文不再详细描述这种报文封装格式。

 

图2 IPv6 SR的报文封装示意图

 

2所示,IPv6基本头中Next Header取值为43,表明下一个报文头为路由扩展头。路由扩展头的路由类型字段取值为4,表明该路由扩展头为SRHSRH主要包含以下几个部分:

·     Next Header8bits,用来标识下一个报文头的类型。

·     Hdr Ext Len8bits,表示以8个字节为单位的SRH头的长度,不包括第一个8个字节。

·     Routing Type8bits,路由类型字段,取值为4,表示携带的是SRH

·     Segments Left8bits,标识剩余未处理的SID的个数,初始取值为n-1n表示路由扩展头中SID的数目),每经过一个节点减1

·     Last Entry8bitsSRH头中报文实际转发路径的第一个SID的编号。

·     Flags8bits,标志位信息。

·     Tag16bits,用来标记具有相同特性的一组报文。

·     Segment ListSID列表。按照报文转发路径上节点从远到近的顺序进行排列,即Segment List [0]表示路径的最后一个SIDSegment List [1]表示路径的倒数第二个SID,以此类推。

2.4  SRv6报文转发过程

图3 IPv6 SR隧道报文转发示意图

 

3所示,源节点Device A接收到符合指定特征的报文后,需要通过SRv6路径转发该报文。SRv6路径中Device A为源节点,Device CDevice EEndpoint节点,Device BDevice D为中转节点。报文通过SRv6路径转发的过程为:

(1)     源节点Device A收到IPv6报文,执行如下操作:

¡     封装SRH头。由于从Device ADevice E路径必须经过CE个节点,因此,SRHSL2-1,即SL=1,封装的SID列表信息为Segment List [0]=ESegment List [1]=C

¡     封装IPv6基本头。IPv6基本头中的源地址为Device A上的一个地址,目的地址为SL指示的地址,即SL=1对应的Segment List [1](本例中为Device C的地址)。

¡     根据封装的IPv6头中的目的地址查找路由表,将封装后的报文转发给Device B

(2)     Device B收到报文后,据IPv6头中的目的地址查找路由表,将报文转发给Device C

(3)     Device C收到报文,执行如下操作:

¡     SRH头中的SL值,如果SL>0SL值减1,目的地址更新为SL指示的地址,即SL=0对应的Segment List [0](本例中为Device E的地址)。

¡     根据IPv6头中的目的地址查找路由表,将报文转发给Device D

(4)     Device D收到报文后,据IPv6头中的目的地址查找路由表,将报文转发给Device E

(5)     尾节点Device E收到报文,检查SRH头中的SL值,发现SL=0。对报文进行解封装,删除封装IPv6基本头和SRH,根据原始报文的目的地址进行报文转发。

2.5  G-SRv6

2.5.1  G-SRv6简介

部署SRv6时,通常会规划出一个地址块,专门用于SID的分配,这个地址块称为SID Space。在一个SRv6域中,SID均从SID Space中分配,具有相同的前缀(即公共前缀Common Prefix)。因此,SRHSID的公共前缀是冗余信息。

G-SRv6Generalized SRv6,广义SRv6)将SID ListSIDCommon Prefix移除,仅携带SID中的可变部分,即G-SID,从而有效地减少了SRH开销。在根据SRH头中的SID List替换目的地址时,将G-SID与当前IPv6目的地址之中的公共前缀拼接形成新的SID,新的SID作为报文的目的地址,继续查表转发。

其中,封装G-SIDSRH头被称为G-SRH头;封装了G-SRH头的IPv6报文,称为G-SRv6报文。

2.5.2  G-SID格式

4所示,SRv6 SIDLocator部分可以细分为Common PrefixNode ID,其中Common Prefix表示公共前缀地址;Node ID表示节点标识。在一个SRv6域中,SID都具有相同的公共前缀。G-SIDSRv6 SID中的Node IDFunction组成。G-SID加上公共前缀和Args,可以完整地组成一个SRv6 SID。其中:

·     Common Prefix:公共前缀。

·     G-SID:压缩的SID

·     SIG-SID Index通过目的IPv6地址的最低两位标识需要查看的下一个G-SID的编号,取值为03SI作用与SL类似。

·     0:若Common PrefixG-SIDSI的位数之和不足128bits,则中间位使用0补齐。

图4 支持压缩的SRv6 SID格式图

 

2.5.3  G-SRv6报文

图5 G-SRv6报文示意图

 

5所示,128bits SRv6 SID32bits G-SID混合封装在G-SRH中,通过为SID指定COC类型的附加行为来标识本SID之后是G-SID

目前,设备仅支持32G-SID。原本封装SRv6 SID128bits位置,可以封装四个G-SID

通过G-SID更新目的地址的方法为:

·     如果SI0,则将SI值减1,同时查找[SI-1]对应的G-SID,并使用该G-SID更新到IPv6目的地址。

·     如果SI=0,则将SL值减1,同时查找[SL-1]对应的SRv6 SID,并使用该SRv6 SID替换IPv6头中的目的地址。

2.6  IS-IS SRv6扩展

2.6.1  IS-IS SRv6协议原理

1所示,为了支持SRv6IS-IS协议需要发布两类SRv6信息:

·     Locator信息:用于网络中的其他节点定位到发布SID信息的节点。

·     SID信息:用于详细描述SID的功能,比如SID绑定的Function

表1 IS-IS针对SRv6的扩展描述表

TLV名称

作用

携带位置

SRv6 Capabilities sub-TLV

通告SRv6能力

IS-IS Router CAPABILITY TLV

Node MSD sub-TLV

通告MSDMaximum SID Depth),即SID列表中能够包括的SID的最大数目

IS-IS Router CAPABILITY TLV

SRv6 Locator TLV

通告SRv6Locator以及该Locator相关的End SID

IS-IS报文,SRv6引入的一个顶级TLV

SRv6 End SID sub-TLV

通告End SID

SRv6 Locator TLV

SRv6 End.X SID sub-TLV

P2P网络中通告End.X SID

IS-IS NBR TLVIS-IS2223141222223等类型TLV

SRv6 LAN End.X SID sub-TLV

LAN网络中通告End.X SID

IS-IS NBR TLVIS-IS2223141222223等类型TLV

SRv6 SID Structure Sub-Sub-TLV

发布SRv6 SID格式

·     SRv6 End SID sub-TLV

·     SRv6 End.X SID sub-TLV

·     SRv6 LAN End.X SID sub-TLV

 

2.6.2  SRv6 Capabilities sub-TLV

SRv6 Capabilities sub-TLV用于通告节点支持SRv6功能,即本节点能够处理SRH

SRv6 Capabilities sub-TLV的报文格式如6所示。

图6 SRv6 Capabilities sub-TLV

 

SRv6 Capabilities sub-TLV包含字段如2所示。

表2 SRv6 Capabilities sub-TLV的字段描述表

字段名称

长度

含义

Type

8比特

类型,取值为25

Length

8比特

长度

Flags

16比特

标志位

·     C:表示支持SRv6 SID压缩功能

·     O:用于OAM

optional sub-sub-TLVs

可变长度

可选的Sub-sub-TLV

 

2.6.3  Node MSD sub-TLV

Node MSD sub-TLV用于通告设备MSD,即SID列表中能够包括的SID的最大数目。

Node MSD sub-TLV的报文格式如7所示。

图7 Node MSD sub-TLV

 

Node MSD sub-TLV包含字段如3所示。

表3 Node MSD sub-TLV的字段描述表

字段名称

长度

含义

Type

8比特

类型,取值为23

Length

8比特

长度

MSD-Type

8比特

MSD类型:

·     41SRH Max SLSRHSegment Left字段的最大值

·     42SRH Max End Pop,支持PSPUSPEndpoint节点能够弹出的最大SID个数

·     45SRH Max End DEndpoint节点能够解封装的SID的最大个数

MSD Value

8比特

MSD取值

 

2.6.4  SRv6 Locator TLV

SRv6 Locator TLV用于发布SRv6 Locator以及该Locator相关的End SID

SRv6Locator必须通过SRv6 Locator TLV发布出去,其他具备IS-IS SRv6能力的设备接收到TLV以后,将Locator对应的网段路由添加到本机路由表中,没有SRv6能力的设备则不添加Locator对应网段的路由。

Locator对应的网段路由也可以通过Prefix Reachability TLV236/237)发布出去,以便不支持SRv6的设备能够添加路由表项,进而支持与SRv6节点共同组网。如果设备同时收到Prefix Reachability TLVSRv6 Locator TLV,则Prefix Reachability TLV优先使用。

SRv6 Locator TLV的报文格式如8所示。

图8 SRv6 Locator TLV

 

SRv6 Locator TLV包含字段如4所示。

表4 SRv6 Locator TLV的字段描述表

字段名称

长度

含义

Type

8比特

类型,取值为27

Length

8比特

长度

MTID

12比特

多拓扑标识符

Metric

8比特

开销

Flags

8比特

标志位

当前只定义了D标志位。当SIDLevel-2渗透到Level-1,必须置位。D标志置位后,SID不能从Level-1渗透到Level-2,以防止路由循环

Algorithm

8比特

路由算法

Loc Size

8比特

Locator长度

Locator (variable)

可变长度

Locator段的网络前缀

Sub-tlv-len

8比特

Sub-TLV长度

Sub-TLVs (variable)

可变长度

包含的Sub-TLV,例如SRv6 End SID sub-TLV

 

2.6.5  SRv6 End SID sub-TLV

SRv6 End SID sub-TLV用于发布End SID

SRv6 End SID sub-TLV的报文格式如9所示。

图9 SRv6 End SID sub-TLV

 

SRv6 End SID sub-TLV包含字段如5所示。

表5 SRv6 End SID sub-TLV的字段描述表

字段名称

长度

含义

Type

8比特

类型,取值为5

Length

8比特

长度

Flags

8比特

标志位:

·     C表示发布G-SID

SRv6 Endpoint Function

16比特

SRv6 SID绑定的动作,具体参见“2.6.9  SRv6 Endpoint Function

SID

16字节

发布的SRv6 SID

Sub-sub-tlv-len

8比特

Sub-sub-TLV长度

Sub-sub-TLVs (variable)

可变长度

包含的Sub-sub-TLV

 

2.6.6  SRv6 End.X SID sub-TLV

SRv6 End.X SID sub-TLV用于发布一个P2P邻接类型的End.X SID

SRv6 End.X SID sub-TLV的报文格式如10所示。

图10 SRv6 End.X SID sub-TLV

 

SRv6 End.X SID sub-TLV包含字段如6所示。

表6 SRv6 End.X SID sub-TLV的字段描述表

字段名称

长度

含义

Type

8比特

类型,取值为43

Length

8比特

长度

Flags

8比特

标志位:

·     BBackup):备份标志,用于TI-LFA场景

·     SSet):组标志。如果置位,表示End.X SID是一组邻接

·     PPersistent):永久分配标志。如果置位,表示End.X SID被永久分配

·     C表示发布G-SID

Algorithm

8比特

算法

Weight

8比特

权重,暂不支持

SRv6 Endpoint Function

16比特

SRv6 SID绑定的动作,具体参见“2.6.9  SRv6 Endpoint Function

SID

16字节

发布的SRv6 SID

Sub-sub-tlv-len

8比特

Sub-sub-TLV长度

Sub-sub-TLVs (variable)

可变长度

包含的Sub-sub-TLV

 

2.6.7  SRv6 LAN End.X SID sub-TLV

SRv6 LAN End.X SID sub-TLV用于发布一个LAN邻接类型的End.X SID

SRv6 LAN End.X SID sub-TLV的报文格式如11所示。

图11 SRv6 LAN End.X SID sub-TLV

 

SRv6 LAN End.X SID sub-TLV包含字段如7所示。

表7 SRv6 End.X SID sub-TLV的字段描述表

字段名称

长度

含义

Type

8比特

类型,取值为44

Length

8比特

长度

System ID

48比特

IS-ISSystem ID

Flags

8比特

标志位:

·     BBackup):备份标志,用于TI-LFA场景

·     SSet):组标志。如果置位,表示End.X SID是一组邻接

·     PPersistent):永久分配标志。如果置位,表示End.X SID被永久分配

·     C表示发布G-SID

Algorithm

8比特

算法

Weight

8比特

权重,暂不支持

SRv6 Endpoint Function

16比特

SRv6 SID绑定的动作,具体参见“2.6.9  SRv6 Endpoint Function

SID

16字节

发布的SRv6 SID

Sub-sub-tlv-len

8比特

Sub-sub-TLV长度

Sub-sub-TLVs (variable)

可变长度

包含的Sub-sub-TLV

 

2.6.8  SRv6 SID Structure Sub-Sub-TLV

SRv6 SID Structure Sub-Sub-TLV用于发布SRv6 SID的格式,即SRv6 SID中各个字段的长度。

SRv6 SID Structure Sub-Sub-TLV的报文格式如12所示。

图12 SRv6 SID Structure Sub-Sub-TLV

 

SRv6 SID Structure Sub-Sub-TLV包含字段如8所示。

表8 SRv6 SID Structure Sub-Sub-TLV的字段描述表

字段名称

长度

含义

Type

8比特

类型,取值为1

Length

8比特

长度

LB Length

8比特

LocatorBlock长度,即公共前缀长度,用于SID压缩

LN Length

8比特

LocatorNode ID长度,即节点标识,用于SID压缩

Fun.Length

8比特

SID中的Function字段长度

Arg.Length

8比特

SID中的Arguments字段长度

 

2.6.9  SRv6 Endpoint Function

SRv6通过Endpoint Function定义每个SRv6 SID绑定的动作。除了发布Locator网段路由,IS-IS完成的另一个功能就是将SRv6 SID信息和SID对应的SRv6 EndPoint Function信息通过IS-IS的各类SID sub-TLV发布出去,对网络进行编程。不同SID sub-TLV支持的EndPoint Function类型如9所示。其中,Y表示该sub-TLV会发布这种类型的SRv6 Endpoint FunctionN表示不发布。

表9 IS-IS发布的SRv6 Endpoint Function描述表

SRv6 Endpoint Function

SRv6 End SID sub-TLV

SRv6 End.X SID sub-TLV

SRv6 LAN End.X SID sub-TLV

End (no PSP, no USP)

Y

N

N

End (with PSP)

Y

N

N

End (with USP)

Y

N

N

End (with PSP & USP)

Y

N

N

End.X (no PSP, no USP)

N

Y

Y

End.X (with PSP)

N

Y

Y

End.X (with USP)

N

Y

Y

End.X (with PSP & USP)

N

Y

Y

End.DT4

Y

N

N

End.DT6

Y

N

N

End.DX4

N

Y

Y

End.DX6

N

Y

Y

End.OP

Y

N

N

End with COC

Y

N

N

End with PSP&COC

Y

N

N

End with PSP&USP&COC

Y

N

N

End.X with COC

N

Y

Y

End.X with PSP&COC

N

Y

Y

End.X with PSP&USP&COC

N

Y

Y

End with PSP&USD&COC

Y

N

N

End with PSP&USP&USD&COC

Y

N

N

End.X with PSP&USD&COC

N

Y

Y

 

2.7  TI-LFA FRR

2.7.1  TI-LFA FRR简介

SRv6 TI-LFA FRRTopology-Independent Loop-free Alternate Fast Reroute,拓扑无关无环备份快速重路由)用来为SRv6提供链路及节点保护。SRv6 TI-LFA FRR预先计算出备份路径,当某处链路或节点发生故障时,通过SID列表显式指定备份路径,将流量快速切换到备份路径继续转发,从而最大程度上避免流量的丢失。

TI-LFA FRR计算出的备份路径与链路或节点故障收敛后的报文转发路径相同,这样可以减少流量切换次数,并避免次优路由问题。

2.7.2  TI-LFA FRR应用场景

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

 

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

图14 TI-LFA转发示意图

 

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

2.7.3  TI-LFA FRR相关概念

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

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

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

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

·     Repair ListRepair List是一条约束路径,当P空间和Q空间没有交集时,用来指示如何到达Q节点。Repair List是由“P节点的SRv6 SID+P节点到最近的Q节点路径上的SRv6 SID”组成的SID List。当P节点和源节点直连时,则Repair List中不需要添加P节点的SRv6 SID

2.7.4  TI-LFA FRR路径计算

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

图15 TI-LFA典型组网图

 

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

(1)     计算扩展P空间:{ F }

(2)     计算Q空间:以目的节点为根节点建立反向SPF树,目的节点不经过故障链路可达的集合,即{ H }

(3)     计算收敛后的SPF树:即B故障后的最优转发路径。SPF树为A>F>G>H>E

(4)     计算Repair ListRepair ListFG间链路的End.X SIDGH间链路的End.X SID,即(DC

(5)     计算备份出接口:AB链路故障后的备份出接口为AF连接的接口。

2.7.5  TI-LFA FRR转发流程

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

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

 

16所示,FP节点,HEQ节点。主下一跳B故障时,触发FRR切换到备份路径,详细过程如下:

(1)     A根据报文的目的IPv6地址查找IPv6路由表进行转发,下一跳为F,同时包含Repair List信息。A根据Repair List构造报文并转发给F

¡     封装SRH头。封装的SID列表信息为Segment List [0]=DSegment List [1]=C,即按照节点由远及近的顺序进行排列。

¡     封装IPv6基本头。IPv6头中的源地址为A,目的地址为SL指示的地址,即SL1时表示SRHSegment List [1]对应的地址C

(2)     F收到报文后,检查SRH头中的SL值,并将SL值减1,同时查找Segment List [0]对应的地址,即GH间链路的End.X SID D,并使用该End.X SID D替换IPv6头中的目的地址。F根据End.X SID C获取出接口和下一跳信息,将报文转发给G

(3)     G收到报文后,检查SRH头中的SL值,发现SL=0,对报文进行解封装,并根据End.X SID D获取出接口和下一跳信息,将解封装后的报文转发给H

(4)     H收到报文后,根据报文的目的IP地址查找IP路由表进行转发,将报文转发给目的节点E

2.7.6  正切防微环

17所示,当B故障时,到C的流量将切换到TI-LFA计算的备份路径转发。A收敛后,到C的流量将沿着收敛后路径转发,不再为报文封装Repair List。此时,如果DF还没有收敛,仍按照收敛前的路径转发流量,则AD之间或AF之间将形成环路。

通过SR防微环功能可以解决上述问题。在A上开启该功能后,可以使A延迟一段时间收敛。在此期间A仍然使用TI-LFA计算的备份路径转发流量。等待DF收敛完成后,A再开始收敛。Device A收敛完成后,到C的流量沿将着收敛后路径转发,从而避免发生环路。

图17 正切防微环故障场景

 

2.7.7  回切防微环

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

通过SR防微环功能可以解决上述问题。Device A预先计算一条到达目的节点Device C的最优路径,生成对应的SID列表。在Device A在故障回切以后,会自动插入预先计算的SID列表,并按照该SID列表对应的路径转发流量。这样Device B收到报文后,根据报文中SRH里的路径信息将报文转发给Device C,避免环路的产生。

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

图18 回切防微环故障场景

 

2.8  BGP-EPE

2.8.1  BGP-EPE应用背景

IGP for SRv6只能在ASAutonomous System,自治系统)内通告SRv6 SID,通过合理编排AS内的SID,规划出AS内的最优路径。大规模网络通常需要跨越多个AS,此时IGP for SRv6无能为力。

BGP-EPEBGP Egress Peer EngineeringBGP出口对等体工程)用来为域间路径分配SID,该SID称为BGP Peer SIDBGP Peer SID可以通过BGP LS扩展传递给控制器。控制器通过对IGP SIDBGP Peer SID进行编排,实现端到端SRv6路径部署。

2.8.2  BGP Peer SID

BGP-EPE可以自动为对等体分配BGP Peer SID,也可以手工指定BGP Peer SID

BGP Peer SID分为以下几种类型:

·     PeerNode SID:用于指示一个对等体节点。每一个BGP会话都会分配Peer-Node SID。对于基于Loopback接口建立的EBGP邻居,其对应的物理链路可能有多条,那么针对该邻居的Peer-Node SID就会对应多个出接口。基于Peer-Node SID转发时,会在多个出接口间负载分担。

·     PeerAdj SID:用于指示到达对等体的一个邻接链路。对于基于Loopback接口建立的EBGP邻居,其对应的物理链路可能有多条,则每条链路都会分配一个Peer-Adj SID。基于Peer-Adj SID转发时,只能通过指定出接口进行转发。

·     PeerSet SID:用于标识一组对等体。BGP支持将一组对等体规划为一个Set,基于该组分配SID,这个SID称为PeerSet SID。基于PeerSet SID转发时,会在多个邻居间负载分担。一个PeerSet SID对应多个PeerNode SIDPeerAdj SID

图19 BGP-EPE示意图

 

19所示,BGP-EPESID分配方式为:

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

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

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

2.8.3  BGP-EPE工作过程

在跨域SRv6组网中,通告将域内SRv6 SID和域间Peer SID合理组合,可以实现跨域最优路径转发。

图20 BGP-EPE组网图

 

20所示,在PE 1PE 2之间建立跨域SRv6路径,该路径包括以下几个部分:

·     PE 1ASBR 1的路径,即SRv6 SID A

·     ASBR 1ASBR 2的路径,即由BGP-EPE分配的PeerNode SID B

·     ASBR 2PE 2的路径,即SRv6 SID C

控制器对域内和域间SID进行编排后,将SRv6路径(SID列表{A, B, C})下发给源节点PE 1,即可实现流量沿着PE 1->ASBR 1->ASBR 2->PE 2的路径转发。

SRv6-TE Policy

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

3.1  SRv6-TE Policy标识及构成

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

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

·     Color:转发路径的Color属性,用于在相同的源和目的节点之间区分多个SRv6-TE Policy。通过Color属性可以代表不同业务质量要求,例如低延时、高带宽。

·     EndpointSRv6-TE Policy目的节点的IPv6地址。

图21 SRv6-TE Policy构成

 

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

·     BSID

Binding SIDSRv6-TE Policy关联如果报文的目的地址为BSID将流量引导到该BSID所属的SRv6-TE Policy

·     候选路径

一个SRv6-TE Policy包含一条或多条候选路径,不同候选路径具有不同优先级。通过SRv6-TE Policy转发流量时,设备根据候选路径的优先级从多条候选路径中选择优先级最大的作为最优路径。

·     SID列表

SID列表包含报文转发路径信息,由转发路径上各个节点的SIDIPv6地址)组成。

候选路径由一个SID列表或者多个带权重的SID列表组成。SRv6-TE Policy选择某条候选路径后,会根据SID列表的权重,在候选路径的多个SID列表间进行负载分担。

3.2  SRv6-TE Policy创建方式

3.2.1  通过命令行手工创建

采用该方式时,需要手工配置候选路径、候选路径的优先级、候选路径的SID列表及其权重。

3.2.2  通过SRv6-TE Policy路由学习

为了支持SRv6-TE PolicyMP-BGP定义了新的子地址族——BGP IPv6 SR-TE Policy地址族,并新增了SRv6-TE Policy NLRINetwork Layer Reachability Information,网络层可达性信息),即SRv6-TE Policy路由(也称为BGP IPv6 SR-TE Policy路由)。SRv6-TE Policy路由中包含SRv6-TE Policy的相关配置,包括BSIDColorEndpoint、候选路径优先级、SID列表和SID列表的权重等。

在设备间建立BGP IPv6 SR-TE Policy对等体后,设备可以将本地配置的SRv6-TE Policy通过SRv6-TE Policy路由发布到对端。对端设备根据接收到的SRv6-TE Policy路由生成对应的SRv6-TE Policy

1. SRv6-TE Policy NLRI

SRv6-TE Policy NLRI用于描述SRv6 SID的网络层可达信息。

SRv6-TE Policy NLRI的报文格式如22所示。

图22 SRv6 Policy NLRI

 

SRv6-TE Policy NLRI包含字段如10所示。

表10 SRv6-TE Policy NLRI的字段描述表

字段名称

长度

含义

NLRI Length

8比特

SRv6 Policy NLRI长度

Distinguisher

32比特

标识符,唯一标识一个SRv6-TE Policy

Policy Color

32比特

SRv6-TE PolicyColor属性

Endpoint

128比特

SRv6-TE Policy的目的节点地址

 

2. Tunnel Encapsulation Attribute

携带SRv6-TE Policy NLRIBGP Update消息中,需要同时携带Tunnel Encapsulaton Attribute。如11所示,在Tunnel Encapsulaton Attribute中通过定义以下子TLV来记录SRv6-TE Policy的相关信息。

表11 Tunnel Encapsulaton Attribute中子TLV描述表

TLV名称

作用

携带位置

Preference Sub-TLV

通告候选路径的优先级

Tunnel Encapsulation Attribute

SRv6 Binding SID Sub-TLV

通告候选路径的BSID

Tunnel Encapsulation Attribute

Segment List Sub-TLV

通告Segment List

Tunnel Encapsulation Attribute

Weight Sub-TLV

通告Segment List的权重

Segment List Sub-TLV

Policy Candidate Path Name Sub-TLV

通告候选路径的名称

Tunnel Encapsulation Attribute

 

3. Preference Sub-TLV

Preference Sub-TLV用于承载候选路径的优先级。

Preference Sub-TLV的报文格式如23所示。

图23 Preference Sub-TLV

 

Preference Sub-TLV包含字段如12所示。

表12 Preference Sub-TLV的字段描述表

字段名称

长度

含义

Type

8比特

类型,取值为12

Length

8比特

长度

Flags

8比特

标志位,目前无定义

Reserved

8比特

预留值,取值为0

Preference

32比特

SRv6-TE Policy的候选路径的Preference

 

4. Binding SID Sub-TLV

Binding SID Sub-TLV用于标识SRv6-TE PolicyBSID

Binding SID Sub-TLV的报文格式如24所示。

图24 Binding SID Sub-TLV

 

Binding SID Sub-TLV包含字段如13所示。

表13 Binding SID Sub-TLV的字段描述表

字段名称

长度

含义

Type

8比特

类型,取值为13

Length

8比特

长度

Flags

8比特

标志位,目前无定义

Reserved

8比特

预留值,取值为0

Binding SID

32比特

BSID

 

5. Segment List Sub-TLV

Segment List Sub-TLV用于承载候选路径的的SID列表。

Segment List Sub-TLV的报文格式如25所示。

图25 Segment List Sub-TLV

 

Segment List Sub-TLV包含字段如14所示。

表14 Segment List Sub-TLV的字段描述表

字段名称

长度

含义

Type

8比特

类型,取值为128

Length

16比特

长度

Reserved

8比特

预留值,取值为0

Sub-TLVS

32比特

·     一个可选的Weight sub-TLV

·     0到多个Segment sub-TLVs

 

6. Weight Sub-TLV

Weight Sub-TLV用于承载SID列表的权重。

Weight Sub-TLV的报文格式如26所示。

图26 Weight Sub-TLV

 

Weight Sub-TLV包含字段如15所示。

表15 Weight Sub-TLV的字段描述表

字段名称

长度

含义

Type

8比特

类型,取值为9

Length

8比特

长度

Flags

8比特

标志位

Reserved

8比特

预留值,取值为0

Weight

32比特

SID列表的权重值

 

3.2.3  通过ODN功能自动创建

创建ODNOn-Demand Next-Hop,按需下一跳)模板后,如果设备接收到的BGP路由携带的Color扩展团体属性与ODN模板的Color值相同,则以该BGP路由的下一跳地址作为SRv6-TE Policy的目的节点地址,以ODN模板的Color值作为SRv6-TE PolicyColor属性,自动创建一个SRv6-TE Policy。该SRv6-TE Policy会在指定Locator段内自动申请一个BSIDODN自动创建SRv6-TE Policy后,会生成两条候选路径:

·     Preference200的候选路径,该候选路径下的SID列表需要用户手工指定。

·     Preference100的候选路径,该候选路径下的SID列表需要由PCE计算。PCE计算的详细介绍,请参见“3.3  采用PCE计算的路径建立SID列表”。

ODN功能自动创建的SRv6-TE Policy下还可以手工创建候选路径。

3.3  采用PCE计算的路径建立SID列表

SRv6-TE Policy网络中,SRv6节点可以作为PCCPath Computation Client,路径计算客户端),根据PCEPath Computation Element,路径计算单元)计算的路径建立SID列表。

3.3.1  基本概念

·     PCE:网络中的一个实体,用于为网络上的设备提供路径计算服务。可进行区域内的路径计算,也可在复杂的网络环境中计算完整的SID列表。PCE分为以下两种类型:

¡     Stateless PCEStateless Path Computation Element,无状态PCE):该类型PCE仅提供路径计算服务。

¡     Stateful PCEStateful Path Computation Element,有状态PCE):该类型PCE掌握了网络内所有PCC维护的路径信息,可以重新计算和优化域内的转发路径,以达到最大程度分配和使用网络资源的目的。Stateful PCE包括Active-Stateful PCEActive-Stateful Path Computation Element,主动有状态PCE)和Passive-Stateful PCEPassive-Stateful Path Computation Element,被动有状态PCE)两种类型。被动有状态PCE仅维护PCCSID列表信息,不能实时根据网络状况优化路径,并通知PCC更新路径;主动有状态PCE可以实时根据网络状况优化路径,并通知PCC更新路径。

·     PCC:请求PCE执行路径计算,并根据PCE返回的路径信息建立转发路径。PCC必须与PCE类型一致。因此,PCC分为以下两种类型:

¡     Stateless PCCStateless Path Computation Client,无状态PCC):该类型PCC仅向PCE发送路径计算请求。

¡     Stateful PCCStateful Path Computation Client,有状态PCC):该类型PCCSID列表信息委托给PCE,由Stateful PCE维护PCC的路径信息。Stateful PCC包括Active-Stateful PCCActive-Stateful Path Computation Client,主动有状态PCC)和Passive-Stateful PCCPassive-Stateful Path Computation Client,被动有状态PCC)两种类型。被动有状态PCCSID列表信息仅上报PCE,但不由PCE计算,不能实时更新路径;主动有状态PCCSID列表信息上报PCE,并由PCE计算,可以实时更新路径。

·     PCEPPath Computation Element Protocol,路径计算单元通信协议):运行于PCCPCE之间的通信协议,用于建立PCEP会话、交互PCEP消息。该协议基于TCP

3.3.2  PCE路径计算方式

图27 路径计算过程示意图

 

27所示,PCE路径计算过程如下:

(1)     PCCPCE发起路径计算请求。

(2)     PCE收到该请求后,为PCC计算路径。

(3)     PCE完成路径计算后,对PCC的路径请求进行应答,要求PCC创建路径信息。

(4)     PCC根据PCE计算的路径信息在SRv6-TE Policy的候选路径下创建SID列表信息。

3.4  SRv6-TE Policy有效性判断

通过无效的SRv6-TE Policy转发流量,会导致流量转发失败。因此,只有SRv6-TE Policy有效时,才能通过该SRv6-TE Policy转发流量。

SRv6-TE Policy有效性判断规则为:只要SRv6-TE Policy中存在一个有效的SID列表,则该SRv6-TE Policy有效;否则,SRv6-TE Policy无效。

存在以下任意一种情况时,SID列表无效:

·     SID列表为空;

·     SID列表的权重为0

·     SR节点无法与SID列表中的第一跳IPv6地址互通;

·     检测SID列表的BFD会话或SBFD会话DOWN

3.5  SRv6-TE Policy引流

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

·     基于BSID引流

如果接收到的报文的目的IPv6地址为某个SRv6-TE PolicyBSID,则通过该SRv6-TE Policy转发该报文。

·     基于Color引流

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

·     基于隧道策略引流

IP L3VPN/EVPN L3VPN/EVPN VPLS/EVPN VPWS over SRv6组网中,通过部署隧道策略,将SRv6-TE Policy作为公网隧道来转发私网报文。

·     基于DSCP引流

根据报文的DSCP值,将报文引流到SRv6-TE Policy

基于DSCP引流的工作机制为:

a.     Color属性不同的多个SRv6-TE Policy加入到一个SRv6-TE Policy,并指定DSCP值与Color属性的映射关系

b.     通过隧道策略将报文引流到SRv6-TE Policy或者根据BGP路由的Color扩展团体属性引流到SRv6-TE Policy

c.     根据报文的DSCP值查找与其关联Color属性,再通过Color属性匹配到SRv6-TE Policy组中的某个SRv6-TE Policy。这样,就形成了DSCP->Color->SRv6-TE Policy的映射关系,实现携带指定DSCP的报文通过指定SRv6-TE Policy转发。

·     基于策略路由引流

通过策略路由将流量引流到SRv6-TE Policy,如果设备收到匹配该策略路由定义的匹配规则的报文,则通过指定SRv6-TE Policy转发该报文。

·     基于QoS策略引流

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

·     基于Flowspec引流

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

·     自引流

SRv6-TE Policy隧道发布到IGPOSPFv3IS-IS)路由中,让SRv6-TE Policy参与IGP路由的计算,使得流量可以通过SRv6-TE Policy转发。

自动引流目前仅支持IGP Shortcut方式,也称为自动路由宣告(AutoRoute Announce),该功能将SRv6-TE Policy当作一条直接连接隧道Ingress节点(头节点)和Egress节点(尾节点)的链路,在隧道的Ingress节点上进行IGP路由计算时考虑该SRv6-TE Policy

IGP Shortcut功能不会通过IGP路由协议将SRv6-TE Policy隧道作为一条链路发布给邻居。因此,其他设备在路由计算时不会考虑SRv6-TE Policy隧道。

3.6  SRv6-TE Policy的封装方式

通过BSID引流时,如果报文的目的IPv6地址和BSID相同,则报文通过对应的SRv6-TE Policy转发。此时,需要为报文封装SRv6-TE PolicySID列表,封装模式包括:

·     Encaps方式:普通封装模式。在原始报文的基础上封装IPv6头和SRH时,SRv6-TE PolicySID列表中的所有SID均封装在SRH中。

¡     IPv6头的目的IPv6地址为SRv6-TE PolicySID列表中的第一个IPv6地址,源IPv6地址为用户手工指定的IPv6地址。

¡     SRH包含SRv6-TE PolicySID列表中所有SID信息。

·     Encaps.Red方式:精简封装模式。在原始报文的基础上封装IPv6头和SRH时,SRv6-TE PolicySID列表中的第一个SID不封装在SRH中,其他SID封装到SRH中,以便减少SRH的长度。

¡     IPv6头的目的IPv6地址为SRv6-TE PolicySID列表中的第一个SID,源IPv6地址为用户手工指定的IPv6地址。

¡     SRH包含SRv6-TE PolicySID列表中除第一个SID外所有SID信息。

通过BSID方式引流到SRv6-TE Policy时,缺省情况下,如果头节点的SRv6 SIDEnd.X SID,则不会将该SID封装到SRH中。为了通过报文中的SRH获取完整的路径信息,即获取到SRv6转发路径上所有SRv6节点的信息,在封装SRH时可以添加本地的End.X SID

3.7  SRv6-TE Policy选路原则

数据报文引流到SRv6-TE Policy后,在SRv6-TE Policy中选择路径的过程为:

(1)     SRv6-TE Policy中选择优先级取值最大的有效候选路径转发流量。

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

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

图28 SRv6-TE Policy转发流量时选路过程示意图

 

3.8  SRv6-TE Policy报文转发过程

29所示,以基于BSID引流为例,SRv6-TE Policy的报文转发过程为:

(1)     Device A收到目的地址为100::1IPv6报文后,查找IPv6路由表转发,判断该报文的目的地址为指定SRv6-TE PolicyBSID,需要通过SRv6-TE Policy转发。Device A根据SRv6-TE Policy为报文封装SRH头,SRH头携带的SID列表为{20::2, 30::1}。其中,20::2Device BEnd.X SID30::1Device DEnd SID

(2)     Device A将封装后的报文,查IPv6路由表将报文发送给下一跳Device B

(3)     Device B收到报文后,报文的目的地址为本地的End.X SID将报文发送给Device C

(4)     Device C收到报文后,报文目的地址不为本地的SRv6 SID,查找IPv6路由表将报文发送给Device D

(5)     Device D收到报文后,报文的目的地址为本地的End SID,检查SRH头中的SL值,发现SL=0。对报文进行解封装,删除封装报文头,根据原始报文的目的地址进行报文转发。

图29 SRv6-TE Policy转发过程示意图

 

 

3.9  SRv6-TE Policy CBTS

3.9.1  SRv6-TE Policy CBTS简介

SRv6-TE Policy CBTSClass-based Tunnel Selection,基于服务类型的隧道选择)是一种SRv6-TE Policy隧道的选择方式。有别于传统的隧道选择方式,CBTS可以基于流量的转发类选择对应的隧道进行转发,以便为不同的业务提供不同的转发服务。

3.9.2  SRv6-TE Policy CBTS工作原理

SRv6-TE Policy CBTS工作原理为:

·     配置SRv6-TE Policy的转发类(Service-class属性)。

·     通过流分类匹配需要经过SRv6-TE Policy转发的流量,将不同业务的流量映射成不同的转发类,映射到指定转发类的业务流量可以通过具有对应转发类的SRv6-TE Policy隧道转发

3.9.3  SRv6-TE Policy CBTS优选规则

SRv6-TE Policy CBTS的隧道优选规则为:

(1)     设备会优先选择与流量的转发类值相同的SRv6-TE Policy转发该流量。

(2)     存在多条与流量的转发类值相同的SRv6-TE Policy时,如果只有一条流且为逐流负载分担,则随机选择一个SRv6-TE Policy转发流量;如果只有一条流但是为逐包负载分担或有多条流,则流量在相同转发类的SRv6-TE Policy间进行负载分担。

(3)     如果不存在与流量的转发类值相同的SRv6-TE Policy,则选择隧道转发优先级最低的SRv6-TE Policy转发流量。SRv6-TE Policy转发类的取值越小,隧道转发的优先级越低,没有配置转发类的隧道优先级最低。

3.9.4  SRv6-TE Policy CBTS示例

图30 SRv6-TE Policy CBTS示意图

 

30所示,隧道的选择原则为:

·     Device ADevice B转发类值为3的流量通过SRv6-TE Policy B转发。

·     Device ADevice B转发类值为6的流量通过SRv6-TE Policy C转发。

·     Device ADevice B转发类值为4的流量通过SRv6-TE Policy A转发。

·     Device ADevice B未配置隧道转发类的流量通过SRv6-TE Policy A转发。

3.10  SRv6-TE PolicySBFD联动

SRv6-TE Policy不会通过设备之间互相发送的消息来维持自身状态,它需要依靠SBFDSeamless BFD,无缝BFD)来完成路径故障检测。通过SBFD可以检测SRv6-TE Policy的连通性,为其提供毫秒级的故障检测速度,并实现快速地故障切换。

通常情况下,SBFD仅检测SRv6-TE Policy中优先级最高的候选路径里的所有SID列表。SRv6-TE PolicySBFD联动功能和SRv6-TE Policy热备份功能配合使用时,SBFD可以同时检测SRv6-TE Policy中优先级最高和次高的两条候选路径里的所有SID列表对应的转发路径。SRv6-TE Policy热备份功能的详细介绍请参见“3.11  SRv6-TE Policy热备份功能”。

图31 SBFD for SRv6-TE Policy检测过程

 

31所示,在Device A上使用SBFD检测SRv6-TE Policy。当SRv6-TE Policy中优先级最高的候选路径里存在多个SID列表时,会建立多个SBFD会话分别用来检测每一个SID列表对应的转发路径,所有SBFD会话的远端标识符均相同。如果一个候选路径下所有SID列表对应的转发路径都发生故障,则SBFD触发候选路径切换。SBFD检测SRv6-TE Policy的过程如下:

(1)     节点作为Initiator发送SBFD报文,SBFD报文封装SRv6-TE Policy中的SID列表。

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

(3)     如果源节点收到SBFD响应报文,则认为该SID列表对应的转发路径正常。否则,会认为该SID列表对应转发路径故障。

3.11  SRv6-TE Policy热备份功能

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

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

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

 

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

SRv6 VPN

SRv6 VPN是通过SRv6隧道承载IPv6网络中的VPN业务的技术,控制平面采用MP-BGP通告VPN路由信息,数据平面采用SRv6封装方式转发报文。租户的物理站点分散在不同位置时,SRv6 VPN可以基于已有的服务提供商或企业IP网络,为同一租户的不同物理站点提供二层或三层互联。

根据VPN业务种类,SRv6 VPN分为:

·     L3VPN业务:IP L3VPN over SRv6EVPN L3VPN over SRv6

·     L2VPN业务:EVPN VPWS over SRv6EVPN VPLS over SRv6

4.1  BGP overlay服务扩展

BGP overlay服务是指基于BGPSRv6 VPN业务,以BGP作为控制平面,SRv6作为数据平面,处理L2VPNL3VPN业务报文。在IP L3VPN/EVPN L3VPN/EVPN VPWS/EVPN VPLS over SRv6组网中,通过BGP协议报文通告NLRI时可以携带Prefix SID属性。BGP Prefix SID属性用来携带SRv6 SID及其相关的信息,该属性定义了以下2TLV,以实现L2VPNL3VPN业务。

·     SRv6 service TLV

·     SRv6 Service Sub-TLV

4.1.1  SRv6 service TLV

SRv6 service TLV用于承载BGP overlay服务的业务类型。

SRv6 service TLV的报文格式如33所示。

图33 SRv6 service TLV

 

SRv6 service TLV包含字段如16所示。

表16 SRv6 service TLV的字段描述表

字段名称

长度

含义

TLV Type

8比特

业务类型:

·     5L3业务类型

·     6L2业务类型

TLV Length

16比特

长度

Reserved

8比特

预留值,取值为0

SRv6 Service Sub-TLVs

32比特

SRv6业务相关信息,由一系列TLV组成

 

4.1.2  SRv6 Service Sub-TLV

SRv6 Service Sub-TLV用于承载BGP Prefix SID信息。

SRv6 Service Sub-TLV的报文格式如34所示。

图34 SRv6 Service Sub-TLV

 

SRv6 Service Sub-TLV包含字段如17所示。

表17 SRv6 Service Sub-TLV的字段描述表

字段名称

长度

含义

SRv6 Service Sub-TLV Type

8比特

业务类型,取值为1

SRv6 Service Sub-TLV Length

16比特

长度

Reserved1

8比特

预留值,取值为0

SRv6 SID Value

128比特

SRv6 SID

SRv6 SID Flags

8比特

标志位,目前无定义

SRv6 Endpoint Behavior

16比特

SRv6 SID类型:

·     End SID

·     End.X SID

·     End.T SID

·     End.DX6 SID

·     End.DX4 SID

·     End.DT6 SID

·     End.DT4 SID

·     End.DX2 SID

·     End.DX2V SID

·     End.DT2U SID

·     End.DT2M SID

Reserved2

8比特

预留值,取值为0

SRv6 Service Data Sub-Sub-TLV

32比特

标识SRv6 SID的属性

 

4.2  SRv6 VPN报文转发方式

4.2.1  SRv6 BE

SRv6 BESegment Routing IPv6 Best Effort)是指通过IGP协议发布Locator网段,SRv6网络中的节点按最短路径优先算法计算到达Locator网段的最优路由。该路由对应的路径为SRv6 BE路径。

公网BGP路由或者VPN实例的BGP路由迭代到SRv6 BE路径后,可以实现将公网流量或VPN流量引入SRv6 BE路径。

4.2.2  SRv6 TE

SRv6 TESegment Routing IPv6 Traffic Engineering)基于SRv6-TE Policy实现。报文的入口节点通过不同的引流方式,将公网流量或VPN流量引入SRv6-TE Policy转发。SRv6-TE Policy对应的路径为SRv6 TE路径。

4.3  IP L3VPN over SRv6

35所示,IP L3VPN over SRv6通过MP-BGPIPv6骨干网上发布用户站点的IPv4/IPv6私网路由,使用PE间的SRv6路径承载私网报文,从而实现通过IPv6骨干网连接属于同一个VPN、位于不同地理位置的用户。

图35 IP L3VPN over SRv6组网示意图

 

IP L3VPN over SRv6中支持以下SRv6 SID

·     End.DT4 SID:用于标识网络中的某个IPv4 VPN实例。End.DT4 SID对应的转发动作是解封装报文,并且查找IPv4 VPN实例路由表转发。End.DT4 SID用于IPv4私网用户接入场景。

·     End.DT6 SID:用于标识网络中的某个IPv6 VPN实例。End.DT6 SID对应的转发动作是解封装报文,并且查找IPv6 VPN实例路由表转发。End.DT6 SID用于IPv6私网用户接入场景。

·     End.DT46 SID:用于标识网络中的某个IPv4 VPN实例或IPv6 VPN实例。End.DT46 SID对应的转发动作是解封装报文,并且查找IPv4 VPN实例或IPv6 VPN实例路由表转发。End.DT46 SID用于IPv4私网用户IPv6私网用户接入场景。

·     End.DX4 SID:用于标识网络中的某个IPv4下一跳。End.DX4 SID对应的转发动作是解封装报文,并且将解封后的IPv4报文通过该SID绑定的三层接口转发给特定下一跳。End.DX4 SID用于IPv4私网用户接入场景。

·     End.DX6 SID:用于标识网络中的某个IPv6下一跳。End.DX6 SID对应的转发动作是解封装报文,并且将解封后的IPv6报文通过该SID绑定的三层接口转发给特定下一跳。End.DX6 SID用于IPv6私网用户接入场景。

说明

·     各类SRv6 SID的发布过程和转发过程类型,下文仅以End.DT4 SID为例进行说明。

·     IPv4 L3VPN over SRv6IPv6 L3VPN over SRv6的实现过程类似,下文仅IPv4 L3VPN over SRv6为例进行说明。

 

4.3.1  IP L3VPN over SRv6 BE实现过程

IP L3VPN over SRv6 BE路由发布和报文转发过程如36所示。

图36 IP L3VPN over SRv6 BE实现机制

 

PE之间需要通过IGP协议将End.DT4 SID所属Locator网段路由发布给公网中所有设备。以PE 2为例,PE 2通过IGP协议(以IS-IS路由为例)将End.DT4 SID所属Locator网段路由100:1::/64发布给PPE 1

CE 2的私网路由发布到CE 1的过程如下:

(1)     CE 2使用IGPBGP,将本站点的私网路由2.2.2.2/32发布给PE 2

(2)     PE 2CE 2学习到私网路由信息后,将私网路由存放到VPN实例A的路由表中。PE 2为私网路由增加RDRT属性,并为私网路由分配End.DT4 SID 100:1::1,形成VPNv4路由。PE 2通过MP-BGPVPNv4路由发布给PE 1

(3)     PE 1收到VPNv4路由后,将该路由加入到VPN实例A的路由表中,并将VPNv4路由转换成IPv4路由发布给CE 1PE 1收到PE 2发布的IS-IS路由后,将其学习到路由表中。

(4)     CE 1收到路由后,将其学习到路由表中。

完成路由发布后,目的地址为2.2.2.2报文从CE 1CE 2的转发过程如下:

(1)     CE 1发送目的地址为2.2.2.2IPv4报文给PE 1

(2)     PE 1从绑定了VPN实例A的接口上收到私网报文后,在VPN实例A的路由表中查找匹配2.2.2.2的路由,找到对应的End.DT4 SID 100:1::1,然后为报文封装IPv6报文头。IPv6报文头中的源地址由管理员手工配置,目的地址为End.DT4 SID 100:1::1

(3)     PE 1根据End.DT4 SID 100:1::1查找IPv6路由表,通过最优IGP路由将报文转发给P

(4)     P根据End.DT4 SID 100:1::1查找IPv6路由表,通过最优IGP路由将报文转发给PE 2

(5)     PE 2收到目的IPv6地址为End.DT4 SID 100:1::1的报文后,解封装去掉IPv6报文头,并根据End.DT4 SID匹配VPN实例A,查找VPN实例A的路由表,将报文发送给CE 2

4.3.2  IP L3VPN over SRv6 TE实现过程

IP L3VPN over SRv6 TE路由发布和报文转发过程如37所示。在该组网中,控制器将SRv6-TE Policy相关配置下发到PE 1PE 1PPE 2通过IGP协议在公网发布End SID所在Locator网段的路由。。

图37 IP L3VPN over SRv6 TE实现机制

 

PE之间需要通过IGP协议将End.DT4 SID所属Locator网段路由发布给公网中所有设备。以PE 2为例,PE 2通过IGP协议(以IS-IS路由为例)将End.DT4 SID所属Locator网段路由100:1::/64发布给P 2PP 1PE 1

Color引流方式为例,CE 2的私网路由发布到CE 1的过程如下:

(1)     CE 2使用IGPBGP,将本站点的私网路由2.2.2.2/32发布给PE 2

(2)     PE 2CE 2学习到私网路由信息后,将私网路由存放到VPN实例A的路由表中。PE 2为私网路由增加RDRT属性,并为私网路由分配End.DT4 SID 100:1::1,形成VPNv4路由。PE 2通过MP-BGP把携带End.DT4 SIDColor扩展团体属性的VPNv4路由发布给PE 1

(3)     PE 1收到VPNv4路由后,将该路由加入到VPN实例A的路由表中,同时BGP路由按Color引流方式迭代到SRv6-TE PolicyPE 1VPNv4路由转换成IPv4路由发布给CE 1PE 1收到PE 2发布的IS-IS路由后,将其学习到路由表中。

(4)     CE 1收到路由后,将其学习到路由表中。

完成路由发布后,目的地址为2.2.2.2报文从CE 1CE 2的转发过程如下:

(1)     CE 1发送目的地址为2.2.2.2IPv4报文给PE 1

(2)     PE 1从绑定了VPN实例A的接口上收到私网报文后,在VPN实例A的路由表中查找匹配2.2.2.2的路由,找到对应的End.DT4 SID 100:1::1且该路由下一跳为SRv6-TE PolicyPE 1为报文添加SRH,封装SRv6-TE PolicySID ListEnd.DT4 SID,然后封装IPv6基本头信息。完成后,将报文转发给P 1

(3)     P 1根据目的地址查找IPv6路由表,通过最优IGP路由将报文转发给P

(4)     P收到报文后,执行如下操作:

¡     SRH头中的SL,如果SL>0,将SL值减1,目的地址更新为SL指示的地址,即SL=1对应的Segment List [1]IPv6地址100:1::10

¡     根据IPv6头中的目的地址查找路由表,将报文转发给P 2

(5)     P 2根据目的地址查找IPv6路由表,通过最优IGP路由将报文转发给PE 2

(6)     PE 2收到报文后,使用报文的IPv6目的地址查找Local SID表,匹配到End SID,将报文SL1IPv6目的地址更新为End.DT4 SID 100:1::1。使用IPv6目的地址100:1::1查找Local SID表,匹配到End.DT4 SID,执行End.DT4 SID对应的转发动作,即解封装去掉IPv6报文头,并根据End.DT4 SID匹配VPN实例A,查找VPN实例A的路由表,将报文发送给CE 2

4.4  EVPN L3VPN over SRv6

38所示,EVPN L3VPN over SRv6通过MP-BGPIPv6骨干网上使用EVPNIP前缀路由发布用户站点的IPv4/IPv6私网路由,使用PE间的SRv6路径承载私网报文,从而实现通过IPv6骨干网连接属于同一个VPN、位于不同地理位置的用户。

图38 EVPN L3VPN over SRv6组网示意图

EVPN L3VPN over SRv6中支持以下SRv6 SID

·     End.DT4 SID:用于标识网络中的某个IPv4 VPN实例。End.DT4 SID对应的转发动作是解封装报文,并且查找IPv4 VPN实例路由表转发。End.DT4 SID用于IPv4私网用户接入场景。

·     End.DT6 SID:用于标识网络中的某个IPv6 VPN实例。End.DT6 SID对应的转发动作是解封装报文,并且查找IPv6 VPN实例路由表转发。End.DT6 SID用于IPv6私网用户接入场景。

·     End.DT46 SID:用于标识网络中的某个IPv4 VPN实例或IPv6 VPN实例。End.DT46 SID对应的转发动作是解封装报文,并且查找IPv4 VPN实例或IPv6 VPN实例路由表转发。End.DT46 SID用于IPv4私网用户IPv6私网用户接入场景。

·     End.DX4 SID:用于标识网络中的某个IPv4下一跳。End.DX4 SID对应的转发动作是解封装报文,并且将解封后的IPv4报文通过该SID绑定的三层接口转发给特定下一跳。End.DX4 SID用于IPv4私网用户接入场景。

·     End.DX6 SID:用于标识网络中的某个IPv6下一跳。End.DX6 SID对应的转发动作是解封装报文,并且将解封后的IPv6报文通过该SID绑定的三层接口转发给特定下一跳。End.DX6 SID用于IPv6私网用户接入场景。

说明

·     各类SRv6 SID的发布过程和转发过程类型,下文仅以End.DT4 SID为例进行说明。

·     IPv4 EVPN L3VPN over SRv6IPv6 EVPN L3VPN over SRv6的实现过程类似,下文仅IPv4 EVPN L3VPN over SRv6为例进行说明。

 

4.4.1  EVPN L3VPN over SRv6 BE实现过程

EVPN L3VPN over SRv6 BE路由发布和报文转发过程如39所示。

图39 EVPN L3VPN over SRv6 BE实现机制

 

PE之间需要通过IGP协议将End.DT4 SID所属Locator网段路由发布给公网中所有设备。以PE 2为例,PE 2通过IGP协议(以IS-IS路由为例)将End.DT4 SID所属Locator网段路由100:1::/64发布给PPE 1

CE 2的私网路由发布到CE 1的过程如下:

(1)     CE 2使用IGPBGP,将本站点的私网路由2.2.2.2/32发布给PE 2

(2)     PE 2CE 2学习到私网路由信息后,将私网路由存放到VPN实例A的路由表中。PE 2为私网路由增加RDRT属性,并为私网路由分配End.DT4 SID 100:1::1,形成EVPNIP前缀路由。PE 2通过MP-BGPEVPNIP前缀路由发布给PE 1

(3)     PE 1收到EVPNIP前缀路由后,将该路由加入到VPN实例A的路由表中,并将EVPNIP前缀路由转换成IPv4路由发布给CE 1PE 1收到PE 2发布的IS-IS路由后,将其学习到路由表中。

(4)     CE 1收到路由后,将其学习到路由表中。

完成路由发布后,目的地址为2.2.2.2报文从CE 1CE 2的转发过程如下:

(1)     CE 1发送目的地址为2.2.2.2IPv4报文给PE 1

(2)     PE 1从绑定了VPN实例A的接口上收到私网报文后,在VPN实例A的路由表中查找匹配2.2.2.2的路由,找到对应的End.DT4 SID 100:1::1,然后为报文封装IPv6报文头。IPv6报文头中的源地址由管理员手工配置,目的地址为End.DT4 SID 100:1::1

(3)     PE 1根据End.DT4 SID 100:1::1查找IPv6路由表,通过最优IGP路由将报文转发给P

(4)     P根据End.DT4 SID 100:1::1查找IPv6路由表,通过最优IGP路由将报文转发给PE 2

(5)     PE 2收到目的IPv6地址为End.DT4 SID 100:1::1的报文后,解封装去掉IPv6报文头,并根据End.DT4 SID匹配VPN实例A,查找VPN实例A的路由表,将报文发送给CE 2

4.4.2  EVPN L3VPN over SRv6 TE实现过程

EVPN L3VPN over SRv6 TE路由发布和报文转发过程如40所示。在该组网中,控制器将SRv6-TE Policy相关配置下发到PE 1,同时PE 1PPE 2通过IGP协议在公网发布End SID所在Locator网段的路由。

图40 EVPN L3VPN over SRv6 TE实现机制

 

PE之间需要通过IGP协议将End.DT4 SID所属Locator网段路由发布给公网中所有设备。以PE 2为例,PE 2通过IGP协议(以IS-IS路由为例)将End.DT4 SID所属Locator网段路由100:1::/64发布给P 2PP 1PE 1

Color引流方式为例,CE 2的私网路由发布到CE 1的过程如下:

(1)     CE 2使用IGPBGP,将本站点的私网路由2.2.2.2/32发布给PE 2

(2)     PE 2CE 2学习到私网路由信息后,将私网路由存放到VPN实例A的路由表中。PE 2为私网路由增加RDRT属性,并为私网路由分配End.DT4 SID 100:1::1,形成EVPNIP前缀路由。PE 2通过MP-BGP把携带End.DT4 SIDColor扩展团体属性的EVPN IP前缀路由发布给PE 1

(3)     PE 1收到EVPNIP前缀路由后,将该路由加入到VPN实例A的路由表中,同时BGP路由按Color引流方式迭代到SRv6-TE PolicyPE 1EVPNIP前缀路由转换成IPv4路由发布给CE 1PE 1收到PE 2发布的IS-IS路由后,将其学习到路由表中。

(4)     CE 1收到路由后,将其学习到路由表中。

完成路由发布后,目的地址为2.2.2.2报文从CE 1CE 2的转发过程如下:

(1)     CE 1发送目的地址为2.2.2.2IPv4报文给PE 1

(2)     PE 1从绑定了VPN实例A的接口上收到私网报文后,在VPN实例A的路由表中查找匹配2.2.2.2的路由,找到对应的End.DT4 SID 100:1::1且该路由下一跳为SRv6-TE PolicyPE 1为报文添加SRH,封装SRv6-TE PolicySID ListEnd.DT4 SID,然后封装IPv6基本头信息。完成后,将报文转发给P 1

(3)     P 1根据目的地址查找IPv6路由表,通过最优IGP路由将报文转发给P

(4)     P收到报文后,执行如下操作:

¡     SRH头中的SL值,如果SL>0,将SL值减1,目的地址更新为SL指示的地址,即SL=1对应的Segment List [1]IPv6地址100:1::10

¡     根据IPv6头中的目的地址查找路由表,将报文转发给P 2

(5)     P 2根据目的地址查找IPv6路由表,通过最优IGP路由将报文转发给PE 2

(6)     PE 2收到报文后,使用报文的IPv6目的地址查找Local SID表,匹配到End SID,将报文SL1IPv6目的地址更新为End.DT4 SID 100:1::1。使用IPv6目的地址100:1::1查找Local SID表,匹配到End.DT4 SID,执行End.DT4 SID对应的转发动作,解封装去掉IPv6报文头,并根据End.DT4 SID匹配VPN实例A,查找VPN实例A的路由表,将报文发送给CE 2

4.5  EVPN VPWS over SRv6

EVPN VPWS over SRv6是指通过IPv6 SR隧道承载EVPN VPWS业务,通过IPv6网络透明传输用户二层数据,实现用户网络穿越IPv6网络建立点到点连接。

图41 EVPN VPWS over SRv6组网示意图

 

41所示,PE之间通过EVPN路由发布SRv6 SID,建立IPv6 SR隧道。该IPv6 SR隧道作为PW,封装并转发站点网络之间的二层数据报文。

EVPN VPWS over SRv6通过以下SRv6 SID实现二层数据报文的透明传递:

·     End.DX2 SID:表示二层交叉连接的SID,用于标识一个端点。End.DX2 SID对应的转发动作是解封装报文,将解封装后的报文转发到SID对应的AC

·     End.DX2L SIDEnd.DX2L SID用来标识报文来自Bypass SRv6 PW,携带该SID的报文不会再转发到该Bypass SRv6 PW,从而避免产生环路。End.DX2L SID对应的转发动作是解封装报文,将解封装后的报文转发到SID对应的ACEnd.DX2L SID主要用于EVPN VPWS over SRv6多归属站点组网。

说明

各类SRv6 SID的发布过程和转发过程类型,下文仅以End.DX2 SID为例进行说明。

 

4.5.1  EVPN VPWS over SRv6 BE实现过程

EVPN VPWS over SRv6 BE路由发布和报文转发过程如42所示。

图42 EVPN VPWS over SRv6 BE实现机制

 

PE间通过BGP EVPN路由建立PW的过程为:

(1)     PE 1PE 2上均配置Local service ID来标识与其连接的CE,配置Remote service ID来标识远端PE连接的CE,并为每个Local service ID分配End.DX2 SID,该SID作为PW的入SID

(2)     本地PE(如PE 1)通过Ethernet Auto-discovery Per EVI路由将Local service ID和为Local service ID分配的End.DX2 SID通告给远端PE(如PE 2)。

(3)     PE 2接收到路由后,如果路由中的Export target属性与PE 2本地配置的Import target属性匹配,则PE 2将接收到的Local service ID与本地配置的Remote service ID比较。若二者相同,则建立一条从PE 2PE 1的单跳IPv6 SR隧道,PE 1通告的End.DX2 SID作为该IPv6 SR隧道的出SID

(4)     同时,PE 2也会PE 1发送Ethernet Auto-discovery Per EVI路由PE 1将接收到的Local service ID与本地配置的Remote service ID比较。若二者相同,则建立一条从PE 1PE 2的单跳IPv6 SR隧道。

(5)     两端PE均发布End.DX2 SID,并在两个方向上均建立单跳IPv6 SR隧道后,两条IPv6 SR隧道组成一条PW,用来承载用户二层数据。PW称为SRv6 PW

完成路由发布后,二层报文从CE 1CE 2的转发过程如下:

(1)     CE 1发送二层报文给PE 1

(2)     PE 1从连接CE 1AC上接收到二层报文后,查找与该AC关联的SRv6 PW(即IPv6 SR隧道),找到对应的End.DX2 SID,即PE 2PE 1分配的End.DX2 SID

(3)     PE 1为报文封装外层IPv6报文头,目的IPv6地址为End.DX2 SID,源IPv6地址由管理员手工配置。

(4)     PE 1根据End.DX2 SID查找IPv6路由表,通过最优IGP路由将报文转发给P

(5)     P根据End.DX2 SID查找IPv6路由表,通过最优IGP路由将报文转发给PE 2

(6)     PE 2根据End.DX2 SID查找Local SID表,执行End.DX2 SID对应的转发动作,即解封装报文,根据End.DX2 SID匹配与其关联的AC,并通过该AC将报文转发给CE 2

4.5.2  EVPN VPWS over SRv6 TE实现过程

EVPN VPWS over SRv6 TE路由发布和报文转发过程如43所示。在该组网中,控制器将SRv6-TE Policy相关配置下发到PE 1,同时PE 1PPE 2通过IGP协议在公网发布End SID所在Locator网段的路由。

图43 EVPN VPWS over SRv6 TE实现机制

 

Color引流方式为例,PE间通过BGP EVPN路由建立PW的过程为:

(1)     PE 1PE 2上均配置Local service ID来标识与其连接的CE,配置Remote service ID来标识远端PE连接的CE,并为每个Local service ID分配End.DX2 SID,该SID作为PW的入SID

(2)     本地PE(如PE 1向远端PE(如PE 2)发布Ethernet Auto-discovery Per EVI路由,该路由中携带本端的Local service IDLocal service ID分配的End.DX2 SID。在该路由中,还可以携带Color扩展团体属性。

(3)     PE 2接收到路由后,如果路由中的Export target属性与PE 2本地配置的Import target属性匹配,则PE 2将接收到的Local service ID与本地配置的Remote service ID比较。若二者相同,则建立一条从PE 2PE 1的单跳IPv6 SR隧道,PE 1通告的End.DX2 SID作为该IPv6 SR隧道的出SIDPE 2根据Color属性,将路由迭代到SRv6-TE Policy

(4)     同时,PE 2也会PE 1发送Ethernet Auto-discovery Per EVI路由PE 1接收到路由后,处理方式与PE 2相同。

(5)     两端PE均发布End.DX2 SID,并在两个方向上均建立单跳IPv6 SR隧道后,两条IPv6 SR隧道组成一条PW,用来承载用户二层数据。PW称为SRv6 PW

完成路由发布后,二层报文从CE 1CE 2的转发过程如下:

(1)     CE 1发送二层报文给PE 1

(2)     PE 1从连接CE 1AC上接收到二层报文后,查找与该AC关联的SRv6 PW(即IPv6 SR隧道),找到对应的End.DX2 SID,即PE 2PE 1分配的End.DX2 SID,并查找到该SID迭代到的SRv6-TE PolicyPE 1为报文添加SRH,封装SRv6-TE PolicySID ListEnd.DX2 SID,然后封装IPv6基本头信息。完成后,将报文转发给P 1

(3)     P 1根据目的地址查找IPv6路由表,通过最优IGP路由将报文转发给P

(4)     P收到报文后,执行如下操作:

¡     SRH头中的SL值,如果SL>0,将SL值减1,目的地址更新为SL指示的地址,即SL=1对应的Segment List [1]IPv6地址100:1::10

¡     根据IPv6头中的目的地址查找路由表,将报文转发给P 2

(5)     P 2根据目的地址查找IPv6路由表,通过最优IGP路由将报文转发给PE 2

(6)     PE 2收到报文后,使用报文的IPv6目的地址查找Local SID表,匹配到End SID,将报文SL1IPv6目的地址更新为End.DX2 SID 100:1::1。使用IPv6目的地址100:1::1查找Local SID表,匹配到End.DX2 SID,执行End.DX2 SID对应的转发动作,即解封装报文,根据End.DX2 SID匹配与其关联的AC,并通过该AC将报文转发给CE 2

4.5.3  多归属站点

44所示,当一个站点通过不同的以太网链路连接到多台PE时,这些链路就构成了一个ESEthernet Segment,以太网段),并以一个相同的ESIES Identifier)标识其属于同一个ES。连接的多台PE组成冗余备份组,可以避免PE单点故障对网络造成影响,从而提高网络的可靠性。目前仅支持双归属。

图44 多归属站点组网

 

·     冗余备份模式

多归属站点组网支持的冗余备份模式包括:

¡     多活冗余模式:冗余备份组中的成员PE均可以转发流量,流量在成员PE之间形成负载分担。

¡     单活冗余模式:冗余备份组中的成员PE中仅一台PE转发流量,成员PE上的两条SRv6 PW为主备关系,实现当主SRv6 PW出现故障后,将流量立即切换到备份SRv6 PW,使流量转发得以继续。

·     路由发布

冗余备份组中的两台成员PE均向PE 3发布End.DX2 SID,并向PE 3通告多归属站点的冗余备份模式以及在冗余备份组中的状态(主PE或备PE)。不同冗余备份模式下,PE 3的处理有所不同:

¡     多活冗余模式下:PE 3PE 1PE 2发布的路由作为等价路由,在二者之间进行负载分担。

¡     单活冗余模式下:PE 3将主PE发布的路由作为最优路由,仅通过该路由转发报文。

4.5.4  FRR功能

EVPN VPWS over SRv6FRR功能用于减小AC链路故障或SRv6 PW链路故障对网络造成的影响,提升网络的可靠性和稳定性。EVPN VPWS over SRv6FRR功能包括Bypass PW和主备PW功能。

·     Bypass PW

45所示,在多归属站点组网中,PE 2侧的AC链路故障时,PE 2会向PE 1PE 3通告本地不可达信息,使流量不再通过PE 1PE 2之间的SRv6 PW转发,在此期间PE 1发送给PE 2的数据报文无法转发到CE 2,会被丢弃。EVPN VPWS over SRv6通过Bypass PW功能解决该问题。在冗余备份组成员PE间建立Bypass SRv6 PW。当AC链路故障时,PE 2通过Bypass SRv6 PW临时将流量到转发到PE 3,再由PE 3转发到CE 2,从而减少丢包。

图45 Bypass PW功能原理图

 

如果PE 2PE 3之间通过End.DX2 SID建立Bypass SRv6 PW,则当PE 2PE 3侧的AC链路均故障时,PE 2PE 3会将从对端接收到的报文再次通过Bypass SRv6 PW转发给对端,造成短暂的环路。通过在PE 2PE 3之间使用End.DX2L SID建立Bypass SRv6 PW,可以解决上述问题。End.DX2L SID用来标识报文来自Bypass SRv6 PW,携带该SID的报文不会再转发到Bypass SRv6 PW,从而避免产生环路。

开启Bypass PW功能后,PE会优选使用End.DX2L SID建立Bypass SRv6 PW;如果不存在End.DX2L SID,则会使用End.DX2 SID建立Bypass SRv6 PW

·     主备PW

如果两个CE之间只存在一条SRv6 PW,则当PE节点、PECE之间的链路、或PE之间的SRv6 PW出现故障时,CE之间将无法通信。主备PW功能通过部署主备两条SRv6 PW,实现当主SRv6 PW出现故障后,将流量立即切换到备份SRv6 PW,使得流量转发得以继续。

46所示,在两个CE之间建立两条SRv6 PW。正常情况下,CE使用主SRv6 PW与远端CE通信;当PE 1检测出到PE 2SRv6 PW不可用(可能是PE 2节点故障,也可能是SRv6 PW故障,或PE 2CE 2之间的链路故障),PE 1将启用备份SRv6 PW,通过备份SRv6 PWCE 1的报文转发给PE 3,再由PE 3转发给CE 2CE 2接收到报文后,通过更新MAC地址表项等方式将发送给CE 1的报文切换到备份SRv6 PW转发,从而保证通信不会中断。

图46 主备PW功能原理图

 

4.6  EVPN VPLS over SRv6

EVPN VPLS over SRv6是指通过IPv6 SR隧道承载EVPN VPLS业务,通过IPv6网络透明传输用户二层数据,实现用户网络穿越IPv6网络建立点到多点连接。

47所示,PE之间通过EVPN路由发布SRv6 SID,建立IPv6 SR隧道。该IPv6 SR隧道作为PW,封装并转发站点网络之间的二层数据报文。

图47 EVPN VPLS over SRv6组网示意图

 

EVPN VPLS over SRv6通过以下SRv6 SID实现二层数据报文的透明传递:

·     End.DT2M SID用来传递EVPN VPLSBUMBroadcastUnknown-unicastMulticast,广播、未知单播和组播)流量。End.DT2M SID对应的转发动作是解封装报文,将解封后的报文在VSI实例内广播泛洪。PE为每个VSI实例分配一个End.DT2M SID

·     End.DT2U SID用来传递EVPN VPLS已知单播流量End.DT2U SID对应的转发动作是解封装报文,根据解封后报文的目的MAC地址查找VSI实例的MAC地址表,根据MAC表项将报文转发到对应的出接口。PE为每个VSI实例分配一个End.DT2U SID

·     End.DX2 SID用来传递EVPN VPLS已知单播流量End.DX2 SID对应的转发动作是解封装报文,将解封后的报文转发到SID对应的ACPEVSI实例中的每个AC分配一个End.DX2 SID

·     End.DT2UL SIDEnd.DT2UL SID用来标识报文来自Bypass SRv6 PW,携带该SID的报文不会再转发到该Bypass SRv6 PW,从而避免产生环路。End.DT2UL SID对应的转发动作是解封装报文,根据解封后报文的目的MAC地址查找VSI实例的MAC地址表,根据MAC表项将报文转发到对应的出接口。End.DT2UL SID主要用于EVPN VPLS over SRv6多归属站点组网。每个VSI实例只会分配一个End.DT2UL SID

·     End.DX2L SID:用来标识报文来自Bypass SRv6 PW,携带该SID的报文不会再转发到该Bypass SRv6 PW,从而避免产生环路。End.DX2L SID对应的转发动作是解封装报文,解封后的报文转发到SID对应的ACEnd.DX2L SID主要用于EVPN VPLS over SRv6多归属站点组网。PEVSI实例中的每个多归属AC分配一个End.DX2L SID

说明

各类SRv6 SID的发布过程和转发过程类型,下文仅以End.DT2M SIDEnd.DT2U SID为例进行说明。

 

4.6.1  EVPN VPLS over SRv6 BE实现过程

EVPN VPLS over SRv6 BE路由发布和报文转发过程如48所示。

图48 EVPN VPLS over SRv6 BE组网示意图

 

本端PE向远端PE发布EVPN路由时,在EVPN路由中携带本端为VSI分配的End.DT2M SIDEnd.DT2U SID,从而建立本端PE到远端PEIPv6 SR隧道。其中:

·     End.DT2M SID通过IMET路由发布用来BUM流量建立IPv6 SR隧道。

·     End.DT2U SID通过MAC/IP发布路由发布用来为已知单播流量建立IPv6 SR隧道。

两端PE均发布End.DT2M SIDEnd.DT2U SID,并在两个方向上均建立单跳IPv6 SR隧道后,两条IPv6 SR隧道组成一条PW,用来承载用户二层数据。

完成路由发布后,二层已知单播报文从CE 1CE 2的转发过程为:

(1)     CE 1发送二层报文给PE 1

(2)     PE 1从连接CE 1AC上接收到二层报文后,在AC关联的VSI中查找MAC地址表,找到对应的IPv6 SR隧道,并获取该隧道的End.DT2U SID,即PE 2分配的End.DT2U SID

(3)     PE 1为报文封装外层IPv6报文头,目的IPv6地址为End.DT2U SID,源IPv6地址由管理员手工配置。

(4)     PE 1根据End.DT2U SID查找IPv6路由表,通过最优IGP路由将报文转发给P

(5)     P根据End.DT2U SID查找IPv6路由表,通过最优IGP路由将报文转发给PE 2

(6)     PE 2根据End.DT2U SID查找Local SID表,执行End.DT2U SID对应的转发动作,解封装报文,并在End.DT2U SID所属的VSI内查找MAC地址表,根据查表结果将报文转发给CE 2

完成路由发布后,二层广播、组播和未知单播报文的转发过程为:

(1)     CE 1发送二层广播、组播和未知单播报文给PE 1

(2)     PE 1从连接CE 1AC上接收到二层报文后,在AC关联的VSI中查找所有远端PE分配的End.DT2M SID

(3)     PE 1为报文封装外层IPv6报文头,目的IPv6地址为End.DT2M SID,源IPv6地址为由管理员手工配置。

如果PE 1接收到多个远端PE分配的End.DT2M SID,则为二层报文分别封装每个End.DT2M SID,将该报文转发给所有的远端PE

(4)     PE 1根据End.DT2M SID查找IPv6路由表,通过最优IGP路由将报文转发给P

(5)     P根据End.DT2M SID查找IPv6路由表,通过最优IGP路由将报文转发给PE 2

(6)     PE 2根据End.DT2M SID查找Local SID表,执行End.DT2M SID对应的转发动作,即解封装报文,并在End.DT2M SID所属的VSI内广播转发该报文。

4.6.2  EVPN VPLS over SRv6 TE实现过程

EVPN VPLS over SRv6 TE路由发布和报文转发过程如49所示。在该组网中,控制器将SRv6-TE Policy相关配置下发到PE 1,同时PE 1PPE 2通过IGP协议在公网发布End SID所在Locator网段的路由。

图49 EVPN VPLS over SRv6 TE组网示意图

 

本端PE向远端PE发布EVPN路由时,在EVPN路由中携带本端为VSI分配的End.DT2M SIDEnd.DT2U SID,从而建立本端PE到远端PEIPv6 SR隧道。其中:

·     End.DT2M SID通过IMET路由发布用来BUM流量建立IPv6 SR隧道。

·     End.DT2U SID通过MAC/IP发布路由发布用来为已知单播流量建立IPv6 SR隧道。

两端PE均发布End.DT2M SIDEnd.DT2U SID,并在两个方向上均建立单跳IPv6 SR隧道后,两条IPv6 SR隧道组成一条PW,用来承载用户二层数据。

PE采用SR-TE方式转发报文时,PE 2会根据接收到EVPN路由的Color属性和下一跳地址,采用基于Color或隧道策略引流的方式,将该路由迭代到一个SRv6-TE Policy

完成路由发布后,二层已知单播报文从CE 1CE 2的转发过程为:

(1)     CE 1发送二层报文给PE 1

(2)     PE 1从连接CE 1AC上接收到二层报文后,在AC关联的VSI中查找MAC地址表,找到对应的IPv6 SR隧道,获取该隧道的End.DT2U SID,即PE 2分配的End.DT2U SID,并查找到该SID迭代到的SRv6-TE PolicyPE 1为报文添加SRH,封装SRv6-TE PolicySID ListEnd.DT2U SID,然后封装IPv6基本头信息。完成后,将报文转发给P 1

(3)     P 1根据目的地址查找IPv6路由表,通过最优IGP路由将报文转发给P

(4)     P收到报文后,执行如下操作:

¡     SRH头中的SL值,如果SL>0,将SL值减1,目的地址更新为SL指示的地址,即SL=1对应的Segment List [1]IPv6地址100:1::10

¡     根据IPv6头中的目的地址查找路由表,将报文转发给P 2

(5)     P 2根据目的地址查找IPv6路由表,通过最优IGP路由将报文转发给PE 2

(6)     PE 2收到报文后,使用报文的IPv6目的地址查找Local SID表,匹配到End SID,将报文SL1IPv6目的地址更新为End.DT2U SID 100:1::1。使用IPv6目的地址100:1::1查找Local SID表,匹配到End.DT2U SID,执行End.DT2U SID对应的转发动作,即解封装报文,并在End.DT2U SID所属的VSI内查找MAC地址表,根据查表结果将报文转发给CE 2

完成路由发布后,二层广播、组播和未知单播报文的转发过程为:

(1)     CE 1发送二层广播、组播和未知单播报文给PE 1

(2)     PE 1从连接CE 1AC上接收到二层报文后,在AC关联的VSI中查找所有远端PE分配的End.DT2M SID,并查找到各SID迭代到的SRv6-TE PolicyPE 1为报文添加SRH头,封装SRv6-TE PolicySID ListEnd.DT2M SID,然后封装IPv6基本头信息。完成后,将报文转发给P 1。如果PE 1接收到多个远端PE分配的End.DT2M SID,则为二层报文分别封装每个End.DT2M SID及其迭代的SRv6-TE PolicySID List,将该报文转发给所有的远端PE

(3)     P 1根据目的地址查找IPv6路由表,通过最优IGP路由将报文转发给P

(4)     P收到报文后,执行如下操作:

¡     SRH头中的SL值,如果SL>0,将SL值减1,目的地址更新为SL指示的地址,即SL=1对应的Segment List [1]IPv6地址100:1::10

¡     根据IPv6头中的目的地址查找路由表,将报文转发给P 2

(5)     P 2根据目的地址查找IPv6路由表,通过最优IGP路由将报文转发给PE 2

(6)     PE 2收到报文后,使用报文的IPv6目的地址查找Local SID表,匹配到End SID,将报文SL1IPv6目的地址更新为End.DT2M SID 100:1::1。使用IPv6目的地址100:1::1查找Local SID表,匹配到End.DT2M SID,执行End.DT2M SID对应的转发动作,即解封装报文,并在End.DT2M SID所属的VSI内广播转发该报文。

4.6.3  多归属站点

50所示,当一个站点通过不同的以太网链路连接到多台PE时,这些链路就构成了一个ESEthernet Segment,以太网段),并以一个相同的ESIES Identifier)标识其属于同一个ES。连接的多台PE组成冗余备份组,可以避免PE单点故障对网络造成影响,从而提高网络的可靠性。目前仅支持双归属。

图50 多归属站点组网

 

·     冗余备份模式

多归属站点组网支持的冗余备份模式包括:

¡     多活冗余模式:冗余备份组中的成员PE均可以转发流量,流量在成员PE之间形成负载分担。

¡     单活冗余模式:冗余备份组中的成员PE中仅一台PE转发流量,成员PE上的两条SRv6 PW为主备关系,实现当主SRv6 PW出现故障后,将流量立即切换到备份SRv6 PW,使流量转发得以继续。

·     路由发布

冗余备份组中的两台成员PE均向PE 3发布End.DT2U SIDEnd.DX2 SIDEnd.DT2M SID,并向PE 3通告多归属站点的冗余备份模式以及在冗余备份组中的状态(主PE或备PE)。不同冗余备份模式下,PE 3的处理有所不同:

¡     多活冗余模式下:PE 3PE 1PE 2发布的路由作为等价路由,在二者之间进行负载分担。

¡     单活冗余模式下:PE 3将主PE发布的路由作为最优路由,仅通过该路由转发报文。

·     FRR功能

51所示,EVPN VPLS over SRv6多归属站点组网中,CE 1双归属接入PE 1PE 2,其中PE 1DF。当PE 1侧的AC故障时,PE 1会删除对应的MAC地址表项,并向PE 2及远端PE通告本地不可达信息撤销MAC地址。此时,已经从远端PE发送到PE 1的数据报文由于没有出接口,会被丢弃。

EVPN VPLS over SRv6通过FRR功能解决该问题。在PE 1上启用FRR功能,使PE 1侧的AC故障时,不删除对应的MAC地址表项,而是将匹配该MAC地址表项的报文通过PE 1PE 2间的Bypass SRv6 PW转发至PE 2,再由PE 2转发至CE 1,从而减少AC故障导致的丢包。

图51 FRR功能原理图

 

如果PE 1PE 2之间通过End.DT2U SIDEnd.DX2 SID建立Bypass SRv6 PW,则当PE 1PE 2侧的AC链路均故障时,PE 1PE 2会将从对端接收到的报文再次通过Bypass SRv6 PW转发给对端,造成短暂的环路。通过在PE 1PE 2之间使用End.DT2UL SIDEnd.DX2L SID建立Bypass SRv6 PW,可以解决上述问题。End.DT2UL SIDEnd.DX2L SID用来标识报文来自Bypass SRv6 PW,携带该SID的报文不会再转发到该Bypass SRv6 PW,从而避免产生环路。

开启FRR功能后,PE会优选使用End.DT2UL SIDEnd.DX2L SID建立Bypass SRv6 PW;如果不存在End.DT2UL SIDEnd.DX2L SID,则会使用End.DT2U SIDEnd.DX2 SID建立Bypass SRv6 PW

4.7  公网IP over SRv6

52所示,公网IP over SRv6通过MP-BGPIPv6骨干网上发布用户站点的IPv4/IPv6路由,使用PE间的SRv6路径承载用户报文,从而实现通过IPv6骨干网连接位于不同地理位置的用户。

图52 公网IP over SRv6组网示意图

 

公网IP over SRv6中支持以下SRv6 SID

·     End.DT4 SID:用于标识IPv4公网。End.DT4 SID对应的转发动作是解封装报文,并且查找IPv4公网路由表转发。End.DT4 SID用于IPv4用户接入场景。

·     End.DT6 SID:用于标识IPv6公网。End.DT6 SID对应的转发动作是解封装报文,并且查找IPv6公网路由表转发。End.DT6 SID用于IPv6用户接入场景。

·     End.DT46 SID:用于标识网络中的IPv4公网或IPv6公网。End.DT46 SID对应的转发动作是解封装报文,并且查找IPv4公网或IPv6公网路由表转发。End.DT46 SID用于IPv4IPv6 用户接入场景。

·     End.DX4 SID:用于标识网络中的某个IPv4下一跳。End.DX4 SID对应的转发动作是解封装报文,并且将解封后的IPv4报文通过该SID绑定的三层接口转发给特定下一跳。End.DX4 SID用于IPv4用户接入场景。

·     End.DX6 SID:用于标识网络中的某个IPv6下一跳。End.DX6 SID对应的转发动作是解封装报文,并且将解封后的IPv6报文通过该SID绑定的三层接口转发给特定下一跳。End.DX6 SID用于IPv6用户接入场景。

说明

·     各类SRv6 SID的发布过程和转发过程类型,下文仅以End.DT4 SID为例进行说明。

·     公网IPv4 over SRv6公网IPv6 over SRv6的实现过程类似,下文仅公网IPv4 over SRv6为例进行说明。

 

4.7.1  公网IP over SRv6 BE实现过程

公网IP over SRv6 BE路由发布和报文转发过程如53所示。

图53 公网IP over SRv6 BE实现机制

 

PE之间需要通过IGP协议将End.DT4 SID所属Locator网段路由发布给公网中所有设备。以PE 2为例,PE 2通过IGP协议(以IS-IS路由为例)将End.DT4 SID所属Locator网段路由100:1::/64发布给PPE 1

CE 2的路由发布到CE 1的过程如下:

(1)     CE 2使用IGPBGP,将本站点的路由2.2.2.2/32发布给PE 2

(2)     PE 2CE 2学习到路由信息后,PE 2将公网路由存放到公网路由表中。PE 2为公网路由分配End.DT4 SIDPE 2将携带End.DT4 SIDIPv4单播路由发布给PE 1

(3)     PE 1收到IPv4单播路由后,将路由加入到公网路由表中,记录End.DT4 SID信息,并将去掉End.DT4 SIDIPv4单播路由发布给CE 1

(4)     CE 1收到路由后,将其学习到路由表中。

完成路由发布后,目的地址为2.2.2.2报文从CE 1CE 2的转发过程如下:

(1)     CE 1发送目的地址为2.2.2.2IPv4报文给PE 1

(2)     PE 1收到公网IPv4报文以后,匹配目的IPv4前缀,查找到关联的End.DT4 SIDPE 1使用End.DT4 SID A2:1::D100作为目的地址封装成IPv6报文。IPv6报文头中的源地址由管理员手工配置。

(3)     PE 1根据End.DT4 SID 100:1::1查找IPv6路由表,通过最优IGP路由将报文转发给P

(4)     P根据End.DT4 SID 100:1::1查找IPv6路由表,通过最优IGP路由将报文转发给PE 2

(5)     PE 2收到目的IPv6地址为End.DT4 SID 100:1::1的报文后,查找Local SID表,匹配到End.DT4 SID执行End.DT4 SID对应的转发动作,解封装报文,并根据End.DT4 SID匹配公网实例,查找公网路由表,将报文发送给CE 2

4.7.2  公网IP over SRv6 TE实现过程

公网IP over SRv6 TE路由发布和报文转发过程如54所示。在该组网中,控制器将SRv6-TE Policy相关配置下发到PE 1,同时PE 1PPE 2通过IGP协议在公网发布End SID所在Locator网段的路由。

图54 公网IP over SRv6 TE实现机制

 

PE之间需要通过IGP协议将End.DT4 SID所属Locator网段路由发布给公网中所有设备。以PE 2为例,PE 2通过IGP协议(以IS-IS路由为例)将End.DT4 SID所属Locator网段路由100:1::/64发布给P 2PP 1PE 1

Color引流方式为例,CE 2的路由发布到CE 1的过程如下:

(1)     CE 2使用IGPBGP,将本站点的私网路由2.2.2.2/32发布给PE 2

(2)     PE 2CE 2学习到路由信息后,PE 2将公网路由存放到公网路由表中。PE 2为公网路由分配End.DT4 SIDPE 2将携带End.DT4 SIDColor扩展团体属性的IPv4单播路由发布给PE 1

(3)     PE 2收到IPv4单播路由后,将BGP路由按Color引流方式迭代到SRv6-TE Policy,同时将路由加入到公网路由表中,记录End.DT4 SID信息,并将去掉End.DT4 SIDIPv4单播路由发布给CE 2PE 1收到PE 2发布的IS-IS路由后,将其学习到路由表中。

(4)     CE 1收到路由后,将其学习到路由表中。

完成路由发布后,目的地址为2.2.2.2报文从CE 1CE 2的转发过程如下:

(1)     CE 1发送目的地址为2.2.2.2IPv4报文给PE 1

(2)     PE 1收到公网IPv4报文以后,匹配目的IPv4前缀,查找到关联的End.DT4 SID,且该路由下一跳为SRv6-TE PolicyPE 1为报文添加SRH,封装SRv6-TE PolicySID ListEnd.DT4 SID封装IPv6基本头信息。完成后,将报文转发给P 1

(3)     P 1根据目的地址查找IPv6路由表,通过最优IGP路由将报文转发给P

(4)     P收到报文后,执行如下操作:

¡     SRH头中的SL值,如果SL>0,将SL值减1,目的地址更新为SL指示的地址,即SL=1对应的Segment List [1]IPv6地址100:1::10

¡     根据IPv6头中的目的地址查找路由表,将报文转发给P 2

(5)     P 2根据目的地址查找IPv6路由表,通过最优IGP路由将报文转发给PE 2

(6)     PE 2收到报文后,使用报文的IPv6目的地址查找Local SID表,匹配到End SID,将报文SL1IPv6目的地址更新为End.DT4 SID 100:1::1。使用IPv6目的地址100:1::1查找Local SID表,匹配到End.DT4 SID,执行End.DT4 SID对应的转发动作,即解封装报文,并根据End.DT4 SID匹配公网实例,查找公网路由表,将报文发送给CE 2

4.8  SRv6-TE Policy尾节点保护功能

IP L3VPN over SRv6 TE/EVPN L3VPN over SRv6 TE/EVPN VPLS over SRv6 TE/EVPN VPWS over SRv6 TE组网中,公网隧道为SRv6-TE Policy隧道。SRv6-TE Policy的尾节点发生故障,会导致报文转发失败,所以需要为SRv6-TE Policy的尾节点提供保护。

SRv6-TE Policy尾节点保护仅适用于双归属的网络场景,且要求尾节点和对尾节点进行保护的节点上具有相同的转发表项。

55所示,在PE 1PE 3之间部署SRv6-TE PolicyPE 3SRv6-TE Policy的尾节点,为了增强可靠性,PE 4PE 3提供保护。

图55 SRv6-TE Policy尾节点保护示意图

 

4.8.1  End.M SID

SRv6-TE Policy尾节点保护场景中,End.M SID用于保护指定的Locator,即保护指定Locator段内的SRv6 SID。如果远端设备发布的SRv6 SID在指定Locator段的范围内,则使用End.M SID对该SRv6 SID(称为远端SRv6 SID)进行保护。在不同组网环境中,End.M SID对应的转发动作不同:

(1)     IP L3VPN over SRv6 TE/EVPN L3VPN over SRv6 TE尾节点保护场景:End.M SID对应的转发动作为剥掉外层IPv6报文头,获取到内层报文信息。内层报文的目的IPv6地址作为远端SRv6 SID,查询远端SRv6 SIDVPN实例的映射表,找到对应VPN实例,在该VPN实例的路由表中查表转发。

(2)     EVPN VPWS over SRv6 TE尾节点保护场景:End.M SID对应的转发动作为剥掉外层IPv6报文头,获取到内层报文信息。内层报文的目的IPv6地址作为远端SRv6 SID,查询远端SRv6 SID与交叉连接的映射表,找到对应交叉连接,通过该交叉连接关联的AC转发报文。

(3)     EVPN VPLS over SRv6 TE尾节点保护场景:End.M SID对应的转发动作为剥掉外层IPv6报文头,获取到内层报文信息。内层报文的目的IPv6地址作为远端SRv6 SID,查询远端SRv6 SIDVSI的映射表,找到对应VSI,在该VSI内查找MAC地址表转发。

4.8.2  远端SRv6 SID

55所示,PE 4PE 3收到BGP路由后,如果BGP路由中的SRv6 SIDPE 4End.M SID保护的Locator范围内,则该SRv6 SID为远端SRv6 SID,同时在PE 4上生成远端SRv6 SIDVPN实例/交叉连接/VSI的映射表。

PE 3故障时,PE 4PE 3之间邻居中断,会导致PE 4PE 3收到的BGP路由删除,进而导致远端SRv6 SIDVPN实例/交叉连接/VSI的映射表被删除,造成丢包。为了避免上述情况,可以在PE 4上延迟删除远端SRv6 SIDVPN实例/交叉连接/VSI的映射表,在PE 1感知到PE 3故障并计算出新的转发路径前,保证流量通过PE 4转发,避免丢包。

4.8.3  路由发布

IP L3VPN/EVPN L3VPN/EVPN VPWS/EVPN VPLS over SRv6 TE尾节点保护场景的路由发布过程类似,下面以IP L3VPN over SRv6 TE尾节点保护场景为例进行介绍。

55所示,P 1FRR路径的生成过程为:

(1)     PE 4通过IS-ISv6路由向邻居P 1发布End.M SID和被保护的Locator,同时PE 4上生成End.M SIDLocal SID表。

(2)     P 1收到携带End.M SID的路由后,生成到达指定LocatorFRR路由信息,动作为压入End.M SID。该FRR路由对应的转发路径为Mirror FRR路径。

55所示,PE 4上远端SRv6 SIDVPN实例的映射表生成过程为:

(1)     PE 3收到CE 2发布的私网路由之后,封装成VPNv4路由发送给PE 4,路由携带SRv6 SIDRTRD信息。

(2)     PE 4PE 3收到VPNv4路由后,获取到该VPN实例对应的SRv6 SIDPE 4使用该SRv6 SIDEnd.M SID保护的Locator段进行最长匹配。如果匹配上,则该SRv6 SID为远端SRv6 SID,在PE 4上生成远端SRv6 SIDVPN实例的映射表。

4.8.4  报文转发

IP L3VPN/EVPN L3VPN/EVPN VPWS/EVPN VPLS over SRv6 TE尾节点保护场景的报文转发过程类似,下面以IP L3VPN over SRv6 TE尾节点保护场景为例进行介绍。

图56 SRv6-TE Policy尾节点保护转发示意图

 

56所示,正常情况下,流量经过路径CE 1-PE 1-P 1-PE 3-CE 2转发。当尾节点PE 3故障时,报文转发过程为:

(1)     P 1感知到下一跳PE 3不可达,切换为FRR路径。P 1为报文封装IPv6报文头,其目的地址为End.M SID,然后转发给PE 4

(2)     PE 4接收到报文后,查询Local SID表,匹配到End.M SIDPE 4执行End.M SID对应的转发动作,即解封装报文,获取到内层报文信息。内层报文的目的IPv6地址作为远端SRv6 SID,查询远端SRv6 SIDVPN实例的映射表,找到对应VPN实例1。然后,在PE 4上查询VPN实例1的路由表将流量转发给CE 2

SRv6 OAM

SRv6 OAMOperations, Administration, and Maintenance,操作、管理和维护)用于检测SRv6路径的连通性并定位SRv6路径的故障点。SRv6 OAM通过SRv6 SIDSRv6-TE PolicyPing/Tracert来实现。

·     SRv6 SID PingSRv6-TE Policy Ping用于检查网络连接及主机是否可达。

·     SRv6 SID TracertSRv6-TE Policy Tracert在检查网络连接是否可达的同时,还可以分析网络什么地方发生了故障。

5.1  SRv6 OAM协议扩展

5.1.1  OAM O-bit

图57 SRHFlags字段格式

 

57所示,O-bit位于SRHFlags字段,用于指示SRv6节点执行OAM处理。若报文中的O-bit置位,则SRv6网络中每一个Endpoint节点都需要复制该报文,为报文打上时间戳,并将携带时间戳的报文交给控制平面处理。在SRv6 OAM中,如果需要报文传输路径上的每一个Endpoint节点都对源节点发送的OAM检测报文进行应答,则需要源节点在发送的报文中将O-bit置位。

基于O-bit置位,可以实现逐段OAM检测。例如,通过O-bit置位实现逐段SRv6 SID Ping检测和SRv6 SID TracertOverlay检测。

5.1.2  End.OP SID

End.OP SID是一个OAM类型的SRv6 SID,用于SRv6 SIDSRv6-TE PolicyPing/Tracert场景。

如果SRv6报文中的O-bit未置位,则OAM检测的目的节点接收到源节点发送的报文后,可能无法识别出OAM检测报文,不会对其进行应答。End.OP SID用来标识OAM检测报文,以便目的节点识别该报文,并进行处理。基于End.OP SID,可以实现端到端(End-to-End)的OAM检测。例如,通过End.OP SID实现端到端SRv6 SID Ping检测和SRv6 SID Tracert的非Overlay检测。

End.OP SID对应的转发动作为:如果设备收到的报文的目的地址为End.OP SID,则对下一个SRv6 SID进行检查。如果下一个SRv6 SID是本地SRv6 SID,则回复应答报文;否则丢弃该报文。如58所示,以SRv6 SID Ping为例,源节点Device A Ping目的节点Device CDevice A在构造ICMPv6请求报文时在SRH头中插入节点Device CEnd.OP SIDDevice C收到ICMPv6请求报文后,发现报文目的地址是自己的End.OP SID,检查SRv6 SID c是不是自己的本地SRv6 SID。如果是,则向Device A发送ICMPv6应答报文;否则丢弃ICMPv6请求报文。

图58 End.OP SID应用示意图

 

5.2  SRv6 SID Ping

SRv6 SID Ping支持逐段检测和非逐段检测两种检测方式。

5.2.1  逐段检测

逐段检测是指在SRv6转发路径中,检测源节点和所有SRv6节点之间的连通性。SRv6转发路径中所有SRv6节点均会向源节点回复ICMPv6响应报文。

图59 SRv6 SID Ping逐段检测方式示意图

 

59所示,逐段检测工作过程为:

(1)     Device ADecive D发起Ping,依次指定Device BSRv6 SIDDevice DSRv6 SIDDevice A构造ICMPv6请求报文,封装SRH扩展头并进行转发。

(2)     中间节点收到ICMPv6请求报文后:

¡     如果中间节点为SRv6节点(如Device B),且报文的IPv6目的地址为本地的SRv6 SID,同时报文SRHFlags字段中O标记位置位,则向Device A发送ICMPv6应答报文,并且基于SRH转发ICMPv6请求报文。

¡     如果中间节点不是SRv6节点(如Device C),则不向Device A发送ICMPv6应答报文,直接根据目的IPv6地址查找IPv6路由表转发ICMPv6请求报文。

(3)     Device D收到ICMPv6请求报文后,向Device A发送ICMPv6应答报文。

(4)     如果Device A在超时时间内收到目的节点的ICMPv6应答报文,则目的节点可达;否则,目的节点不可达。

5.2.2  端到端检测

端到端检测是指仅检测源节点和目的节点之间的连通性。仅目的节点向源节点回复ICMPv6响应报文。

图60 SRv6 SID Ping端到端检测方式示意图

 

60所示,端到端检测工作过程为:

(1)     Device ADecive C发起Ping,依次指定Device BSRv6 SIDDevice DEnd.OP SIDDevice DSRv6 SIDDevice A构造ICMPv6请求报文,封装SRH扩展头并进行转发。

(2)     中间节点收到ICMPv6请求报文后:

¡     如果中间节点为SRv6节点(如Device B),且报文的IPv6目的地址为本地的SRv6 SID,则基于SRH转发ICMPv6请求报文。

¡     如果中间节点不是SRv6节点(如Device C),则根据目的IPv6地址查找IPv6路由表转发ICMPv6请求报文。

(3)     Device D收到ICMPv6请求报文后,确认SID类型为End.OP SID,并校验下一个SID是否为Device DSRv6 SID

¡     如果下一SIDDevice DSRv6 SID,则校验通过,向Device A发送ICMPv6应答报文。

¡     如果下一个SID不是Device DSRv6 SID,则校验不通过,丢弃ICMPv6请求报文。

(4)     如果Device A在超时时间内收到目的节点的ICMPv6应答报文,则目的节点可达;否则,目的节点不可达。

5.3  SRv6 SID Tracert

SRv6 SID Tracert支持Overlay检测和非Overlay检测两种方式。

5.3.1  Overlay检测

通过Overlay方式查看SRv6转发路径时,仅显示转发路径上所有SRv6节点的信息。

图61 SRv6 SID Tracert Overlay检测方式示意图

 

61所示,Overlay检测工作过程为:

(1)     Device ADecive D发起Tracert,依次指定Device BSRv6 SIDDevice DSRv6 SIDDevice A构造UDP报文(该报文的目的UDP端口号是目的端的任何一个应用程序都不可能使用的端口号),封装SRH扩展头并进行转发。此时IPv6报文首部的Hop limit字段的取值设置为64

(2)     中间节点收到UDP报文后:

¡     如果中间节点为SRv6节点(如Device B),且报文的IPv6目的地址为本地的SRv6 SID,同时报文SRHFlags字段中O标记位置位,则向Device A发送ICMPv6端口不可达报文,并且基于SRH转发UDP报文。

¡     如果中间节点不是SRv6节点(如Device C),则不向Device A发送ICMPv6端口不可达报文,直接根据目的IPv6地址查找IPv6路由表转发UDP报文。

(3)     Device D收到UDP报文后,向Device A发送ICMPv6端口不可达报文。

(4)     如果Device A收到目的节点的ICMPv6端口不可达报文,则目的节点可达,且可以根据Tracert结果得到数据报文从源节点到目的节点所经历的路径;否则,目的节点不可达,且可以根据Tracert结果定位故障节点。

5.3.2  Overlay检测

通过非Overlay方式查看SRv6转发路径时,会显示转发路径上所有节点(包括支持SRv6的节点和不支持SRv6的节点)的信息。

图62 SRv6 SID TracertOverlay检测方式示意图

 

62所示,非Overlay检测工作过程为:

(1)     Device ADecive C发起Tracert,依次指定Device BSRv6 SIDDevice CEnd.OP SIDDevice CSRv6 SIDDevice A构造UDP报文(该报文的目的UDP端口号是目的端的任何一个应用程序都不可能使用的端口号),封装SRH扩展头并进行转发。此时IPv6报文首部的Hop limit字段的取值设置为1

(2)     中间节点收到UDP报文后,如果Hop limit字段的值变成0Device A发送ICMPv6超时报文。

(3)     Device A收到中间节点发送的ICMPv6超时报文后,将Hop limit字段的取值加1继续发送UDP报文。

(4)     中间节点收到UDP报文后,如果Hop limit字段的值未变成0,则向下一节点转发UDP报文。

¡     如果中间节点为SRv6节点(如Device B),且报文的IPv6目的地址为本地的SRv6 SID,则基于SRH转发UDP报文。

¡     如果中间节点不是SRv6节点(如Device C),则根据目的IPv6地址查找IPv6路由表转发UDP报文。

(5)     Device D收到UDP报文后,Hop limit字段的值变成0,确认SID类型为End.OP SID,并校验下一个SID是否为Device DSRv6 SID

¡     如果下一个SIDDevice DSRv6 SID,则校验通过,向Device A发送ICMPv6端口不可达报文。

¡     如果下一个SID不是Device DSRv6 SID,则校验不通过,并丢弃UDP报文。

(6)     如果Device A收到目的节点的ICMPv6端口不可达报文,则目的节点可达,且可以根据Tracert结果得到数据报文从源节点到目的节点所经历的路径;否则,目的节点不可达,且可以根据Tracert结果定位故障节点。

5.4  SRv6-TE Policy Ping

图63 SRv6-TE Policy Ping示意图

 

63所示,SRv6-TE Policy Ping工作过程为:

(1)     Device ADecive D发起Ping,构造ICMPv6请求报文,SRv6-TE PolicySID列表和End.OP SID一起封装SRH中并进行转发。

(2)     中间节点收到ICMPv6请求报文后:

¡     如果中间节点为SRv6节点(如Device B),且报文的IPv6目的地址为本地的SRv6 SID,同时报文SRHFlags字段中O标记位置位,则向Device A发送ICMPv6应答报文,并且基于SRHDevice C转发ICMPv6请求报文。

¡     如果中间节点不是SRv6节点(如Device C),则不向Device A发送ICMPv6应答报文,直接根据目的IPv6地址查找IPv6路由表转发ICMPv6请求报文。

(3)     Device D收到ICMPv6请求报文后,确认SID类型为End.OP SID,并校验下一个SID是否为Device DSRv6 SID

¡     如果下一个SIDDevice DSRv6 SID,则校验通过,向Device A发送ICMPv6应答报文。

¡     如果下一个SID不是Device DSRv6 SID,则校验不通过,丢弃ICMPv6请求报文。

(4)     如果Device A在超时时间内收到目的节点的ICMPv6应答报文,则目的节点可达;否则,目的节点不可达。

5.5  SRv6-TE Policy Tracert

图64 SRv6-TE Policy Tracert示意图

 

64所示,SRv6-TE Policy Tracert工作过程为:

(1)     Device ADecive C发起Tracert,构造UDP报文(该报文的目的UDP端口号是目的端的任何一个应用程序都不可能使用的端口号),将SRv6-TE PolicySID列表和End.OP SID一起封装到SRH中并进行转发。此时IPv6报文首部的Hop limit字段的取值设置为1

(2)     中间节点收到UDP报文后,如果Hop limit字段的值变成0Device A发送ICMPv6超时报文。

(3)     Device A收到Device B发送的ICMPv6超时报文后,将Hop limit字段的取值加1继续发送UDP报文。

(4)     中间节点收到UDP报文后,如果Hop limit字段的值未变成0,则向下一节点转发UDP报文。

¡     如果中间节点为SRv6节点(如Device B),且报文的IPv6目的地址为本地的SRv6 SID,则基于SRH转发UDP报文。

¡     如果中间节点不是SRv6节点(如Device C),则根据目的IPv6地址查找IPv6路由表转发UDP报文。

(5)     Device D收到UDP报文后,Hop limit字段的值变成0,确认SID类型为End.OP SID,并校验下一个SID是否为Device DSRv6 SID

¡     如果下一个SIDDevice DSRv6 SID,则校验通过,向Device A发送ICMPv6端口不可达报文。

¡     如果下一个SID不是Device DSRv6 SID,则校验不通过,并丢弃UDP报文。

(6)     如果Device A收到目的节点的ICMPv6端口不可达报文,则目的节点可达,且可以根据Tracert结果得到数据报文从源节点到目的节点所经历的路径;否则,目的节点不可达,且可以根据Tracert结果定位故障节点。

BGP LS for SRv6

6.1  BGP LS for SRv6应用场景

65所示,在SRv6网络中,SRv6节点通常会通过BGP LS路由,将链路状态、SIDSRv6-TE Policy的候选路径等信息上报给控制器,控制器根据上报的信息计算出最优路径,并将路径下发给源节点,以便指导报文沿着SRv6路径转发。

发布BGP LS路由的SRv6节点,称为BGP LS发言者。

图65 BGP LS for SRv6典型组网

 

6.2  BGP-LS for SRv6的路由扩展

6.2.1  路由扩展简介

为了支持SRv6BGP-LS新定义了一个SRv6 SID NLRI,用于通告和收集SRv6 SID的网络层可达信息。SRv6 SID NLRI的报文格式如66所示。

图66 SRv6 SID NLRI

 

SRv6 SID NLRI包含字段如18所示。

表18 SRv6 SID NLRI的字段描述表

字段名称

长度

含义

Protocol-ID

8比特

协议IDBGP-LS通过指定协议学习节点的SRv6 SID 信息:

·     1IS-IS Level 1

·     2IS-IS Level 2

·     4:直连路由

·     5:静态路由

·     6OSPFv3

·     7BGP

Identifier

64比特

节点标识符

Local Node Descriptors

长度可变

本地节点描述

SRv6 SID Descriptors

长度可变

SRv6 SID相关信息,必须包含SRv6 SID Information TLV

 

BGP-LS还在已有Node NLRILink NLRIPrefix NLRI中定义了新的子TLV,以通告SRv6相关信息。

BGP-LS针对SRv6的扩展具体如19所示。

表19 BGP-LS针对SRv6的扩展

TLV名称

作用

携带位置

SRv6 Capabilities TLV

通告SRv6能力

BGP-LS Node NLRI

SRv6 Node MSD Types

通告节点的SID列表中能够包括的SID的最大数目MSD

非新增TLV,仅在Node MSD TLV基础上新增类型

BGP-LS Node NLRI

SRv6 End.X SID TLV

通告End.X SID

BGP-EPE组网中,该TLV还可以用于通告Peer-Adj-SID,也就是BGP EPE PeerEnd.X SID

BGP-LS Link NLRI

SRv6 LAN End.X SID TLV

通告广播网络邻接类型的End.X SID

BGP-LS Link NLRI

SRv6 Link MSD Types

通告链路的SID列表中能够包括的SID的最大数目MSD

非新增TLV,仅在Link MSD TLV基础上新增类型

BGP-LS Link NLRI

SRv6 Locator TLV

通告Locator信息

BGP-LS Prefix NLRI

SRv6 SID Information TLV

通告SRv6 SID

BGP-LS SRv6 SID NLRI

SRv6 Endpoint Behavior TLV

通告SRv6 SID类型

BGP-LS SRv6 SID NLRI

SRv6 BGP Peer Node SID TLV

通告BGP-EPE组网中的BGP Peer Node SIDBGP Peer Set SID,该TLV必须与BGP Peer NodePeer Set功能关联的SRv6 End.X SID一起使用

BGP-LS SRv6 SID NLRI

SRv6 SID Stucture TLV

通告SRv6 SID格式,即描述SID各部分的长度

BGP-LS SRv6 SID NLRI可选TLVSRv6 End.XIS-IS SRv6 LAN End.XOSPFv3 SRv6 LAN End.X TLVssub-TLV

 

6.2.2  SRv6 Capabilities TLV

SRv6 Capabilities TLV用于通告节点支持SRv6功能,即本节点能够处理SRH

SRv6 Capabilities TLV的报文格式如67所示。

图67 SRv6 Capabilities TLV

 

SRv6 Capabilities TLV包含字段如20所示。

表20 SRv6 Capabilities TLV的字段描述表

字段名称

长度

含义

Type

16比特

类型,取值为1038

Length

16比特

长度

Flags

16比特

标志位:

·     O:用于OAM

Reserved

16比特

预留值,取值为0

 

6.2.3  SRv6 Node MSD Types

SRv6 Node MSD Types用于通告节点的SID列表中能够包括的SID的最大数目。

SRv6 Node MSD Types的报文格式如68所示。

图68 SRv6 Node MSD Types

 

SRv6 Node MSD Types包含字段如21所示。

表21 SRv6 Node MSD Types的字段描述表

字段名称

长度

含义

Type

8比特

类型,取值为23

Length

8比特

长度

MSD-Type

8比特

MSD类型:

·     41SRH Max SLSRHSegment Left字段的最大值

·     42SRH Max End Pop,支持PSPUSPEndpoint节点能够弹出的最大SID个数

·     45SRH Max End DEndpoint节点能够解封装的SID的最大个数

MSD Value

8比特

MSD取值

 

6.2.4  SRv6 End.X SID TLV

SRv6 End.X SID TLV用于发布End.X SID

SRv6 End.X SID TLV的报文格式如69所示。

图69 SRv6 End.X SID TLV

 

SRv6 End.X SID TLV包含字段如22所示。

表22 SRv6 End.X SID TLV的字段描述表

字段名称

长度

含义

Type

16比特

类型,取值为1106

Length

16比特

长度

Endpoint Behavior

16比特

SRv6 SID类型:

·     End SID

·     End.X SID

·     End.T SID

·     End.DX6 SID

·     End.DX4 SID

·     End.DT6 SID

·     End.DT4 SID

·     End.DX2 SID

·     End.DX2V SID

·     End.DT2U SID

·     End.DT2M SID

Flags

8比特

标志位:

·     BBackup):备份标志,用于TI-LFA场景

·     SSet):组标志。如果置位,表示End.X SID是一组邻接

·     PPersistent):永久分配标志。如果置位,表示End.X SID被永久分配

Algorithm

8比特

算法

Weight

8比特

权重,暂不支持

Reserved

16比特

预留值,取值为0

SID

16字节

发布的SRv6 SID

Sub-TLVs (variable)

可变长度

包含的Sub-TLV

 

6.2.5  SRv6 LAN End.X SID TLV

SRv6 LAN End.X SID TLV用于发布一个广播邻接类型的End.X SID

SRv6 LAN End.X SID TLV的报文格式如70所示。

图70 SRv6 LAN End.X SID TLV

 

SRv6 LAN End.X SID TLV包含字段如23所示。

表23 SRv6 LAN End.X SID TLV的字段描述表

字段名称

长度

含义

Type

16比特

类型:

·     1107:表示发布IS-IS的链路状态信息,在该TLV中携带IS-ISSystem ID

·     1108:表示发布OSPFv3的链路状态信息,在该TLV中携带OSPFv3 Router-ID

Length

16比特

长度

Endpoint Behavior

16比特

SRv6 SID类型:

·     End SID

·     End.X SID

·     End.T SID

·     End.DX6 SID

·     End.DX4 SID

·     End.DT6 SID

·     End.DT4 SID

·     End.DX2 SID

·     End.DX2V SID

·     End.DT2U SID

·     End.DT2M SID

Flags

8比特

标志位:

·     BBackup):备份标志,用于TI-LFA场景

·     SSet):组标志。如果置位,表示End.X SID是一组邻接

·     PPersistent):永久分配标志。如果置位,表示End.X SID被永久分配

Algorithm

8比特

算法

Weight

8比特

权重,暂不支持

Reserved

16比特

预留值,取值为0

ISIS System-ID (6 octets) or OSPFv3 Router-ID (4 octets) of the neighbor

48比特或者32比特

IS-ISSystem IDOSPFv3 Router-ID

SID

16字节

发布的SRv6 SID

Sub-TLVs (variable)

可变长度

包含的Sub-TLV

 

6.2.6  SRv6 Link MSD Types

SRv6 Link MSD Types用于通告链路的SID列表中能够包括的SID的最大数目,其格式同SRv6 Node MSD Types

6.2.7  SRv6 Locator TLV

SRv6 Locator TLV用于收集节点的Locator信息。

SRv6 Locator TLV的报文格式如71所示。

图71 SRv6 Locator TLV

 

SRv6 Locator TLV包含字段如24所示。

表24 SRv6 Locator TLV的字段描述表

字段名称

长度

含义

Type

16比特

类型,取值为1162

Length

16比特

长度

Flags

8比特

标志位:

·     D标志位:表示Locator网段路由不能渗透到IGP

·     A标志位:表示该LocatorAnycast Locator,即一组SRv6节点具有相同的Locator

Algorithm

8比特

算法

Reserved

16比特

预留值,取值为0

Metric

32比特

开销

Sub-TLVs (variable)

可变长度

包含的Sub-TLV,例如SRv6 End SID sub-TLV

 

6.2.8  SRv6 SID Information TLV

SRv6 SID Information TLVSRv6 SID NLRI的一个子TLV,用于通告SRv6 SID相关信息。

SRv6 SID Information TLV的报文格式如72所示。

图72 SRv6 SID Information TLV

 

SRv6 SID Information TLV包含字段如25所示。

表25 SRv6 SID Information TLV的字段描述表

字段名称

长度

含义

Type

16比特

类型,取值为518

Length

16比特

长度

SID

16字节

发布的SRv6 SID

 

6.2.9  SRv6 Endpoint Behavior TLV

SRv6 Endpoint Behavior TLV是一个必须包含于SRv6 SID NLRI关联的BGP-LS属性中的强制TLV

SRv6 Endpoint Behavior TLV的报文格式如73所示。

图73 SRv6 Endpoint Behavior TLV

 

SRv6 Endpoint Behavior TLV包含字段如26所示。

表26 SRv6 Endpoint Behavior TLV的字段描述表

字段名称

长度

含义

Type

16比特

类型,取值为1250

Length

16比特

长度

Endpoint Behavior

16比特

SRv6 SID类型:

·     End SID

·     End.X SID

·     End.T SID

·     End.DX6 SID

·     End.DX4 SID

·     End.DT6 SID

·     End.DT4 SID

·     End.DX2 SID

·     End.DX2V SID

·     End.DT2U SID

·     End.DT2M SID

Flags

8比特

标志位:

·     BBackup):备份标志,用于TI-LFA

·     SSet):组标志。如果置位,表示End.X SID是一组邻接

·     PPersistent):永久分配标志。如果置位,表示End.X SID被永久分配

Algorithm

8比特

算法

 

6.2.10  SRv6 BGP Peer Node SID TLV

SRv6 BGP Peer Node SID TLV用于在BGP-EPE组网中的BGP Peer Node SIDBGP Peer Set SID,该TLV必须与BGP Peer NodePeer Set功能关联的SRv6 End.X SID一起使用。

SRv6 BGP Peer Node SID TLV的报文格式如74所示。

图74 SRv6 BGP Peer Node SID TLV

 

SRv6 BGP Peer Node SID TLV包含字段如27所示。

表27 SRv6 BGP Peer Node SID TLV的字段描述表

字段名称

长度

含义

Type

16比特

类型,取值为1251

Length

16比特

长度

Flags

8比特

标志位:

·     BBackup):备份标志,用于TI-LFA

·     SSet):组标志。如果置位,表示End.X SID是一组邻接

·     PPersistent):永久分配标志。如果置位,表示End.X SID被永久分配

Weight

8

SID的权重值,暂不支持

Reserved

16比特

预留值,取值为0

Peer AS Number

32比特

BGP邻居的AS

Peer BGP Identifier

32比特

BGP邻居的Router ID

 

6.2.11  SRv6 SID Structure TLV

SRv6 SID Structure TLV用于发布SRv6 SID的格式,即SRv6 SID组成中各个字段的长度。

SRv6 SID Structure TLV的报文格式如75所示。

图75 SRv6 SID Structure TLV

 

SRv6 SID Structure TLV包含字段如28所示。

表28 SRv6 SID Structure TLV的字段描述表

字段名称

长度

含义

Type

8比特

类型

Length

8比特

长度

LB Length

8比特

LocatorBlock长度,即公共前缀长度,用于SID压缩

LN Length

8比特

LocatorNode ID长度,即节点标识,用于SID压缩

Fun.Length

8比特

SID中的Function字段长度

Arg.Length

8比特

SID中的Arguments字段长度

 

参考文献

·     draft-ietf-idr-bgpls-srv6-ext-05

·     draft-ietf-bess-srv6-services-02

·     draft-ietf-spring-srv6-network-programming-16

·     draft-ietf-rtgwg-segment-routing-ti-lfa-05

·     draft-ietf-spring-segment-routing-policy-09

·     draft-ietf-6man-spring-srv6-oam-05

·     draft-ietf-lsr-isis-srv6-extensions-08

·     RFC 8667IS-IS Extensions for Segment Routing

·     RFC 8754IPv6 Segment Routing Header (SRH)

联系我们