CN113726654B - Srv6协议的报文转发方法、装置、电子设备及介质 - Google Patents
Srv6协议的报文转发方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN113726654B CN113726654B CN202110930041.0A CN202110930041A CN113726654B CN 113726654 B CN113726654 B CN 113726654B CN 202110930041 A CN202110930041 A CN 202110930041A CN 113726654 B CN113726654 B CN 113726654B
- Authority
- CN
- China
- Prior art keywords
- sid
- value
- compressed
- srv6
- header
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/34—Source routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种SRV6协议的报文转发方法、装置、电子设备及介质。通过应用本申请的技术方案,可以在I Pv6报文转发过程中,通过在SRH中携带的用于确定下一跳目的地址的S I D属性标识,来从G‑SRV6Contai ner中读取该S I D属性标识所对应的压缩S I D,以使根据该压缩S I D进行外层I Pv6头目的地址字段转发。进而避免相关技术中,只能以数据量过大的S I D进行报文转发所导致的SRH头中携带S I D个数有较大限制的问题。
Description
技术领域
本申请中涉及数据通信技术,尤其是一种SRV6协议的报文转发方法、装置、电子设备及介质。
背景技术
SRv6是一种网络转发技术,其中SRv6是直接在IPv6的IP扩展头中进行新的扩展,这个扩展部分称为SRH(Segment Routing Header)。
进一步的,标准SRv6的128bit Segment ID(分段标识,SID)采用IPv6地址格式的SID,相比MPLS Label格式的SID具备可路由属性,简化域间路径创建,实现在IPv6网络中简化建立端到端路径的能力。同时,SRv6 SID支持可编程能力,能够满足灵活的网络和业务功能处理,结合集中式和分布式控制平面的协同支持,能灵活满足各种业务和网络功能的需求,适应网络和业务发展的需要。
然而,相关技术中的SRv6技术在网络实际部署中,通常会面临由于SID数据量过大所导致的SRH头中携带SID个数有较大限制的问题。
发明内容
本申请实施例提供一种SRV6协议的报文转发方法、装置、电子设备及介质,本申请实施例用于解决相关技术中存在的由于SID数据量过大所导致的报文转发中,SRH头中携带SID个数有较大限制的问题。
其中,根据本申请实施例的一个方面,提供的一种SRV6协议的报文转发方法,其特征在于,包括:
提取IPv6报文SRH头的第一SL值;
基于所述第一SL值,获取所述SRH头中携带的第一SID属性标识,其中每个SID属性标识对应唯一的一个压缩SID;
基于所述第一SID属性标识,读取G-SRV6 Container中存储的第一压缩SID,其中,所述G-SRV6 Container中按地址字段的先后顺序依次存储有各个压缩SID;
将所述第一压缩SID作为所述IPv6报文的目的地址字段并进行转发。
可选地,在基于本申请上述方法的另一个实施例中,所述基于所述第一SL值,获取所述SRH头中携带的第一SID属性标识,包括:
确定所述第一SL值为最大值,获取所述SRH头中携带的128位标准SID,并将所述标准SID作为所述IPv6报文的目的地址字段;或,
确定所述第一SL值为非最大值,基于所述第一SL值,获取所述SRH头中携带的第一SID属性标识。
可选地,在基于本申请上述方法的另一个实施例中,所述基于所述第一SL值,获取所述SRH头中携带的第一SID属性标识,包括:
从所述IPv6报文的SRH头中读取G-SRV6 Header;
从所述G-SRV6 Header中确定所述第一SL值所反映的第一地址字段位,并从所述G-SRV6 Header的第一地址字段位中提取所述第一SID属性标识。
可选地,在基于本申请上述方法的另一个实施例中,所述基于所述第一SID属性标识,读取G-SRV6 Container中存储的第一压缩SID,包括:
从所述IPv6报文的SRH头中读取所述G-SRV6 Container;
在所述G-SRV6 Container中,读取所述第一SID属性标识反映的地址字段位,获取所述第一压缩SID。
可选地,在基于本申请上述方法的另一个实施例中,所述在所述G-SRV6Container中,读取所述第一SID属性标识反映的地址字段位,获取所述第一压缩SID,包括:
获取所述第一SID属性标识所携带的GL值、公共前缀长度以及压缩SID长度,所述压缩SID长度用于表征每个压缩SID所占用的字段长度;
以所述G-SRV6 Container的首个地址字段起,跳过所述公共前缀长度的字段位后,读取所述GL值所对应的第一地址字段位,获取所述第一压缩SID,其中所述第一地址字段位的长度与所述压缩SID长度相同。
可选地,在基于本申请上述方法的另一个实施例中,在所述读取所述GL值所对应的第一地址字段位,获取所述第一压缩SID之后,还包括:
将所述GL值减一;以及,
确定所述减一后的GL值为0时,将所述第一SL值减一。
可选地,在基于本申请上述方法的另一个实施例中,在所述提取IPv6报文SRH头的第一SL值之前,还包括:
检测所述IPv6报文的SRH头中是否存在有flags字段;
如有,确定所述flags字段中的压缩位已经置位。
可选地,在基于本申请上述方法的另一个实施例中,在所述提取IPv6报文SRH头的第一SL值之前,还包括:
在所述IPv6报文SRH头的第0个128的地址字段中添加所述G-SRV6 Header,其中所述G-SRV6 Header中存储有各个SID属性标识;
基于所述第一SL值,获取所述G-SRV6 Header中携带的第一SID属性标识
可选地,在基于本申请上述方法的另一个实施例中,在所述将所述第一压缩SID作为所述IPv6报文的目的地址字段并进行转发之后,还包括:
将所述第一SL值减一,得到第二SL值;以及,
确定所述第二SL值不为0时,获取所述SRH头中携带的第二SID属性标识;
基于所述第二SID属性标识,读取所述G-SRV6 Container中存储的第二压缩SID;
将所述第二压缩SID作为所述IPv6报文的下一个目的地址字段进行转发,并将所述第二SL值减一,得到第三SL值;
直至确定所述第三SL值为0时,确定所述IPv6报文转发完毕。
其中,根据本申请实施例的一个方面,提供的一种SRV6协议的报文转发方法装置,其特征在于,包括:
提取模块,被配置为提取IPv6报文SRH头的第一SL值;
获取模块,被配置为基于所述第一SL值,获取所述SRH头中携带的第一SID属性标识,其中每个SID属性标识对应唯一的一个压缩SID;
读取模块,被配置为基于所述第一SID属性标识,读取G-SRV6 Container中存储的第一压缩SID,其中,所述G-SRV6 Container中按地址字段的先后顺序依次存储有各个压缩SID;
发送模块,被配置为将所述第一压缩SID作为所述IPv6报文的目的地址字段并进行转发。
根据本申请实施例的又一个方面,提供的一种电子设备,包括:
存储器,用于存储可执行指令;以及
显示器,用于与所述存储器显示以执行所述可执行指令从而完成上述任一所述SRV6协议的报文转发方法的操作。
根据本申请实施例的还一个方面,提供的一种计算机可读存储介质,用于存储计算机可读取的指令,所述指令被执行时执行上述任一所述SRV6协议的报文转发方法的操作。
本申请中,可以首先提取IPv6报文SRH头的第一SL值;并基于第一SL值,获取SRH头中携带的第一SID属性标识,其中每个SID属性标识对应唯一的一个压缩SID;再基于第一SID属性标识,读取G-SRV6 Container中存储的第一压缩SID,其中,G-SRV6 Container中按地址字段的先后顺序依次存储有各个压缩SID;最后将第一压缩SID作为所述IPv6报文的目的地址字段并进行转发。通过应用本申请的技术方案,可以在IPv6报文转发过程中,通过在SRH中携带的用于确定下一跳目的地址的SID属性标识,来从G-SRV6 Container中读取该SID属性标识所对应的压缩SID,以使根据该压缩SID进行外层IPv6头目的地址字段转发。进而避免相关技术中,只能以数据量过大的SID进行报文转发所导致的SRH头中携带SID个数有较大限制的问题。
下面通过附图和实施例,对本申请的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本申请的实施例,并且连同描述一起用于解释本申请的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本申请,其中:
图1为本申请提出的一种SRV6协议的报文转发方法示意图;
图2为本申请提出的SRV6协议的报文示意图;
图3为本申请提出的SRV6协议的属性标识组成示意图;
图4为本申请提出的SRV6协议的报文转发流程示意图;
图5为本申请SRV6协议的报文转发方法电子装置的结构示意图;
图6为本申请显示电子设备结构示意图。
具体实施方式
现在将参照附图来详细描述本申请的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本申请的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,不作为对本申请及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
另外,本申请各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
需要说明的是,本申请实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
下面结合图1-图4来描述根据本申请示例性实施方式的用于进行SRV6协议的报文转发方法。需要注意的是,下述应用场景仅是为了便于理解本申请的精神和原理而示出,本申请的实施方式在此方面不受任何限制。相反,本申请的实施方式可以应用于适用的任何场景。
进一步的,本申请还提出一种SRV6协议的报文转发方法、装置、目标终端及介质。
图1示意性地示出了根据本申请实施方式的一种SRV6协议的报文转发方法的流程示意图。如图1所示,该方法包括:
S101,提取IPv6报文SRH头的第一SL值。
其中,相关技术中的SRv6存在一个问题,即在于SRv6 SID 16B的字节宽度。举例来说,例如当IPv6报文需要携带10个SID的时候,只算SID引入的开销就有160B,再结合IPv6协议本身和SRH头本身的开销,总体开销来到208B。可以理解的,当前的网络设备大多数不能够处理超过200B的报文,或者即使能够处理,成本或者功耗也是相当大。因此会面临在IPv6报文转发的过程中,由于SID数据量过大所导致的SRH头中携带SID个数有较大限制的问题。
针对上述问题,本申请可以在IPv6基本头组成中,采用包括通用前缀Prefix和压缩SID的方式来实现。其中,在接收到待转发的IPv6报文之后,可以首先检查其携带的SRH头中存在的第一SL值。其中,如果SL(Segments Left)值占8比特,表示SRH头中所包含的段列表中,该报文还剩下有多少个目的地址待访问和处理。其定义与取值可参考RFC8200。
S102,基于第一SL值,获取SRH头中携带的第一SID属性标识,其中每个SID属性标识对应唯一的一个压缩SID。
可以理解的,如果第一SL值为最大值,则说明IPv6报文的转发为第一跳目的地址,那么在此情况下,为了保证目的地址的完整性。则需要从SRH中拷贝G-SID Container的128位SID到外层ipv6头目的地址字段转发。
另外一种方式中,若第一SL值不为最大值,则说明IPv6报文的转发不为第一跳目的地址,那么在此基础上,本申请即可以根据报文的SL值来确定下一个压缩SID,进而再根据下一个压缩SID来确定下一跳的目的地址,
进一步的,由于报文SRH头中存储有多个压缩SID,而确定哪一个压缩SID为对应于报文下一跳目的地址的SID则成为了关键。由此,本申请可以基于预先在SRH头中配置的唯一对应于各个压缩SID的SID属性标识,来确定对应于报文下一跳目的地址的SID。
举例来说,报文中存在有3个压缩压缩SID,即压缩SID1,压缩SID2,压缩SID3,本申请可以预先为每一个压缩SID建立对应的SID属性标识,也即压缩SID1对应于SID属性标识1,压缩SID2对应于SID属性标识2,而压缩SID3对应于SID属性标识3。
更进一步的,本申请在得到3个分别唯一对应于不同压缩SID的SID属性标识后,即可以将其存储在该IPV6报文SRH头的G-SRV6 Header中。如图2所示,本申请可以通过对标准SRH头扩展一个新的128位G-SRV6 Header。一种方式中,该G-SRV6 Header需要占用SRH头中第0个标准SID位置。
然后,本申请需要在SRH头中的每个128位上的G-SID container中,由每个G-SIDcontainer可以携带一个或者多个压缩的压缩SID。需要说明的是,对于在SRH头中的G-SIDcontainer,其必须包含完整的目的地址字段,也即其为128位。
综上所述,本申请中,在报文的SRH头中的第0个标准SID位置为G-SRV6Header,而该G-SRV6 Header中存储有多个分别唯一对应于不同压缩SID的SID属性标识(即G-SRV6Header中存储有SID属性标识1,SID属性标识2,SID属性标识3)。而报文的SRH头中的其他标准SID位置为G-SID container,而该G-SID container中存储有多个压缩SID(即G-SIDcontainer中存储有压缩SID1,压缩SID2,压缩SID3)。
S103,基于第一SID属性标识,读取G-SRV6 Container中存储的第一压缩SID,其中,G-SRV6 Container中按地址字段的先后顺序依次存储有各个压缩SID。
同样以上述举例进行说明,由于压缩SID1对应于SID属性标识1,压缩SID2对应于SID属性标识2,而压缩SID3对应于SID属性标识3。那么本申请在得到第一SID属性标识(例如为SID属性标识1)之后,即可以根据预先配置的对应关系,确定第一SID属性标识(例如为SID属性标识1)对应的第一压缩SID(也即为压缩SID1)。
可见的,由于各个压缩SID均存储在SRH头中的G-SID container上,因此本申请即可以在确定本次要读取第一压缩SID之后,即可从G-SRV6 Container中读取该第一压缩SID。以使后续将该第一压缩SID拷贝到IPV6报文的外层ipv6头的目的地址字段并进行转发。
S104,将第一压缩SID作为IPv6报文的目的地址字段并进行转发。
本申请中,可以首先提取IPv6报文SRH头的第一SL值;并基于第一SL值,获取SRH头中携带的第一SID属性标识,其中每个SID属性标识对应唯一的一个压缩SID;再基于第一SID属性标识,读取G-SRV6 Container中存储的第一压缩SID,其中,G-SRV6 Container中按地址字段的先后顺序依次存储有各个压缩SID;最后将第一压缩SID作为所述IPv6报文的目的地址字段并进行转发。通过应用本申请的技术方案,可以在IPv6报文转发过程中,通过在SRH中携带的用于确定下一跳目的地址的SID属性标识,来从G-SRV6 Container中读取该SID属性标识所对应的压缩SID,以使根据该压缩SID进行外层IPv6头目的地址字段转发。进而避免相关技术中,只能以数据量过大的SID进行报文转发所导致的SRH头中携带SID个数有较大限制的问题。
可选的,在本申请一种可能的实施方式中,在S102(基于所述第一SL值,获取所述SRH头中携带的第一SID属性标识)中,可以实施下述步骤:
确定所述第一SL值为最大值,获取所述SRH头中携带的128位标准SID,并将标准SID作为所述IPv6报文的目的地址字段;或,
确定所述第一SL值为非最大值,基于所述第一SL值,获取所述SRH头中携带的第一SID属性标识。
进一步的,如果第一SL值为最大值,则说明IPv6报文的转发为第一跳目的地址,那么在此情况下,为了保证目的地址的完整性。则需要从SRH中拷贝G-SID Container的初始128位SID(即标准SID)到外层ipv6头目的地址字段转发。以保证目的地址的完整性。
需要说明的是,标准SID即为非压缩SID,也就是128位组成的IPv6报文的SID。
另外一种方式中,若第一SL值不为最大值,则说明IPv6报文的转发不为第一跳目的地址,那么在此基础上,本申请即可以根据报文的SL值来确定SID属性标识,并由该SID属性标识确定对应于下一个目的地址的压缩SID,进而进行报文转发。
可选的,在本申请一种可能的实施方式中,所述基于所述第一SL值,获取所述SRH头中携带的第一SID属性标识,包括:
从所述IPv6报文的SRH头中读取G-SRV6 Header;
从所述G-SRV6 Header中确定所述第一SL值所反映的第一地址字段位,并从所述G-SRV6 Header的第一地址字段位中提取所述第一SID属性标识。
进一步的,本申请在确定第一SL值不为最大值后,即可以根据报文的第一SL值来确定对应的第一SID属性标识,以使后续由该第一SID属性标识确定对应于下一个目的地址的第一压缩SID。
具体的,对于提取第一SID属性标识来说,可以由从该IPV6报文的SRH头中的第0个标准SID位置为G-SRV6 Header,而该G-SRV6 Header中存储有多个分别唯一对应于不同压缩SID的SID属性标识。因此本申请可以根据第一SL值所反映的第一地址字段位,来从G-SRV6 Header中提取该第一地址字段位中存放的信息(即第一SID属性标识)。
具体的,可以读取G-SRV6 Header中的,(N-SL)*16到(N-SL+1)*16位读取下一个SID属性标识。其中,N为第一SL值的最大值。
其中,如图3所示,一种方式中每个SID属性标识(SID attribute)可以包括:
C位:1bit压缩标记位,用以标识该128位是否是标准SID;
common prefix length(公共前缀长度):7bits压缩类型下common prefix长度,非压缩该字段为128;
coc type(报文属性):压缩类型2bits,00代表非压缩,01代表16位压缩,01代表32位压缩,10代表64位压缩,11预留;
GL(用于索引压缩SID的标识):G-SRV6 Left 3bits,代表该G-SIDcontainer里存在G-SID索引,报文转发过程中会递减该值,减到0时执行SL位减1;
Reserve:保留位。
可选的,在本申请一种可能的实施方式中,所述基于所述第一SID属性标识,读取G-SRV6 Container中存储的第一压缩SID,包括:
从所述IPv6报文的SRH头中读取所述G-SRV6 Container;
在所述G-SRV6 Container中,读取所述第一SID属性标识反映的地址字段位,获取所述第一压缩SID。
可选的,在本申请一种可能的实施方式中,所述在所述G-SRV6 Container中,读取所述第一SID属性标识反映的地址字段位,获取所述第一压缩SID,包括:
获取所述第一SID属性标识所携带的GL值、公共前缀长度以及压缩SID长度,所述压缩SID长度用于表征每个压缩SID所占用的字段长度;
以所述G-SRV6 Container的首个地址字段起,跳过所述公共前缀长度的字段位后,读取所述GL值所对应的第一地址字段位,获取所述第一压缩SID,其中所述第一地址字段位的长度与所述压缩SID长度相同。
将所述GL值减一;以及,
确定所述减一后的GL值为0时,将所述第一SL值减一。
进一步的,本申请在确定第一SID属性标识之后,即可以从IPv6报文的SRH头中读取所述G-SRV6 Container,以使后续从该G-SRV6 Container中读取第一SID属性标识所对应的第一压缩SID。
一种方式中,本申请在得到第一SID属性标识之后,可以首先根据SID属性标识中的C位判断对应的sid是否是压缩的sid,如果C未置位,则拷贝128位SID到外层ipv6头目的地址字段转发,同时SL减一。
另外一种方式中,如果确定第一SID属性标识对应于压缩sid之后,即可以根据GL值、公共前缀长度common prefix length以及压缩SID长度coc type共同决定读取对应的第一压缩SID,以使后续将该压缩SID拷贝到外层ipv6头目的地址字段并转发。
具体的,对于公共前缀长度common prefix length来说,其决定了压缩SID需要拷贝到外层ipv6头目的地址的起始位置。而对于压缩SID长度coc type来说,其决定每个压缩SID所占用的字段长度,同时也是转发需要拷贝到外层ipv6头目的地址字段的长度。
例如,如果coc type为32位的话,则代表每个压缩SID所占用的字段长度为32位。而common prefix length为32位的话,则代表报文的前32为均是冗余的公共前缀。那么也即在G-SRV6 Container中,地址字段的前32为同样也是该冗余的公共前缀。
进一步的,本申请还可以从G-SID Container中读取该第一压缩SID,初始时如果G-SID Container中携带N个G-SID,则GL值为N-1;例如在32位压缩的情况下,最多可以带4个压缩的SID,则GL值最大为3,在某些情况下,可能只存在3个压缩的SID则GL值为2,此时在最高为预留一个G-SID位置,填充为0。
具体的,比如当前是32位压缩,GL值为L,则从G-SID Container中GL*32位开始拷贝32位外层ipv6头目的地址中common prefix length位的位置,同时GL值减一;当GL值不为0时根据GL值执行压缩转发,当GL值减到0时,执行SL减一。
可选的,例如对于128位字段长度的G-SID Container来说,公共前缀长度commonprefix length为8位字段,每个压缩SID所占用的字段长度为32位,GL值最大为3,以下进行举例说明如何在G-SRV6 Container中获取压缩SID-1:
首先,对于G-SID Container来说其为128位字段长度,那么首先需要在该字段长度下,从第1位开始,跳过公共前缀长度的长度(即前8位),换言之,本申请需要在G-SIDContainer中的第9字段位-128字段位中寻找压缩SID-1。进一步的,当GL值为3(即最大值)时,说明本次为首次读取压缩SID,且由于每个压缩SID所占用的字段长度为32位,那么本次获取压缩SID-1的方式即可以为从G-SID Container中的第9字段位起,直至第41字段位中(即9+32)中提取对应存储的压缩SID-1,并在提取成功过后,将GL值减一。
再进一步的,当需要读取压缩SID-2时,本申请即可以从G-SID Container中的第42字段位起,直至第74字段位中(即42+32)中提取对应存储的压缩SID-1,并在提取成功过后,再将GL值减一。。直至GL为最小值时则确定所有的压缩SID均被获取完毕。
可选的,在本申请一种可能的实施方式中,在所述提取IPv6报文SRH头的第一SL值之前,还包括:
检测所述IPv6报文的SRH头中是否存在有flags字段;
如有,确定所述flags字段中的压缩位已经置位。
可选的,在本申请一种可能的实施方式中,在所述提取IPv6报文SRH头的第一SL值之前,还包括:
在所述IPv6报文SRH头的第0个128的地址字段中添加所述G-SRV6 Header,其中所述G-SRV6 Header中存储有各个SID属性标识;
基于所述第一SL值,获取所述G-SRV6 Header中携带的第一SID属性标识。
进一步的,本申请可以通过对标准SRH头扩展一个新的128位G-SRV6Header。一种方式中,该G-SRV6 Header需要占用SRH头中第0个标准SID位置。另外本申请还需要在SRH头中一个flags(标识符)字段,添加G bit位。如图所示,该SRH头中第0个128位的位置为G-SRV6 Header,第2个128位的位置起为G-SRV6 Container。
进一步的,对于G-SRV6 Header来说,其占用一个128位标准SID空间,其中一个G-SRV6 Header中可以携带最多8个SID属性标识,每个SID属性标识占用16位空间用于标识SRH中G-SID container中携带的压缩SID的标识信息。
可选的,在本申请一种可能的实施方式中,在所述将所述第一压缩SID作为所述IPv6报文的目的地址字段并进行转发之后,还包括:
将所述第一SL值减一,得到第二SL值;以及,
确定所述第二SL值不为0时,获取所述SRH头中携带的第二SID属性标识;
基于所述第二SID属性标识,读取所述G-SRV6 Container中存储的第二压缩SID;
将所述第二压缩SID作为所述IPv6报文的下一个目的地址字段进行转发,并将所述第二SL值减一,得到第三SL值;
直至确定所述第三SL值为0时,确定所述IPv6报文转发完毕。
进一步的,本申请还可以从G-SID Container中读取该第一压缩SID,初始时如果G-SID Container中携带N个G-SID,则GL值为N-1;例如在32位压缩的情况下,最多可以带4个压缩的SID,则GL值最大为3,在某些情况下,可能只存在3个压缩的SID则GL值为2,此时在最高为预留一个G-SID位置,填充为0。
举例来说,比如当前是32位压缩,GL值为L,则从G-SID Container中GL*32位开始拷贝32位外层ipv6头目的地址中common prefix length位的位置,同时GL值减一;当GL值不为0时根据GL值执行压缩转发,当GL值减到0时,执行SL减一(得到第二SL值。。。第三SL值等等)。直至SL值归零时,确定IPv6报文转发完毕。
进一步可选的,图4示意性地示出了根据本申请实施方式的一种SRV6协议的报文转发方法的流程示意图,包括:
首先需要提取IPv6报文SRH头的第一SL值;并基于第一SL值,获取SRH头中携带的第一SID属性标识,其中每个SID属性标识对应唯一的一个压缩SID;再基于第一SID属性标识,读取G-SRV6 Container中存储的第一压缩SID,其中,G-SRV6 Container中按地址字段的先后顺序依次存储有各个压缩SID;最后将第一压缩SID作为所述IPv6报文的目的地址字段并进行转发。
通过应用本申请的技术方案,可以在IPv6报文转发过程中,通过在SRH中携带的用于确定下一跳目的地址的SID属性标识,来从G-SRV6 Container中读取该SID属性标识所对应的压缩SID,以使根据该压缩SID进行外层IPv6头目的地址字段转发。进而避免相关技术中,只能以数据量过大的SID进行报文转发所导致的SRH头中携带SID个数有较大限制的问题。
在本申请的另外一种实施方式中,如图5所示,本申请还提供一种SRV6协议的报文转发方法装置。其中,该装置包括:
提取模块201,被配置为提取IPv6报文SRH头的第一SL值;
获取模块202,被配置为基于所述第一SL值,获取所述SRH头中携带的第一SID属性标识,其中每个SID属性标识对应唯一的一个压缩SID;
读取模块203,被配置为基于所述第一SID属性标识,读取G-SRV6 Container中存储的第一压缩SID,其中,所述G-SRV6 Container中按地址字段的先后顺序依次存储有各个压缩SID;
发送模块204,被配置为将所述第一压缩SID作为所述IPv6报文的目的地址字段并进行转发。
本申请中,可以首先提取IPv6报文SRH头的第一SL值;并基于第一SL值,获取SRH头中携带的第一SID属性标识,其中每个SID属性标识对应唯一的一个压缩SID;再基于第一SID属性标识,读取G-SRV6 Container中存储的第一压缩SID,其中,G-SRV6 Container中按地址字段的先后顺序依次存储有各个压缩SID;最后将第一压缩SID作为所述IPv6报文的目的地址字段并进行转发。通过应用本申请的技术方案,可以在IPv6报文转发过程中,通过在SRH中携带的用于确定下一跳目的地址的SID属性标识,来从G-SRV6 Container中读取该SID属性标识所对应的压缩SID,以使根据该压缩SID进行外层IPv6头目的地址字段转发。进而避免相关技术中,只能以数据量过大的SID进行报文转发所导致的SRH头中携带SID个数有较大限制的问题。
在本申请的另一种实施方式中,提取模块201,还包括:
提取模块201,被配置为确定所述第一SL值为最大值,获取所述SRH头中携带的128位标准SID,并将所述标准SID作为所述IPv6报文的目的地址字段;或,
提取模块201,被配置为确定所述第一SL值为非最大值,基于所述第一SL值,获取所述SRH头中携带的第一SID属性标识。
在本申请的另一种实施方式中,提取模块201,还包括:
提取模块201,被配置为从所述IPv6报文的SRH头中读取G-SRV6 Header;
提取模块201,被配置为从所述G-SRV6 Header中确定所述第一SL值所反映的第一地址字段位,并从所述G-SRV6 Header的第一地址字段位中提取所述第一SID属性标识。
在本申请的另一种实施方式中,提取模块201,还包括:
提取模块201,被配置为从所述IPv6报文的SRH头中读取所述G-SRV6Container;
提取模块201,被配置为在所述G-SRV6 Container中,读取所述第一SID属性标识反映的地址字段位,获取所述第一压缩SID。
在本申请的另一种实施方式中,提取模块201,还包括:
提取模块201,被配置为获取所述第一SID属性标识所携带的GL值、公共前缀长度以及压缩SID长度,所述压缩SID长度用于表征每个压缩SID所占用的字段长度;
提取模块201,被配置为以所述G-SRV6 Container的首个地址字段起,跳过所述公共前缀长度的字段位后,读取所述GL值所对应的第一地址字段位,获取所述第一压缩SID,其中所述第一地址字段位的长度与所述压缩SID长度相同。
在本申请的另一种实施方式中,提取模块201,还包括:
提取模块201,被配置为将所述GL值减一;以及,
提取模块201,被配置为确定所述减一后的GL值为0时,将所述第一SL值减一。
在本申请的另一种实施方式中,提取模块201,还包括:
提取模块201,被配置为检测所述IPv6报文的SRH头中是否存在有flags字段;
提取模块201,被配置为如有,确定所述flags字段中的压缩位已经置位。
在本申请的另一种实施方式中,提取模块201,还包括:
提取模块201,被配置为在所述IPv6报文SRH头的第0个128的地址字段中添加所述G-SRV6 Header,其中所述G-SRV6 Header中存储有各个SID属性标识;
提取模块201,被配置为基于所述第一SL值,获取所述G-SRV6 Header中携带的第一SID属性标识
在本申请的另一种实施方式中,提取模块201,还包括:
提取模块201,被配置为将所述第一SL值减一,得到第二SL值;以及,
提取模块201,被配置为确定所述第二SL值不为0时,获取所述SRH头中携带的第二SID属性标识;
提取模块201,被配置为基于所述第二SID属性标识,读取所述G-SRV6Container中存储的第二压缩SID;
提取模块201,被配置为将所述第二压缩SID作为所述IPv6报文的下一个目的地址字段进行转发,并将所述第二SL值减一,得到第三SL值;
提取模块201,被配置为直至确定所述第三SL值为0时,确定所述IPv6报文转发完毕。
图6是根据一示例性实施例示出的一种电子设备的逻辑结构框图。例如,电子设备300可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由电子设备处理器执行以完成上述网络监控的方法,该方法包括:提取IPv6报文SRH头的第一SL值;基于所述第一SL值,获取所述SRH头中携带的第一SID属性标识,其中每个SID属性标识对应唯一的一个压缩SID;基于所述第一SID属性标识,读取G-SRV6 Container中存储的第一压缩SID,其中,所述G-SRV6 Container中按地址字段的先后顺序依次存储有各个压缩SID;将所述第一压缩SID作为所述IPv6报文的目的地址字段并进行转发。可选地,上述指令还可以由电子设备的处理器执行以完成上述示例性实施例中所涉及的其他步骤。例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种应用程序/计算机程序产品,包括一条或多条指令,该一条或多条指令可以由电子设备的处理器执行,以完成上述网络监控的方法,该方法包括:提取IPv6报文SRH头的第一SL值;基于所述第一SL值,获取所述SRH头中携带的第一SID属性标识,其中每个SID属性标识对应唯一的一个压缩SID;基于所述第一SID属性标识,读取G-SRV6 Container中存储的第一压缩SID,其中,所述G-SRV6 Container中按地址字段的先后顺序依次存储有各个压缩SID;将所述第一压缩SID作为所述IPv6报文的目的地址字段并进行转发。可选地,上述指令还可以由电子设备的处理器执行以完成上述示例性实施例中所涉及的其他步骤。
图6为计算机设备30的示例图。本领域技术人员可以理解,示意图6仅仅是计算机设备30的示例,并不构成对计算机设备30的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算机设备30还可以包括输入输出设备、网络接入设备、总线等。
所称处理器302可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器302也可以是任何常规的处理器等,处理器302是计算机设备30的控制中心,利用各种接口和线路连接整个计算机设备30的各个部分。
存储器301可用于存储计算机可读指令303,处理器302通过运行或执行存储在存储器301内的计算机可读指令或模块,以及调用存储在存储器301内的数据,实现计算机设备30的各种功能。存储器301可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备30的使用所创建的数据等。此外,存储器301可以包括硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)或其他非易失性/易失性存储器件。
计算机设备30集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机可读指令来指令相关的硬件来完成,的计算机可读指令可存储于一计算机可读存储介质中,该计算机可读指令在被处理器执行时,可实现上述各个方法实施例的步骤。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (11)
1.一种SRV6协议的报文转发方法,其特征在于,包括:
提取IPv6报文SRH头的第一SL值;
基于所述第一SL值,获取所述SRH头中携带的第一SID属性标识,其中每个SID属性标识对应唯一的一个压缩SID;
基于所述第一SID属性标识,读取G-SRV6 Container中存储的第一压缩SID,其中,所述G-SRV6 Container中按地址字段的先后顺序依次存储有各个压缩SID;
将所述第一压缩SID作为所述IPv6报文的目的地址字段并进行转发;
其中,在所述将所述第一压缩SID作为所述IPv6报文的目的地址字段并进行转发之后,还包括:
将所述第一SL值减一,得到第二SL值;以及,
确定所述第二SL值不为0时,获取所述SRH头中携带的第二SID属性标识;
基于所述第二SID属性标识,读取所述G-SRV6 Container中存储的第二压缩SID;
将所述第二压缩SID作为所述IPv6报文的下一个目的地址字段进行转发,并将所述第二SL值减一,得到第三SL值;
直至确定所述第三SL值为0时,确定所述IPv6报文转发完毕。
2.如权利要求1所述的方法,其特征在于,所述基于所述第一SL值,获取所述SRH头中携带的第一SID属性标识,包括:
确定所述第一SL值为最大值,获取所述SRH头中携带的128位标准SID,并将所述标准SID作为所述IPv6报文的目的地址字段;或,
确定所述第一SL值为非最大值,基于所述第一SL值,获取所述SRH头中携带的第一SID属性标识。
3.如权利要求1或2所述的方法,其特征在于,所述基于所述第一SL值,获取所述SRH头中携带的第一SID属性标识,包括:
从所述IPv6报文的SRH头中读取G-SRV6 Header;
从所述G-SRV6 Header中确定所述第一SL值所反映的第一地址字段位,并从所述G-SRV6 Header的第一地址字段位中提取所述第一SID属性标识。
4.如权利要求1所述的方法,其特征在于,所述基于所述第一SID属性标识,读取G-SRV6Container中存储的第一压缩SID,包括:
从所述IPv6报文的SRH头中读取所述G-SRV6 Container;
在所述G-SRV6 Container中,读取所述第一SID属性标识反映的地址字段位,获取所述第一压缩SID。
5.如权利要求4所述的方法,其特征在于,所述在所述G-SRV6 Container中,读取所述第一SID属性标识反映的地址字段位,获取所述第一压缩SID,包括:
获取所述第一SID属性标识所携带的GL值、公共前缀长度以及压缩SID长度,所述压缩SID长度用于表征每个压缩SID所占用的字段长度;
以所述G-SRV6 Container的首个地址字段起,跳过所述公共前缀长度的字段位后,读取所述GL值所对应的第一地址字段位,获取所述第一压缩SID,其中所述第一地址字段位的长度与所述压缩SID长度相同。
6.如权利要求5所述的方法,其特征在于,在所述读取所述GL值所对应的第一地址字段位,获取所述第一压缩SID之后,还包括:
将所述GL值减一;以及,
确定所述减一后的GL值为0时,将所述第一SL值减一。
7.如权利要求1所述的方法,其特征在于,在所述提取IPv6报文SRH头的第一SL值之前,还包括:
检测所述IPv6报文的SRH头中是否存在有flags字段;
如有,确定所述flags字段中的压缩位已经置位。
8.如权利要求1或7所述的方法,其特征在于,在所述提取IPv6报文SRH头的第一SL值之前,还包括:
在所述IPv6报文SRH头的第0个128的地址字段中添加G-SRV6 Header,其中所述G-SRV6Header中存储有各个SID属性标识;
基于所述第一SL值,获取所述G-SRV6 Header中携带的第一SID属性标识。
9.一种SRV6协议的报文转发方法装置,其特征在于,包括:
提取模块,被配置为提取IPv6报文SRH头的第一SL值;
获取模块,被配置为基于所述第一SL值,获取所述SRH头中携带的第一SID属性标识,其中每个SID属性标识对应唯一的一个压缩SID;
读取模块,被配置为基于所述第一SID属性标识,读取G-SRV6 Container中存储的第一压缩SID,其中,所述G-SRV6 Container中按地址字段的先后顺序依次存储有各个压缩SID;
发送模块,被配置为将所述第一压缩SID作为所述IPv6报文的目的地址字段并进行转发;
其中,在所述将所述第一压缩SID作为所述IPv6报文的目的地址字段并进行转发之后,还包括:
将所述第一SL值减一,得到第二SL值;以及,
确定所述第二SL值不为0时,获取所述SRH头中携带的第二SID属性标识;
基于所述第二SID属性标识,读取所述G-SRV6 Container中存储的第二压缩SID;
将所述第二压缩SID作为所述IPv6报文的下一个目的地址字段进行转发,并将所述第二SL值减一,得到第三SL值;
直至确定所述第三SL值为0时,确定所述IPv6报文转发完毕。
10.一种电子设备,其特征在于,包括:
存储器,用于存储可执行指令;以及,
处理器,用于与所述存储器连接以执行所述可执行指令从而完成权利要求1-8中任一所述SRV6协议的报文转发方法的操作。
11.一种计算机可读存储介质,用于存储计算机可读取的指令,其特征在于,所述指令被执行时执行权利要求1-8中任一所述SRV6协议的报文转发方法的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110930041.0A CN113726654B (zh) | 2021-08-13 | 2021-08-13 | Srv6协议的报文转发方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110930041.0A CN113726654B (zh) | 2021-08-13 | 2021-08-13 | Srv6协议的报文转发方法、装置、电子设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113726654A CN113726654A (zh) | 2021-11-30 |
CN113726654B true CN113726654B (zh) | 2023-05-26 |
Family
ID=78675820
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110930041.0A Active CN113726654B (zh) | 2021-08-13 | 2021-08-13 | Srv6协议的报文转发方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113726654B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115037676B (zh) * | 2022-03-18 | 2023-06-09 | 烽火通信科技股份有限公司 | 一种支持可压缩的g-srv6中间节点保护的方法和装置 |
CN115022415B (zh) * | 2022-05-23 | 2023-08-25 | 烽火通信科技股份有限公司 | 一种多层sid报文终结方法及装置 |
CN117176632A (zh) * | 2022-05-28 | 2023-12-05 | 华为技术有限公司 | 报文接收方法、发送方法、转发方法、装置及系统 |
CN117643037A (zh) * | 2022-06-28 | 2024-03-01 | 新华三技术有限公司 | 报文发送 |
CN115277530B (zh) * | 2022-07-20 | 2024-04-26 | 杭州安恒信息技术股份有限公司 | 基于SRv6协议的数据处理方法、装置、设备及介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113132229A (zh) * | 2019-12-30 | 2021-07-16 | 华为技术有限公司 | 段标识的确定方法和设备 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10635480B2 (en) * | 2018-04-04 | 2020-04-28 | Cisco Technology, Inc. | Zero-loss workload mobility with segment routing for virtual machines |
CN111917640B (zh) * | 2019-05-09 | 2023-06-06 | 华为技术有限公司 | SRv6网络生成段列表、报文转发的方法、设备和系统 |
US11140074B2 (en) * | 2019-09-24 | 2021-10-05 | Cisco Technology, Inc. | Communicating packets across multi-domain networks using compact forwarding instructions |
CN111107051A (zh) * | 2019-11-01 | 2020-05-05 | 京信通信系统(中国)有限公司 | 报文传输方法、装置、计算机设备和存储介质 |
CN112511428A (zh) * | 2020-03-10 | 2021-03-16 | 中兴通讯股份有限公司 | 报文封装方法、报文转发方法、通告方法、电子设备、和存储介质 |
CN111541613B (zh) * | 2020-04-27 | 2022-03-22 | 鹏城实验室 | 一种基于SRv6的数据处理方法及相关设备 |
CN111628995B (zh) * | 2020-05-26 | 2023-06-16 | 新华三信息安全技术有限公司 | 基于SRv6的SID压缩方法、装置、设备及存储介质 |
CN112491708A (zh) * | 2020-10-15 | 2021-03-12 | 中兴通讯股份有限公司 | IPv6报文的路由头封装方法及装置 |
CN112738116B (zh) * | 2020-12-31 | 2022-08-26 | 苏州盛科通信股份有限公司 | 基于srv6协议的sid压缩方法和装置 |
CN112804148A (zh) * | 2021-03-24 | 2021-05-14 | 新华三信息安全技术有限公司 | 一种报文转发方法及装置 |
-
2021
- 2021-08-13 CN CN202110930041.0A patent/CN113726654B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113132229A (zh) * | 2019-12-30 | 2021-07-16 | 华为技术有限公司 | 段标识的确定方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113726654A (zh) | 2021-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113726654B (zh) | Srv6协议的报文转发方法、装置、电子设备及介质 | |
EP3958519A1 (en) | Methods for generating segment identification list and packet forwarding in srv6 network, apparatus, and system | |
EP4020909B1 (en) | Method for forwarding message in sr network, device, and system | |
CN112787927B (zh) | 一种分段路由报文转发方法、装置及预设逻辑电路单元 | |
CN111510386B (zh) | 用于处理报文的方法和装置 | |
JP7448597B2 (ja) | メッセージ生成方法および装置ならびにメッセージ処理方法および装置 | |
CN111049947B (zh) | 报文转发方法及装置、电子设备、存储介质 | |
CN114666259A (zh) | 报文传输的方法、装置、设备、存储介质及系统 | |
JP2021114767A5 (zh) | ||
CN115277553B (zh) | 一种流表存储方法、装置、设备和计算机可读存储介质 | |
CN113973074B (zh) | 一种报文处理方法、装置、电子设备及介质 | |
CN108737347B (zh) | 数据通信方法、装置及其设备 | |
CN111865751B (zh) | 集中式网关部署方法、装置、集中式网关及电子设备 | |
CN113992558B (zh) | 路由发布的方法、装置、电子设备及介质 | |
CN113765794B (zh) | 数据发送的方法、装置、电子设备及介质 | |
CN113242180B (zh) | 报文转发方法、装置、设备、可读存储介质及程序产品 | |
EP4451626A1 (en) | Vxlan packet transmission method, network device, and system | |
CN117061480A (zh) | 一种地址生成方法、装置及电子设备 | |
CN116827860A (zh) | 一种SRv6报文传输方法、装置、节点以及存储介质 | |
CN117278467A (zh) | 报文转发方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |