CN112019433A - 一种报文转发方法和装置 - Google Patents
一种报文转发方法和装置 Download PDFInfo
- Publication number
- CN112019433A CN112019433A CN201910457877.6A CN201910457877A CN112019433A CN 112019433 A CN112019433 A CN 112019433A CN 201910457877 A CN201910457877 A CN 201910457877A CN 112019433 A CN112019433 A CN 112019433A
- Authority
- CN
- China
- Prior art keywords
- node
- message
- ipv4 address
- header
- srv4
- 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.)
- Granted
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
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种报文转发方法和装置,包括:隧道的入节点生成数据报文,该中数据报文包括SRv4报文头,该SRv4报文头包括至少一个IPv4地址,用于指示网络节点基于至少一个IPv4地址转发数据报文;至少一个IPv4地址包括隧道的出节点的IPv4地址;入节点向网络节点发送数据报文。这样,通过在数据报文中封装包括至少一个IPv4地址的SRv4报文头,使得该数据报文按照SRv4报文头中的至少一个IPv4地址在网络中转发,无需再进行复杂的协议扩展以及配置,简化了报文转发过程,而且,无需封装占用较大空间的IPv6地址,换而封装占用空间较小的IPv4地址,提高了封装效率,从而提高了报文的转发效率。
Description
技术领域
本申请涉及通信技术领域,特别是涉及一种报文转发方法和装置。
背景技术
随着业务的快速发展,分段路由(英文:Segment Routing,简称:SR)技术被提出。SR是基于源路由机制而设计的在网络上转发报文的一种协议,具体实现时,SR技术需要将网络中的路径分成多个段,并且为这些段和网络中的节点分配段标识(英文:SegmentIdentification,简称:SID),通过对SID进行有序排列,得到该网络中的一条报文转发路径。
目前,SR技术可以部署在多协议标签交换(英文:Multi-Protocol LabelSwitching,简称:MPLS)和第六版互联网协议(英文:Internet Protocol Version 6,简称IPv6)这两个数据平面上,分别称为SR-MPLS和SRv6。其中,SR-MPLS中,需要对内部网关协议(英文:Interior Gateway Protocol,简称:IGP)进行复杂的扩展,不利于广泛被推广应用;而SRv6中,由于需要在报文中插入一个分段路由扩展头(英文:Segment Routing Header,简称:SRH),且该SRH需要封装128bit的IPv6地址,占用报文中较大的空间,封装效率较低,从而影响报文的转发效率。
基于此,亟待提供一种转发效率较高的报文转发方式,以确保网络基于该转发方式可以高效地转发报文。
发明内容
基于此,本申请实施例提供了一种报文转发方法和装置,通过将SR技术部署在第四版互联网协议(英文:Internet Protocol Version 4,简称IPv4)这一数据平面上,在数据报文中封装至少包括一个IPv4地址的IPv4段路由(英文:IPv4Segment Routing,简称:SRv4)报文头,使得数据报文按照SRv4报文头中的至少一个IPv4地址即可完成转发,不仅简化了报文转发过程,而且由于IPv4地址占用空间较小,提高了封装效率,从而提高了报文的转发效率。
第一方面,本申请实施例提供了一种报文转发方法,包括:隧道的入节点生成数据报文,数据报文包括基于第四版互联网协议IPv4分段路由SR的SRv4报文头,SRv4报文头包括至少一个IPv4地址,用于指示网络节点基于至少一个IPv4地址转发数据报文;至少一个IPv4地址包括隧道的出节点的IPv4地址;入节点向网络节点发送数据报文。其中,该入节点生成的数据报文中包括指示信息,该指示信息指示该数据报文中携带有SRv4报文头。这样,通过将SR技术部署在IPv4这一数据平面上,即,在数据报文中封装至少包括一个IPv4地址的SRv4报文头,使得该数据报文可以按照SRv4报文头中的至少一个IPv4地址在网络中完成转发,无需再进行复杂的协议扩展以及配置,简化了报文转发过程,而且,无需封装占用较大空间的IPv6地址,换而封装占用空间较小的IPv4地址,提高了封装效率,从而提高了报文的转发效率。
结合第一方面的一种具体的实现方式,该数据报文中包括多协议标签交换MPLS扩展头,该数据报文中的指示信息可以被承载于MPLS扩展头中。这样,该隧道中的网络节点即可通过读MPLS扩展头确定该数据报文中包括SRv4报文头,从而根据SRv4报文头中的至少一个IPv4地址向隧道出节点转发该数据报文。
结合第一方面的另一种具体的实现方式,该数据报文中的指示信息也可以为MPLS标签。其中,一种情况下,该MPLS标签可以为全局标签,即,每个节点均可以识别出该MPLS标签,确定该数据报文中包括SRv4报文头;另一种情况下,该MPLS标签也可以是局部标签,那么,在隧道的入节点生成数据报文之前,本申请实施例提供的方法还可以包括:入节点接收邻居节点发送的第一消息,第一消息携带MPLS标签,这样,入节点在接收到报文的报文头中按照第一消息,封装该MPLS类型的SRv4标签,则,在该入节点的邻居节点接收到该封装后的报文后,可以基于该报文的报文头中封装的SRv4标签,识别出该报文的报文头中携带有SRv4报文头。可见,该隧道中的网络节点即可通过读MPLS标签确定该数据报文中包括SRv4报文头,从而根据SRv4报文头中的至少一个IPv4地址向隧道出节点转发该数据报文
结合第一方面的再一种具体的实现方式,若SRv4报文头中的至少一个IPv4地址中依次包括第一节点对应的第一IPv4地址和第二节点对应的第二IPv4地址,那么,入节点向网络节点发送数据报文,具体实现时可以包括:入节点基于第一IPv4地址,向第一节点发送数据报文;以便第一节点接收到数据报文后,基于第二IPv4地址继续向第二节点发送数据报文。这样,该数据报文即可在隧道中被各个节点基于数据报文中的SRv4报文头,进行有序、高效的转发。
对于第一方面的所有可能的实现方式,SRv4报文头中还可以包括至少一个元数据Metadata,用于提供交换上下文信息的能力。
第二方面,本申请实施例还提供了一种报文转发方法,包括:隧道的中间节点接收第一数据报文,该第一数据报文中包括第一报文头,第一报文头为SRv4报文头,SRv4报文头包括至少一个IPv4地址,至少一个IPv4地址包括隧道的出节点的IPv4地址;中间节点根据至少一个IPv4地址,向出节点发送第一数据报文。这样,通过将SR技术部署在IPv4这一数据平面上,即,在第一数据报文中封装至少包括一个IPv4地址的SRv4报文头,使得该第一数据报文可以按照SRv4报文头中的至少一个IPv4地址在网络中完成转发,无需再进行复杂的协议扩展以及配置,简化了报文转发过程,而且,无需封装占用较大空间的IPv6地址,换而封装占用空间较小的IPv4地址,提高了封装效率,从而提高了报文的转发效率。
结合第二方面的一种具体的实现方式,对于跨域的场景而言,中间节点可以为跨第一域和第二域的跨域节点,第一域为SRv4域;那么,中间节点根据至少一个IPv4地址,向出节点发送第一数据报文,具体可以包括:跨域节点将第一数据报文进行处理,得到第二数据报文,第二数据报文包括第二报文头;跨域节点通过第二域向出节点发送第二数据报文。其中,该第二报文头中可以包括至少一个多协议标签交换MPLS标签。作为一个示例,该第二域可以为标签分发协议LDP域,那么,至少一个MPLS标签可以是基于LDP分发的MPLS标签;作为另一个示例,第二域可以为基于MPLS分段路由SR的SR-MPLS域,那么,该至少一个MPLS标签可以是SR标签,即,段标识(英文:Segment ID,简称:SID)。这样,利用本申请实施例提供的报文转发方法,通过跨域节点对数据报文中封装内的报文头根据跨域情况进行类型的转换,即可实现在数据报文在不同域的转发,无需再进行复杂的协议扩展以及配置,简化了报文转发过程,从而提高了报文的转发效率
结合第二方面的另一种具体的实现方式,对于业务链(英文:Service FunctionChaining,简称:SFC)场景而言,中间节点具体可以是业务转发器(英文:Service ForwardFunction,简称:SFF)或业务功能(英文:Service Function,简称:SF)节点。
对于第二方面的所有实现方式,该SRv4报文头中还可以包括至少一个元数据Metadata,用于提供交换上下文信息的能力。
第三方面,本申请实施例还提供了一种报文转发装置,应用于隧道的入节点,该装置包括:处理单元和发送单元。其中,处理单元,用于生成数据报文,数据报文包括基于第四版互联网协议IPv4分段路由SR的SRv4报文头,SRv4报文头包括至少一个IPv4地址,用于指示网络节点基于至少一个IPv4地址转发数据报文;至少一个IPv4地址包括隧道的出节点的IPv4地址;发送单元,用于向网络节点发送数据报文。
结合第三方面的一种具体的实现方式,数据报文中包括指示信息,指示信息指示数据报文中携带有SRv4报文头。一种情况下,数据报文中包括多协议标签交换MPLS扩展头,该MPLS扩展头中承载指示信息。另一种情况下,该指示信息也可以为MPLS标签,其中,该MPLS标签可以为全局标签;也可以是局部标签,此时,本实施例具体还可以包括:接收单元,用于在生成数据报文之前,接收邻居节点发送的第一消息,第一消息携带MPLS标签。
结合第三方面的再一种具体的实现方式,若该至少一个IPv4地址中依次包括第一节点对应的第一IPv4地址和第二节点对应的第二IPv4地址,那么,上述发送单元,具体可以用于:基于第一IPv4地址,向第一节点发送数据报文;以便第一节点接收到数据报文后,基于第二IPv4地址继续向第二节点发送数据报文。
对于第三方面的所有实现方式,该SRv4报文头中还可以包括至少一个元数据Metadata,用于提供交换上下文信息的能力。
可以理解的是,第三方面提供的报文转发装置,对应于第一方面提供的报文转发方法,故第三方面提供的报文转发装置的各种可能的实现方式的技术效果,可以参照前述第一方面提供的报文转发方法的介绍。
第四方面,本申请实施例还提供了一种报文转发装置,应用于隧道的中间节点,包括:接收单元和发送单元。其中,接收单元,用于接收第一数据报文,第一数据报文中包括第一报文头,第一报文头为基于第四版互联网协议IPv4分段路由SR的SRv4报文头,SRv4报文头包括至少一个IPv4地址;至少一个IPv4地址包括隧道的出节点的IPv4地址;发送单元,用于根据至少一个IPv4地址,向出节点发送第一数据报文。
结合第四方面的一种具体的实现方式,对于跨域的场景而言,中间节点可以为跨第一域和第二域的跨域节点,第一域为SRv4域;那么,该装置还包括:处理单元,该处理单元,用于将第一数据报文进行处理,得到第二数据报文,第二数据报文包括第二报文头;此时,该发送单元,具体用于通过第二域向出节点发送第二数据报文。作为一个示例,该第二报文头中包括至少一个多协议标签交换MPLS标签,在该示例中,一种情况下,第二域为标签分发协议LDP域,至少一个MPLS标签为基于LDP分发的MPLS标签;另一种情况下,第二域为基于MPLS分段路由SR的SR-MPLS域,至少一个MPLS标签为SR标签。
结合第四方面的另一种具体的实现方式,对于SFC场景而言,中间节点为SFF或SF节点。
对于第四方面的所有实现方式,该SRv4报文头中还可以包括至少一个元数据Metadata,用于提供交换上下文信息的能力。
可以理解的是,第四方面提供的报文转发装置,对应于第二方面提供的报文转发方法,故第四方面提供的报文转发装置的各种可能的实现方式的技术效果,可以参照前述第二方面提供的报文转发方法的介绍。
第五方面,本申请实施例还提供了一种通信方法,该通信方法包括:前述第一方面任意一种实现方式所述的报文转发方法,以及,前述第二方面任意一种实现方式所述的报文转发方法。
第六方面,本申请实施例还提供了一种通信系统,该通信系统包括:前述第三方面任意一种实现方式所述的报文转发装置,以及,前述第四方面任意一种实现方式所述的报文转发装置。
第七方面,本申请实施例还提供了一种网络设备,该网络设备包括前述第三方面或第四方面任意一种实现方式所述的报文转发装置。
第八方面,本申请实施例还提供了一种网络设备,该网络设备包括存储器和处理器;其中,存储器用于存储程序代码;所述处理器用于运行所述程序代码中的指令,使得所述网络设备执行前述第一方面中任意一种可能的实现方式中所述的报文转发方法或前述第二方面中任意一种可能的实现方式中所述的报文转发方法。
第九方面,本申请实施例还提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行前述第一方面中任意一种实现方式所述的报文转发方法或前述第二方面任意一种实现方式所述的报文转发方法。
第十方面,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得该计算机执行前述第一方面中任意一种可能的实现方式中所述的报文转发方法或前述第二方面中任意一种可能的实现方式中所述的报文转发方法。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一应用场景所涉及的网络系统框架示意图;
图2为本申请实施例中一种报文转发方法的流程示意图;
图3为本申请实施例中一种MPLS扩展头的结构示意图;
图4为本申请实施例中一种数据报文的具体封装格式的结构示意图;
图5为本申请实施例中图4对应的SRv4报文头格式的结构示意图;
图6为本申请实施例中一种SR-BE场景的报文转发流程的示意图;
图7为本申请实施例中一种SR-TE场景的报文转发流程的示意图;
图8为图7对应场景各节点上MPLS扩展头格式的示意图;
图9为本申请实施例中一种跨域场景的报文转发流程的示意图;
图10为图9对应场景中R2节点上转换标签的示意图;
图11为本申请实施例中一种SFC场景的报文转发流程的示意图;
图12为本申请实施例中一种MPLS扩展头的结构示意图;
图13为本申请实施例中另一种报文转发方法的流程示意图;
图14为本申请实施例中再一种报文转发方法的流程示意图;
图15为本申请实施例中一种报文转发装置的结构示意图;
图16为本申请实施例中另一种报文转发装置的结构示意图;
图17为本申请实施例中一种网络设备的结构示意图。
具体实施方式
随着网络的复杂化和业务的快速增加,通过不断被动地调整网络的架构和配置,无法再适应业务的快速发展,而且会使网络越来越复杂,维护该网络变得十分困难。为了克服该网络适配业务逐渐暴露出来的问题,转而提出业务驱动网络的方式,即,由业务提出需求,根据该业务的需求计算传输路径,从而网络进行实施动态地调整,快速满足业务变化的需求,而SR技术正是在该业务驱动网络的方式下被广泛应用的。
目前,SR技术可以部署在MPLS数据平面上,形成SR-MPLS,但是,该SR-MPLS需要对IGP进行复杂的扩展,使得应用SR-MPLS十分不便,且对网络节点要求较高,从而不利于广泛被推广应用。此外,SR技术还可以部署在IPv6数据平面上,形成SRv6,但是,该SRv6需要在报文中插入一个SRH,且该SRH需要封装至少一个128bit的IPv6地址,一般情况下报文所占的总空间一定,由于该报文中封装了占用较大空间的IPv6地址,所以该报文中包括的其他有效信息可以占用的空间必然被压缩,即,该报文的封装效率变得较低,从而影响报文的转发效率。
基于此,在本申请实施例中,提供了一种新的报文转发方法,可以实现简单、方便且高效的报文转发,具体通过将SR技术部署在IPv4数据平面上,形成SRv4。SRv4具体实现过程可以包括:在数据报文中封装包括至少一个IPv4地址的SRv4报文头,使得数据报文按照SRv4报文头中的至少一个IPv4地址,在网络的各节点之间进行有序地转发。这样,一方面,无需再像SR-MPLS进行复杂的协议扩展以及配置,简化了报文转发过程;另一方面,由于SRv4中封装的是至少一个32bit的IPv4地址,与SRv6相比,由于该报文中封装了占用较小空间的IPv4地址而非占用较大空间的IPv6地址,所以该报文中包括的其他有效信息可以占用的空间被释放,即,该报文的封装效率变得较高,从而提高了报文的转发效率。
举例来说,本申请实施例的场景之一,可以是应用到如图1所示的网络系统中。该网络系统的一隧道中依次包括:入节点100、中间节点200、中间节点300和出节点400,其中,入节点100的IPv4地址为10.10.10.10,中间节点200的IPv4地址为11.11.11.11,中间节点300的IPv4地址为12.12.12.12,出节点400的IPv4地址为13.13.13.13。
作为一个示例,若数据报文需要在该隧道中被转发时,入节点100可以生成数据报文A,该数据报文A中包括SRv4报文头,该SRv4报文头中可以依次包括:中间节点200的IPv4地址11.11.11.11、中间节点300的IPv4地址12.12.12.12、以及出节点400的IPv4地址13.13.13.13,依据该SRv4报文头中最顶端的IPv4地址11.11.11.11,该入节点100可以确定下一跳节点为中间节点200,且基于中间节点200的IPv4地址11.11.11.11将数据报文A发送至该中间节点200;然后,中间节点200可以将SRv4报文头中的11.11.11.11剔除,并基于新的SRv4报文头中最顶端的IPv4地址12.12.12.12,确定下一跳节点为中间节点300,且基于中间节点300的IPv4地址12.12.12.12将数据报文A发送至该中间节点300;接着,中间节点300可以将SRv4报文头中的12.12.12.12剔除,并基于新的SRv4报文头中最顶端的IPv4地址13.13.13.13,确定下一跳节点为出节点400,且基于出节点400的IPv4地址13.13.13.13将数据报文A发送出该隧道。
需要说明的是,在其他的示例中,SRv4报文头中也可以只封装出节点400的IPv4地址,此时,数据报文在出节点400之前的各节点传输时,可以将出节点400的IPv4地址作为目的地,逐跳地确定下一跳节点,也可以将数据报文A经过该出节点400发送出该隧道,详细过程不再赘述。
需要说明的是,该入节点100、中间节点200、中间节点300和出节点400,具体可以是路由器或者交换机等可以在网络中进行报文转发的网络设备。
可以理解的是,上述场景仅是本申请实施例提供的一个场景示例,本申请实施例并不限于此场景。
下面结合附图,通过实施例来详细说明本申请实施例中一种报文转发方法的具体实现方式。
需要说明的是,本申请实施例中提及的有关MPLS扩展头标准的,具体可以参见MPLS扩展头草案“MPLS Extension Header draft-song-mpls-extension-header-01”,该MPLS扩展头草案中的相关内容全部或者部分并入本申请实施例中。
图2为本申请实施例中一种报文转发方法的流程示意图。参见图2,该方法例如可以包括下述步骤201~步骤204:
步骤201,隧道的入节点生成数据报文,其中,该数据报文包括SRv4报文头,该SRv4报文头包括至少一个IPv4地址,用于指示网络节点基于该至少一个IPv4地址转发数据报文,且该至少一个IPv4地址包括该隧道的出节点的IPv4地址。
可以理解的是,数据报文中的SRv4报文头,可以用于指示隧道中的各网络节点对该数据报文的转发。该SRv4报文头包括至少一个IPv4地址,且该至少一个IPv4地址包括该隧道出节点的IPv4地址。一种情况下,该SRv4报文头中可以只包括一个IPv4地址,即,只包括该隧道的出节点的IPv4地址,隧道中的节点基于该出节点的IPv4地址完成数据报文在该隧道中的传输;例如:在分段路由尽力而为(英文:Segment Routing Best Effort,简称:SR-BE)场景下,SRv4报文头中可以只包括隧道的出节点的本地环回接口的loopback地址。另一种情况下,该SRv4报文头中也可以包括IPv4地址栈,该IPv4地址栈中包括该隧道中各个节点的IPv4地址,其中,栈底为该隧道的出节点的IPv4地址,隧道中的节点基于该IPv4地址栈完成数据报文在该隧道中的传输;例如:在分段路由流量工程(英文:Segment RoutingTraffic Engineering,简称:SR-TE)场景下,SRv4报文头中可以按照数据报文经过先后顺序依次包括隧道中各节点对应的物理接口地址。需要说明的是,在SRv4中封装隧道的出节点的IPv4地址还是封装隧道中各节点的IPv4地址栈,可以根据不同场合下的场景需求具体设计。
可以理解的是,该数据报文中可以包括指示信息,用于指示该数据报文中携带有SRv4报文头,这样,入节点在生成该数据报文后,可以读取到该数据报文中的指示信息,基于该指示信息即可确定该数据报文中携带了SRv4报文头。
在第一种具体的实施方式中,若该数据报文中包括MPLS扩展头,则,该指示信息可以被承载于MPLS扩展头中。作为一个示例,如图3所示,为一种MPLS扩展头的结构示意图,其中,该MPLS扩展头依次包括三层:扩展头标签(英文:Extension Headers Label,简称:EHL)、扩展头的头部(英文:Header of Extension Headers,简称:HEH)和至少一个SRv4报文头。EHL参见图3的第一行,包括:标签label字段、实验比特位(英文:experimental bits,简称:EXP)、栈(英文:stack,简称:S)和生存时间(英文:time to live,简称:TTL)字段,其中,label字段可以取值为4,用于指示该扩展头为MPLS类型的扩展头;HEH参见图3中的第二行,包括:预留R字段、扩展头个数EHCNT字段、扩展头长度EHLEN字段和下一扩展头类型NH字段,其中,NH可以取值为0X10,用于指示下一个扩展头为SRv4类型;第三层的SRv4报文头参见图3中的第三行和第四行,包括:下一个扩展头类型NH字段、SRv4报文头长度HLEN字段、SRv4报文头中包括IPv4地址个数IPCNT字段和IPv4地址字段,其中,NH可以取值为255,表示下一个扩展头类型为MPLS,NH也可以取值为0,表示没有下一个扩展头。
在第二种具体的实施方式中,该指示信息也可以是MPLS标签,即,由MPLS标签指示该数据报文中携带有SRv4报文头。作为一个示例,如图4所示,为一种数据报文的具体封装格式的结构示意图,其中,该数据报文中包括MPLS类型的SRv4标签,该SRv4标签是指基于SRv4生成的MPLS标签,SRv4标签可以作为指示信息,指示该数据报文中包括SRv4报文头;该数据报文中还包括私网标签VPN label和信息体Payload。图4中的SRv4报文头的具体格式可以参见图5所示,可以包括:SRv4报文头中包括IPv4地址个数IPCNT字段、SRv4报文头长度LEN字段、Entropy字段和IPv4地址字段。
具体实现时,若入节点在接收到报文的报文头中封装该MPLS类型的SRv4标签,则,在该隧道中的其他节点接收到该封装后的报文后,可以基于该报文的报文头中封装的SRv4标签,识别出该报文的报文头中携带有SRv4报文头。
可以理解的是,在该第二种具体的实施方式中,一些情况下,该SRv4标签可以是全局标签,即,网络中所有节点均可以识别出该SRv4标签,并且基于该SRv4标签确定该数据报文中包括SRv4报文头。另一些情况下,该SRv4标签也可能是局部标签,那么,在隧道的入节点生成该数据报文之前,该入节点还可以从邻居节点处接收第一消息,并从该第一消息中获取SRv4标签,那么,该入节点就可以将从第一消息中所获取的该SRv4标签作为指示信息,指示数据报文中包括SRv4报文头;例如:该SRv4标签可以通过IGP扩展的TLV字段从邻居节点处接收到,该TLV字段包括类型Type字段、长度Length字段和值Value字段,而值Value字段体现SRv4标签。
隧道的入节点按照步骤201生成包括SRv4报文头的数据报文,为该数据报文可以在该隧道中进行有序的转发提供了依据。
步骤202,入节点向网络节点发送该数据报文。
步骤203,隧道的中间节点接收该数据报文,该数据报文中包括第一报文头,该第一报文头为SRv4报文头,该SRv4报文头包括至少一个IPv4地址,至少一个IPv4地址包括隧道的出节点的IPv4地址。
步骤204,中间节点根据至少一个IPv4地址,向隧道的出节点发送该数据报文。
具体实现时,入节点可以基于数据报文的SRv4报文头中携带的至少一个IPv4地址,向该入节点对应的下一跳节点(即,该隧道的中间节点)发送该数据报文;当该入节点对应的下一跳节点接收到数据报文之后,依然可以基于数据报文的SRv4报文头中携带的至少一个IPv4地址,继续向该下一跳节点对应的下一跳节点发送该数据报文;以此类推,直到将该数据报文按照SRv4报文头中携带的至少一个IPv4地址从出节点发送出该隧道为止。例如:以图1所示的隧道为背景,入节点100可以基于数据报文的SRv4报文头中携带的至少一个IPv4地址,向中间节点200发送该数据报文;当该中间节点200接收到数据报文之后,依然可以基于数据报文的SRv4报文头中携带的至少一个IPv4地址,向中间节点300发送该数据报文;当该中间节点300接收到数据报文之后,可以基于数据报文的SRv4报文头中携带的至少一个IPv4地址,向出节点400发送该数据报文。
在一些实施方式中,若至少一个IPv4地址中依次包括第一节点对应的第一IPv4地址和第二节点对应的第二IPv4地址,则,步骤202~步骤204具体可以包括:入节点基于第一IPv4地址,向所述第一节点发送所述数据报文;第一节点接收到数据报文后,基于第二IPv4地址继续向第二节点发送数据报文,以此类推,直到从出节点转发出隧道。
可见,在本申请实施例中,首先,该网络中隧道的入节点可以生成数据报文,该数据报文中包括携带至少一个IPv4地址的SRv4报文头,该SRv4报文头用于指示网络节点基于该至少一个IPv4地址转发数据报文,其中,该至少一个IPv4地址包括隧道的出节点的IPv4地址;接着,该入节点即可基于该至少一个IPv4地址向出节点发送该数据报文,以实现在网络中转发该数据报文。这样,通过将SR技术部署在IPv4这一数据平面上,即,在数据报文中封装至少包括一个IPv4地址的SRv4报文头,使得该数据报文可以按照SRv4报文头中的至少一个IPv4地址在网络中完成转发,一方面,无需再像SR-MPLS进行复杂的协议扩展以及配置,简化了报文转发过程;另一方面,由于SRv4中封装的是至少一个32bit的IPv4地址,与SRv6相比,由于该报文中封装了占用较小空间的IPv4地址而非占用较大空间的IPv6地址,所以该报文中包括的其他有效信息可以占用的空间被释放,即,该报文的封装效率变得较高,从而提高了报文的转发效率。
可以理解的是,在不同的场景下,SRv4报文头中携带的IPv4地址不同,从而数据报文在隧道中进行转发时,各节点对SRv4的处理方式也存在差异。下面以指示信息被承载于MPLS扩展头为例进行说明,指示信息也可以是MPLS标签,实现方式与MPLS扩展头类似。
作为一个示例,对于SR-BE场景,转发路径中的每一跳并不是提前固定的,唯一确定的是隧道出节点的IPv4地址,例如:出节点的本地环回接口的loopback地址。其中,在配置平面上,给所有路由的网络侧接口配置SRv4使能,并在创建隧道策略(英文:tunnelPolicy)时,提供SRv4隧道选项;在协议控制平面上,若指示信息被承载于MPLS扩展头,则不依赖于IGP协议,若指示信息是MPLS标签,则依赖于IGP协议;在设备控制平面上,SRv4隧道的建立,不管是上次的业务是二层虚拟专用网(英文:Layer 2Virtual Private Network,简称:L2VPN)、三层虚拟专用网(英文:Layer 3Virtual Private Network,简称:L3VPN)或者以太网虚拟专用网(英文:Ethernet Virtual Private Network,简称:EVPN),SRv4隧道都可以承载上面的任意业务,当L3VPN或者L2VPN建立时,根据业务来触发建立SRv4隧道,当SRv4上建立的业务都删除时,删除该SRv4隧道。
具体实现时,以图6所示的网络架构为例进行说明,该SR-BE场景下报文的转发过程具体如下:当报文从CE1到达R1,在该报文加一层MPLS扩展头,第一层为EHL,第二层为HEH,第三层为SRv4报文头,里面填充了一个IPv4地址,具体为隧道出节点R3的loopback地址3.3.3.3。当报文经过R2的时候,R2根据EHL识别是MPLS扩展头,然后再解析里面的字段为SRv4报文头,里面填充了一个IPv4地址3.3.3.3,用3.3.3.3查找转发表(即,FIB)得到出接口,报文不用更改就可以直接从3.3.3.3对应的出节点R3转发出隧道并到达CE1。需要说明的是,报文中包括的MPLS扩展头的格式参见上述图3所示。
作为另一个示例,对于SR-TE场景,转发路径可以是显式路径,即,每一跳是严格固定的,SRv4报文头中具体包括IPv4地址栈,该IPv4地址栈中依次包括显式路径中报文依次经过的各节点的IPv4地址,例如:各节点对应的物理接口地址。其中,在协议控制平面上,无需改动IGP协议;在设备控制平面上,可以根据接口类型判断是物理接口地址还是loopback地址,并将物理接口地址放到IPv4地址栈中去。
具体实现时,以图7所示的网络架构为例进行说明,该SR-TE场景下的显式路径为R2→R5→R6→R3,报文的转发过程具体如下:在入节点R1加入显示路径IPv4地址栈的SRv4报文头,当R2收到该包括SRv4报文头的报文后,若确定栈顶是本接口的IP地址,则弹出该IP地址,用下一个IP地址去查转发表得到下一跳节点为R5,R5重复该流程直到IP地址栈弹完,报文经过出节点R3转发出隧道并到达CE1。需要说明的是,报文在显式路径的各节点中包括的MPLS扩展头的格式参见图8所示。
作为再一个示例,对于SR-TE场景而言,转发路径还可以是松散路径,即,在确定的转发路径中,部分相邻节点之间,还可以通过其他节点连接,不是直接相邻的、严格的上下跳节点的关系。如此,可以更加灵活的实现路径规划。可以理解的是,松散路径是指部分节点之间采用显式路径传输,部分节点之间采用最短路径传输,其中,SR报文头中的IPv4地址具体可以为IPv4地址栈,改IPv4地址栈中具体包括:最短路径部分末端节点的loopback地址和显式路径部分对应各节点的物理接口地址,其中,各地址按照报文传输经过的先后顺序在所述IPv4地址栈中排列。
具体实现时,报文的转发过程具体如下:入节点按照IPv4地址栈将报文传输至IPv4地址栈中各IPv4地址对应的节点;其中,若报文到达显式路径部分对应的节点时,则,该节点对应的IPv4地址位于IPv4地址栈的栈顶,该节点将IPv4地址栈中该节点对应的IPv4地址弹出,得到当前IPv4地址栈,该当前IPv4地址栈的栈顶用于指示当前的报文的下一跳节点;若报文到达最短路径部分对应的节点时,则,该节点计算到达出节点的最短路径下该节点的下一跳节点。
作为再一个示例,对于跨域的场景,即,报文在传输的过程中经过了不同的域时,假设中间节点为跨第一域和第二域的跨域节点,其中,第一域为SRv4域;那么,上述实施例中步骤204“中间节点根据至少一个IPv4地址,向隧道的出节点发送该数据报文”,具体可以包括:S11,跨域节点将该第一数据报文进行处理,得到包括第二报文头的第二数据报文,其中,第二报文头和第一数据报文中的SRv4报文头的类型不同,第二报文头可以被第二域中的节点识别;S12,跨域节点通过第二域向该隧道的出节点发送第二数据报文。其中,第二报文头具体可以包括至少一个MPLS标签。
该示例中,具体的应用场景可以是由标签分发协议(英文:Label DistributionProtocol,简称:LDP)升级到SRv4的过程中,此时,参见图9所示的网络架构,部分网络节点处于LDP域,而部分已经升级到了SRv4域,那么,该网络中进行报文转发时,该第二域为LDP域,则第二报文头中包括至少一个MPLS标签具体可以是基于LDP分发的MPLS标签,然后在跨域节点(R2以及R5)处可以执行上述S11~S12。其中,R2和R5可以启用SRv4和LDP协议,自动根据目的IPv4地址将MPLS扩展头翻译成基于LDP分发的MPLS标签,无需对IGP协议进行扩展。具体实现时,在SRv4域的物理接口上配置SRv4使能,LDP域的物理接口上配置LDP使能;当SRv4域入LDP域,报文到达R2时,R2判断3.3.3.3在该R2处对应出接口的物理接口LDP使能,即,从该节点要到LDP域去,此时,确定该R2为跨域节点,可以将SRv4域的MPLS扩展头格式转换成LDP标签,标签的转换可以参见图10所示,其中,将SRv4域的MPLS扩展头格式转换为LDP标签,使报文可以在LDP域顺利进行转发。同理,从LDP域入SRv4域,R2依然可以通过判断目的IPv4地址经过的下一跳的接口地址使能了SRv4,要到SRv4域去,将基于LDP分发的MPLS标签转换为SRv4域的MPLS扩展头格式。
或者,在其他的应用场景中,第二域也可以是SR-MPLS域,则第二报文头中包括至少一个MPLS标签具体可以是SR标签,在跨域节点处可以执行上述S11~S12也可以实现报文的有效转发。需要说明的是,SR标签具体是指基于分段路由协议生成的分段标识(英文:Segment ID,简称:SID)。
作为又一个示例,对于数据中心的业务链(英文:Service Function Chaining,简称:SFC)场景,以图11所示的网络架构为例进行说明,利用SRv4可以实现SFC功能,不需要业务功能(英文:Service Function,简称:SF)支持协议,SF只需要可以简单的识别报文的MPLS扩展头即可,而作为SF的一种实现设备,网络功能虚拟化(英文:Network FunctionVirtualization,简称:NFV)设备识别该MPLS扩展头很容易,但是要支持SR-MPLS协议就比较难。
该示例下,作为一个实际的应用场景,例如:电信云的场景下,业务转发器SFF是leaf,SF为NFV设备,SC为分类器;SF通常和SFF直连,无需IGP协议。可以理解的是,上述步骤204中的中间节点可以是指该场景下的业务转发器SFF或业务功能SF节点。具体的转发过程包括:SC根据分类以及相应的SF1的IPv4地址,将报文转发到SFF1,然后,可以查看SFF1的地址,直接转发到SF1;SF1处理完后,剥掉SF1的IPv4地址,用SF2的IP地址查找路由,将报文回送到SFF1;此时,一种情况下,若SRv4报文头中的IPv4地址包括SF2对应的IPv4地址,则,SFF1根据SF2的IPv4地址,将报文转发到SFF2,然后,可以查看SFF2的地址,直接转发到SF2;SF2处理完后,剥掉SF2的IPv4地址,将报文回送到SFF2,从而转发到目的节点Dest;另一种情况下,若SRv4报文头中的IPv4地址不包括SF2对应的IPv4地址,则,SFF1直接将报文通过SFF2转发到目的节点Dest。
其中,若将该场景下的转发过程与上述实施例中的描述对应,那么,一种情况下,中间节点为业务转发器SFF1,则,该中间节点的下一跳节点为SFF1对应的业务功能SF1节点;另一种情况下,中间节点为SF1节点,则,该中间节点的下一跳节点为SF1节点对应的SFF1;再一种情况下,中间节点为SFF1,则,该中间节点的下一跳节点为与SFF1直连的业务转发器SFF2。
此外,需要说明的是,在上述各实施例中,SRv4报文头中还可以包括至少一个元数据Metadata,用于提供交换上下文信息的能力。Metadata在SRv4报文头中的位置参见图12所示,Metadata一般位于IPv4地址之后,供各节点共享网络信息。例如:当隧道中的节点有元数据Metadata共享使得网络可以提供一些源于网络的信息给SF,SF之间可以共享信息,源于业务的一些信息也能够共享给网络。
可见,在本申请实施例中,在各种不同的场景下,通过将SR技术部署在IPv4这一数据平面上,即,在数据报文中封装至少包括一个IPv4地址的SRv4报文头,均可以使得该数据报文可以按照SRv4报文头中的至少一个IPv4地址在网络中完成转发,无需再像SR-MPLS进行复杂的协议扩展以及配置,简化了报文转发过程;而且,由于SRv4中封装的是至少一个32bit的IPv4地址,与SRv6相比,由于该报文中封装了占用较小空间的IPv4地址而非占用较大空间的IPv6地址,所以该报文中包括的其他有效信息可以占用的空间被释放,即,该报文的封装效率变得较高,从而提高了报文的转发效率。
图13为本申请实施例提供的一种报文转发方法的流程示意图。该方法由隧道的入节点执行,该方法具体可以包括:
步骤1301,隧道的入节点生成数据报文,数据报文包括基于第四版互联网协议IPv4分段路由SR的SRv4报文头,SRv4报文头包括至少一个IPv4地址,用于指示网络节点基于至少一个IPv4地址转发数据报文;至少一个IPv4地址包括隧道的出节点的IPv4地址。
步骤1302,入节点向网络节点发送数据报文。
其中,该入节点生成的数据报文中包括指示信息,该指示信息指示该数据报文中携带有SRv4报文头。
在一种具体的实施例中,该数据报文中包括多协议标签交换MPLS扩展头,该数据报文中的指示信息可以被承载于MPLS扩展头中。这样,该隧道中的网络节点即可通过读MPLS扩展头确定该数据报文中包括SRv4报文头,从而根据SRv4报文头中的至少一个IPv4地址向隧道出节点转发该数据报文。
在另一种具体的实施例中,该数据报文中的指示信息也可以为MPLS标签。其中,一种情况下,该MPLS标签可以为全局标签,即,每个节点均可以识别出该MPLS标签,确定该数据报文中包括SRv4报文头;另一种情况下,该MPLS标签也可以是局部标签,那么,在隧道的入节点生成数据报文之前,本申请实施例提供的方法还可以包括:入节点接收邻居节点发送的第一消息,第一消息携带MPLS标签,这样,入节点在接收到报文的报文头中按照第一消息,封装该MPLS类型的SRv4标签,则,在该入节点的邻居节点接收到该封装后的报文后,可以基于该报文的报文头中封装的SRv4标签,识别出该报文的报文头中携带有SRv4报文头。可见,该隧道中的网络节点即可通过读MPLS标签确定该数据报文中包括SRv4报文头,从而根据SRv4报文头中的至少一个IPv4地址向隧道出节点转发该数据报文
在再一种具体的实施例中,若SRv4报文头中的至少一个IPv4地址中依次包括第一节点对应的第一IPv4地址和第二节点对应的第二IPv4地址,那么,入节点向网络节点发送数据报文,具体实现时可以包括:入节点基于第一IPv4地址,向第一节点发送数据报文;以便第一节点接收到数据报文后,基于第二IPv4地址继续向第二节点发送数据报文。这样,该数据报文即可在隧道中被各个节点基于数据报文中的SRv4报文头,进行有序、高效的转发。
其中,SRv4报文头中还可以包括至少一个元数据Metadata,用于提供交换上下文信息的能力。
需要说明的是,上述步骤1301~步骤1302的具体描述以及实现方式,可以参见图2对应实施例中步骤201~步骤202的相关描述。
可见,本申请实施例通过将SR技术部署在IPv4这一数据平面上,即,在数据报文中封装至少包括一个IPv4地址的SRv4报文头,使得该数据报文可以按照SRv4报文头中的至少一个IPv4地址在网络中完成转发,无需再进行复杂的协议扩展以及配置,简化了报文转发过程,而且,无需封装占用较大空间的IPv6地址,换而封装占用空间较小的IPv4地址,提高了封装效率,从而提高了报文的转发效率。
图14为本申请实施例提供的一种报文转发方法的流程示意图。该方法由隧道的入节点执行,该方法具体可以包括:
步骤1401,隧道的中间节点接收第一数据报文,该第一数据报文中包括第一报文头,第一报文头为SRv4报文头,SRv4报文头包括至少一个IPv4地址,至少一个IPv4地址包括隧道的出节点的IPv4地址;
步骤1402,中间节点根据至少一个IPv4地址,向出节点发送第一数据报文。
在一种具体的实施例中,对于跨域的场景而言,中间节点可以为跨第一域和第二域的跨域节点,第一域为SRv4域;那么,中间节点根据至少一个IPv4地址,向出节点发送第一数据报文,具体可以包括:跨域节点将第一数据报文进行处理,得到第二数据报文,第二数据报文包括第二报文头;跨域节点通过第二域向出节点发送第二数据报文。其中,该第二报文头中可以包括至少一个多协议标签交换MPLS标签。作为一个示例,该第二域可以为标签分发协议LDP域,那么,至少一个MPLS标签可以是基于LDP分发的MPLS标签;作为另一个示例,第二域可以为基于MPLS分段路由SR的SR-MPLS域,那么,该至少一个MPLS标签可以是SR标签,即,段标识(英文:Segment ID,简称:SID)。这样,利用本申请实施例提供的报文转发方法,通过跨域节点对数据报文中封装内的报文头根据跨域情况进行类型的转换,即可实现在数据报文在不同域的转发,无需再进行复杂的协议扩展以及配置,简化了报文转发过程,从而提高了报文的转发效率
在另一种具体的实施例中,对于SFC场景而言,中间节点具体可以是业务转发器SFF或业务功能SF节点。
其中,该SRv4报文头中还可以包括至少一个元数据Metadata,用于提供交换上下文信息的能力。
需要说明的是,上述步骤1401~步骤1402的具体描述以及实现方式,可以参见图2对应实施例中步骤203~步骤204的相关描述。
可见,本申请实施例通过将SR技术部署在IPv4这一数据平面上,即,在第一数据报文中封装至少包括一个IPv4地址的SRv4报文头,使得该第一数据报文可以按照SRv4报文头中的至少一个IPv4地址在网络中完成转发,无需再进行复杂的协议扩展以及配置,简化了报文转发过程,而且,无需封装占用较大空间的IPv6地址,换而封装占用空间较小的IPv4地址,提高了封装效率,从而提高了报文的转发效率。
图15为本申请实施例中一种报文转发装置1500的结构示意图。该装置1500应用于隧道的入节点,该装置1500包括:处理单元1501和发送单元1502。
其中,处理单元1501,用于生成数据报文,数据报文包括基于第四版互联网协议IPv4分段路由SR的SRv4报文头,SRv4报文头包括至少一个IPv4地址,用于指示网络节点基于至少一个IPv4地址转发数据报文;至少一个IPv4地址包括隧道的出节点的IPv4地址;
发送单元1502,用于向网络节点发送数据报文。
可以理解的是,该处理单元1501的各种可能的实现方式及效果,参照图2中步骤201及其相关描述。该发送单元1502的各种可能的实现方式及效果,参照图2中步骤202及其相关描述。
在一种具体的实施例中,数据报文中包括指示信息,指示信息指示数据报文中携带有SRv4报文头。一种情况下,数据报文中包括多协议标签交换MPLS扩展头,该MPLS扩展头中承载指示信息。另一种情况下,该指示信息也可以为MPLS标签,其中,该MPLS标签可以为全局标签;也可以是局部标签,此时,本实施例具体还可以包括:接收单元,用于在生成数据报文之前,接收邻居节点发送的第一消息,第一消息携带MPLS标签。
在另一种具体的实施例中,若该至少一个IPv4地址中依次包括第一节点对应的第一IPv4地址和第二节点对应的第二IPv4地址,那么,上述发送单元1502,具体可以用于:基于第一IPv4地址,向第一节点发送数据报文;以便第一节点接收到数据报文后,基于第二IPv4地址继续向第二节点发送数据报文。
其中,该SRv4报文头中还可以包括至少一个元数据Metadata,用于提供交换上下文信息的能力。
可以理解的是,该报文转发装置1500即为图2及图13对应的报文转发方法实施例中提及的隧道的入节点,故,该报文转发装置1500的各种可能的实现方式及效果的相关描述,可以参照图2及图13对应的报文转发方法中,对隧道的入节点及其执行操作的相关描述。
图16为本申请实施例中一种报文转发装置1600的结构示意图。该装置1600应用于隧道的中间节点,包括:接收单元1601和发送单元1602。
其中,接收单元1601,用于接收第一数据报文,第一数据报文中包括第一报文头,第一报文头为基于第四版互联网协议IPv4分段路由SR的SRv4报文头,SRv4报文头包括至少一个IPv4地址;至少一个IPv4地址包括隧道的出节点的IPv4地址;
发送单元1602,用于根据至少一个IPv4地址,向出节点发送第一数据报文。
可以理解的是,该接收单元1601的各种可能的实现方式及效果,参照图2中步骤203及其相关描述。该发送单元1602的各种可能的实现方式及效果,参照图2中步骤204及其相关描述。
在一种具体的实现方式中,对于跨域的场景而言,中间节点可以为跨第一域和第二域的跨域节点,第一域为SRv4域;那么,该装置1600,还络包括:处理单元,该处理单元,用于将第一数据报文进行处理,得到第二数据报文,第二数据报文包括第二报文头;此时,发送单元1602,具体可以用于通过第二域向出节点发送第二数据报文。作为一个示例,该第二报文头中包括至少一个多协议标签交换MPLS标签,在该示例中,一种情况下,第二域为标签分发协议LDP域,至少一个MPLS标签为基于LDP分发的MPLS标签;另一种情况下,第二域为基于MPLS分段路由SR的SR-MPLS域,至少一个MPLS标签为SR标签。
在另一种具体的实现方式中,对于SFC场景而言,中间节点为SFF或SF节点。
其中,该SRv4报文头中还可以包括至少一个元数据Metadata,用于提供交换上下文信息的能力。
可以理解的是,该报文转发装置1600即为图2及图14对应的报文转发方法实施例中提及的隧道的中间节点,故,该报文转发装置1600的各种可能的实现方式及效果的相关描述,可以参照图2及图14对应的报文转发方法中,对隧道的入节点及其执行操作的相关描述。
此外,本申请实施例还提供了一种通信方法,该通信方法包括:前述图13对应的任意一种实现方式下的报文转发方法,以及,前述图14对应的任意一种实现方式下的报文转发方法。
而且,本申请实施例还提供了一种通信系统,该通信系统包括:前述报文转发装置1500,以及,前述报文转发装置1600。
另外,图17为本申请实施例中一种网络设备1700的结构示意图。该网络设备1700,包括:存储器1701和处理器1702;其中,存储器1701用于存储程序代码,并将所述程序代码传输给所述处理器1702;所述处理器1702用于执行所述程序代码中的指令,使得网络设备1700执行前述图2、图13或图14对应的任意一种实现方式下的报文转发方法。
其中,处理器1702可以是中央处理器(英文:central processing unit,缩写:CPU),网络处理器(英文:network processor,缩写:NP)或者CPU和NP的组合。处理器1702还可以是专用集成电路(英文:application-specific integrated circuit,缩写:ASIC),可编程逻辑器件(英文:programmable logic device,缩写:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文:generic array logic,缩写:GAL)或其任意组合。处理器1702可以是指一个处理器,也可以包括多个处理器。存储器1701可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器1701也可以包括非易失性存储器(英文:non-volatile memory),例如只读存储器(英文:read-only memory,缩写:ROM),快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);存储器1701还可以包括上述种类的存储器的组合。存储器可以是指一个存储器,也可以包括多个存储器。在一个具体实施方式中,存储器1701中存储有计算机可读指令,所述计算机可读指令包括多个软件模块,例如发送模块,处理模块和接收模块。处理器1702执行各个软件模块后可以按照各个软件模块的指示进行相应的操作。在本实施例中,一个软件模块所执行的操作实际上是指处理器1702根据所述软件模块的指示而执行的操作。处理器1702执行存储器1701中的计算机可读指令后,可以按照所述计算机可读指令的指示,执行网络设备1700可以执行的全部操作。
需要说明的是,网络设备1700中的处理器1702可以被用作上述报文转发装置1500和报文转发装置1600中的处理单元,执行相应的功能;而且,网络设备1700上还可以包括通信接口,该通信接口可以被用作报文转发装置1500中的发送单元1502,以及报文转发装置1600中的接收单元1601和发送单元1602。
此外,本申请实施例还提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行前述图2、图13或图14对应的任意一种实现方式下的报文转发方法。
此外,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得该计算机执行前述图2、图13或图14对应的任意一种实现方式下的报文转发方法。
本申请实施例中提到的“第一数据报文”、“第一域”等名称中的“第一”只是用来做名字标识,并不代表顺序上的第一。该规则同样适用于“第二”等。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如只读存储器(英文:read-only memory,ROM)/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如路由器等网络通信设备)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例、系统实施例和设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置、设备及系统实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请示例性的实施方式,并非用于限定本申请的保护范围。
Claims (29)
1.一种报文转发方法,其特征在于,包括:
隧道的入节点生成数据报文,所述数据报文包括基于第四版互联网协议IPv4分段路由SR的SRv4报文头,所述SRv4报文头包括至少一个IPv4地址,用于指示网络节点基于所述至少一个IPv4地址转发所述数据报文;所述至少一个IPv4地址包括所述隧道的出节点的IPv4地址;
所述入节点向所述网络节点发送所述数据报文。
2.根据权利要求1所述的方法,其特征在于,
所述数据报文中包括指示信息,所述指示信息指示所述数据报文中携带有所述SRv4报文头。
3.根据权利要求2所述的方法,其特征在于,
所述数据报文中包括多协议标签交换MPLS扩展头,所述MPLS扩展头中承载所述指示信息。
4.根据权利要求2所述的方法,其特征在于,
所述指示信息为MPLS标签。
5.根据权利要求4所述的方法,其特征在于,所述MPLS标签为全局标签。
6.根据权利要求4所述的方法,其特征在于,在所述隧道的入节点生成数据报文之前,所述方法还包括:
所述入节点接收邻居节点发送的第一消息,所述第一消息携带所述MPLS标签。
7.根据权利要求1~6任一项所述的方法,其特征在于,所述至少一个IPv4地址中依次包括第一节点对应的第一IPv4地址和第二节点对应的第二IPv4地址,所述入节点向所述网络节点发送所述数据报文,包括:
所述入节点基于所述第一IPv4地址,向所述第一节点发送所述数据报文;以便所述第一节点接收到数据报文后,基于所述第二IPv4地址继续向所述第二节点发送所述数据报文。
8.一种报文转发方法,其特征在于,包括:
隧道的中间节点接收第一数据报文,所述第一数据报文中包括第一报文头,所述第一报文头为基于第四版互联网协议IPv4分段路由SR的SRv4报文头,所述SRv4报文头包括至少一个IPv4地址;所述至少一个IPv4地址包括所述隧道的出节点的IPv4地址;
所述中间节点根据所述至少一个IPv4地址,向所述出节点发送所述第一数据报文。
9.根据权利要求8所述的方法,其特征在于,所述中间节点为跨第一域和第二域的跨域节点,所述第一域为SRv4域;
所述中间节点根据所述至少一个IPv4地址,向所述出节点发送所述第一数据报文,包括:
所述跨域节点将所述第一数据报文进行处理,得到第二数据报文,所述第二数据报文包括第二报文头;
所述跨域节点通过所述第二域向所述出节点发送所述第二数据报文。
10.根据权利要求9所述的方法,其特征在于,所述第二报文头中包括至少一个多协议标签交换MPLS标签。
11.根据权利要求10所述的方法,其特征在于,所述第二域为标签分发协议LDP域,所述至少一个MPLS标签为基于LDP分发的MPLS标签;或者,所述第二域为基于MPLS分段路由SR的SR-MPLS域,所述至少一个MPLS标签为SR标签。
12.根据权利要求8所述的方法,其特征在于,所述中间节点为业务转发器SFF或业务功能SF节点。
13.根据权利要求8~12任一项所述的方法,其特征在于,所述SRv4报文头中还包括至少一个元数据Metadata。
14.一种报文转发装置,其特征在于,应用于隧道的入节点,包括:
处理单元,用于生成数据报文,所述数据报文包括基于第四版互联网协议IPv4分段路由SR的SRv4报文头,所述SRv4报文头包括至少一个IPv4地址,用于指示网络节点基于所述至少一个IPv4地址转发所述数据报文;所述至少一个IPv4地址包括所述隧道的出节点的IPv4地址;
发送单元,用于向所述网络节点发送所述数据报文。
15.根据权利要求14所述的装置,其特征在于,
所述数据报文中包括指示信息,所述指示信息指示所述数据报文中携带有所述SRv4报文头。
16.根据权利要求15所述的装置,其特征在于,
所述数据报文中包括多协议标签交换MPLS扩展头,所述MPLS扩展头中承载所述指示信息。
17.根据权利要求15所述的装置,其特征在于,
所述指示信息为MPLS标签。
18.根据权利要求17所述的装置,其特征在于,所述MPLS标签为全局标签。
19.根据权利要求17所述的装置,其特征在于,所述装置还包括:
接收单元,用于在生成所述数据报文之前,接收邻居节点发送的第一消息,所述第一消息携带所述MPLS标签。
20.根据权利要求14~19任一项所述的装置,其特征在于,所述至少一个IPv4地址中依次包括第一节点对应的第一IPv4地址和第二节点对应的第二IPv4地址,所述发送单元,具体用于:
基于所述第一IPv4地址,向所述第一节点发送所述数据报文;以便所述第一节点接收到数据报文后,基于所述第二IPv4地址继续向所述第二节点发送所述数据报文。
21.一种报文转发装置,其特征在于,应用于隧道的中间节点,包括:
接收单元,用于接收第一数据报文,所述第一数据报文中包括第一报文头,所述第一报文头为基于第四版互联网协议IPv4分段路由SR的SRv4报文头,所述SRv4报文头包括至少一个IPv4地址;所述至少一个IPv4地址包括所述隧道的出节点的IPv4地址;
发送单元,用于根据所述至少一个IPv4地址,向所述出节点发送所述第一数据报文。
22.根据权利要求21所述的装置,其特征在于,所述中间节点为跨第一域和第二域的跨域节点,所述第一域为SRv4域;
所述装置还包括:
处理单元,用于将所述第一数据报文进行处理,得到第二数据报文,所述第二数据报文包括第二报文头;
所述发送单元,具体用于通过所述第二域向所述出节点发送所述第二数据报文。
23.根据权利要求22所述的装置,其特征在于,所述第二报文头中包括至少一个多协议标签交换MPLS标签。
24.根据权利要求23所述的装置,其特征在于,所述第二域为标签分发协议LDP域,所述至少一个MPLS标签为基于LDP分发的MPLS标签;或者,所述第二域为基于MPLS分段路由SR的SR-MPLS域,所述至少一个MPLS标签为SR标签。
25.根据权利要求21所述的装置,其特征在于,所述中间节点为业务转发器SFF或业务功能SF节点。
26.根据权利要求21~25任一项所述的装置,其特征在于,所述SRv4报文头中还包括至少一个元数据Metadata。
27.一种通信系统,其特征在于,包括权利要求14~20任一项所述的报文转发装置以及权利要求21~26任一项所述的报文转发装置。
28.一种网络设备,其特征在于,所述网络设备包括存储器和处理器;
所述存储器,用于存储程序代码;
所述处理器,用于运行所述程序代码中的指令,使得所述网络设备执行以上权利要求1~7任一项所述的报文转发方法,或者,执行以上权利要求8~13任一项所述的报文转发方法。
29.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行以上权利要求1~7任一项所述的报文转发方法,或者,执行以上权利要求8~13任一项所述的报文转发方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910457877.6A CN112019433B (zh) | 2019-05-29 | 2019-05-29 | 一种报文转发方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910457877.6A CN112019433B (zh) | 2019-05-29 | 2019-05-29 | 一种报文转发方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112019433A true CN112019433A (zh) | 2020-12-01 |
CN112019433B CN112019433B (zh) | 2022-01-14 |
Family
ID=73501408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910457877.6A Active CN112019433B (zh) | 2019-05-29 | 2019-05-29 | 一种报文转发方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112019433B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113014485A (zh) * | 2021-02-25 | 2021-06-22 | 烽火通信科技股份有限公司 | 一种基于SRv6-TE路径的报文转发方法和报文转发装置 |
CN113242181A (zh) * | 2021-01-18 | 2021-08-10 | 网络通信与安全紫金山实验室 | 基于ESP封装和压缩IP在overlay层实现源路由的报文及发送方法 |
CN114221904A (zh) * | 2021-12-15 | 2022-03-22 | 锐捷网络股份有限公司 | 一种报文转发方法、装置及系统 |
CN114650256A (zh) * | 2020-12-17 | 2022-06-21 | 中兴通讯股份有限公司 | 报文处理方法、节点及计算机可读存储介质 |
CN115174449A (zh) * | 2022-05-30 | 2022-10-11 | 杭州初灵信息技术股份有限公司 | 一种传递随流检测信息的方法、系统、装置和存储介质 |
CN115189913A (zh) * | 2020-12-18 | 2022-10-14 | 支付宝(杭州)信息技术有限公司 | 数据报文的传输方法和装置 |
WO2024011982A1 (zh) * | 2022-07-12 | 2024-01-18 | 华为技术有限公司 | 报文转发方法、系统、网络设备、存储介质及程序产品 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1571401A (zh) * | 2003-07-25 | 2005-01-26 | 华为技术有限公司 | 一种将IPv6孤岛接入IPv6网的方法 |
CN1604587A (zh) * | 2003-10-01 | 2005-04-06 | 华为技术有限公司 | 一种网络过渡接入的方法 |
CN105049350A (zh) * | 2014-04-17 | 2015-11-11 | 思科技术公司 | 分段路由-出口对等工程(sp-epe) |
CN108768788A (zh) * | 2018-06-26 | 2018-11-06 | 新华三技术有限公司合肥分公司 | 路径故障检测方法及装置 |
US20180375768A1 (en) * | 2017-06-27 | 2018-12-27 | Cisco Technology, Inc. | Segment Routing Network Processing of Packets including Packets having a Multiple Segment Routing Header Packet Structure that Provides Processing and/or Memory Efficiencies |
-
2019
- 2019-05-29 CN CN201910457877.6A patent/CN112019433B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1571401A (zh) * | 2003-07-25 | 2005-01-26 | 华为技术有限公司 | 一种将IPv6孤岛接入IPv6网的方法 |
CN1604587A (zh) * | 2003-10-01 | 2005-04-06 | 华为技术有限公司 | 一种网络过渡接入的方法 |
CN105049350A (zh) * | 2014-04-17 | 2015-11-11 | 思科技术公司 | 分段路由-出口对等工程(sp-epe) |
US20180375768A1 (en) * | 2017-06-27 | 2018-12-27 | Cisco Technology, Inc. | Segment Routing Network Processing of Packets including Packets having a Multiple Segment Routing Header Packet Structure that Provides Processing and/or Memory Efficiencies |
CN108768788A (zh) * | 2018-06-26 | 2018-11-06 | 新华三技术有限公司合肥分公司 | 路径故障检测方法及装置 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114650256A (zh) * | 2020-12-17 | 2022-06-21 | 中兴通讯股份有限公司 | 报文处理方法、节点及计算机可读存储介质 |
WO2022127586A1 (zh) * | 2020-12-17 | 2022-06-23 | 中兴通讯股份有限公司 | 报文处理方法、节点及计算机可读存储介质 |
CN115189913A (zh) * | 2020-12-18 | 2022-10-14 | 支付宝(杭州)信息技术有限公司 | 数据报文的传输方法和装置 |
CN115189913B (zh) * | 2020-12-18 | 2024-01-05 | 支付宝(杭州)信息技术有限公司 | 数据报文的传输方法和装置 |
CN113242181A (zh) * | 2021-01-18 | 2021-08-10 | 网络通信与安全紫金山实验室 | 基于ESP封装和压缩IP在overlay层实现源路由的报文及发送方法 |
CN113014485A (zh) * | 2021-02-25 | 2021-06-22 | 烽火通信科技股份有限公司 | 一种基于SRv6-TE路径的报文转发方法和报文转发装置 |
CN114221904A (zh) * | 2021-12-15 | 2022-03-22 | 锐捷网络股份有限公司 | 一种报文转发方法、装置及系统 |
CN114221904B (zh) * | 2021-12-15 | 2023-08-18 | 锐捷网络股份有限公司 | 一种报文转发方法、装置及系统 |
CN115174449A (zh) * | 2022-05-30 | 2022-10-11 | 杭州初灵信息技术股份有限公司 | 一种传递随流检测信息的方法、系统、装置和存储介质 |
CN115174449B (zh) * | 2022-05-30 | 2024-03-26 | 杭州初灵信息技术股份有限公司 | 一种传递随流检测信息的方法、系统、装置和存储介质 |
WO2024011982A1 (zh) * | 2022-07-12 | 2024-01-18 | 华为技术有限公司 | 报文转发方法、系统、网络设备、存储介质及程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN112019433B (zh) | 2022-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112019433B (zh) | 一种报文转发方法和装置 | |
EP4102785A1 (en) | Message processing method and apparatus, and network device and storage medium | |
CN112087386B (zh) | 一种报文处理的方法、设备和系统 | |
JP7432095B2 (ja) | SRv6サービス機能チェーンでパケットを転送する方法、SFF、およびSFデバイス | |
CN113382452B (zh) | 路径建立方法、数据传输方法、装置、网络节点及存储介质 | |
US20190356594A1 (en) | Packet Processing Method, Apparatus, and System | |
US8751686B2 (en) | Forwarding IPv6 packets based on shorter addresses derived from their IPv6 destination addresses | |
CN111682996B (zh) | 网络中报文转发的方法、网络节点、网络系统 | |
US20230300070A1 (en) | Packet Sending Method, Device, and System | |
CN105634942B (zh) | 转发报文的方法和交换机 | |
EP4160950A1 (en) | Method and apparatus for sending message, and network device, system and storage medium | |
CN112311673A (zh) | 在采用分段路由的网络中使用和处理每切片分段标识符 | |
US10110487B1 (en) | Signaling priority information for encapsulated packets | |
CN113973082A (zh) | 一种报文处理方法及网络设备 | |
JP2023532737A (ja) | パケット処理方法およびネットワークデバイス | |
CN115348202A (zh) | 基于网络切片的数据传输方法、装置、设备及存储介质 | |
CN111010344B (zh) | 报文转发方法、装置、电子设备及机器可读存储介质 | |
EP4009608A1 (en) | Segment routing-based data transmission method and apparatus | |
CN107995084B (zh) | 隧道选择方法及装置 | |
JP2023516349A (ja) | ルート送信方法及びデバイス | |
CN114760244A (zh) | 一种传输绑定段标识bsid的方法、装置和网络设备 | |
CN116938807B (zh) | 数据报文传输方法、装置、设备及存储介质 | |
CN112104539B (zh) | 分段ngmvpn中的信息交互方法、装置和系统 | |
US20240244002A1 (en) | Route advertisement method, packet forwarding method, device, and system | |
WO2024083219A1 (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 |