一、SRv6技术简介

SRv6全称为Segment Routing IPv6,是当下最为热门的Segment Routing和IPv6两种网络技术的结合体,兼有前者的灵活选路能力和后者的亲和力,以及SRv6特有的设备级可编程能力,使其成为IPv6网络时代最有前景的组网技术。

IPv6大家都很熟悉,是取代IPv4的下一代网络协议,那Segment究竟是何物?可以把SRv6网络想象成一台分布式“计算机”,Segment列表好比程序,Segment就是指令,兼有寻址和行为能力。我们可以将用户意图翻译成Segment列表,并附在数据报文中,输入SRv6网络“计算机”,然后依次在不同的节点上执行Segment指令,比如切换到下一个Segment、压入或弹出Segment列表、关联L2/L3 VPN等,从而实现基本选路、VPN、OAM、Service Chaining、APN6(App-aware IPv6 Networking)等不同层面的功能。

在SDN组网中,由控制器负责编排和下发Segment列表,实现智能选路的目的。随着SRv6技术和协议的完善,网络设备编程能力的提高,有望通过SDN+SRv6定义一切网络功能,引领我们迈入智能网络世界。

二、SRv6编程框架

(一)SRv6 SID

SRv6中通过SID(Segment ID)标识每个Segment,SID是一种特殊的IPv6地址,既有普通IPv6地址的路由能力,又有SRv6特有的行为能力。

每个SRv6节点都会维护一张SID表(实际上是路由表的一部分),由许多128bit的SID组成,SID标准格式为Locator+Function(Args),如下所示:

Locator,标识SRv6节点的定位器,每个节点起码有一个全局唯一的Locator值,作为本地SID的共享前缀,其他节点通过Locator路由访问本节点SID。

Function(Args),标识SRv6节点内不同的行为,比如END、END.X等,少数行为还需要传递Args参数。

SRv6节点收到IPv6报文之后,会根据IPv6 DA(Destination Adddress)查找全局路由表,如果匹配到某个SID,则交由SID定义的行为或Behavior处理,否则执行常规的路由转发动作。

(二)SRv6 Policy

SRv6 Policy是一种将用户意图(SLA、服务链)翻译成网络策略的机制,内核为Segment列表。网络节点和终端设备都可以按需发起或者由控制器下发SRv6 Policy,中间节点无需维护任何状态,因此SRv6 Policy适用于任意规模的网络互联和终端通讯场景。

SRv6 Policy由多个Candidate Path(简称CP)构成,其中有一个为Active CP,决定整个SRv6 Policy的行为和状态,基本格式如下:

Java

1

2

3

4

5

6

<headend, color, endpoint>

Candidate-path CP1 <protocol-origin, originator, discriminator>

B-SID

Preference 200

Weight W1, SID-List1 <SID11...SID1i>

Weight W2, SID-List2 <SID21...SID2j>

SRv6 Policy由<Headend, Color, Endpoint>三元组唯一标识,Headend和Endpoint对应头尾节点的IPv6地址,通过Color参数区分两者之间的不同SRv6 Policy。Color是概括SRv6 Policy服务能力的标签,比如SLA级别(金银铜牌等),用户通过设置自己的Color,就能自动关联到相同Color的SRv6 Policy上,实现用户意图到底层网络的映射。

Candidate Path由<protocol-origin, originator, discriminator>三元组唯一标识,protocol-origin为CP的发起协议,比如BGP SR Policy或手工配置等,originator为发起者的标识,格式为 ASN: node-address,discriminator用于区分protocol-origin +originator下发的不同CP。CP携带Preference、B-SID、Segment-List等属性,含义如下:

  • Preference,标识CP的优先级,用于抉择同一SRv6 Policy下的不同CP,优先级最高的成为Active CP;
  • B-SID,标识CP或SRv6 Policy(Active CP)行为的SID,其他节点通过B-SID引用SRv6 Policy的功能;
  • Segment-List,标识CP的Segment列表,由Weight和多个顺序排列的Segment子属性组成,一个CP可以有多个Segment-List,根据Weight分担流量。

在SRv6 Policy之前,我们主要用TE Tunnel实现流量工程,那么为何SRv6中会主推SRv6 Policy呢?原因如下:

  • 组网能力,TE Tunnel本质上是一种重量级的传统接口,会消耗设备的接口资源,无法支持太大规模的组网;SRv6 Policy本质上是一种轻量级的对象,数据结构非常简单,不占用设备的接口资源,能够支持超大规模的组网;
  • 引流能力,TE Tunnel采用粗放的DSCP引流方式,难以直观准确的反映用户意图;SRv6 Policy采用精细的Color引流方式,能够如实反映和满足用户诉求;
  • 开放能力,TE Tunnel只能为节点自己所用,而SRv6 Policy通过对外暴露B-SID,可以在隐藏内部实现的前提下,为其他节点或机构提供选路、服务链等能力;
  • 业务能力,TE Tunnel本身没有直接的业务描述能力,需要组合应用多个TE Tunnel和其他的技术才能满足业务需求;SRv6 Policy是完全自洽和业务特征相关的,本身集成了多路径、SLA标签、行为处理等能力,单个SRv6 Policy就可以满足业务的网络需求。

由此可见,在SRv6 Policy各方面都完胜TE Tunnel,就是一种为Segment Routing量身定制的网络技术,可以说SRv6的强大能力大部分是通过SRv6 Policy输出的。

(三)SRH

SRH(Source Routing Head)为SID列表的载体,基于IPv6路由扩展头(协议号43),新增路由类型4,是SRv6体系中最为重要的数据封装标准,具体格式如下:

Segment[n-1]...Segment[0]组成了完整的Segment列表或路径,SL(Segment Left)指示当前活跃的Segment。头节点SL=n-1,IPv6 DA=Segment[n-1],中间节点收到IPv6报文,如果IPv6 DA为节点本地SID,则进入SRH处理流程。暂不考虑具体SID,SRH基本行为如下:

Java

1

2

3

4

5

6

7

8

9

10

S01.  IF SL==0{

S02.    继续处理SRH指示的下一个扩展头

}

S03.  ELSE{

S04.    IF 本地配置要求TLV处理{

S05.      处理TLV

}

S06.    SL=SL-1,Segment[SL]复制到IPv6 DA

S07.    IPv6路由转发

}

标准SRH封装中,每个SID占用16bytes,对于长Segment列表的应用,需要考虑封装开销对MTU和传输效率的影响。业界也在研究可行的SRH压缩方法,比如G-SRH(Generalized SRH)、uSID(Micro SID)等。
SRH还能携带可选的TLV参数,以扩展支持NSH/Service Chaining、OAM、VTN(Virtual Transport Network)、APN6等高级特性。

(四)SRv6 Behavior

SRv6网络编程标准中,SRv6节点(Endpoint)通过本地定义的行为(Behavior)处理SRv6报文。SRv6定义了多种Endpoint Behavior,每个节点需要实例化它们和分配SID,并通过路由协议公布,以便外部了解节点所能提供的Behavior。

常用的Endpoint Behavior有END、END.X、END.DT4、END.DT6等,实现Underlay选路、Overlay业务承载等功能,具体如下:

  • END用于标识SRv6节点,具体行为还跟附加的USP(Ultimate Segment Pop)、PSP(Penultimate Segment Pop)、USD(Ultimate Segment Decapsulation)等Flavor有关系,分别代表最后一跳弹出SRH、倒数第二跳弹出SRH、最后一跳解封装,以满足不同的路径编排需求。假设收到一个IPv6报文,IPv6 DA为本节点END SID with PSP,处理流程如下:

S01. IF SL==0{ #无SRH等同于SL为0
S02. 向IPv6 SA(Source Address)发送ICMP Parameter Problem,结束
}
S03. SL=SL-1,Segment[SL]复制到IPv6 DA
S04. IF SL==0{
S05. 将前一个报文头中的NH更新为SRH中的NH,弹出SRH扩展头
}
S06. IPv6路由转发

  • END.X用于标识SRv6邻居,具体行为也跟Flavor有关。假设收到一个IPv6报文,IPv6 DA为本节点END.X SID with PSP,处理流程与END相似,区别在于S06:

S06. 转发给END.X指定的邻居

  • END.DT4用于标识SRv6节点的IPv4 VPN路由表。假设收到一个IPv6报文,IPv6 DA为本节点END.DT4 SID,处理流程如下:

S01. IF SL!=0{
S02. 向IPv6 SA发送ICMP Parameter Problem,结束
}
S03. 剥离外层IPv6头以及所有扩展头
S04. 根据END.DT4 SID关联的路由表转发内层IPv4报文

  • END.DT6用于标识SRv6节点的IPv6 VPN路由表。假设收到一个IPv6报文,IPv6 DA为本节点END.DT6 SID,处理流程与END.DT4相似,区别在于S04:

