APP下载

SRv6报头压缩技术探析

2023-02-13伍佑明朱永庆龚霞

信息通信技术与政策 2023年1期
关键词:报头报文部署

伍佑明 朱永庆 龚霞

(中国电信股份有限公司研究院,广州 510630)

0 引言

全球信息化发展对地址资源的需求日益迫切,以IPv6为基础的下一代互联网已成为网络发展的必然趋势。IPv6分段路由(Segment Routing over IPv6,SRv6)是Segment Routing与IPv6技术结合的产物,正成为业界关注的热点。基于SRv6强大的可编程特性[1],可进一步提升网络可编程能力,提升网络的资源灵活调度、业务快速部署和智慧运营能力。但在SRv6部署过程中遇到报文承载效率与网络设备处理能力的两大挑战。随着SRv6报头携带的SID层数增加,一方面导致SRv6报文承载效率降低,另一方面对网络设备处理能力带来了巨大挑战。未来,随着SRv6技术的规模部署,特别是端到端SRv6 Policy的应用,这种SRv6部署带来的承载效率和处理性能的降低将显著增加网络建设成本。

针对SRv6部署的承载效率与设备硬件挑战,业界正在积极探索多种SRv6报头压缩方案,以减小SRv6报头封装长度,降低设备硬件处理要求,提升信息承载效率。研究各种SRv6报头压缩技术,突破SRv6部署瓶颈,对于加速SRv6规模应用部署、促进下一代互联网健康发展具有重要的现实意义。

本文在分析SRv6部署带来影响的基础上,探讨了G-SRv6[2](Generalized SRv6)、uSID[3](Micro Segment)、SRm6[4](Segment Routing Mapped to IPv6)等主流报头压缩技术的发展情况,并对这些主流方案进行了对比,最后提出了SRv6报头压缩技术部署的策略。

1 SRv6技术部署带来的影响

SRv6技术在IPv6报头封装了分段路由报头[5](Segment Routing Header,SRH),其部署对报文的承载效率和设备的处理性能带来直接影响。

(1)SRv6技术部署对报文承载效率的影响

SRv6报头由于封装了段标识符(Segment Identifier,SID),报文的承载效率随SID封装层数的增加而逐步下降。当封装多层SID时,会导致报文开销明显增加。在SRv6 Encaps模式下,报文开销是外层IPv6基本报头、SRH基本信息字段长度与SRv6 SID列表长度之和,即总共8+40+16×n字节。

在实际部署中,综合拓扑无关的无环路备份(Topology Independent Loop Free Alternate,TI-LFA)、跨域流量工程等场景,笔者认为即使采用BSID和Flex-Algo方案,SID层数仍可能超过5 层,但通常不会超过12 层。以5 层和12 层报文封装为例,当报文封装5层SID时,Encaps模式下SRv6报文开销为128 字节;当报文封装12 层SID时,Encaps模式下SRv6报文开销为240 字节。报文开销最终影响报文承载效率,而报文承载效率与报文长度密切相关。根据现网流量统计,包括Ethernet帧报头在内的平均报文长度为320~520 字节。取平均报文长度中位数448 字节,根据报文开销可计算出SRv6报文承载效率。当报文封装5层SID时,Encaps模式下报文承载效率为77.8%;当报文封装12 层SID时,Encaps模式下报文承载效率为65.1%。由此可见,封装多层SRv6 SID将对网络承载效率产生比较大的影响。

(2)SRv6技术部署对设备处理性能的影响

现阶段,网络设备以路由器、交换机为主,SRv6技术的部署对这些设备的处理能力带来了巨大挑战。SRv6控制平面基于现有IS-IS[6]、OSPFv3[7]、BGP[8]、PCEP[9]等路由协议/信令协议扩展实现,不存在功能和性能瓶颈。但SRv6数据平面以路由器/交换机的硬件实现为主,对设备形成巨大的处理压力。

SRv6报文在端到端转发过程中主要增加了SRv6报文封装、本地SID表查表、SRH报头操作以及报文解封装等操作。这些操作都由网络设备的NP完成,因而SRv6报文对硬件的需求主要集中在NP(Networking Processor)芯片。根据内部实现方式,NP芯片可大致分为PipeLine(流水线)式和RTC(Run to Completion)式两类。PipeLine式NP芯片将芯片所实现功能交由每个功能模块,报文在NP内部像“流水线”一样经过相应功能模块。典型的PipeLine式NP芯片如EZchip公司的NP系列芯片。RTC式NP芯片内含多个核(Core),每个核作为独立单元可完成NP芯片的功能。RTC式NP芯片通过多核并行处理方式提升性能,典型代表有华为公司的Solar系列芯片。NP厂家设计理念不同,实现各异,即使同一类NP芯片也存在较大差异。

