国家 / 地区
docurl=/cn/Products___Technology/Home/News_Info/202010/1349478_30003_0.htm

互联网技术详解|以SR网络构建分布式未来(二)MPLS SR和SRv6技术应用

【发布时间:2020-10-17】

本文是《互联网技术详解,以SR网络构建分布式未来》的第二篇。本文将深入介绍MPLS SR和SRv6——两种SR技术的主要应用形式,剖析他们的数据平面与转发平面以及他们的优势特点。

当MPLS遇到SR

上文提到MPLS技术虽然解决了很多问题,但其本身也存在缺点,尤其是在流量工程方面的复杂性及无法实现链路的ECMP等缺点。SR技术在保留MPLS技术能力的基础上,对整个网络协议做减法,简化控制平面。

01、

为什么MPLS要与SR在一起

减去RSVP复杂的信令机制

在RSVP-TE中,每台设备只能看到自身的设备状态,需要依赖于RSVP信令频繁的交互来获取其他设备状态信息,导致了整个网络协议的复杂性。SR技术搭配SDN控制器来收集整网拓扑信息并下发隧道路径,大大简化了链路状态和信令复杂度。

减去LDP,直接由IGP分发标签

LDP是对IGP协议中的目的IP与MPLS标签做的一层映射关系。SR技术是扩展了IGP协议的SR属性,可以直接分发和同步标签信息,从而减少部署LDP协议。

•协议变得更少,邻居和监控的状态就更少

•不需进行IGP到LDP的同步,减少激活路径的时间

02、

MPLS SR的数据平面

SR技术可以直接应用于现有MPLS架构中,而不需要改变MPLS数据平面,这意味着只要现网设备硬件可以支持SR功能,就可以直接将现网MPLS转发升级为MPLS SR,实现整网SR改造。下图为MPLS 标签头:

MPLS SR标签头

MPLS SR标签头

MPLS SR 的32 bits(4字节)标签分为以下4部分:

•20 bits的标签位:代表标签范围(0至)

•3 bits的实验位:用于做QOS

•1 bit的栈底位:用于表示紧跟着标签的下一个头部是另一个标签还是IP包(标签堆栈时,栈底位前全为0,后为1)

•8 bits的TTL位:用于防环

SR标签通过全局标签范围(SRGB)分为全局标签和本地标签:

全局标签:在MPLS中是一个全局唯一的索引index,每设备上的标签为[SRGB+index]

•前缀标签(Prefix SID)为网络中目的地址前缀分配的标签

•节点标签(Node SID)为网络设备分配的标签(类似Loopback)

本地标签:SRGB范围以外的标签,可以重复,设备收到本地标签时自己转发处理

•邻接标签(Adjacency SID)为节点邻接的IP网段分配的标签

03、

MPLS SR的转发流程

以下图典型组网为例,各个节点的SRGB均为7000至9000,设备通过IGP扩展通过SRGB的标签段范围及自身全局Index,每个设备节点对应的节点标签为SRGB+index,即R1为7001、R2为7002以此类推。

典型节点标签寻址示意图

典型节点标签寻址示意图

在上图中组网R6节点标签为7006,当组网内其他设备收到栈顶为7006的报文时,会直接查找一条至R6的最短路由路径并将报文发送至R6。

利用节点标签进行选择路径转发,如下图从R1开始到R6的报文,处理流程如下:

•首节点(R1):根据路径计算结果,确定报文需要送至R6,加入节点标签栈 7006。

•转发节点(R2):与普通MPLS报文处理一致,进行标签交换处理,标签仍然为7006。

•倒数第二跳(R3):如IGP通告SR信息时,通告需要进行倒数第二跳弹出,则在此节点进行标签弹出。

•尾节点(R6):按照普通报文正常流程进行转发。

报文转发示意图

报文转发示意图

此外还可以利用邻接标签进行选择路径转发,邻接标准代表某条链路的单跳路径,同时仅本地有效。每个设备向可以与自己相距一跳的设备通过IGP扩展通告邻接标签,也可以通过SDN控制器直接为SR域内的每条链路进行标签分配

如下图从R1开始到R6的报文,处理流程如下:

•首节点(R1):根据路径计算结果,确定报文路径为图中棕色线。根据邻居标签信息在R1处打上[204,405,506]标签栈。

•转发节点(R2、R4、R5):弹出栈顶标签,根据此标签选择出口链路进行转发。

•尾节点(R6):按照普通报文正常流程进行转发。

邻接标签转发

邻接标签转发

当SR遇到IPv6

01、

SRv6的数据平面

SR技术可以直接使用IPv6的数据平面,基于IPv6路由扩展头进行扩展,即SRv6技术。SRv6仅针对IPv6路由扩展头进行处理,对报文其他部分没有任何影响,因此使得SRv6与现有IPv6网络完美兼容,实现极简的转发模式。

如下图SRv6报文头部结构中的IPv6部分,“下一报头字段” (图中标红部分)表示报文后面封装的协议类型:43为Routing;

SRv6报文的“下一报头字段”固定为43号协议Routing使用了IPv6的头部扩展字段。在RFC 2460标准中对IPv6的43号协议Routing的IPv6的扩展字段进行了定义:

•扩展流量分类(Next Header):标识紧跟在SRH后封装的报文头类型,如TCP、UDP等;

•头部扩展长度(Ndr Ext Len):SRH头所占用长度,且任意IPv6设备均可跳过该头部;

•路由类型(Routing Type):可定义多种路由头部类型,SRH类型为4;

•段指针(Segments Left):到达目的节点前仍然应访问的中间节点数,若其为0则忽略扩展头部;

SRv6报文头部结构图

SRv6报文头部结构图

标签采用反向编码的方式,最新的标签编码为0,即Segment list [0]。第一个标签则是Segment list [n-1],如图中First Segment,即假设当前SRv6标签数量为4,则最开始执行的标签序号为3,最后一个执行的标签序号为0。SRv6组网中当前网络节点执行的标签编号为Segment Left指针。设备通过读取Segment Left指针得知当前应读取的Segment List值,并将对应的标签地址复制到IPv6目的地址中再由设备进行转发。SRH报头中的可变长TLV字段可添加一些非规则的附加信息,如安全相关的HMAC等。

02、

SRv6的转发流程

通过这样只增加扩展头的方式,与原有IPv6转发平面平滑融合。如下图中从R1到R6的报文规划经过橙色线所指示的路径,如下图在IPv6转发平面下处理流程如下:

•首节点(R1):根据路径计算结果,确定SRv6的报文路径为R2,R4,R6并封装在SRH报文头,用IPv6地址栈的方式指明中间需经过的路径为R2、R4、R6,同时初始化Segments Left指针为2,并将Segments Left指针对应的Segment List【2】地址(R2)复制到R1外层IPv6目的地址,并查路由表转发到R2。

•SR路径涉及转发节点(R2,R4):如果发现IPv6头中目的地是本节点,则查看SRH头,如果仍有下一个待处理Segment,则将外层IPv6头中目的地址改为Segments Left指针对应的Segment List【1或0】地址,并查路由表转发。此外当Segment List=0时,则设备忽略SRH扩展头部内容,如在下图中R4网络节点的SRH标灰部分。

•非路径涉及转发节点(R5):直接根据IPv6报文头中的目的地址进行IPv6报文进行查表转发,不处理SRH扩展报头内容。

•尾节点(R6):去掉SRH头,按照普通IPv6报文进行转发。

SRv6转发流程图

SRv6转发流程图

从上述流程可以看出,对于非SR路径涉及的转发节点,完全无需支持Segment Routing,仅支持标准的IPv6转发即可。采用这种方式,对网内不支持Segment Routing的设备可以进行无缝兼容。

03、

SRv6的Segment格式

SRv6标签SID通常采用一个128 bits的IPv6地址格式,编写规则也遵循IPv6地址规则。SID一共分为两部分:Locator和Function,如下图SRv6 Segment格式示意图。

•Locator:路由定位功能,占用较多比特位用于进行标签路由从而找到对应设备;

•Function:占用较少比特位用于定义所属设备收到该标签后的操作;

•Argument(可选):占用尾部部分用于本地Function参数,如定义报文流和服务等信息等;

SRv6 Segment格式示意图

SRv6 Segment格式示意图

SID需在开启SRv6功能的设备上进行配置,设备可以灵活的进行标签长度的分配,并且标签的操作仅本地有效。

04、

SRv6的可编程能力

相比与MPLS SR,SRv6有着更加强大的网络可编程空间,这归功于其灵活简易的SRH扩展头。其主要体现于:

•强大的可扩展Segment序列。如上文所述,不仅SRH可以将多个Segment组合起来,形成SRv6路径,同时在Segment序列中,可以通过Argument字段定义本地Function参数,具有比MPLS SR标签栈更强的可控可编程能力。

•128比特的SRv6 SID的使用。如上文所述,MPLS SR标签的封装主要是分成四个段,每个段都是固定长度(包括20比特的标签位、3比特的实验位、1比特的栈底位和8比特的TTL位)。相比之下,SRv6的每个Segment是128比特长,可以灵活分为多段,每段的长度也可以变化,由此为编程提供更大空间。

•SRv6 SRH尾部的可选TLV(Type-Length-Value)。报文在网络中传送时,需要在转发面封装一些非规则的信息,它们可以通过SRH中TLV的灵活组合来完成编排。

SRv6通过三层编程空间,具备了更强大的网络编程能力,可以更好地满足不同的网络路径需求。

05、

SRv6技术的进展及价值

目前对于SRv6技术的支持,各大主流设备厂商均有明确规划。新华三作为网络设备业界领导者,其CR系列核心路由器、SR系列高端路由器、S12500系列云计算数据中心核心交换机均已支持SRv6技术。测试仪厂商思博伦和IXIA有相应测试仪及板卡支持SRv6。芯片厂商博通也已发布可规模部署的商用芯片,并在主流设备上完成验证。

值得一提的是就在今年4月新华三携手思博伦完成业界首次大规模基于SRv6的400G核心交换机的测试验证。其中S12500系列数据中心交换机搭载400G端口高密单板完成了L2-L3层流量的full mesh线速转发、SRv6 10层标签流量转发等高标准测试。

同时新华三也融合了SDN、NFV、AI 等新技术,拥有开放性、弹性、灵活性的AD-NET系列产品体系及解决方案。AD-NET系列产品正在将传统网络设备、SDN管控等方面与SRv6技术融合,可以助力用户在各个行业应用场景中向SRv6的全面转型。

SRv6可以兼容IPv6路由转发,并且通过SID兼顾了MPLS转发的优点,这就保证了SRv6可以从IPv6网络平滑地演进。

SR的成功源于百搭

第一篇文章我们详细介绍了MPLS技术的优劣势以及SR技术的诞生和运行原理。作为一种分段路由协议,SR的技术原理和实现相对简单,而这也是的SR技术可以与现有或新的技术保持相互兼容,来解决不同技术固有的一些缺点,进而组成更高效的网络。

下一期,我们将深入流量工程内部,详细介绍SR Policy技术运行原理与操作方法。

联系我们 联系我们
联系我们
回到顶部 回到顶部