S04. 根据END.DT6 SID关联的路由表转发内层IPv6报文

  • END.B6.Encaps属于一种SRv6 Policy B-SID实例,为原始SRv6报文添加外层封装。假设收到一个IPv6报文,IPv6 DA为本节点END.B6.Encaps SID,处理流程如下:

S01. IF SL==0{
S02. 向IPv6 SA发送ICMP Parameter Problem,结束
}
S03. SL=SL-1
S04. 添加外层IPv6报文头+SRH B,B对应SRv6 Policy的Segment List
S05. 外层IPv6 SA设置为A,IPv6 DA设置为B的第一个Segment,
S06. IPv6路由转发

  • END.B6.Insert属于另一种SRv6 Policy B-SID实例,为原始SRv6报文插入SRH。假设收到一个IPv6报文,IPv6 DA为本节点END.B6.Insert SID,处理流程如下:

S01. IF SL==0{
S02. 向IPv6 SA发送ICMP Parameter Problem,结束
}
S03. 插入SRH B,B对应SRv6 Policy的Segment List
S04. IPv6 DA更新为B的第一个Segment
S05. IPv6路由转发

每个Behavior都有对应的16bit Code Point,比如End with PSP为0x0002、End.DT4为0x0013等,路由协议会同时携带SID和Endpoint Behavior Code Point信息,这样就能判断出SID的具体含义。

前面提及END.B6.Encaps、END.B6.Insert都属于SRv6 Policy B-SID实例,其他节点通过B-SID引用,具体行为由SRv6 Policy实现,两者关系如下:

同时Headend也可以直接调用SRv6 Policy封装报文,主要Behavior有H.Encaps,H.Insert等,可用于L2/L3 VPN、FRR(Fast Reroute)、端到端IPv6通讯等场景,具体如下:

  • H.Encaps用于为VPN或者原始IP报文添加外层IPv6+SRH隧道封装。假设某VPN IPv6报文P下一跳为END.DT6 VPN SID X,SRv6 Policy为(S3,S2,S1),处理流程如下:

S01. 为IPv6报文P添加一个外层IPv6报文头+SRH(X,S3,S2,S1;SL=3)
S02. 外层IPv6 SA=T,IPv6 DA=S1,Next-Header=IPv6
S03. IPv6路由转发

  • H.Insert用于为IPv6报文添加SRH扩展头。假设报文P的IPv6 DA为B2,SRv6 Policy为(S3,S2,S1),处理流程如下:

S01. 为IPv6报文P插入SRH(B2,S3,S2,S1;SL=3)
S02. IPv6 DA设置为S1
S03. IPv6路由转发

三、SRv6技术架构

前面介绍了SRv6的基本概念,知道了SRv6 Policy是满足用户意图的关键途径。接下来就面临一个现实问题,如何将用户意图自动转换成SRv6 Policy,并下发给SRv6节点,这需要一个完整的技术架构和配套的网络协议集,典型的SRv6组网结构如下:

基于标准的控制器、转发器两层SDN技术架构,两者之间通过南向协议交互,具体如下:

  • 控制器,相当于中央处理器,掌握全网拓扑、实时流量、SRv6 SID等信息,负责将用户意图翻译成SRv6 Policy,并通过南向协议下发给转发器;
  • 转发器,负责路由计算和SRv6 Policy封装转发,一方面要运行ISIS计算Underlay路由及SID,运行BGP EVPN计算Overlay路由及SID,并将Overlay路由迭代到合适的SRv6 Policy上,另一方面还要向控制器汇报Underlay网络和SRv6 Policy状态;
  • 南向协议,控制器和转发器之间运行多种南向协议,最重要的是BGP-LS和BGP SR Policy,前者负责将转发器的链路状态转换成BGP-LS消息,以及SRv6 Policy的状态上报给控制器,后者将控制器编排好的SRv6 Policy下发给转发器。

通过以上技术的整合,SRv6技术架构可以实现用户意图驱动、智能流量调度、全方位可视化等一系列功能。

四、SRv6转发器技术

(一)ISIS

ISIS属于链路状态IGP路由协议,采用TLV携带链路状态信息,可以在不动协议主体的情况下,通过增加部分TLV类型就可以支持IPv6、SRv6等新协议特性。