SRv6报文封装过程通常发生在SRv6的Headend节点。在该节点,NP芯片可根据指令对IP报文进行SRv6 Encaps模式的封装。NP在对IP报头进行解析、封装等操作时,会为每个报头分配一个固定大小的报文处理单元,即NP为每个IP报头所分配的RAM空间。该报文处理单元大小每个厂家实现略有差异,通常为144 字节。假定NP芯片为每个IP报头所分配的报文处理单元为144 字节,每个IPv6基本报头为40 字节,则每个报文处理单元为封装SRv6报头所剩余空间为104 字节。由此可知,如果采用Encaps模式,所封装SRv6 SID将不超过3层。

由于SRv6报文端到端传送过程中除PSP(Penultimate Segment Pop of the SRH,倒数第二个Segment弹出SRH)行为外不弹出相关SID,所以不仅仅是Headend节点,沿途SRv6节点均存在处理能力的这种限制。如果SRv6报头超过了报文处理单元尺寸,则IP报头需在NP芯片内多次流转,才能完成相关操作。这对设备的转发性能与带宽都将产生巨大影响。为了实现更多层数的SRv6 SID封装,需要对NP芯片、处理流程进行重新优化设计。

2 SRv6报头压缩技术发展情况

SRv6报头压缩技术通过有效降低SID长度,可大幅降低SRv6报头长度,从而有效提升承载效率。目前,业界提出了多种SRv6报头压缩解决方案,根据实现方案的思路差异,主要分为共享方案和映射方案两类。

(1)共享方案:通常同一域内的SRv6 SID存在公共前缀,通过将此前缀提取出来以公共Block字段承载,后续SID仅携带差异部分,从而大幅减少SRH中Segment List长度。共享压缩方案的控制平面只需在已有SRv6协议扩展基础上进行增强,具有较好的扩展性;数据平面兼容SRH格式,易于实现。

(2)映射方案:映射方案新定义较短ID(如16 bit/s/32 bit/s)并与SRv6的SID建立映射关系,在沿途所有设备上存储映射表项,SRH则只需携带较短ID值即可,从而降低SRv6报头开销。映射报头压缩方案压缩效率高,但不兼容SRv6,控制平面需通过协议扩展通告压缩SID与SRv6 SID/IPv6地址的映射关系,需额外维护映射表项,实现复杂;另外,数据平面也不兼容SRH格式,需定义新的路由扩展报头以实现压缩SID的封装。

针对上述两种类型的SRv6报头压缩技术,业界均提出了相应实现方案。目前,共享方案包括G-SRv6压缩、SRv6 uSID方案等,映射方案包括SRm6方案等。G-SRv6方案在国内得到业界重点关注,相关的国际标准和行业标准正在制订;SRv6 uSID方案在国外得到以思科为代表的厂商的推崇,相关国际标准正在推进;SRm6方案在业界的关注度较低。

2.1 G-SRv6压缩技术

G-SRv6压缩技术基于SRv6,采用与SRH相同的数据平面,但控制平面需在SRv6控制平面基础上进行相关协议扩展。G-SRv6定义了G-SRv6 SID格式,具体参见图1。G-SRv6 SID与标准SRv6 SID格式完全兼容,包括Common Prefix和Node ID,Common Prefix是网络运营商、内容提供商等为子网分配的地址空间前缀,与标准SRv6 SID中的Locator Block对应;Node ID是该子网内用于区分节点的标识,对应标准SRv6 SID中的Locator Node;Node ID字段与Function字段合称为G-SID字段。

图1 G-SRv6 SID格式

为了压缩SRv6报头,G-SRv6压缩方案将SID 列表中冗余的Common Prefix移除,仅携带变化的G-SID部分,从而可大幅减少SRv6的报头开销。G-SRv6作为一种通用SRv6技术方案,不仅支持SRv6报头压缩,而且可与传统SRv6 SID混合编程。

G-SRH(Generalized SRH)由G-SID Container构成,具体参见图2。G-SRH与标准的SRH格式保持一致,可实现压缩SID与非压缩SID在同一SID列表中的混合编码。

图2 G-SRH格式

为实现混合编码,G-SRv6定义了压缩子路径(Compression Sub-path)的概念。压缩子路径中的每个G-SID都具有相同的Common Prefix。每个压缩子路径的起始128 bit/s(即起始G-SID Container)需携带完整的Common Prefix、起始G-SID及Arguments/Padding等字段,后续的G-SID Container中则只携带G-SID部分,最后一个G-SID即为该压缩子路径的最后一跳。

G-SRv6部署需对控制平面协议进行扩展,包括IGP、BGP-LS及BGP SRv6 Policy等协议。其中,IGP协议扩展主要用于节点间发布SRv6报头压缩支持能力与相应G-SID信息;BGP-LS协议扩展用于网络节点向控制器发送SRv6报头压缩支持能力与相应G-SID信息;BGP SRv6 Policy协议扩展主要用于控制器下发SRv6路径信息。

2.2 SRv6 uSID压缩技术

SRv6 uSID方案,也称为SRv6 Micro Segment方案,其基本思想与G-SRv6压缩方案类似,都是将128 bit/s SID中的公共前缀uSID Block字段提取出来,通过消除SRH中冗余信息达到压缩目的。但uSID封装方式与G-SRv6不同,其基于uSID Container(uSID承载器)携带公共前缀与uSID信息。

uSID Container格式如图3所示。其中,uSID Block与G-SRv6方案中的Common Prefix字段含义相同,都是指公共前缀;uSID则是从相应SRv6 SID中提取的一个定长的ID,用于携带SID差异部分,其典型长度为16 bit/s或32 bit/s。若uSID Block长度为32 bit/s,当uSID字段长度为32 bit/s时,则一个uSID Container最多可携带3个uSID;当uSID字段长度为16 bit/s时,则一个uSID Container最多可携带6个uSID。

图3 uSID Container示意图

SRv6 uSID方案主要采用“共享前缀”+“移位(Shift)出栈”方式实现。uSID Container携带uSID Block与多个uSID字段,将这样的128 bit/s数据复制到IPv6报头的DA字段后,当进行uSID转发处理时,需进行比特移位,即将当前Active uSID之后的所有比特向前移位一个uSID长度,并在末尾填充0,从而实现报文逐跳转发。

uSID方案数据平面兼容SRv6/IPv6,具备在IPv6网络中的路由能力,支持与SRv6 SID混编,其控制平面则需通过uN等行为实现移位与查表转发功能。相对G-SRv6压缩方案,每个uSID Container需携带1个uSID Block,对压缩效率有一定影响,但也具有更好的扩展性。

SRv6 uSID方案需对控制平面协议进行扩展。uSID通告方式与其Endpoint Behavior类型有关。目前定义的SRv6 uSID类型中,uN、uA SRv6 SID及其绑定的行为由IGP协议通告,uDT、uDX SRv6 SID及其绑定的行为由BGP协议通告。

2.3 SRm6压缩技术

SRm6技术采用映射方案实现SRv6报头压缩,是一种新的路由机制。SRm6方案的基本思想是采用16 bit/s或32 bit/s的SID代替SRv6中128 bit/s的SID,并在两者之间建立一一映射关系,将IPv6地址格式的SID转变为更短字节的压缩SID,从而减小SRv6报头的长度,实现压缩效果。

SRm6方案新定义了3种压缩SID,包括邻接(Adjacency)mSID、节点(Node)mSID和绑定(Binding)mSID,每一种mSID都与指定的行为相关联。mSID由分配它的节点定义,并映射到一个唯一的接口地址,不同节点分配的mSID可以相同。与SRv6 SID不同的是,SRm6方案中定义的各种mSID均为本地有效。为了实现SRv6灵活的可编程能力,SRm6方案还定义了两种服务mSID类型,包括基于段的服务指令(Per-Segment Service Instructions,PSSI)和基于路径的服务指令(Per-Path Service Instructions,PPSI)。

SRm6方案基于IPv6扩展报头重新定义了承载mSID的压缩报头(Compressed Routing Header,CRH)。SRm6方案支持16 bit/s和32 bit/s压缩长度,其压缩效率主要取决于mSID长度。针对16 bit/s长度的mSID和32 bit/s长度的mSID,分别定义了CRH-16和CRH-32,CRH-16格式如图4所示。

图4 CRH-16报头格式

SRm6方案不改变IPv6地址的原有语义,通过标签映射的方式实现显式路径指定,并通过扩展报头携带PSSI及PPSI等服务指令实现SRv6网络可编程。该方案不兼容SRv6/IPv6,mSID也不具备在IPv6网络中的路由能力,不能实现与普通SRv6 SID的混编。此外,SRm6方案采用类似MPLS的标签分配方式,需根据网络规模规划mSID空间大小,与IPv6地址规划无关联。

为支持SRm6方案,需对控制平面相关协议进行扩展,以实现mSID及其绑定的IPv6接口地址及服务指令等信息在网络中的通告。SRm6方案目前定义了基于IS-IS协议的扩展,主要包含通告CRH能力、通告Prefix SID、通告邻接mSID、通告LAN邻接mSID等方面。

3 SRv6报头压缩技术对比分析

目前,G-SRv6、uSID及SRm6报头压缩方案在对组播、业务链等应用的支持方面,以及OAM与TI-LFA等功能支持方面,都需要进一步完善,才能实现规模部署和应用。然而,业界对SRv6报头压缩方案的争论始终伴随着SRv6技术的发展。G-SRv6、uSID及SRm6报头压缩方案在技术实现上各具优势,3种SRv6报头压缩方案优劣势对比如表1所示。

表1 主要SRv6报头压缩方案对比

在压缩效率方面,G-SRv6方案的压缩效率与Locator Block规划及G-SID长度有关,uSID方案的压缩效率与Locator Block规划及uSID长度有关,而SRm6方案则不受地址规划影响,只与mSID长度相关。上述3种报头压缩方案基于不同的实现原理,难以简单比较各方案压缩效率的优劣,特别是在处理跨域时,受实际部署场景影响较大。

总体而言,兼容SRv6/SRH的G-SRv6压缩方案与uSID方案,更受业界推崇。至于业界在二者中做出何种选择,最终要看产业链的支持情况。

4 部署原则的建议

目前,业界所提出的SRv6报头压缩方案各有侧重。但无论采用哪种方案,都需面向网络与业务部署需求,充分利用现有网络/设备资源,以降低研发/部署成本与难度。因此,SRv6报头压缩方案设计需综合考虑与SRv6/IPv6兼容性、压缩效率及可扩展性等因素,技术部署遵循以下原则。

(1)与SRv6/IPv6兼容性原则

理想的SRv6报头压缩方案需在SRv6基础上演进,兼容SRv6基本实现、SRH格式以及控制平面扩展等,以免报文处理逻辑复杂化。此外,SRv6报头压缩方案应同样支持VPN SID、BSID等各种网络功能的灵活实现。由于SRv6本身兼容IPv6,因此SRv6报头压缩方案需兼容原生IPv6,具备在IPv6网络中的路由能力。兼容性原则是部署SRv6报头压缩方案的关键原则,正是这个原因,业界更看好G-SRv6压缩方案与uSID方案的发展前景。

(2)压缩效率和代价平衡原则

压缩效率是评判SRv6报头压缩方案的核心指标,但同时也需考虑网络规模、硬件实现难度等因素,以达到压缩效率与实现代价的最优化。压缩SID长度是影响压缩效率的关键因素,业界普遍认为16 bit/s、32 bit/s均是当前较为理想的压缩SID长度,考虑与IPv4/MPLS长度一致性及硬件实现难易程度,32 bit/s受到更多推崇。

(3)可扩展性原则

SRv6报头压缩方案需兼容当前IPv6网络地址划分方式,支持灵活的地址规划,并支持跨域压缩互通。此外,SRv6报头压缩方案需具备SRv6灵活可编程的特点,以满足面向未来新业务部署的灵活扩展需求。目前,G-SRv6压缩方案与uSID方案都具有较好的扩展性。

5 结束语

SRv6技术的规模部署正逐渐成为网络发展趋势,采用SRv6报头压缩技术可以降低SRv6技术部署对网络和设备的影响,业界正在探讨多种SRv6报头压缩技术。SRv6报头压缩技术的应用将加速SRv6技术的规模部署,推动IPv6流量的增长,促进下一代互联网的全面发展。将来随着网络设备的更新换代,如何使设备适应SRv6报文的处理,如何提升设备的处理性能将是业界探讨的一个重要方向,但现阶段探讨SRv6报头压缩技术及部署策略仍然具有现实意义。

猜你喜欢

报头报文部署
基于J1939 协议多包报文的时序研究及应用
一种基于Kubernetes的Web应用部署与配置系统
晋城:安排部署 统防统治
CTCS-2级报文数据管理需求分析和实现
部署
城市党报报头:政治与艺术的平衡
浅析反驳类报文要点
部署“萨德”意欲何为?
ATS与列车通信报文分析
淡妆浓抹总相宜
——对中国晚报报头变化的研究与欣赏