SRv6,多层SID,转发平面的设计

来源:优秀文章 发布时间:2023-02-28 点击:

杨秋航

(武汉邮电科学研究院,湖北 武汉 430074)

SR-MPLS 的出现,引入了源路由的思想,被一致认为是IP 领域最重要的突破技术[1]。随着云网融合的逐步推进以及IPv6 的广泛部署,这一思想渗入到IP 地址中,考虑到可以充分利用IPv6 原生的扩展头机制[2],使用IPv6 地址本身作为Segment 标识,通过在IPv6 报文头和净荷之间插入SRH 的方式实现源路由路径信息的编码[3],极大地增强了SRv6 技术的扩展性和部署的灵活性[4],支持网络可编程,充分发挥了SDN 的能力[5],这也赋予SRv6 技术未来丰富的想象空间。

该文主要研究SRv6 的转发平面,并提出新的转发流程设计,使用烽火通信公司的设备进行实验,来验证该方案的完成度以及准确度,并总结该文方案的优点以及不足。

SRv6(基于IPv6 转发平面的段路由)是基于源路由理念而设计的在网络上转发IPv6 数据包的一种协议。SRv6 通过在IPv6 报文中插入一个路由扩展头SRH,在其中压入一个显式的IPv6 地址栈,利用中间节点不断更新目的地址和偏移地址栈的操作来完成逐跳转发[6]。SRv6 完全兼容现有IPv6 网络,中间节点可以不支持SRv6,继续按照正常路由转发含有SRH 的IPv6 报文。同时SRv6 还可支持FRR 保护功能,在SRv6 技术的基础上结合RLFA 算法,利用高效的TI-FLA 算法弥补传统隧道保护技术的不足[7]。

1.1 SRv6报文封装格式

IPv6 报文由IPv6 标准头、扩展头、负载组成,为实现SRv6 的转发,新增加IPv6 扩展头SRH 用于存储IPv6 的Segment List 信息。标准SRv6 扩展头SRH 的封装格式如图1 所示。

图1 标准SRv6的扩展头SRH的封装格式

SRv6 扩展头的封装长度为IPv6 头+SRH 固定头+Segment List。因此随着SID 封装层数的增加,SRv6 扩展头开销也随之增大,且由于报文长度的增加,其对硬件处理芯片的要求也随之提高,而部分芯片由于封装阶段能力有限,导致最终出口报文的封装出现SID 信息封装不全的问题。

1.2 不同节点对SRv6报文的处理

在SRv6 网络中,节点角色大致分为三类:源节点、中间节点、尾节点[8]。

SRv6 源节点:网络拓扑中的首站,封装Segment List标签栈。

中间节点/中转节点:对SRv6 报文作转发处理,但不作SRv6 相关处理。

尾节点:检查报文的目标地址必须是本地配置的SID 或是本地的接口地址,若完成匹配则将整个标签栈全部弹出。

如图2 所示,在SRH 的处理中,SL 字段指向具体的SID 标签,每经过一个SRv6 节点,SL 字段减1,在普通的IPv6 报文中,IPv6 DA 固定不变,而在SRv6 中IPv6 DA 仅表示当前报文的下一个节点,因此每经过一个节点,IPv6 DA 会根据SL 的指向做相应的变化[9],且无需将最外层SID标签弹出(与SR-MPLS的区别),只需根据SL 字段的指向更新DA,继续根据更新后的DA 做转发 即可[10]。

图2 SRv6转发原理图

1.3 SRv6 Segment格式的具体划分

SRv6 Segment为IPv6地址,长度为128 bit,主要由三部分组成,通常可简单表示为Locator、Function、Arg[11]。

Locator 占据高比特位,具有定位功能,节点在配置Locator 后系统会生成一条Locator 网段路由,通过IGP 在SR 域内扩散。网络里其他节点可通过Locator网段路由来定位该节点。

Function 表示设备指令,其中End 指令用于决定具体的终结动作,可根据具体业务需求来决定,如End.DT4用于IPv4网络,End.DT6用于IPv6网络等[12]。

Arg 参数占据低比特位,作为参数填充字段,可用于部分业务的特殊需求,比如SRv6 的防环,以及SRv6 的压缩处理等,该字段的具体使用将在后文中进行具体介绍。

芯片对报文的转发以流水线的方式进行处理,根据业务报文的转发方向将报文的处理分为报文的封装和解封装。

2.1 首站报文的封装

现有的SRv6 报文封装流程如图3 所示。

图3 现有SRv6报文封装流程图

在驱动转发层面主要涉及以下几个模块。

AC 模块:接入电路,是连接CE 与PE[13]的物理电路或虚拟电路,原始报文从AC 模块正式进入网络。需要获取端口port 和AC 的Inlif(Ingress logical interface)和Outlif 值,在后续模块中用于交叉连接以及流匹配处理的处理。

FLOW 模块:基于AC 模块中的port 和Inlif 值,设置报文入口方向的vlan,根据不同需求基于不同的流匹配规则区分不同业务报文入口的具体AC,这样便可以确定CE 接收到的报文属于哪一个特定的用户网络。

VC FEC 模块:VC 转发等价类,挂接需要封装的最内层VPN SID 的相关信息。这里VC 以转发等价类的形式出现主要是为了实现保护功能。

CROSS CONNECT 模块:由两条物理电路或虚拟电路串联而成的一条连接,基于AC 的Inlif 和VC FEC 模块中申请到的FEC ID 做交叉连接,完成UNI和NNI 之间的连接。

SRv6 TUNNEL 模块:隧道转发等价类,指向出接口,并挂接需要封装的外层TXSID,即封装需要携带的IP 地址信息。这里隧道同样以转发等价类的形式出现,同样是为了作保护处理。

ARP 模块:封装业务出口的DMAC,以及业务的出口VLAN 封装,但出口的这层vlan 并不是必要的,根据业务需求来决定。

RIF 模块:与DMAC 的封装相对应,封装业务出口的SMAC。

TXSID 模块:指定封装的隧道标签,同时指向封装的目的mac 接口的相关信息。封装的SID 层数可以根据需求来决定。

2.2 中间节点的处理

SRv6 不同于SR-MPLS 过站的处理,SRv6 不再需要弹出最外层标签,仅根据暴露出的下一层SID标签进行转发即可,中间节点过站处理流程图如图4所示。

图4 中间节点过站处理流程图

RIF 模块:对DMAC 进行检查,当匹配上MACT表项时,则终结报文中的MAC 头,暴露出报文后面的IPv6 DA 信息。

VSI CONNECT VRF 模块:从RIF 获取到绑定的VSI 信息,通过该VSI 信息找到对应的VRF 信息。

ROUTE 模块功能描述:根据从VSI CONNECT VRF 模块中获取到的VRF 信息以及RIF 模块中获取到的IPv6 DA 信息查找路由表,基于所查到路由表中的信息完成转发。

ARP 模块:为了根据IPv6 DA 信息查找路由,在RIF 模块中剥掉了MAC 头的信息,因此需要通过ARP 模块重新封装之前剥掉的MAC 头信息。

2.3 尾站报文的终结

尾站对报文作解封装处理,直接匹配标签栈的最内层VPN SID,实现所有标签的终结,这样的处理也是因为SRv6 转发的特殊性决定的,由于SRv6 在转发过程中不再弹出标签,因此报文的解封装操作并非伴随着每一跳转发来完成,而是在最后一跳或者是在倒数第二跳时一次性弹出整个标签栈[12],而无论标签层数有多少,最内层的标签一定是VPN SID,因此在弹出标签时只需要匹配最内层标签就可以将所有标签全部弹出。

报文解封装流程图如图5 所示。

图5 报文解封装流程图

RIF 模块:对DMAC 进行检查,当匹配上MACT表项时,则将报文中的mac 头部终结,暴露出报文后面的VPN SID。

IN VC 模块:匹配标签栈最内层VPN SID,上文已经提到若匹配上VPN SID 为本地local SID,则将所有的TXSID 标签全部弹出。

AC FEC 模块功能描述:转发等价类,同样是为了作保护处理。

CROSS CONNECT 模块:基于AC 的Outlif 和AC FEC 模块中申请到的FEC id 作交叉连接,完成NNI和UNI 之间的连接。

AC 模块:NNI 侧AC 即为出口,从AC 出去的报文已完成整个终结流程,出口报文即为原始报文。

不同芯片在不同阶段的处理能力不同,导致当封装信息过长时,芯片处理封装阶段出现封装信息不全的问题,如期望封装9 层SID 信息,但出口报文真正封装成功的可能只有4 层SID 信息,目前很多芯片都出现了这类问题,因此针对SID 层数过多的情况,提出了新的封装方案

3.1 提出新的封装流程设计

部分芯片当封装的报文中SID 层数小于或等于4 层时,报文封装流程不变,当SID 层数超过4 层时,在转发流程上增加环回的处理,多层SID 封装流程图如图6 所示。

图6 多层SID封装流程图

方案差异部分从TXSID 模块之后开始,考虑到SID 信息无法在一个流程中完整封装,因此,在二级FEC 后环回,再次挂接TXSID 模块,将剩下的未成功封装的SID 进行二次封装,所有SID 信息都完成封装后,再挂接ARP 模块。

3.2 Ingress节点模式设计

对于Ingress 节点的封装模式,一般分为normal encapsulation 和reduce encapsulation 两种模式。上文中提到的均为普通模式,当设置为reduce 模式时,为下一个节点提供DIP 的SID 不会出现在SRH 头中,因此设置为reduce 模式同样也可以达到减小SRv6 报文开销的目的。在Ingress 节点设置模式与驱动的流程设计不相冲突,可以同时使用。

3.3 Segment List设计

由于报文过长而引发的封装信息不全的问题,除了改善驱动的流程设计,还可以针对SRv6 报文进行处理。考虑到SRv6 报文过长,在上文中提到Segment List 部分占据了SRv6 报文的大部分[14],因此对Segment List 进行压缩同样能解决封装信息不全的问题。

在上文中提及SID 可以划分为Locator、Function、Arg 三个部分,其中,Locator 还可以细分为B(前缀)、N(节点ID),前缀一般由运营商分配给某个子网[15],事实上在一个SRv6 网络中,很多SID 都有共同的前缀,因此将SID 信息的前缀公用,将Locator 中的节点ID 和Fuction 以及Arg 进行组合,成为压缩后的SID信息[16]。

为方便压缩SID 信息的定位,可将SID 信息压缩为能被128 bit 整除的长度,比如16 bit、32 bit、64 bit。针对压缩SID 的定位文中以P 指针来代替,而P 指针的长度根据公式length=log2n(128/n)计算,n表示压缩SID 的长度,以32 bit为例,P指针的长度即为2 bit。与SL 指针类似,每访问一个压缩SID 后P 减一,指向下一个压缩SID,因此P 指针的功能可以利用Arg 参数实现。

在源节点处判断需要封装的SID 层数,可以如图7 所示进行压缩。

图7 封装层数和压缩SID的长度

对于混编SID,在中间节点处需要根据SL 以及P来确定DA 作转发。下文以32 bit 压缩SID 为例,根据上文提到的公式可以推算出P 占据2 bit,因此取值为0~3,具体压缩SID 封装格式图如图8 所示。

图8 压缩SID封装格式图

SL 初始状态指向标签栈的最底层SID,更新IPv6 DA,完成第一次转发后,SL 减1,进入压缩域,此时P 为3,SL 字段不发生变化,根据P 指针更新IPv6 DA,完成第二次转发后,SL 字段依然不发生变化,P 字段继续减一,更新IPv6 DA 信息,直到P 字段减到0,SL 字段便开始减1,依次类推。

利用烽火的设备将该文提出的方案和传统方案进行对比实验,来验证文中提出的设计方案的优点与不足。

4.1 对比实验该文提出的驱动流程设计方案

经过对比实验,SID 层数超过4 层时,该文提出的方案可以完成全部SID 信息的封装,解决部分芯片封装阶段处理能力受限导致SID 封装不全的问题,与传统方案进行比较,结果如表1 所示,该方案由于引入了环回的思想,因此交换容量会因此受到一定的影响,且会增大时延,经过多次测试,时延为纳秒级,因此该方案虽然会引入带宽、时延的问题,但其完成全部SID 信息的优点相对其影响更加显著,且该方案具有通用性,出现这类问题的芯片均可使用该方案。

表1 完成封装SID层数方案对比表

4.2 对比实验提出的压缩方案

经过对比实验可知,该文中提出的压缩方案可以完成全部信息的封装,且不需要修改传统驱动封装流程,但由于数据平面发生了改变,因此需要控制平面的配合,比如需要相关ISIS 协议以及BGP 协议通告SID 的压缩能力以及压缩SID 的长度等信息。与传统方案进行比较,结果如表2 所示。

表2 完成封装SID层数方案对比表

针对部分芯片封装能力受限的问题,文中提供了两种解决思路,方案一,可根据芯片的封装能力对报文的SID 层数进行一定的划分,并且文中针对芯片处理能力内以及封装能力外的SID 层数的封装都提出了封装设计方案,且文中提出的环回方案所引入的时延为纳秒级,因此不会有太大影响;
方案二,可通过使用压缩SID 的方案完成全部SID 的封装,当然设计到SID 的压缩就会需要协议层面提供足够的支持与配置。两种方案均有优点与不足,因此方案的设计与选择可视具体情况而定。

猜你喜欢 层数报文路由 基于J1939 协议多包报文的时序研究及应用汽车电器(2022年9期)2022-11-07填筑层数对土石坝应力变形的影响研究东北水利水电(2022年6期)2022-06-28浅探铺设土工格栅技术在软土路基加固处理中的运用科学技术创新(2022年15期)2022-05-18CTCS-2级报文数据管理需求分析和实现铁道通信信号(2020年4期)2020-09-21铁路数据网路由汇聚引发的路由迭代问题研究铁道通信信号(2020年9期)2020-02-06多点双向路由重发布潜在问题研究太原学院学报(自然科学版)(2019年3期)2019-09-23浅析反驳类报文要点中国外汇(2019年11期)2019-08-27一种基于虚拟分扇的簇间多跳路由算法太原科技大学学报(2019年3期)2019-08-05MoS2薄膜电子性质随层数变化的理论研究电子制作(2019年11期)2019-07-04路由重分发时需要考虑的问题科技与创新(2018年1期)2018-12-23推荐访问:多层 转发 平面
上一篇:基于注意力机制的深度学习体育运动姿态估计技术
下一篇:阿尔茨海默病患者伴嗅觉障碍的影响因素分析及防治策略

Copyright @ 2013 - 2018 优秀啊教育网 All Rights Reserved

优秀啊教育网 版权所有