为了支持SRv6协议,ISIS需要增加SRv6 Capabilities、SRv6 Locator、SRv6 End SID、SRv6 Adjacency SID等不同Level的TLV,节点所有SID共享SRv6 Locator TLV中定义的前缀。

Locator前缀同时通过MT Reachable IPv6 Prefixes TLV发布,保证非SRv6节点也能计算出前缀路由,通过该路由就能满足SID转发需求。但节点在计算FRR或防微环,以及控制器编排路径时,需要计算使用END、END.X等具体SID。

(二)BGP EVPN

BGP EVPN(Ethernet VPN)是一种MP-BGP协议实例,AFI/SAFI为25/70,支持丰富的NLRI(Network Layer Reachable Information)路由类型,比如交换MAC或IRB的Type2路由,交换Prefix网段的Type5路由,兼具L2/L3 VPN、IPv4/v6路由交换能力,能适配VxLAN SDN、骨干网SDN、分支SDWAN等不同的组网场景。

以骨干网SRv6 VPN组网为例,BGP EVPN需要携带NLRI+BGP Prefix-SID+Color等SRv6相关信息。Type5 NLRI用于交换用户L3VPN路由,取代VPNv4/v6地址簇的作用,BGP Prefix-SID通过SRv6 L3 Service TLV,携带END.DT4/6 VPN SID,Color属性用于关联EVPN路由和SRv6 Policy。

(三)SRv6 FRR

路由协议收敛时间一般为秒级,无法满足某些苛刻应用的要求。于是出现了各种IP FRR技术,基本思路都是为受保护的路由提供备用路径,在新路由生效前,通过备用路径转发流量,将中断时间降到毫秒级。IP FRR技术对于高可靠的SRv6 Policy组网尤为重要,虽然也可以依靠SRv6 Policy自身检测故障(BFD或Segment有效性)和切换CP,但扩展性和灵活性都不及IP FRR。

IP FRR技术发展经历了LFA(Loop-Free Alternate)、RLFA(Remote LFA)、TI-LFA(Topology-Independent LFA)三个时代,直到SRv6出现后,SRv6+TI-LFA才简单有效的解决了所有IP FRR问题。

LFA是最基础的IP FRR技术,目的是寻找一个直连的备用节点,该节点到目标节点不会经过故障链路或节点。比如从源节点S到目标节点D,主用下一跳为E,组网和链路COST如下:

LFA具体算法如下:

  • S计算自己以及邻居N(包括E)到所有节点的距离D_opt,如果N满足D_opt(N, D) < D_opt(N, S) +D_opt(S, D),就是符合链路保护条件的备用下一跳节点;
  • 如果N还满足D_opt(N, D) < D_opt(N, E) + D_opt(E, D),同时也是符合节点保护条件的备用下一跳节点;
  • 受组网结构和COST数值的限制,可能无法计算出合适的备用下一跳,导致LFA失败。

RLFA是最经典的IP FRR技术,目的是寻找一个非直连的中间备用节点,弥补LFA技术的不足,从源节点到备用节点,以及从备用节点到目标节点都不会经过故障链路或节点,组网和链路COST如下:

RLFA具体算法如下,简单起见未考虑节点故障情形:

  • 计算扩展P空间,要求从S正常链路直连的邻居N到P的最短路径不经过故障链路。S会计算自己以及邻居N(包括E)到节点P的距离D_opt(S, P)和D_opt(N, P),输出满足D_opt(N, P) < D_opt(N, S) + D_opt(S, P)的P空间,当然也包括S和N。上图中,P空间为<S, N, A, B>;
  • 计算Q空间,要求从Q到D的最短路径不经过故障链路。S会计算自己到节点Q的反向距离D_opt(Q, S),输出满足D_opt(Q, D) < D_opt(Q, S) + D_opt(S, D)的Q空间,当然也包括D。上图中,Q空间为< A, B, E, D>;
  • 计算PQ空间,取P空间和Q空间的交集,优选一个离S最近的PQ节点,如果两者非直连,需要建立S到PQ的隧道,作为备用路由出接口封装,下一跳为直连邻居N。上图中,PQ空间为<A, B>,优选A节点。

TI-LFA在RLFA算法的基础上,增加了收敛后SPF路径的约束,并通过PQ Repair-List解决PQ无交集的问题,组网和链路COST如下:

SRv6 TI-LFA具体算法如下:

  • S计算刨除故障链路的收敛后SPF路径,根据RLFA计算P空间和Q空间,输出在收敛后SPF路径上的P空间和Q空间;上图中,分别为<S, N, A>和< B, D>;
  • 如果PQ空间有交集,则选择距离S最远的PQ节点,S节点H.Encaps原始报文,外层IPv6 DA为PQ END with USD SID;
  • 如果PQ空间无交集,则选择距离S最远的P节点,以及最近的Q节点,S节点H.Encaps原始报文,外层IPv6 DA为PQ互联END.X with USD SID,如果PQ不相邻则需要插入Segment列表。

对于SRv6 Policy,IPv6 DA在不断的切换,为防止IPv6 DA对应节点的故障导致IP FRR失败,需要在IP FRR基础上加入中间和尾端节点故障处理机制,具体如下:

大意就是,SRv6 Policy中间节点故障采用Bypass跳过,极端情况下退化成SRv6 BE,尾端节点故障采用Anycast或Mirror SID规避。

IP FRR主要解决路由收敛之前转发间断问题,但各SRv6节点路由收敛速度不一会导致微环路产生,其实这是所有IP路由协议的共性问题。在SRv6防微环组网中,节点路由收敛分为两个阶段,第一阶段对于那些由于故障发生或恢复需要更新的路由表项,以严格或松散Segment列表作为临时转发表项,防止形成微环路,第二阶段保证所有节点完成路由收敛的前提下,切换到常规路由表项。

综合IP FRR、中间和尾端节点保护、防微环等技术,就能构建出真正高可靠的TI-LFA SRv6网络。

五、SRv6南向协议

(一)BGP-LS

BGP-LS(BGP Link State)也是一种MP-BGP协议实例,AFI/SAFI为16388/71。BGP-LS将底层网络链路状态信息(ISIS)抽象成Node、Link、Prefix三类NLRI上报给控制器,分别描述节点能力、邻居关系、IP前缀信息,控制器据此还原网络拓扑和计算路径。同时为了支持跨域组网,BGP-LS还扩展了BGP EPE(Egress Peer Engineering)功能,将EBGP邻居关系链路状态化,从而在控制器层面打通不同AS的链路状态数据。

BGP-LS主要通过NLRI+Attribute组合携带链路状态数据,为了支持SRv6特性,需要增加Node NLRI的SRv6 Capabilities、Link NLRI的SRv6 End.X SID、Prefix NLRI的SRv6 Locator等TLV,另外还要新增SRv6 SID NLRI类型,附属SRv6 End SID、SRv6 End.X SID、SRv6 BGP Peer Node SID等TLV。

除了翻译拓扑功能,BGP-LS还可以上报SRv6 Policy状态和B-SID,以取代PCEP协议,避免控制器和转发器异构引发的兼容性问题。

(二)BGP SR Policy

在SDN组网中,控制器可以通过BGP SR Policy向转发器下发SRv6 Policy。BGP SR Policy同样基于MP-BGP协议,AFI/SAFI=2/73,SRv6 Policy的信息主要由NLRI和Tunnel_Encapsulation属性承载。

NLRI用于携带SRv6 Policy和Candidate Path信息,格式为<Length, Distinguisher, Color, Endpoint>,对应关系如下:

  • SRv6 Policy,<Headend, Color, Endpoint>,Headend就是SRv6 Policy的接收者,加上NLRI的Color+Endpoint,形成完整的SRv6 Policy标识;
  • Candidate Path,<protocol-origin, originator, discriminator>,protocol-origin就是BGP SR Policy,originator是BGP Router ID,discriminator对应NLRI的Distinguisher,用于区分同一SRv6 Policy的不同CP,形成完整的CP标识。

Tunnel_Encapsulation,用于携带Candidate Path的各种属性,比如Preference、B-SID、Segment-List等,并以层次化TLV的形式表示。

如何把BGP SRv6 Policy精准的下发给头端节点呢?跟控制器与转发器的BGP连接方式有关,具体如下:

  • RR组网,控制器给SRv6 Policy附加RT=Headend:0,通过RR中转,转发器收到之后检查RT值,如果一致则导入SRv6 Policy;
  • 直连方式,控制器直接将SRv6 Policy发给转发器,附加no_advertise community,转发器收到后自用,不转发给任何邻居。

相比于PCEP,使用BGP下发SRv6 Policy具备更好的兼容性和扩展性,理论上可以支持跨厂商的SRv6 Policy对接,和百万级SRv6 Policy的部署规模。

六、SRv6组网设计

(一)总体组网规划

下面基于金融骨干网现状和业务需求,探索如何采用SRv6升级骨干网技术架构。

骨干网由三个核心节点、数十个一级节点构成,为总分行提供就近接入和高速转发服务,根据通用SRv6技术架构要求,总体组网规划如下:

采用标准的控制器+转发器两层SDN组网,控制器负责智能选路,通过南向协议下发SRv6 Policy,转发器负责执行Segment指令和报文转发。

(二)转发器技术规划

转发器分为PE、P、RR等角色,采用ISIS作为Underlay路由协议,使能IPv4/v6多拓扑,网络拓扑和路由计算相互独立,同时启用SRv6扩展,交换SRv6 SID信息。

SRv6 SID格式为Locator+Function,Locator长度为112bit,其中前96bit为共同前缀,后16bit为节点数值,Function长度为16bit,其中静态Function为::00[01-FF],动态Function为::[0-F][1-F][00-FF]。END、END.X由节点动态生成,在ISIS中关联Locator后,ISIS会自动发布Locator和SID信息。ISIS还要启用TI-LFA和Micro Loop Avoid,以提高SRv6网络的收敛性能和健壮性。

PE采用BGP EVPN作为Overlay路由协议,基于Loopback IPv6地址建立域内BGP EVPN Peer,并选用SRv6隧道封装。用户VPN路由通过BGP EVPN Type5 NLRI+ BGP Prefix-SID发布,后者对应END.DT4/6 VPN SID。

假设PE已经从控制器收到SRv6 Policy,BGP EVPN路由会根据Color+Nexthop迭代到正确的SRv6 Policy上,数据平面调用H.Encaps Behavior封装VPN报文,SRH=SRv6 Policy Segment List+VPN SID,外层IPv6 SA=PE Loopback,IPv6 DA=Segment[n-1]。如果没有收到SRv6 Policy,则采用SRv6 BE转发,外层IPv6 SA=PE Loopback,IPv6 DA=VPN SID。无论哪种方式,目标PE收到报文后,根据IPv6 DA定位到VPN,剥离SRv6封装,查找VPN路由表转发。

(三)南向协议规划

控制器与转发之间用到SNMP、NETCONF、BGP-LS、BGP SR Policy等多种南向协议,这里重点介绍BGP-LS、BGP SR Policy的规划。

RR与控制器之间建立BGP-LS Peer,将ISIS的链路状态信息转换后上报控制器。RR与PE之间也要建立BGP-LS Peer,将PE传递过来的SRv6 Policy状态反射给控制器。

控制器与RR之间建立BGP SR Policy Peer,将SRv6 Policy下发给RR,RT为Headend:0。RR与PE之间也要建立BGP SR Policy Peer,将SRv6 Policy反射给PE,PE收到后根据RT导入自己始发的SRv6 Policy。

(四)控制器规划

骨干网上传输的流量根据业务类别和安全等级,分为STORAGE、INTRANET、EXTRANET三类,由相应的SRv6 Policy承载。控制器定期根据网络拓扑和流量分布,计算更新SRv6 Policy路径,通过BGP SR Policy下发给PE转发器,实现智能流量调度的目的。

一开始可以采用基于SRv6 Policy维度的简单调度策略,具体如下:

PE分为AB平面,同平面PE之间两两建立STORAGE、INTRANET、EXTRANET三类Policy,每个Policy初始包含1条严格路径。

以北京节点PE-A为例,控制器初始下发的路径如上图实线所示。PE-A根据VPN路由的<color, nexthop>,将业务流量映射至对应SRv6 Policy上转发。

转发器通过Telemetry实时上报接口流量信息,控制器会定期运行全局调优算法,综合线路利用率、SPF路径、SRv6 Policy优先级等多个因素,更新部分SRv6 Policy的Segment列表,并通过BGP SR Policy下发给PE-A,将相关SRv6 Policy上的流量迁移至其他低利用率线路上,路径如上图虚线所示。

如果某个节点或者链路故障,首先会触发SRv6 FRR,保证SRv6 Policy流量基本不中断,然后由BGP-LS上报链路状态变化,控制器收到后触发局部故障调优,为受影响的SRv6 Policy选择其他正常路径,最后等到全局调优周期,站在全网角度优化SRv6 Policy路径。

之后在控制器支持的情况下,可以升级为基于Segment List维度的复杂调度策略,具体如下:

PE分为AB平面,同平面PE之间两两建立STORAGE、INTRANET、EXTRANET三类Policy,每个Policy初始包含4条等价SL(部分SL路径可能重复)。

以北京节点PE-A的INTRANET SRv6 Policy为例,控制器初始下发的路径如上图实线所示。PE-A根据VPN路由的<color, nexthop>,将业务流量映射至对应SRv6 Policy的4条SL上负载均衡转发。

全局调优和故障调优基本思路与上一种策略类似,区别在于转发器要上报Segment List颗粒度的流量信息,控制器要基于SRv6 Policy和Segment List两个维度算路,根据计算结果更新SRv6 Policy内部某些Segment List,并通过BGP SR Policy下发给PE-A,将这些Segment List上的流量迁移至其他低利用率线路上,路径如上图虚线所示。

(五)多域组网升级

前面采用了单域SRv6 Policy组网设计,由单个ISIS提供骨干网链路状态数据,经BGP-LS上报控制器,控制器进行域内算路并下发至转发器。单域组网对网络规模、线路类型都有一定的限制,还涉及骨干网与接入网Option A跨域互联的问题,导致大量VPN和路由策略重复配置,另外将SRv6局限于骨干网,无法发挥SRv6 Policy端到端的价值,因此有必要从单域升级为多域组网,具体规划如下:

骨干网收缩为三个核心节点,仅由P和RR角色组成,P不感知业务和VPN,仅根据IPv6 DA路由转发,RR除了承担BGP-LS、BGP SR Policy基本功能之外,还要负责骨干网P设备Underlay和接入网PE设备Overlay路由的分发和策略控制,相当于二级控制器。

接入网为总分行各自辖内通道互联网络,核心由原骨干网的2台PE组成,与骨干网RR之间建立EBGP Peer,交换EVPN、BGP-LS、BGP SR Policy等地址簇路由,并保持Nexthop不变。

骨干网和接入网之间Underlay跨域互联,通过EBGP交换Underlay IPv4/v6路由,其中包括SRv6 Locator路由。同时双方还要使能BGP EPE,将Underlay邻居连接通过BGP-LS上报给控制器。

控制器通过BGP-LS收集骨干网、接入网的链路状态数据,结合BGP EPE的邻接信息,拼接出骨干网+接入网完整的网络拓扑,其他算路和SRv6 Policy下发过程同单域组网。

七、总结

目前业界和用户对于SRv6的研究和应用还处于价值探索的初始阶段,受益于国内IPv6规模部署行动的成果,用SRv6取代SR-MPLS已成为大家的共识,也是水到渠成的事情。

风物长宜放眼量,SRv6 Policy组网和智能流量调度只是SRv6的基础应用,后续我们还要将SRv6拓展到VTN切片网络、分支机构SDWAN、应用驱动APN6、Service Chaining等更多更广的领域,可谓路漫漫其修远兮,还需要大家一起求索。

参考文献:
https://tools.ietf.org/html/rfc8754
https://tools.ietf.org/html/draft-ietf-spring-srv6-network-programming-15
https://tools.ietf.org/html/draft-filsfils-spring-srv6-net-pgm-insertion-02
SRv6可靠性方案(一)
SRv6可靠性方案(二)
SRv6可靠性方案(三)
SRv6可编程技术-SRv6 Policy

SRv6技术研究和组网设计相关推荐

  1. LTE宏微协同组网中的干扰抑制技术研究

    1   引言     在LTE时代,移动数据业务量增长迅速,网络容量需求巨大,而且用户与业务的分布不均匀,采用单纯宏基站组网的方式已难以满足高容量与深度覆盖的网络部署需求,宏微协同组网的方式应运而生. ...

  2. 阅读《基于知识图谱技术的数据资产管理设计与应用验证研究》笔记

    文章目录 1.摘要 2.前言 3.研究概述 3.1 数据资产管理内涵 3.2 数据资产管理的意义 4.研究内容 4.1 研究思路 4.2 研究内容 1.摘要   首先看一下这篇文章的五个关键词: 关键 ...

  3. hadoop下计算机网络安全设计与实现,基于PKI技术的网络安全平台设计研究

    科技信息 0 IT技术论坛0 SCIENCE&TECHNOLOGY INFORMATION 2008年 第4期 基于 PKI技术的网络安全平台设计研究 马 (陕西交通职业技术学院 骞 陕西 西 ...

  4. 教育技术学习《基于设计的研究与教育游戏设计应用》笔记

    作者北京大学曾嘉灵.尚俊杰2022中国电化教育 本研究围绕"折叠与展开"这一实际的教学问题,采用基于设计的研究,依据Easterday等提出的六阶段模型,开展了三次迭代设计.在第一 ...

  5. 计算机网络通信的仿真,计算机网络虚拟仿真技术研究与应用.doc

    计算机网络虚拟仿真技术研究与应用 计算机网络虚拟仿真技术研究与应用 摘 要: 虚拟仿真技术也日趋成熟,已经应用到了科学.生活等各个领域,许多高校也开始将虚拟仿真技术应用到实际教学中.传统的实验教学受到 ...

  6. SRv6技术课堂:SRv6概述

    作者简介:李振斌 华为首席协议专家/IETF互联网架构委员会(IAB)委员.负责华为的IP协议研究和标准推动工作.自2009年起积极参与IETF标准创新工作,主导和参与了大量IETF RFC/草案.在 ...

  7. 区块链技术研究综述:原理、进展与应用

    来源:区块链技术研究综述:原理.进展与应用     期刊:通信学报. #blockchain 相当于对区块链先进行一个系统的了解吧 区块链的层次化技术结构. #未解决的问题 上述文 献虽 然归纳得较为 ...

  8. 田间作物高通量表型信息获取与分析技术研究进展(论文笔记)

    田间作物高通量表型信息获取与分析技术研究进展(笔记) 1. 研究趋势 至今为止的表型研究主要三个方面:传感器,平台,信息分析.其中,高通量表型是(High-throught phenotyping,H ...

  9. 提高建模效率,改变手工作坊式生产,AutoML的技术研究与应用进展如何了?

    整理 | 王银 出品 | AI科技大本营(ID:rgznai100) [导读]12 月 5-7 日,由中国计算机学会主办,CCF 大数据专家委员会承办,CSDN.中科天玑协办的中国大数据技术大会(BD ...

  10. 计算机病毒攻防技术研究,计算机网络病毒辐射攻防技术研究.pdf

    会议论文,完美pfd格式 全国抗恶劣环境计算机第十七届学术年会论文集 ·防信息泄一技术· 计算机网络病毒辐射攻防技术研究 田■.王力,邱扬 (西安电子科技大学机电工程学院,西安710071) ■蔓:本 ...

最新文章

  1. Android 获取手机的UUID
  2. java 条件变量_Windows下条件变量的实现
  3. 用的fileupload组件实现的大文件上传
  4. python 列表推导式
  5. Spring 实践 -拾遗
  6. 思维导图系列之Java多线程知识梳理
  7. 打造含有 Mali Graphics Debugger 支持的虚幻引擎应用程序
  8. Target-Action回调模式
  9. 【Oracle AWR详解分析-02】
  10. MyCat的安装及基本使用(MySQL分库分表)
  11. 关于企业应用SAP成本管理模式与方法的一些思考
  12. Silverlight中使用MVVM
  13. 操作键盘事件源码解析(常用的鼠标事件、 键盘事件对象之keyCode属性)
  14. java web 程序---javaBean
  15. VSCode下载安装和修改插件下载位置(配置右键菜单)和更换终端
  16. 二维码图片处理换logo,加文字
  17. 重启tomcat服务器步骤
  18. 作为过来人的我是如何学技术的?
  19. 基于 yolo_v5 训练识别人物
  20. 哇塞!集齐7张卡片,真的可以召唤神龙耶!

热门文章

  1. 自动化框架应该具备的要点
  2. jdbc连接数据库代码
  3. .Net CF 开发菜鸟笔记(PDA应用开发)
  4. python windows 远程执行bat
  5. leetcode Largest Rectangle in Histogram 单调栈
  6. keepalived实现双机互备
  7. wireless 时好时断的一些解决的建议
  8. OCS 2007 R2 标准版部署
  9. C语言的标准内存分配函数
  10. pku2192---Zipper(动态规划题,随机组合两个字符串)