CN113259239A - 一种在混合网络中转发报文的方法、设备和系统 - Google Patents
一种在混合网络中转发报文的方法、设备和系统 Download PDFInfo
- Publication number
- CN113259239A CN113259239A CN202010085223.8A CN202010085223A CN113259239A CN 113259239 A CN113259239 A CN 113259239A CN 202010085223 A CN202010085223 A CN 202010085223A CN 113259239 A CN113259239 A CN 113259239A
- Authority
- CN
- China
- Prior art keywords
- identifier
- network
- segment
- identifiers
- packet
- 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.)
- Pending
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/24—Multipath
-
- 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/30—Routing of multiclass traffic
-
- 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
-
- 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/12—Shortest path evaluation
-
- 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
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for 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/74—Address processing for routing
- H04L45/741—Routing in networks with a plurality of addressing schemes, e.g. with both IPv4 and IPv6
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2212/00—Encapsulation of packets
-
- 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/52—Multiprotocol routers
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
一种转发报文的方法、装置及网络系统。段路由设备接收来自第一网络的第一报文,第一报文的第一报文头包括段列表,段列表包括依次排列的多个标识,多个标识中的每个标识用于标识一个网络设备或一个链路,多个标识包括第一类标识和多个第二类标识,第一类标识和第二类标识所标识的网络设备或链路分别在第一网络和第二网络中,第一网络和第二网络的类型不同;段路由设备为第一报文封装第二报文头,以形成第二报文,第二报文头包括多个第二类标识;段路由设备向第二网络发送第二报文。通过该方法,在段列表中对包括多种类型网络设备的报文转发路径进行编程,从而获得全局最优的路径,避免在拼接节点处进行复杂的网络配置。
Description
技术领域
本申请涉及通信领域,尤其涉及一种在混合网络中转发报文的方法、网络设备和系统。
背景技术
SR是一种基于源路由理念设计的、在网络上转发数据包的协议,支持在源节点显式指定数据包转发路径。当SR部署在第六版本的互联网协议6(Internet ProtocolVersion 6,IPv6)数据平面上时,称为IPv6 segment routing(SRv6),当SR部署在多协议标签交换(Multiple Protocol Label Switch,MPLS)数据平面上时,称为SR-MPLS。
其中,SRv6在IPv6的基础上扩展了段路由头(segment routing header,SRH)。SRH包括段列表(segmentlist),用于支持在转发路径的入口设备对整个转发路径进行编程。具体的,段列表包括依次排列的多个段标识(segment identification,SID),每个SID对应报文转发路径中的一个节点或链路。包括段列表的SRH被封装在数据报文中。从而,在报文转发过程中,依次执行段列表中的各个SID所指示的转发处理,以实现报文转发。
然而,在实际的网络场景中,报文转发路径往往需要经过不支持SRv6的网络设备,例如支持MPLS的网络设备或支持IPv4的网络设备,从而无法在段列表中对整个转发路径进行编程。在现在技术中,对于上述包括多种类型网络设备的路径,通常采取分段算路、逐段拼接的方式完成整个路径上的报文转发。由此将导致无法获得全局最优的路径,以及拼接节点的配置复杂的技术问题。
发明内容
本申请提供了一种转发报文的方法、设备和系统,用于解决无法获得全局最优的路径,以及拼接节点的配置复杂的技术问题。
第一方面,本申请提供了一种转发报文的方法。该方法包括:段路由设备接收来自第一网络的第一报文,所述第一报文的第一报文头包括段列表,所述段列表包括依次排列的多个标识,所述多个标识中的每个标识用于标识一个网络设备或一个链路,所述多个标识包括至少一个第一类标识和多个第二类标识,所述第一类标识和所述第二类标识的类型不同,所述第一类标识所标识的网络设备或链路在所述第一网络中,所述第二类标识所标识的网络设备或链路在第二网络中,所述第一网络和所述第二网络的类型不同;所述段路由设备为所述第一报文封装第二报文头,以形成第二报文,所述第二报文头包括所述多个第二类标识;所述段路由设备向所述第二网络发送所述第二报文。
该方法可以由报文转发路径上的中间节点执行。在该方法中,报文中的段列表采用多种标识来标识多种类型网络中的网络设备,将多种标识混合编排在段列表中,在不支持直接利用段列表指导报文转发的网络的入口设备处,可以从段列表中获得该网络中的分段转发路径所对应的若干标识,并将这些标识拷贝至报文的特定位置,以便该网络中的其他网络设备能够按照该网络中指导报文转发的具体方式,进行报文转发。通过该方法能够在段列表中对经过多种类型网络的报文转发路径进行编程,将该段列表封装在报文中,从而避免分段算路、逐段拼接,有利于全局最优的路径规划,且简化网络配置。
在一种可能的实现方式中,所述至少一个第一类标识包括长度为128比特的段标识或者长度小于128比特的压缩段标识。第一类标识可以是段列表中的SID或压缩段标识,用于标识SRv6网络中的网络设备或链路。
在一种可能的实现方式中,所述多个第二类标识彼此相邻,所述第一类标识位于所述多个第二类标识之前,或者,所述第一类标识位于所述多个第二类标识之后。
在一种可能的实现方式中,所述段列表包括指示标识,所述指示标识用于指示所述第二类标识的起始位置。报文转发路径上的中间节点在读取到指示标识时,获知第二类标识的起始位置。
在一种可能的实现方式中,所述指示标识位于所述第一类标识之后,且所述指示标识位于所述多个第二类标识之前。此时,指示标识是位于第一类标识和第二类标识之间的一个独立标识。
在一种可能的实现方式中,所述指示标识的长度与所述压缩段标识的长度相同。例如,当压缩段标识的长度为32比特时,所述指示标识的长度也可以是32比特。
在一种可能的实现方式中,所述指示标识包括在末尾段标识内,所述末尾段标识是所述至少一个第一类标识中的一个标识,所述末尾段标识与所述多个第二类标识中的第一个标识相邻,且所述末尾段标识位于所述第一个标识之前。此时,末尾段标识所指示的网络设备或链路位于SRv6网络的边缘。
在一种可能的实现方式中,所述末尾段标识是长度为128比特的段标识或者长度小于128比特的压缩段标识。
在一种可能的实现方式中,所述指示标识用于标识段路由互联网协议第6版SRv6网络中的功能,所述指示标识位于所述末尾段标识的功能字段中。此时,指示标识位于段标识中的功能字段中,用于表示SRv6网络中的功能。
在一种可能的实现方式中,所述多个第二类标识彼此相邻,所述多个第二类标识包括多协议标签交换MPLS标签,所述第二报文头为MPLS报文头,所述第二网络为MPLS网络。
在一种可能的实现方式中,所述第一报文还包括结束标识;所述段路由设备为所述第一报文封装第二报文头,还包括:所述段路由设备根据所述结束标识确定所述多个第二类标识中的最后一个标识。例如,当报文转发路径上的中间节点在段列表中依次读取多个第二类标识时,当读取到结束标识时,即获知多个第二类标识已经结束。
在一种可能的实现方式中,所述结束标识包括在所述段列表中,且所述结束标识位于所述多个第二类标识之后。此时,结束标识是多个第二类标识之后的一个独立标识。
在一种可能的实现方式中,所述结束标识包括在所述段列表中,且所述结束标识位于所述多个第二类标识中的最后一个标识中。
在一种可能的实现方式中,所述第一报文还包括数量标识;所述段路由设备为所述第一报文封装第二报文头,还包括:所述段路由设备根据所述数量标识确定所述多个第二类标识中标识的数量。例如,报文转发路径上的中间节点根据该数量在段列表中依次读取多个第二类标识,当读取到该数量的标识之后即停止。
在一种可能的实现方式中,所述数量标识包括在末尾段标识内,所述末尾段标识是所述至少一个第一类标识中的一个标识,所述末尾段标识与所述多个第二类标识中的第一个标识相邻,且所述末尾段标识位于所述第一个标识之前。
在一种可能的实现方式中,所述数量标识包括在所述多个第二类标识中的第一个标识中。
在一种可能的实现方式中,所述多个第二类标识包括互联网协议第4版IPv4地址,所述第二报文头为IPv4报文头,所述第二网络为IPv4网络。
在一种可能的实现方式中,所述多个第二类标识包括源标识和目的标识,所述源标识对应于所述IPv4隧道的源地址,所述目的标识对应于所述IPv4隧道的目的地址。当第二类标识为IPv4地址时,段列表中至少包括IPv4隧道的源地址和目的地址。
在一种可能的实现方式中,所述段列表包括类型标识,所述类型标识用于指示IPv4隧道类型,所述IPv4隧道用于转发所述第二报文。
在一种可能的实现方式中,所述第一报文头为段路由头SRH。
在一种可能的实现方式中,所述第一报文还包括指针;所述段路由设备为所述第一报文封装第二报文头,包括:所述段路由设备根据所述指针确定所述多个第二类标识中的第一个标识在所述段列表中的位置。
在一种可能的实现方式中,所述段列表包括长度为128比特的元素,所述多个第二类标识中的第一个标识是所述元素中的第一个标识。优选的,在段列表中,在至少一个第一类标识之后,多个第二类标识从段列表中的新的元素开始排列,而不与之前的第一类标识排列在同一个元素中。
在一种可能的实现方式中,所述第二报文包括IPv6报文头,所述方法还包括:在所述IPv6报文头的目的地址字段中添加跨域标识,所述跨域标识是所述第一类标识中的一个标识,所述跨域标识是长度为128比特的段标识或者长度小于128比特的压缩段标识。当报文经过第二网络后,还将进入第一网络进行转发时,报文转发路径的中间节点除了添加第二报文头,用于指导报文在第二网络中的转发之外,还在报文中DA字段中添加第二网络之后的第一网络中的节点的SID,用于指导报文在经过第二网络之后继续向第一网络转发。
第二方面,本申请提供了一种转发报文的方法。所述方法包括:段路由设备接收第一报文;所述段路由设备在所述第一报文中添加段列表以形成第二报文,所述段列表指示所述第二报文的转发路径,所述转发路径包括多个网络设备,所述段列表包括依次排列的多个标识,所述多个标识中的每个标识用于标识所述多个网络设备中的一个网络设备或所述转发路径中的一个链路,所述多个标识包括至少一个第一类标识和多个第二类标识,所述第一类标识和所述第二类标识的类型不同,所述第一类标识所标识的网络设备或链路在第一网络中,所述第二类标识所标识的网络设备或链路在第二网络中,所述第一网络和所述第二网络的类型不同;所述段路由设备发送所述第二报文。
该方法可以由报文转发路径上的入口设备执行。在该方法中,在报文中的段列表中用多种标识来标识多种类型网络中的网络设备,将多种标识混合编排在段列表中,在不支持直接利用段列表指导报文转发的网络的入口设备处,可以从段列表中获得该网络中的分段转发路径所对应的若干标识,并将这些标识拷贝至报文的特定位置,以便该网络中的其他网络设备能够按照该网络中指导报文转发的具体方式,进行报文转发。通过该方法能够在段列表中对经过多种类型网络的报文转发路径进行编程,并在报文转发路径的入口设备处将该段列表封装在报文中,从而避免分段算路、逐段拼接,有利于全局最优的路径规划,且简化网络配置。
在一种可能的实现方式中,所述方法还包括:所述段路由设备接收来自控制器的控制报文,所述控制报文包括所述段列表。
在一种可能的实现方式中,所述控制报文包括混编标志,所述混编标志用于指示所述多个标识包括至少一个第一类标识和多个第二类标识,所述第一类标识和所述第二类标识的类型不同。
在一种可能的实现方式中,所述段路由设备在所述第一报文中添加所述段列表以形成所述第二报文之前,所述方法还包括:所述段路由设备确定所述转发路径;所述段路由设备生成对应于所述转发路径的段列表。
第三方面,本申请提供了一种生成段列表的方法。所述方法包括:控制器确定报文的转发路径,所述转发路径包括位于至少两个网络中的多个网络设备,所述至少两个网络包括第一网络和第二网络,所述第一网络和所述第二网络的类型不同;控制器生成对应于所述转发路径的所述段列表,所述段列表包括依次排列的所述多个标识,所述多个标识中的每个标识分别对应于所述多个网络设备中的一个网络设备或所述转发路径中的一个链路,所述多个标识包括至少一个第一类标识和多个第二类标识,所述第一类标识和所述第二类标识的类型不同,所述第一类标识所标识的网络设备或链路在所述第一网络中,所述第二类标识所标识的网络设备或链路在第二网络中;控制器向所述转发路径的入口设备发送所述段列表。
该方法可以由网络中的控制器执行。在实际网络中,报文的转发路径可以由控制器生成,也可以由转发路径的入口节点生成。当控制器生成报文的转发路径时,控制器也生成指示该转发路径的段列表,该段列表可以是包括所述第一类标识和所述第二类标识的段列表,即混编的段列表或通用的段列表。控制器将该段列表向转发路径的入口节点发送。转发路径的入口节点在接收到报文以后,从设备内部存储的若干转发路径中确定所述报文的转发路径,并确定对应该转发路径的段列表。将所述段列表添加至所述报文中,用于指导所述报文的转发。
第四方面,本申请提供了一种网络设备,执行第一方面或第一方面的任意一种可能的实现方式中的方法。具体地,该网络设备包括用于执行第一方面或第一方面的任意一种可能的实现方式中的方法的单元。
第五方面,本申请提供了一种网络设备,执行第二方面或第二方面的任意一种可能的实现方式中的方法。具体地,该网络设备包括用于执行第二方面或第二方面的任意一种可能的实现方式中的方法的单元。
第六方面,本申请提供了一种控制器,执行第三方面中的方法。具体地,该网络设备包括用于执行第三方面中的方法的单元。
第七方面,本申请提供了一种网络设备,该网络设备包括:处理器、通信接口和存储器。通信接口可以是收发器。存储器可以用于存储程序代码,处理器用于调用存储器中的程序代码执行前述第一方面或第一方面的任意一种可能的实现方式中的方法,此处不再赘述。
第八方面,本申请提供了一种网络设备,该网络设备包括:处理器、通信接口和存储器。通信接口可以是收发器。存储器可以用于存储程序代码,处理器用于调用存储器中的程序代码执行前述第二方面或第二方面的任意一种可能的实现方式中的方法,此处不再赘述。
第九方面,本申请提供了一种控制器,该控制器包括:处理器、通信接口和存储器。通信接口可以是收发器。存储器可以用于存储程序代码,处理器用于调用存储器中的程序代码执行前述第三方面中的方法,此处不再赘述。
第十方面,本申请提供了一种网络系统,该网络系统包括前述第四或五方面提供的网络设备,或者该网络系统包括前述第七或八方面提供的网络设备。
第十一方面,本申请提供了一种网络系统,该网络系统包括前述第四或五方面提供的网络设备,以及第六方面提供的控制器,或者该网络系统包括前述第七或八方面提供的网络设备,以及第九方面提供的控制器。
第十二方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
第十三方面,本申请提供了一种包括计算机程序指令的计算机程序产品,当该计算机程序产品在网络设备上运行时,使得网络设备执行第一方面、第二方面、第三方面、第一方面的任意一种可能的实现方式或第二方面的任意一种可能的实现方式中提供的方法。
第十四方面,本申请提供了一种芯片,包括存储器和处理器,存储器用于存储计算机程序,处理器用于从存储器中调用并运行该计算机程序,以执行上述第一方面及其第一方面任意可能的实现方式中的方法,或者,处理器执行第二方面或第二方面任意可能的实现方式中的方法,或者,处理器执行第三方面中的方法。
可选地,上述芯片仅包括处理器,处理器用于读取并执行存储器中存储的计算机程序,当计算机程序被执行时,处理器执行第一方面或第一方面任意可能的实现方式中的方法,或者,处理器执行第二方面或第二方面任意可能的实现方式中的方法,或者,处理器执行第三方面中的方法。
第十五方面,本申请提供了一种网络节点,该网络节点包括:主控板和接口板。主控板包括:第一处理器和第一存储器。接口板包括:第二处理器、第二存储器和接口卡。主控板和接口板耦合。
第一存储器可以用于存储程序代码,第一处理器用于调用第一存储器中的程序代码执行如下操作:为第一报文封装第二报文头,以形成第二报文,所述第二报文头包括所述多个第二类标识。
第二存储器可以用于存储程序代码,第二处理器用于调用第二存储器中的程序代码,触发接口卡执行如下操作:接收来自第一网络的第一报文,所述第一报文的第一报文头包括段列表,所述段列表包括依次排列的多个标识,所述多个标识中的每个标识用于标识一个网络设备或一个链路,所述多个标识包括至少一个第一类标识和多个第二类标识,所述第一类标识和所述第二类标识的类型不同,所述第一类标识所标识的网络设备或链路在所述第一网络中,所述第二类标识所标识的网络设备或链路在第二网络中,所述第一网络和所述第二网络的类型不同;向所述第二网络发送所述第二报文。
在一种可能的实现方式中,主控板和接口板之间建立进程间通信协议(inter-process communication,IPC)通道,主控板和接口板之间通过IPC通道进行通信。
第九方面,提供了一种网络节点,该网络节点包括:主控板和接口板。主控板包括:第一处理器和第一存储器。接口板包括:第二处理器、第二存储器和接口卡。主控板和接口板耦合。第一存储器可以用于存储程序代码,第一处理器用于调用第一存储器中的程序代码执行如下操作:在所述第一报文中添加段列表以形成第二报文,所述段列表指示所述第二报文的转发路径,所述转发路径包括多个网络设备,所述段列表包括依次排列的多个标识,所述多个标识中的每个标识用于标识所述多个网络设备中的一个网络设备或所述转发路径中的一个链路,所述多个标识包括至少一个第一类标识和多个第二类标识,所述第一类标识和所述第二类标识的类型不同,所述第一类标识所标识的网络设备或链路在第一网络中,所述第二类标识所标识的网络设备或链路在第二网络中,所述第一网络和所述第二网络的类型不同。
第二存储器可以用于存储程序代码,第二处理器用于调用第二存储器中的程序代码,触发接口卡执行如下操作:接收第一报文,发送所述第二报文。
在一种可能的实现方式中,主控板和接口板之间建立进程间通信协议(inter-process communication,IPC)通道,主控板和接口板之间通过IPC通道进行通信。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中使用的附图作简单地介绍。显而易见地,下面附图只是本申请的一些实施例的附图,对于本领域普通技术人员来说,在不付出创造性劳动性的前提下,还可以根据这些附图获得同样能实现本申请的其他技术方案和附图。
图1为本申请实施例提供的一种应用场景示意图;
图2为本申请实施例提供的一种SID的格式示意图;
图3为本申请实施例提供的一种报文的结构示意图;
图4为本申请实施例提供的一种应用场景示意图;
图5为本申请实施例提供的一种报文的结构示意图;
图6为本申请实施例提供的一种报文的结构示意图;
图7为本申请实施例提供的一种报文的结构示意图;
图8为本申请实施例提供的一种报文的结构示意图;
图9为本申请实施例提供的一种报文的结构示意图;
图10为本申请实施例提供的一种报文的结构示意图;
图11为本申请实施例提供的一种处理报文的方法流程图;
图12为本申请实施例提供的一种处理报文的方法流程图;
图13为本申请实施例提供的一种网络设备的结构示意图;
图14为本申请实施例提供的一种网络设备的结构示意图;
图15为本申请实施例提供的一种网络设备的结构示意图;
图16为本申请实施例提供的一种网络设备的结构示意图;
图17为本申请实施例提供的一种控制器的结构示意图;
图18为本申请实施例提供的一种网络系统的结构示意图。
具体实施方式
下面结合附图,对本申请的实施例进行描述。
图1示出了本申请实施例的一种可能的应用场景。该应用场景包括不同类型的网络,具体包括:网络1、网络2和网络3。每个网络中包括多个网络设备,这些网络设备可以是交换机、路由器或转发器。本申请实施例中的网络设备也可以称为网络节点,或者节点。具体的,网络1包括:节点A、节点B、节点C和节点D,网络2包括:节点G和节点H;节点E和节点F是网络1与网络2之间的设备,节点E和节点F同时支持网络1和网络2;网络3包括:节点K和节点L;节点I和节点J是网络2与网络3之间的设备,节点I和节点J同时支持网络2和网络3。
网络中还可以包括控制器,图1中未示出。控制器可以与节点A至L连接。控制器可以向节点A至L发送包含网络配置信息的控制报文。控制器还可以计算报文在各个网络中的转发路径,生成对应转发路径的段列表,并将段列表发送至各个网络的入口设备。具体的,网络1的入口设备为节点A,网络2的入口设备为节点E或节点F,网络3的入口设备为节点I或节点J。各个网络的入口设备也可以计算报文在该网络中的转发路径,并生成对应转发路径的段列表。各个网络的入口设备还可以将获得的段列表封装在报文中,用于指导报文转发。
可选的,其中网络1与网络3的类型相同,网络2与网络1、网络3的类型不同。例如,网络1和网络3为SRv6网络,网络2为MPLS网络或IPv4网络。也就是说,节点A、节点B、节点C和节点D可以是支持SRv6的网络设备,节点G和节点H是支持MPLS或IPv4的网络设备,节点K和节点L可以是支持SRv6的网络设备;节点E、节点F、节点I和节点J是同时支持SRv6、以及MPLS或IPv4的网络设备。其中,支持SRv6的网络设备也可以称为段路由设备,即节点A、节点B、节点C、节点D、节点E、节点F、节点I和节点J也可以称为段路由设备。
在SR网络中,对报文的处理过程由多个段组成,每个段为处理报文的指令或指令集合。在SRv6网络中,每个段具有相应的段标识,即SID。段标识包括节点段标识(node SID)和邻接段标识(adjacent SID)两种类型。图2示出了SRv6网络中SID的格式,如图2所示,每个SID可以包括位置(Locator)字段和功能(Function)字段。
SID中的位置字段用于定位到执行段所包括的指令或指令集合的具体网络设备。位置字段包括前缀(BLOCK)部分和序号(Node ID)部分。在一个SRv6网络域(domain)内,网络设备的SID的前缀部分可以是相同的。在一个SRv6网络域(domain)内,每个网络设备的SID的序号部分是不同的,每个序号部分用于唯一确定该域内的一个网络设备。对于一个特定的SID来说,该SID的序号部分所唯一确定的网络设备就是执行该SID所标识的段的网络设备。
SID中的功能字段用于表示段所包括的指令或指令集合的具体内容,也就是SRv6网络中的功能(Function)。SRv6网络中的功能还可能涉及到参数,用SID中的参数(Argument)字段表示(图2中未示出)。当功能不涉及参数时,则SID中可以不包括参数字段。
通常来说,SRv6网络中SID的总长度为128比特。其中位置字段和功能字段分别为特定长度,且这些特定长度是可以通过网络设置进行改变的。例如,位置字段为48比特,功能字段为80比特,或者位置字段为64比特,功能字段为64比特,或者位置字段为48比特,功能字段为64比特,参数字段为16比特。
多个SID组成段列表。图3示出了SRv6网络中报文的格式。如图3所示,该报文的报文头包括IPv6报文头和SRH,IPv6报文头包括目的地址(destination address,DA)字段,SRH包括段列表,段列表包括依次排列的多个SID。这些SID可以是节点段标识、邻接段标识、或节点段标识和邻接段标识的组合。
段列表可以由报文在SRv6网络中转发路径上的入口节点封装在报文中,报文转发路径上后续的节点可以根据报文中的段列表处理该报文。结合图1所示的应用场景,当报文需要在网络1内转发时,报文的转发路径可以依次经过节点A、节点B、节点C、节点D,到达节点E。对应该转发路径的段列表由节点A封装在报文中,节点B、节点C、节点D和节点E根据报文中的段列表处理该报文。具体的,报文由转发路径上的入口节点发出,转发路径上的特定节点接收报文。该节点确定报文的IPv6报文头的DA字段中包括该网络设备的SID,则根据该SID所标识的段所对应的指令集合对报文进行处理。所述处理报文的具体方式例如可以是转发报文。该网络设备还需要更新所述DA字段。在更新DA字段的过程中,需要利用SRH中的段剩余(segments left,SL)指针。如图3所示,段列表中包括依次排列的多个SID,即Segment List[0]至Segment List[n]。所述多个SID分别对应于报文转发路径上的多个网络设备,多个网络设备分别执行多个段所对应的指令集合。SL指针可以依次指向段列表中的多个SID。具体的,在报文的处理过程中,每执行一个段就更新一次SL指针的值,SL指针每次更新后在段列表中指向的位置偏移一个SID的长度,即128比特,随着对段列表中多个SID所表示的多个段的依次执行,不断更新SL指针的值。因此,该SL指针用于指示段列表中剩余待处理的段的数量。或者说,SL指针的每个取值对应于段列表中剩余待处理的段的特定数量,SL指针始终指向当前待处理的SID。并且,按照多个SID所表示的段在报文处理过程中的先后顺序,所述多个SID在段列表中倒序排列,也就是说,最先执行的段的SID排列在段列表中的最下方,后续执行的段的SID依次向上排列,最后执行的段的SID排列在段列表的最上方。参见图3,其中Segment List[n]表示最先执行的段,Segment List[0]表示最后执行的段。例如,SL指针的值为3,则表示段列表中剩余待处理的段的数量为4个,也可以理解为SL指针指向当前待处理的SID,即从下向上数的第4个SID;SL指针的值为0,则表示剩余待处理的段的数量为1个,也可以理解为SL指针指向当前待处理的SID,即从下向上数的最后一个SID,即图3中的Segment List[0]。网络设备根据SL指针确定当前待处理的SID以后,将该SID拷贝至IPv6报文头中的DA字段,用于后续根据DA字段中的内容处理报文。所述处理报文的具体方式例如可以是转发报文。
在MPLS网络中,根据转发过程中的处理方式将数据划分为转发等价类(forwarding equivalence class,FEC)。对于一个FEC的数据流,在转发路径上的各个节点赋予不同的MPLS标签,每个MPLS标签用于指示在节点的转发处理方式。MPLS网络的入口设备将对应转发路径上后续网络设备的MPL标签按照在转发路径上的顺序依次封装在数据报文中,数据报文转发过程按照这些MPLS标签依次进行。结合图1所示的应用场景,网络2可以为MPLS网络。当报文需要在网络2内转发时,报文的转发路径可以依次经过节点E、节点G和节点H,到达节点I。即报文在MPLS网络中的转发路径上的各个节点包括:节点E、节点G、节点H和节点I,节点E将对应节点G、节点H和节点I的MPLS标签按照在转发路径上的顺序依次封装在数据报文中,用于指导报文转发。
在IPv4网络中,报文可以通过隧道转发。在隧道源节点处根据报文中包括的信息将报文映射进隧道,进行转发。结合图1所示的应用场景,网络2可以为IPv4网络,节点F至节点J之间存在隧道,该隧道依次经过节点G和节点H。该隧道的类型可以是IPv6越过IPv4(IPv6 overIPv4,6over 4)隧道、虚拟局域网扩展(Virtual eXtensible Local AreaNetwork,VXLAN)隧道或通用路由封装(Generic Routing Encapsulation,GRE)隧道等。当报文需要在网络2内转发时,在节点F处根据报文中包括的信息将报文映射进上述隧道,经过节点G和节点H,转发至节点J。
由此可见,在不同类型的网络中,指导报文转发的方式不同。然而,在某些场景下,SRv6报文需要穿越其他类型的网络进行转发。例如,在软件定义广域网络(software-defined networking in a wide area network,SD-WAN)场景下,SRv6报文需要穿越IPv4网络进行转发。在非SRv6网络中,例如MPLS网络或IPv4网络,无法利用SRH中的段列表指导报文在该网络中的转发。因此,需要采取分段算路、逐段拼接的方式完成整个路径上的报文转发。例如,在图1所示的应用场景中,网络1和网络3为SRv6网络,网络2为MPLS网络,报文需要由节点A转发至节点L。节点A获得报文在网络1中的转发路径对应的段列表1,段列表1可以包括节点B、节点C、节点D和节点E的SID。结合以上描述,节点A将段列表1封装在报文中,转发路径上的各个节点根据段列表1转发报文,报文到达节点E。在节点E处,报文离开SRv6网络,进入MPLS网络。节点E获得报文在网络2中的转发路径对应的多个MPLS标签,具体包括节点G、节点H和节点I对应的MPLS标签。节点E将这些MPLS标签按照在转发路径上的顺序依次封装在数据报文中。转发路径上的各个节点根据这些MPLS标签转发报文,报文到达节点I。与网络1中类似,节点I获得报文在网络3中的转发路径对应的段列表2,段列表2可以包括节点K和节点L的SID。节点I将段列表2封装在报文中,转发路径上的各个节点根据段列表2转发报文,报文到达节点L。在上述分段算路、逐段拼接的方式中,各个网络的入口设备都需要获得报文在该网络内的转发路径,并通过相邻网络间的节点对相邻两段转发路径进行拼接,逐步形成完整的报文转发路径。然而,由于各段转发路径分别计算,没有进行全局规划,可能导致最终获得的完整转发路径不是全局最优的转发路径,并且各段转发路径的服务等级协议(service level agreement,SLA)难以统一。并且,为了在相邻网络间的节点实现路径拼接,需要在这些节点上进行额外的配置,增加工作量。
本申请实施例提供了转发报文的方法以及基于该方法的设备和系统。这些方法、设备和系统基于同一发明构思。该方法涉及报文的转发路径上的各个节点。在该方法中,报文转发路径的入口设备用多种标识来标识多种类型网络中的网络设备,并将多种标识混合编排在段列表中,在不支持直接利用段列表指导报文转发的网络的入口设备处,可以从段列表中获得该网络中的分段转发路径所对应的若干标识,并将这些标识拷贝至报文的特定位置,以便该网络中的其他网络设备能够按照该网络中指导报文转发的具体方式,进行报文转发。通过该方法能够在段列表中对经过多种类型网络的报文转发路径进行编程,并在报文转发路径的首节点将该段列表封装在报文中,从而避免分段算路、逐段拼接,有利于全局最优的路径规划,且简化网络配置。
结合图4所示的应用场景,网络1和网络3为SRv6网络,网络2为MPLS网络,或者网络2为IPv4网络,节点A、节点C、节点C和节点D是支持SRv6的网络设备,节点G和节点H是支持MPLS或IPv4的网络设备,节点K和节点L是支持SRv6的网络设备;节点E、节点F、节点I和节点J是同时支持SRv6以及MPLS的网络设备,或者节点E、节点F、节点I和节点J是同时支持SRv6以及IPv4的网络设备。网络中还可以包括控制器,图4中未示出。节点A向节点L发送报文。图11示出了该方法的方法流程图。该方法涉及网络设备101和网络设备102。其中网络设备101可以是报文转发路径的入口设备,用于在报文中添加指示报文的转发路径的段列表,例如,图4所示的节点A。网络设备102可以是转发路径上的节点,例如,图4所示的节点F。该方法的步骤包括:
S110,网络设备101接收第一报文。
网络设备101可以是图4中的节点A,结合图4所示的应用场景,节点A接收报文,该报文可以称为第一报文。节点A为报文转发路径的入口设备,同时节点A也是SRv6网络的入口设备。该报文需要向节点J发送。节点A获得报文的转发路径,该转发路径包括多个网络设备。如图4所示,该转发路径经过节点B、节点C、节点D、节点F、节点G、节点H、节点J、节点K,到达节点L。由此可见,该转发路径包括位于网络1、网络2和网络3中的多个网络设备,并且网络1和网络3,与网络2的类型不同。
可选的,所述报文转发路径由控制器生成,所述段列表由控制器生成。控制器将生成的段列表发送至节点A,具体的,控制器向节点A发送控制报文,该控制报文包括段列表。
可选的,所述报文转发路径由节点A生成,所述段列表由节点A生成。节点A确定报文转发路径,生成对应于该转发路径的段列表。
S120,网络设备101在所述第一报文中添加段列表以形成第二报文,所述段列表指示所述第二报文的转发路径,所述转发路径包括多个网络设备,所述段列表包括依次排列的多个标识,所述多个标识中的每个标识用于标识所述多个网络设备中的一个网络设备或所述转发路径中的一个链路,所述多个标识包括至少一个第一类标识和多个第二类标识,所述第一类标识和所述第二类标识的类型不同,所述第一类标识所标识的网络设备或链路在第一网络中,所述第二类标识所标识的网络设备或链路在第二网络中,所述第一网络和所述第二网络的类型不同。
网络设备101可以是图4中的节点A,结合图4所示的应用场景,节点A将指示报文转发路径的段列表添加在报文中,添加有段列表的报文可以称为第二报文。该段列表包括依次排列的多个标识,多个标识中的每个标识可以用于标识转发路径上的多个网络设备中的一个网络设备,也可以用于标识转发路径中的一个链路。具体的,节点A在报文中添加SRH,SRH中包括段列表。
在本申请实施例中,段列表中的多个标识可以包括至少两类标识,即第一类标识和第二类标识。其中,第一类标识用于标识报文在SRv6网络内转发路径的段标识或压缩段标识,第二类标识用于标识报文在非SRv6网络内转发路径。此时,该段列表也可以称为混编的段列表或通用的段列表。包括该通用的段列表的SRH可以称为通用的段路由头(genericsegment routing header,generic SRH,G-SRH)。具体的,段列表中的多个标识包括至少一个第一类标识和多个第二类标识,所述第一类标识和所述第二类标识的类型不同。所述第一类标识所标识的网络设备或链路在第一网络中,所述多个第二类标识所标识的网络设备或链路在第二网络中,所述第一网络和所述第二网络的类型不同。可选的,所述多个第二类标识彼此相邻。可选的,所述第一类标识可以是多个第一类标识。
结合图4所示的应用场景,第一网络可以是SRv6网络,第一网络可以包括网络1和网络3,所述第一类标识所标识的网络设备或链路在网络1及网络3中,第一类标识是长度为128比特的段标识或者长度小于128比特的压缩段标识,第二网络可以是MPLS网络或IPv4网络,第二网络可以是网络2,所述多个第二类标识所标识的网络设备或链路在网络2中,第二类标识包括MPLS标签或IPv4地址。
关于长度小于128比特的压缩段标识的介绍,可以在日期为2019年7月的题为“Compressed SRv6 Network Programming”的draft-li-spring-compressed-srv6-np-00中,以及在申请日为2019年9月27日申请号为201910925974.3的专利文件中找到,它们的全部内容通过引证结合于此,犹如全部陈述的一样。
优选的,该压缩段标识的长度为32比特,与MPLS标签的长度或IPv4地址的长度相同。
当网络2为MPLS网络时,包括段列表的报文可以如图5所示。段列表包括在SRH中,该段列表包括两类标识,第一类标识为多个SID,具体包括节点B、节点C、节点D、节点F、节点K和节点L的SID,分别表示为SID B,SID C,SID D,SID F,SID K和SID L。第二类标识为相邻的多个MPLS标签,具体包括节点G、节点H和节点J的MPLS标签,分别表示为MPLS G,MPLS H和MPLS J。
其中,SRv6网络中的转发路径用SID表示,例如SID B,SID C,SID D,SID K以及SIDL。MPLS网络中的转发路径用MPLS标签表示,例如MPLS G和MPLS H。SRv6网络与MPLS网络之间的转发路径则即可以用SID表示,也可以用MPLS标签表示,例如SID F以及MPLS J。
所有节点对应的标识根据这些节点在转发路径上的排列顺序依次排列。结合以上描述,SID在段列表中为倒序排列,因而上述所有节点对应的标识在段列表中也为倒序排列。具体的,SID B排列在段列表的最下方,也可以称为SID B排列在段列表的最前面,SIDC,SID D和SID F依次向上排列,也可以称为SID C,SID D和SID F依次向后排列。多个MPLS标签作为一个整体排列为SID F之后,然后是SID K和SID L依次排列在多个MPLS标签之后。关于多个MPLS标签内部的排列顺序,可以是按照在转发路径上的排列顺序正序排列,如图5所示。然而,所述多个MPLS标签内部的排列顺序也可以是按照在转发路径上的排列顺序倒序排列。
可选的,当多个MPLS标签的数量较多时,多个MPLS标签可能排列在段列表中的多个元素中,每个元素的长度为128比特。此时,包括MPLS标签的多个元素之间根据元素内包括的标识所对应的节点在转发路径上的排列顺序为倒序排列。而在每个元素内部的多个MPLS标签之间,可以是按照在转发路径上的排列顺序正序排列,也可以是按照在转发路径上的排列顺序倒序排列。
容易理解的是,每个元素中最多存放的MPLS标签的数量为4个。
容易理解的是,当多个MPLS标签存放在段列表中的至少一个元素中时,最后一个元素中在最后一个MPLS之后可能存在空闲空间,如图5所示的padding部分。
需要说明的是,虽然图5所示的段列表中的SID用于标识SRv6网络中的网络设备,但是显然段列表中的SID也可以用于标识SRv6网络中的链路。
段列表中的第一类标识也可以包括长度小于128比特的压缩段标识,或者,段列表中的第一类标识也可以同时包括长度为128比特的段标识和长度小于128比特的压缩段标识。这可以与转发路径中的网络设备是否支持压缩段标识有关,当某个网络设备支持压缩段标识时,该网络设备在段列表中可以由压缩段标识表示,当某个网络设备不支持压缩段标识、仅支持段标识时,该网络设备在段列表中可以由段标识表示。MPLS标签可以与压缩段标识排列在段列表中同一个元素中,所述元素的长度为128比特。MPLS标签也可以不与压缩段标识排列在段列表中同一个元素中,即多个MPLS标签中的第一个MPLS标签排列在压缩段标识之后的第一个元素的起始位置。
结合图1所示的应用场景,包括段列表的报文也可以如图6所示。段列表包括在SRH中,该段列表包括两类标识,第一类标识包括多个SID和多个压缩段标识,具体包括节点B、节点K和节点L的SID,以及节点C、节点D、节点F的C-SID,分别表示为SID B,C-SID C,C-SIDD,C-SID F,SID K和SID L。第二类标识为相邻的多个MPLS标签,具体包括节点G、节点H和节点J的MPLS标签,分别表示为MPLS G,MPLS H和MPLS J。
其中,SRv6网络中的转发路径用SID和压缩段标识表示,例如SID B,C-SID C,C-SID D,SID K以及SID L。MPLS网络中的转发路径用MPLS标签表示,例如MPLS G和MPLS H。SRv6网络与MPLS网络之间的转发路径则即可以用SID或C-SID表示,也可以用MPLS标签表示,例如C-SID F以及MPLS J。
与图5所示的段列表相似,图6所示的段列表中,所有节点对应的标识根据这些节点在转发路径上的排列顺序依次排列。与图5所示的段列表不同的是,段列表中每个长度为128比特的元素中排列多个压缩段标识或多个MPLS标签,或者压缩段标识和MPLS标签的组合。多个元素之间根据元素内包括的标识所对应的节点在转发路径上的排列顺序倒序排列。如图5所示,SID B排列在段列表的最前面,C-SID C,C-SID D,C-SID F和MPLS G组成的整体排列在SID B之后,即MPLS标签与压缩段标识排列在段列表中同一个元素中,随后排列MPLS H和MPLS J组成的整体。在每个元素内部,压缩段标识或MPLS标签可以是按照相应节点在转发路径上的排列顺序正序排列,如图5所示。然而,所述每个元素内部,压缩段标识或MPLS标签的排列顺序也可以是按照相应节点在转发路径上的排列顺序倒序排列。
当网络2为IPv4网络时,包括段列表的报文可以如图7所示。段列表包括在SRH中,该段列表包括两类标识,与图5中的段列表相似,第一类标识为多个SID,具体包括SID B,SID C,SID D,SID F,SID K和SID L。第二类标识包括相邻的两个IPv4地址,具体包括节点G和节点J的IPv4地址,分别表示为IPv4 G和IPv4 J。
其中,SRv6网络中的转发路径用SID表示,例如SID B,SID C,SID D,SID K以及SIDL,与图5中的段列表相似。IPv4网络中的转发路径用隧道的源地址和目的地址表示。所述隧道的源地址和目的地址均为IPv4地址,例如IPv4 G和IPv4 J。
除了隧道的源地址和目的地址,段列表中还包括隧道类型(Tunnel Type)字段,以及可变长度的类型相关参数(Flexible Length Type Specific Arguments)字段。隧道类型字段的长度为8字节,即64比特,用于表示隧道类型。具体的,隧道类型字段通过特定取值来对应至某个隧道类型,例如,隧道类型字段取值为1时,表示6over 4隧道,隧道类型取值为2时,表示VXLAN隧道,隧道类型字段取值为3时,表示GRE隧道,等等。可变长度的类型相关参数字段可以携带隧道类型相关的一些参数,例如,当隧道类型为6over4时,该可变长度的类型相关参数可以携带生存时间值(time to lift,TTL),用于指定报文被丢弃之前允许通过的最大网段数量。该可变长度的类型相关参数字段的长度是可变的,例如128比特、256比特或384比特,等等,该长度与隧道类型相关。这些字段以及隧道的源地址和目的地址可以统称为段列表中的IPv4隧道参数。也就是说,通过在段列表中携带上述IPv4隧道参数,实现在段列表中对IPv4网络中的转发路径进行编程。
可选的,所述隧道类型字段的取值与隧道类型的对应关系,隧道类型与可变长度的类型相关参数字段的长度的对应关系,以及隧道类型与类型相关参数的对应关系,可以由控制器向网络中的各个节点发布,并由各个节点保存在本地。
与图5所示的段列表相似,图7所示的段列表中,所有节点对应的标识根据这些节点在转发路径上的排列顺序依次排列。具体的,SID B排列在段列表的最下方,SID C,SID D和SID F依次向上排列。IPv4隧道参数作为一个整体排列为SID F之上,然后是SID K和SIDL依次排列在IPv4隧道参数之上。在IPv4隧道参数内部,隧道的源地址和目的地址中每个IPv4地址的长度为32比特,共64比特,隧道类型参数字段的长度为64比特,即隧道的源地址和目的地址以及隧道类型参数字段共128比特,作为一个整体排列在SID F之上。可变长度的类型相关参数字段、隧道的源地址和目的地址以及隧道类型参数字段的排列顺序可以在网络中约定。例如,可变长度的类型相关参数字段可以排列在隧道的源地址和目的地址以及隧道类型参数字段组成的整体之上。
由此可见,在本申请实施例中,除了用于标识报文在SRv6网络内转发路径的段标识或压缩段标识以外,段列表中还可以包括用于标识报文在非SRv6网络内转发路径的第二类标识。具体的,第二类标识可以是MPLS标签或IPv4地址。当段列表中存在所述第二类标识时,还可以在段列表中设置指示标识,用于向转发路径中的节点指示所述第二类标识的存在,并且指示所述第二类标识在段列表中的起始位置。
可选的,指示标识可以是一个独立的标识,即指示标识不包括在段列表中的所述多个标识中。该独立的指示标识位于至少一个第一类标识之后、多个第二类标识之前,即该独立的指示标识排列在至少一个第一类标识和多个第二类标识中的第一个第二类标识之间。当转发路径中的节点读取到该指示标识时,即获知其后有多个第二类标识跟随。优选的,所述指示标识的长度为32比特,与MPLS标签和IPv4地址的长度相同。
可选的,指示标识可以包括在段列表的所述多个标识中。具体的,指示标识包括在末尾段标识内,所述末尾段标识是所述第一类标识,所述末尾段标识与所述多个第二类标识中的第一个标识相邻,且所述末尾段标识位于所述多个第二类标识中的第一个标识之前。也就是说,所述末尾段标识是所述多个第二类标识之前的最后一个第一类标识。所述末尾段标识是长度为128比特的段标识或者长度小于128比特的压缩段标识。例如,所述末尾段标识可以是图5或图7中的SID F,或者所述末尾段标识可以是图6中的C-SID F。
当指示标识位于所述末尾段标识中时,所述指示标识可以用于标识SRv6网络中的功能,所述指示标识位于所述末尾段标识的功能字段中。例如,当所述第二网络为MPLS网络,所述第二类标识为MPLS标签时,所述指示标识可以是新定义的SRv6网络中的功能,用END.M表示,该功能的具体内容将在下文进行描述。例如,当所述第二网络为IPv4网络,所述第二类标识为IPv4地址时,所述指示标识可以是新定义的SRv6网络中的功能,用END.4表示,该功能的具体内容将在下文进行描述。
当段列表中存在所述第二类标识,且第二类标识为MPLS标签时,还可以在段列表中设置结束标识,用于向转发路径中的节点指示多个MPLS标签在段列表中的结束位置。
可选的,结束标识可以是一个独立的标识,即结束标识不包括在段列表中的所述多个标识中。该独立的指示标识位于多个MPLS标签之后,且与多个MPLS标签中的最后一个MPLS标签相邻。当转发路径中的节点读取到该结束标识时,即获知已经到达多个MPLS标签在段列表中的结束位置。优选的,所述结束标识的长度为32比特,与MPLS标签的长度相同。
可选的,结束标识可以包括在多个MPLS标签中的最后一个MPLS标签中。该结束标识可以是MPLS标签中某个字段,当该字段为特定取值时,即作为结束标识。
当段列表中存在所述第二类标识,且第二类标识为MPLS标签时,还可以在段列表中设置数量标识,用于向转发路径中的节点指示段列表中多个MPLS标签的数量。当转发路径中的节点读取到所述指示标识时,获知其后有多个MPLS标签跟随,即获多个MPLS标签在段列表中的起始位置,并且读取到数量标识时,可以获知段列表中多个MPLS标签的数量,以便从段列表中获取多个MPLS标签中的全部标签,具体过程将在下文进行描述。
可选的,数量标识可以包括在所述末尾段标识内。可选的,当指示标识位于所述末尾段标识中,且指示标识用于标识SRv6网络中的功能时,所述数量标识可以是该功能的参数,即该数量标识位于所述末尾段标识的参数字段中。例如,当所述第二网络为MPLS网络,所述第二类标识为MPLS标签时,所述指示标识可以是新定义的SRv6网络中的功能,用END.M表示,所述数量标识为END.M的参数。例如,当所述第二网络为IPv4网络,所述第二类标识为IPv4地址时,所述指示标识可以是新定义的SRv6网络中的功能,用END.4表示,所述数量标识为END.4的参数。
可选的,数量标识可以包括在多个MPLS标签中的第一个MPLS标签中。
可选的,当段列表由控制器生成时,控制器向节点A发送段列表的控制报文中可以包括混编标志,用于指示该段列表中的多个标识包括标识报文在SRv6网络内转发路径的段标识或压缩段标识,以及用于标识报文在非SRv6网络内转发路径的第二类标识。从而,当节点A从控制器接收控制报文时,读取到该混编标志,即可获知该控制报文中包括的段列表为混编的段列表,或称为通用的段列表。
S130,网络设备101发送所述第二报文。
网络设备101可以是图4所示的节点A,结合图4所示的应用场景,节点A将添加有段列表的报文发送出去。该报文经过节点B、节点C和节点D到达节点F,该报文在节点B、节点C和节点D处的转发处理过程可以结合以上对SRv6网络中报文转发过程的描述,在此不再赘述。
S140,网络设备102接收来自第一网络的第二报文,所述第二报文的第一报文头包括段列表,所述段列表包括依次排列的多个标识,所述多个标识中的每个标识用于标识一个网络设备或一个链路,所述多个标识包括至少一个第一类标识和多个第二类标识,所述第一类标识和所述第二类标识的类型不同,所述第一类标识所标识的网络设备或链路在所述第一网络中,所述第二类标识所标识的网络设备或链路在第二网络中,所述第一网络和所述第二网络的类型不同。
网络设备102可以是图4所示的节点F,结合图4所示的应用场景,节点F接收来自SRv6网络的报文,报文的SRH中包括段列表,该报文即节点A发出的报文,即所述第二报文。该SRH可以称为所述第二报文的第一报文头。
S150,网络设备102为所述第二报文封装第二报文头,以形成第三报文,所述第二报文头包括所述多个第二类标识。
网络设备102可以是图4所示的节点F,结合图4所示的应用场景,为了使得报文能够在所述第二网络中转发,节点F从报文中的段列表中获得所述多个第二类标识,为报文封装第二报文头,所述第二报文头中包括所述多个第二类标识。
节点F可以在报文中获得所述指示标识,所述指示标识用于指示所述第二类标识的起始位置。因而,节点F读取到指示标识,则获知所述段列表中在该指示标识之后跟随有多个第二类标识。
结合以上描述,该指示标识可以是第一类标识之后、多个第二类标识之前的一个独立的标识,该指示标识也可以包括在所述多个第二类标识之前的最后一个第一类标识中。
当所述指示标识是一个独立的标识时,节点F根据SRH中的指针读取到该指示标识,所述SRH中的指针包括SL指针和/或CL指针。所述SL指针用于指示SID在段列表中的位置,或者得用于指示包括压缩段标识和/或MPLS标签的元素在段列表中的位置。所述CL指针用于指示压缩段标识在元素内的位置。当节点F接收到报文时,根据所述SL指针确定段列表中当前待处理的标识,或者根据所述SL指针和所述CL指针确定段列表中当前待处理的标识,该当前待处理的标识即为所述指示标识。节点F根据所述SL指针和/或所述CL指针获得所述当前待处理的标识的过程,可以参见日期为2019年7月的题为“Compressed SRv6Network Programming”的draft-li-spring-compressed-srv6-np-00中,以及在申请日为2019年9月27日申请号为201910925974.3的专利文件中的描述,在此不再赘述。
当所述指示标识包括在所述多个第二类标识之前的最后一个第一类标识中时,结合图4所示的应用场景,该最后一个第一类标识为节点F对应的段标识或压缩段标识。根据SRv6网络中的报文转发机制,当节点F接收到报文时,节点F对应的段标识或压缩段标识位于报文的IPv6报文头的DA字段中。节点F在DA字段中读取到所述指示标识。进而,节点根据所述SL指针确定段列表中当前待处理的标识,或者根据所述SL指针和所述CL指针确定段列表中当前待处理的标识,该当前待处理的标识即为所述多个第二类标识中的第一个标识。节点F根据所述SL指针和/或所述CL指针获得所述当前待处理的标识的过程,可以参见日期为2019年7月的题为“Compressed SRv6 Network Programming”的draft-li-spring-compressed-srv6-np-00中,以及在申请日为2019年9月27日申请号为201910925974.3的专利文件中的描述,在此不再赘述。
所述第二报文头可以是MPLS头,即所述第二报文头包括多个MPLS标签,所述第二类标识为MPLS标签。
当所述多个第二类标识为多个MPLS标签时,节点F根据指示标识获知其后有多个MPLS标签跟随,且获知了多个MPLS标签在段列表中的起始位置,或者说获知了依次排列的多个MPLS标签中的第一个MPLS标签。
进一步的,节点F可以通过结束标识确定多个MPLS标签在段列表中的结束位置,即节点F可以通过结束标识确定依次排列的多个MPLS标签中的最后一个MPLS标签,从而确定所述多个MPLS标签中的全部标签。
或者,进一步的,节点F可以通过数量标识确定依次排列的多个MPLS标签的数量,从而确定所述多个MPLS标签中的全部标签。并且,所述数量标识和所述结束标识可以择一设置。
结合图5所示的报文结构,进行举例说明。例如,在图5所示报文的段列表中,所述指示标识包括在SID F的功能字段中,具体标识END.M的功能,数量标识包括在SID F的参数字段中,具体标识MPLS标签的数量为3。当节点F接收到报文时,从报文的IPv6报文头的DA字段中读取到SID F。节点F根据SID F的功能字段包括END.M的标识,获知在段列表中SID F之后跟随有多个MPLS标签,并且根据参数字段,获知MPLS标签的数量为3。节点F根据SL指针的指示,找到段列表中SID F之后的元素,该元素的长度为128比特,即包括MPLS G,MPLS H,MPLS J和padding的整体。节点F根据MPLS标签的数量为3,从该元素中获取3个长度为32比特的MPLS标签,即MPLS G,MPLS G和MPLS J。节点F为报文封装第二报文头,该第二报文头包括MPLS G,MPLS G和MPLS J。根据MPLS标签的转发机制,在第二报文头中,上述三个MPLS标签按照在转发路径上的顺序依次排列,最先到达的节点对应的MPLS标签排列在栈顶,随后到达的节点对应的MPLS标签依次向下排列。封装后第二报文头以后的报文结构如图8所示。其中,报文由内至外封装有三个报文头:第一报文头即SRH,IPv6报文头,以及第二报文头。
例如,在图5所示报文的段列表中,所述指示标识还可以是独立的标识,所述数量标识还可以包括在MPLS G中,或者还可以由所述结束标识代替所述数量标识,所述结束标识可以是独立的标识,所述结束标识也可以包括在MPLS J中,相应的处理过程在此不再赘述。
结合图6所示的报文结构,进行举例说明。例如,在图6所示报文的段列表中,所述指示标识包括在C-SID F的功能字段中,具体标识END.M的功能,数量标识包括在C-SID F的参数字段中,具体标识MPLS标签的数量为3。当节点F接收到报文时,从报文的IPv6报文头的DA字段中读取到C-SID F和前缀部分(BLOCK)组成的SID-F。节点F根据功能字段包括END.M的标识,获知在段列表中C-SID F之后跟随有多个MPLS标签,并且根据参数字段,获知MPLS标签的数量为3。节点F根据SL指针的指示,找到段列表中包括C-SID F的元素,该元素的长度为128比特,即包括C-SID C,C-SID D,C-SID F和MPLS G的整体。节点F进一步根据CL指针的指示,找到该元素中C-SID F之后的标识,即MPLS G。节点F根据MPLS标签的数量为3,从该元素中获取MPLS G,并从该元素的后一个元素中获取MPLS H和MPLS J,共3个长度为32比特的MPLS标签。节点F为报文封装第二报文头,该第二报文头包括MPLS G,MPLS G和MPLS J。封装后第二报文头以后的报文结构如图9所示。其中,报文由内至外封装有三个报文头:第一报文头即SRH,IPv6报文头,以及第二报文头。
例如,在图5和图6所示报文的段列表中,所述指示标识还可以是独立的标识,所述数量标识还可以包括在MPLS G中,或者还可以由所述结束标识代替所述数量标识,所述结束标识可以是独立的标识,所述结束标识也可以包括在MPLS J中,相应的处理过程在此不再赘述。
所述第二报文头可以是IPv4头,即所述第二报文头可以包括多个IPv4地址,即所述第二类标识为IPv4地址。
当所述多个第二类标识为多个IPv4地址时,节点F根据指示标识获知其后有包括多个IPv4地址的IPv4隧道参数跟随,且获知了IPv4隧道参数在段列表中的起始位置。
结合图7所示的报文结构,进行举例说明。例如,在图7所示报文的段列表中,所述指示标识包括在SID F的功能字段中,具体标识END.4的功能。当节点F接收到报文时,从报文的IPv6报文头的DA字段中读取到SID F。节点F根据SID F的功能字段包括END.4的标识,获知在段列表中SID F之后跟随有包括多个IPv4地址的IPv4隧道参数。节点F根据SL指针的指示,找到段列表中SID F之后的元素,该元素的长度为128比特,即包括隧道的源地址和目的地址以及隧道类型参数字段的整体。节点F根据隧道类型参数字段的取值,获知隧道类型为6over 4隧道,并根据隧道类型为6over 4隧道确定可变长度的类型相关参数字段的长度为128比特。节点F还根据隧道类型为6over 4隧道确定可变长度的类型相关参数字段中包括TTL,从该元素的下一个元素中读取TTL值。从而,节点F为报文封装第二报文头,该第二报文头为IPv4报文头,其中的源地址和目的地址分别为节点F和节点J的IPv4地址。封装后第二报文头以后的报文结构如图10所示。其中,报文由内至外封装有三个报文头:第一报文头即SRH,IPv6报文头,以及第二报文头。
例如,在图7所示报文的段列表中,所述指示标识还可以是独立的标识,相应的处理过程在此不再赘述。
可选的,在为报文封装第二报文头之后,节点F可以继续向报文的IPv6报文头的DA字段中添加跨域标识。该跨域标识是段列表中所述多个标识中的一个标识,并且该跨域标识是段列表中所述第一类标识。具体的,该跨域标识是报文在穿越第二网络之后所到达的第一网络中的第一个节点所对应的长度为128比特的段标识或者长度小于128比特的压缩段标识。结合图4所示的应用场景,该跨域标识可以是节点J所对应的SID或压缩段标识。
可选的,在为报文封装第二报文头之后,节点F可以更新所述SL指针的值,以使得所述SL指针指向承载MPLS标签的多个段之后的第一个段,也就是使得所述SL指针指向段列表中所述多个MPLS标签之后的第一个标识所在的长度为128比特的元素。
可选的,在为报文封装第二报文头之后,节点F可以更新所述CL指针的值,以使得所述CL指针指向元素的起始位置,例如,将所述CL指针的值归零。
S160,网络设备102向所述第二网络发送所述第三报文。
网络设备102可以是图4所示的节点F,结合图4所示的应用场景,节点F向第二网络发送封装有所述第二报文头的报文,该报文即节点F发出的报文,即所述第三报文。
当所述第二类标识为MPLS标签时,节点F向第二报文头中栈顶的MPLS标签所标识的节点发送封装有所述第二报文头的报文,即向节点G发送报文。按照MPLS标签栈的转发机制,该报文经过节点G、节点H到达节点J,该报文在节点G、节点H和节点J处的转发处理过程在此不再赘述。
当所述第二类标识为IPv4地址时,节点F根据IPv4报文头中的目的地址查询IPv4转发信息库(Forwarding Information base,FIB),并根据查询结果,通过节点F和节点J之间的隧道发送封装有所述第二报文头的报文。该报文经过节点G、节点H到达节点J。
节点J接收来自第二网络的报文,删除报文中的第二报文头,保留IPv6报文头和SRH,按照SRv6网络中的报文转发机制,继续向SRv6网络发送该报文,即向节点K发送该报文。例如,此时报文的IPv6报文头的DA字段中包括节点J所对应的SID,节点J根据该SID所标识的段的处理内容对报文进行转发处理。
该报文继续经过节点K到达节点L,该报文在节点K和节点L处的转发处理过程可以结合以上对SRv6网络中报文转发过程的描述,在此不再赘述。
在实际网络中,报文的转发路径可以由控制器生成,也可以由转发路径的入口节点生成。当控制器生成报文的转发路径时,控制器也生成指示该转发路径的段列表,该段列表可以是包括所述第一类标识和所述第二类标识的段列表,即混编的段列表或通用的段列表。控制器将该段列表向转发路径的入口节点发送。转发路径的入口节点在接收到报文以后,从设备内部存储的若干转发路径中确定所述报文的转发路径,并确定对应该转发路径的段列表。将所述段列表添加至所述报文中,用于指导所述报文的转发。
本发明实施例提供了一种转发报文的方法。图12示出了该方法的方法流程图。该方法涉及控制器201,网络设备202和网络设备203。其中控制器201可以是网络中的控制器,用于计算报文的转发路径,并生成指示所述转发路径的段列表,例如图4所示的应用场景中的控制器,图4未示出该控制器。网络设备202可以是报文转发路径的入口设备,用于在报文中添加指示报文的转发路径的段列表,例如,图4所示的节点A。网络设备203可以是转发路径上的节点,例如,图4所示的节点F。该方法的步骤包括:
S210,控制器201确定第一报文的转发路径,所述转发路径包括位于至少两个网络中的多个网络设备,所述至少两个网络包括第一网络和第二网络,所述第一网络和所述第二网络的类型不同。
控制器201可以是图4所示应用场景中的控制器,结合图4所示的应用场景,所述第一网络可以是SRv6网络,第一网络可以包括网络1和网络3,第二网络可以是网络2。该第一报文由节点A进入网络1,其转发路径经过节点B、节点C、节点D、节点F、节点G、节点H、节点J、节点K,到达节点L。由此可见,该转发路径包括位于网络1、网络2和网络3中的多个网络设备,并且网络1和网络3,与网络2的类型不同。
S220,控制器201生成对应于所述转发路径的所述段列表,所述段列表包括依次排列的所述多个标识,所述多个标识中的每个标识分别对应于所述多个网络设备中的一个网络设备或所述转发路径中的一个链路,所述多个标识包括至少一个第一类标识和多个第二类标识,所述第一类标识和所述第二类标识的类型不同,所述第一类标识所标识的网络设备或链路在所述第一网络中,所述第二类标识所标识的网络设备或链路在第二网络中。
结合图4所示的应用场景,该段列表中的第一类标识用于标识报文在SRv6网络内转发路径的段标识或压缩段标识,第二类标识用于标识报文在非SRv6网络内转发路径。此时,该段列表也可以称为混编的段列表或通用的段列表。包括该通用的段列表的SRH可以称为通用的段路由头。所述第一类标识所标识的网络设备或链路在网络1及网络3中,第一类标识是长度为128比特的段标识或者长度小于128比特的压缩段标识第二网络可以是MPLS网络或IPv4网络,所述多个第二类标识所标识的网络设备或链路在网络2中,第二类标识包括MPLS标签或IPv4地址。所述多个第二类标识彼此相邻。
S230,控制器201向网络设备202发送所述段列表。
结合图4所示的应用场景,控制器向节点A发送控制报文,该控制报文包括段列表。可选的,控制器向节点A发送段列表的控制报文中可以包括混编标志,用于指示该段列表中的多个标识包括标识报文在SRv6网络内转发路径的段标识或压缩段标识,以及用于标识报文在非SRv6网络内转发路径的第二类标识。从而,当节点A从控制器接收控制报文时,读取到该混编标志,即可获知该控制报文中包括的段列表为混编的段列表,或称为通用的段列表。
S240,网络设备202接收所述第一报文。
网络设备202可以是图4所示的节点A,结合图4所示的应用场景,步骤S240的具体过程可以参照对步骤S110的描述,相似之处不再赘述。
S250,网络设备202在所述第一报文中添加段列表以形成第二报文,所述段列表指示所述第二报文的转发路径,所述转发路径包括多个网络设备,所述段列表包括依次排列的多个标识,所述多个标识中的每个标识用于标识所述多个网络设备中的一个网络设备或所述转发路径中的一个链路,所述多个标识包括至少一个第一类标识和多个第二类标识,所述第一类标识和所述第二类标识的类型不同,所述第一类标识所标识的网络设备或链路在第一网络中,所述第二类标识所标识的网络设备或链路在第二网络中,所述第一网络和所述第二网络的类型不同。
结合图4所示的应用场景,步骤S250的具体过程可以参照对步骤S120的描述,相似之处不再赘述。
S260,网络设备202发送所述第二报文。
结合图4所示的应用场景,步骤S260的具体过程可以参照对步骤S130的描述,相似之处不再赘述。
S270,网络设备203接收来自第一网络的第二报文,所述第二报文的第一报文头包括段列表,所述段列表包括依次排列的多个标识,所述多个标识中的每个标识用于标识一个网络设备或一个链路,所述多个标识包括至少一个第一类标识和多个第二类标识,所述第一类标识和所述第二类标识的类型不同,所述第一类标识所标识的网络设备或链路在所述第一网络中,所述第二类标识所标识的网络设备或链路在第二网络中,所述第一网络和所述第二网络的类型不同。
网络设备203可以是图4所示的节点F,结合图4所示的应用场景,步骤S270的具体过程可以参照对步骤S140的描述,相似之处不再赘述。
S280,网络设备203为所述第二报文封装第二报文头,以形成第三报文,所述第二报文头包括所述多个第二类标识。
结合图4所示的应用场景,步骤S280的具体过程可以参照对步骤S150的描述,相似之处不再赘述。
S290,网络设备203向所述第二网络发送所述第三报文。
结合图4所示的应用场景,步骤S290的具体过程可以参照对步骤S160的描述,相似之处不再赘述。
图13是本申请实施例提供的一种设备1300的结构示意图。图4所示应用场景中任一网络设备可以通过图13所示的设备来实现,例如,节点A以及节点F可能通过图13所示的设备来实现。图11所示实施例中的网络设备101、网络设备102,以及图12所示实施例中的控制器201、网络设备202和网络设备203可以通过图13所示的设备来实现。参见图13,该设备1300包括至少一个处理器1301以及至少一个通信接口1304,可选地,该设备1300还可以包括存储器1303。
处理器1301可以是中央处理器(central processing unit,CPU)、通用处理器,数字信号处理器(digital signal processor,DSP)、专用集成电路(application-specificintegrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明实施例公开内容所描述的各种逻辑方框、模块和电路。所述处理器也可以是实现计算功能的组合,例如包括一个或多个微处理器组合,DSP和微处理器的组合等等。处理器可以用于生成段列表,或者对接收到的报文进行处理,并将处理后的报文通过通信接口继续转发。以实现本申请实施例中提供的方法。
比如,当网络中的控制器通过图13所示的设备来实现时,该处理器可以用于生成段列表,以便于网络设备根据段列表对相应的报文进行转发处理,具体功能实现可参考方法实施例中控制器的处理部分。比如,当图4中的网络入口设备通过图13所示的设备来实现时,该处理器可以用于在接收到的报文中添加段列表,以便于后续网络设备根据报文中的段列表对报文进行转发处理,具体功能实现可参考方法实施例中网络入口设备的处理部分。又比如,当图4中网络中的转发设备通过图13所示的设备来实现时,该处理器可以用于根据报文中的段列表对报文进行转发处理,具体功能实现可参考方法实施例中转发设备的处理部分。
通信总线1302用于在处理器1301、通信接口1304和存储器、1303之间传送信息。总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图13中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器1303可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only Memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器1303可以是独立存在,通过通信总线1302与处理器1301相连接。存储器1303也可以和处理器1301集成在一起。
可选地,存储器1303用于存储执行本申请方案的程序代码或指令,并由处理器1301来控制执行。处理器1301用于执行存储器1303中存储的程序代码。程序代码中可以包括一个或多个软件模块。可选地,处理器1301自身也可以存储执行本申请方案的程序代码或指令。
通信接口1304,使用任何收发器一类的装置,用于与其它设备或通信网络通信,通信网络可以为以太网、无线接入网(RAN)或无线局域网(wireless local area networks,WLAN)等。在本申请实施例中,通信接口1304可以用于接收分段路由网络中的其他节点发送的报文,也可以向分段路由网络中的其他节点发送报文。通信接口1304可以为以太接口(Ethernet)接口、快速以太(Fast Ethernet,FE)接口、千兆以太(Gigabit Ethernet,GE)接口或异步传输模式(Asynchronous Transfer Mode,ATM)接口。
在具体实现中,作为一种实施例,设备1300可以包括多个处理器,例如图13中所示的处理器1301和处理器1305。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
图14是本申请实施例提供的一种设备1400的结构示意图。图4中除控制器外的任一网络设备可以通过图14所示的设备来实现。图11所示实施例中的网络设备101、网络设备102,以及图12所示实施例中的网络设备202和网络设备203可以通过图14所示的设备来实现。参见图14所示的设备结构示意图。设备1400包括主控板和一个或多个接口板,主控板与接口板通信连接。主控板也称为主处理单元(main processing unit,MPU)或路由处理卡(route processor card),主控板负责对设备1400中各个组件的控制和管理,包括路由计算、设备管理和维护功能。接口板也称为线卡(line processing unit,LPU)或线卡(linecard),用于转发数据。在一些实施例中,设备1400也可以包括交换网板,交换网板与主控板、接口板通信连接,交换网板用于转发接口板之间的数据,交换网板也可以称为交换网板单元(switch fabric unit,SFU)。接口板包括中央处理器、存储器、转发芯片和物理接口卡(physical interface card,PIC)。中央处理器与存储器、网络处理器和物理接口卡分别通信连接。存储器用于存储转发表。转发芯片用于基于存储器中保存的转发表转发接收到的数据帧,如果数据帧的目的地址为设备1400的地址,则将该数据帧上送CPU处理;如果数据帧的目的地址不是设备1400的地址,则根据该目的地址从转发表中查找到该目的地址对应的下一跳和出接口,将该数据帧转发到该目的地址对应的出接口。转发芯片可以是网络处理器(network processor,NP)。PIC也称为子卡,可安装在接口板上,负责将光电信号转换为数据帧并对数据帧进行合法性检查后转发给转发芯片处理。在一些实施例中,中央处理器也可执行转发芯片的功能,比如基于通用CPU实现软件转发,从而接口板中不需要转发芯片。主控板、接口板、交换网板之间的通信连接可以通过总线来实现。在一些实施例中,转发芯片可以通过专用集成电路(application-specific integrated circuit,ASIC)或现场可编程门阵列(field programmable gate array,FPGA)实现。
在逻辑上,设备1400包括控制面和转发面,控制面包括主控板和中央处理器,转发面包括执行转发的各个组件,比如存储器、PIC和NP。控制面执行路由器、生成转发表、处理信令和协议报文、配置与维护PE1的状态等功能,控制面将生成的转发表下发给转发面,在转发面,NP基于控制面下发的转发表对设备1400的PIC收到的报文查表转发。控制面下发的转发表可以保存在存储器中。在有些实施例中,控制面和转发面可以完全分离,不在同一设备上。
图15示出了上述实施例中所涉及的网络设备的一种可能的结构示意图,网络设备1500可以实现上述实施例中网络设备102或网络设备203的功能。参阅图15,该网络设备1500包括:接收单元1501、处理单元1502和发送单元1503。这些单元可以执行上述方法中网络设备102或网络设备203的相应功能。举例来说,
接收单元1501,用于接收来自第一网络的第一报文,所述第一报文的第一报文头包括段列表,所述段列表包括依次排列的多个标识,所述多个标识中的每个标识用于标识一个网络设备或一个链路,所述多个标识包括多个第一类标识和多个第二类标识,所述第一类标识和所述第二类标识的类型不同,所述第一类标识所标识的网络设备或链路在所述第一网络中,所述第二类标识所标识的网络设备或链路在第二网络中,所述第一网络和所述第二网络的类型不同。
处理单元1502,用于为所述第一报文封装第二报文头,以形成第二报文,所述第二报文头包括所述多个第二类标识。
发送单元1503,用于向所述第二网络发送所述第二报文。
网络设备1500也可以通过图13所示的设备来实现。此时,网络设备1500包括:至少一个处理器、通信总线以及至少一个通信接口。可选的,网络设备1500还可以包括存储器。
在具体实施例中,网络设备1500中的处理器用于通过通信接口接收来自第一网络的第一报文,所述第一报文的第一报文头包括段列表,所述段列表包括依次排列的多个标识,所述多个标识中的每个标识用于标识一个网络设备或一个链路,所述多个标识包括至少一个第一类标识和多个第二类标识,所述第一类标识和所述第二类标识的类型不同,所述第一类标识所标识的网络设备或链路在所述第一网络中,所述第二类标识所标识的网络设备或链路在第二网络中,所述第一网络和所述第二网络的类型不同;为所述第一报文封装第二报文头,以形成第二报文,所述第二报文头包括所述多个第二类标识;通过通信接口向所述第二网络发送所述第二报文。该处理器的详细处理过程请参考上述实施例中的过程S140,S150,S160以及过程S270,S280,S290的详细描述,这里不再赘述。
网络设备1500中的通信接口用于网络设备1500通过网络系统接收和发送报文。具体的过程请参考上述实施例中S140,S160以及S270,S290的详细描述,这里不再赘述。
网络设备1500也可以通过图14所示的设备来实现。此时,网络设备1500包括主控板和一个或多个接口板,主控板与接口板通信连接。具体参见上述实施例中对网络设备1400的描述,在此不再赘述。
图16示出了上述实施例中所涉及的网络设备的一种可能的结构示意图,网络设备1600可以实现上述实施例中网络设备101或网络设备202的功能。参阅图16,该网络设备1600包括:接收单元1601、处理单元1602和发送单元1603。这些单元可以执行上述方法中网络设备101或网络设备202的相应功能。举例来说,
接收单元1601,用于接收第一报文。
处理单元1602,用于在所述第一报文中添加段列表以形成第二报文,所述段列表指示所述第二报文的转发路径,所述转发路径包括多个网络设备,所述段列表包括依次排列的多个标识,所述多个标识中的每个标识用于标识所述多个网络设备中的一个网络设备或所述转发路径中的一个链路,所述多个标识包括至少一个第一类标识和多个第二类标识,所述第一类标识和所述第二类标识的类型不同,所述第一类标识所标识的网络设备或链路在第一网络中,所述第二类标识所标识的网络设备或链路在第二网络中,所述第一网络和所述第二网络的类型不同。
发送单元1603,用于发送所述第二报文。
网络设备1600也可以通过图13所示的设备来实现。此时,网络设备1600包括:至少一个处理器、通信总线以及至少一个通信接口。可选的,网络设备1600还可以包括存储器。
在具体实施例中,网络设备1600中的处理器用于通过通信接口接收第一报文,在所述第一报文中添加段列表以形成第二报文,所述段列表指示所述第二报文的转发路径,所述转发路径包括多个网络设备,所述段列表包括依次排列的多个标识,所述多个标识中的每个标识用于标识所述多个网络设备中的一个网络设备或所述转发路径中的一个链路,所述多个标识包括至少一个第一类标识和多个第二类标识,所述第一类标识和所述第二类标识的类型不同,所述第一类标识所标识的网络设备或链路在第一网络中,所述第二类标识所标识的网络设备或链路在第二网络中,所述第一网络和所述第二网络的类型不同。通过通信接口发送所述第二报文。该处理器的详细处理过程请参考上述实施例中的过程S110,S120,S130以及过程S240,S250,S260的详细描述,这里不再赘述。
网络设备1600中的通信接口用于网络设备1600通过网络系统接收和发送报文。具体的过程请参考上述实施例中S110,S130以及S240,S260的详细描述,这里不再赘述。
网络设备1600也可以通过图14所示的设备来实现。此时,网络设备1600包括主控板和一个或多个接口板,主控板与接口板通信连接。具体参见上述实施例中对网络设备1400的描述,在此不再赘述。
图17示出了上述实施例中所涉及的控制器201的一种可能的结构示意图,控制器1700可以实现上述实施例中控制器201的功能。参阅图17,该控制器1700包括:处理单元1701和发送单元1702。这些单元可以执行上述方法中控制器201的相应功能。举例来说,
处理单元1701,用于确定报文的转发路径,所述转发路径包括位于至少两个网络中的多个网络设备,所述至少两个网络包括第一网络和第二网络,所述第一网络和所述第二网络的类型不同;生成对应于所述转发路径的所述段列表,所述段列表包括依次排列的所述多个标识,所述多个标识中的每个标识分别对应于所述多个网络设备中的一个网络设备或所述转发路径中的一个链路,所述多个标识包括至少一个第一类标识和多个第二类标识,所述第一类标识和所述第二类标识的类型不同,所述第一类标识所标识的网络设备或链路在所述第一网络中,所述第二类标识所标识的网络设备或链路在第二网络中。
发送单元1702,用于向所述转发路径的入口设备发送所述段列表。
控制器1700也可以通过图13所示的设备来实现。此时,控制器1700包括:至少一个处理器、通信总线以及至少一个通信接口。可选的,网络设备1700还可以包括存储器。
在具体实施例中,控制器1700中的处理器用于确定报文的转发路径,所述转发路径包括位于至少两个网络中的多个网络设备,所述至少两个网络包括第一网络和第二网络,所述第一网络和所述第二网络的类型不同;生成对应于所述转发路径的所述段列表,所述段列表包括依次排列的所述多个标识,所述多个标识中的每个标识分别对应于所述多个网络设备中的一个网络设备或所述转发路径中的一个链路,所述多个标识包括至少一个第一类标识和多个第二类标识,所述第一类标识和所述第二类标识的类型不同,所述第一类标识所标识的网络设备或链路在所述第一网络中,所述第二类标识所标识的网络设备或链路在第二网络中。通过通信接口向所述转发路径的入口设备发送所述段列表。
该处理器的详细处理过程请参考上述实施例中的过程S210,S220以及S230的详细描述,这里不再赘述。
控制器1700中的通信接口用于控制器1700通过网络系统接收和发送信息。具体的过程请参考上述实施例中S230的详细描述,这里不再赘述。
参阅图18所示,图18示出本发明实施例提供的一种网络系统的可能的结构示意图。网络系统1800包括第一网络设备1801和第二网络设备1802。所述网络系统中的第一网络设备1801可以执行上述图11所示实施例中网络设备102的处理步骤S140,S150以及S160,或者上述图12所示实施例中网络设备203的处理步骤S270,S280以及S290。所述网络系统中的第二网络设备1802可以执行上述图11所示实施例中网络设备101的处理步骤S110,S120以及S130,或者网络设备202的处理步骤S240,S250以及S260。
可选的,所述网络系统1800还包括控制器1803。所述网络系统中的控制器1803可以执行上述上述图12所示实施例中控制器201的处理步骤S210,S220以及S230。
相应的,所述网络系统中的第一网络设备1801可以为图16所示实施例中的网络设备1600,所述网络设备中的第二网络设备1802可以为图15所示实施例中的网络设备1500,所述网络设备中的控制器1803可以为图17所示实施例中的控制器1700。
具体的,所述控制器,用于确定报文的转发路径,所述转发路径包括位于至少两个网络中的多个网络设备,所述至少两个网络包括第一网络和第二网络,所述第一网络和所述第二网络的类型不同;生成对应于所述转发路径的所述段列表,所述段列表包括依次排列的所述多个标识,所述多个标识中的每个标识分别对应于所述多个网络设备中的一个网络设备或所述转发路径中的一个链路,所述多个标识包括至少一个第一类标识和多个第二类标识,所述第一类标识和所述第二类标识的类型不同,所述第一类标识所标识的网络设备或链路在所述第一网络中,所述第二类标识所标识的网络设备或链路在第二网络中;向所述转发路径的入口设备发送所述段列表。
所述第二网络设备,用于接收第一报文;在所述第一报文中添加段列表以形成第二报文,所述段列表指示所述第二报文的转发路径,所述转发路径包括多个网络设备,所述段列表包括依次排列的多个标识,所述多个标识中的每个标识用于标识所述多个网络设备中的一个网络设备或所述转发路径中的一个链路,所述多个标识包括至少一个第一类标识和多个第二类标识,所述第一类标识和所述第二类标识的类型不同,所述第一类标识所标识的网络设备或链路在第一网络中,所述第二类标识所标识的网络设备或链路在第二网络中,所述第一网络和所述第二网络的类型不同;发送所述第二报文。
可选的,当网络系统中包括控制器时,所述段列表是所述第二网络设备接收所述控制器发送的所述段列表。可选的,当网络系统中不包括所述控制器时,所述第二网络设备获得所述段列表,是指所述第二网络设备生成所述段列表。
所述第一网络设备,用于接收来自第一网络的第二报文,所述第二报文的第一报文头包括段列表,所述段列表包括依次排列的多个标识,所述多个标识中的每个标识用于标识一个网络设备或一个链路,所述多个标识包括至少一个第一类标识和多个第二类标识,所述第一类标识和所述第二类标识的类型不同,所述第一类标识所标识的网络设备或链路在所述第一网络中,所述第二类标识所标识的网络设备或链路在第二网络中,所述第一网络和所述第二网络的类型不同。为所述第二报文封装第二报文头,以形成第三报文,所述第三报文头包括所述多个第二类标识。向所述第二网络发送所述第三报文。
本发明实施例还提供了一种非瞬态存储介质,用于储存前述实施例中所用的软件指令,其包括用于执行前述实施例所示的方法的程序,当其在计算机或网络设备上执行时,使得所示计算机或网络设备执行前述方法实施例中的方法。
本发明实施例还提供了一种包括计算机程序指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得网络节点执行前述方法实施例中的方法。
本发明实施例中提到的第一报文、第一网络设备、第一标识、第一指针和数量标志的“第一”只是用来做名字标识,并不代表顺序上的第一。该规则同样适用于“第二”、“第三”和“第四”等。然而,本发明实施例中提到的第一个标识中的“第一个”代表顺序上的第一。该规则同样适用于“第N个”。
本发明实施例中认为“A和/或B”包含单独A,单独B,和A+B。
需说明的是,以上描述的任意装置实施例都仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的网络设备或主机的实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmable ROM,EPROM)、电可擦可编程只读存储器(electrically EPROM,EEPROM)、硬盘、移动硬盘、光盘或者本领域熟知的任何其它形式的存储介质中。存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息。当然,存储介质也可以是处理器的组成部分。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、替换、改进等,均应包括在本发明的保护范围之内。
Claims (59)
1.一种转发报文的方法,其特征在于,所述方法包括:
段路由设备接收来自第一网络的第一报文,所述第一报文的第一报文头包括段列表,所述段列表包括依次排列的多个标识,所述多个标识中的每个标识用于标识一个网络设备或一个链路,所述多个标识包括至少一个第一类标识和多个第二类标识,所述第一类标识和所述第二类标识的类型不同,所述第一类标识所标识的网络设备或链路在所述第一网络中,所述第二类标识所标识的网络设备或链路在第二网络中,所述第一网络和所述第二网络的类型不同;
所述段路由设备为所述第一报文封装第二报文头,以形成第二报文,所述第二报文头包括所述多个第二类标识;
所述段路由设备向所述第二网络发送所述第二报文。
2.根据权利要求1所述的方法,其特征在于,所述至少一个第一类标识包括长度为128比特的段标识或者长度小于128比特的压缩段标识。
3.根据权利要求2所述的方法,其特征在于,所述多个第二类标识彼此相邻,所述第一类标识位于所述多个第二类标识之前,或者,所述第一类标识位于所述多个第二类标识之后。
4.根据权利要求3所述的方法,其特征在于,所述段列表包括指示标识,所述指示标识用于指示所述第二类标识的起始位置。
5.根据权利要求4所述的方法,其特征在于,所述指示标识位于所述第一类标识之后,且所述指示标识位于所述多个第二类标识之前。
6.根据权利要求5所述的方法,其特征在于,所述指示标识的长度与所述压缩段标识的长度相同。
7.根据权利要求4所述的方法,其特征在于,所述指示标识包括在末尾段标识内,所述末尾段标识是所述至少一个第一类标识中的一个标识,所述末尾段标识与所述多个第二类标识中的第一个标识相邻,且所述末尾段标识位于所述第一个标识之前。
8.根据权利要求7所述的方法,其特征在于,所述末尾段标识是长度为128比特的段标识或者长度小于128比特的压缩段标识。
9.根据权利要求8所述的方法,其特征在于,所述指示标识用于标识段路由互联网协议第6版SRv6网络中的功能,所述指示标识位于所述末尾段标识的功能字段中。
10.根据权利要求1-9任一项所述的方法,其特征在于,所述多个第二类标识彼此相邻,所述多个第二类标识包括多协议标签交换MPLS标签,所述第二报文头为MPLS报文头,所述第二网络为MPLS网络。
11.根据权利要求10所述的方法,其特征在于,所述第一报文还包括结束标识;
所述段路由设备为所述第一报文封装第二报文头,还包括:
所述段路由设备根据所述结束标识确定所述多个第二类标识中的最后一个标识。
12.根据权利要求11所述的方法,其特征在于,所述结束标识包括在所述段列表中,且所述结束标识位于所述多个第二类标识之后。
13.根据权利要求11所述的方法,其特征在于,所述结束标识包括在所述段列表中,且所述结束标识位于所述多个第二类标识中的最后一个标识中。
14.根据权利要求10所述的方法,其特征在于,所述第一报文还包括数量标识;
所述段路由设备为所述第一报文封装第二报文头,还包括:
所述段路由设备根据所述数量标识确定所述多个第二类标识中标识的数量。
15.根据权利要求14所述的方法,其特征在于,所述数量标识包括在末尾段标识内,所述末尾段标识是所述至少一个第一类标识中的一个标识,所述末尾段标识与所述多个第二类标识中的第一个标识相邻,且所述末尾段标识位于所述第一个标识之前。
16.根据权利要求14所述的方法,其特征在于,所述数量标识包括在所述多个第二类标识中的第一个标识中。
17.根据权利要求1-9任一项所述的方法,其特征在于,所述多个第二类标识包括互联网协议第4版IPv4地址,所述第二报文头为IPv4报文头,所述第二网络为IPv4网络。
18.根据权利要求17所述的方法,其特征在于,所述多个第二类标识包括源标识和目的标识,所述源标识对应于所述IPv4隧道的源地址,所述目的标识对应于所述IPv4隧道的目的地址。
19.根据权利要求17所述的方法,其特征在于,所述段列表包括类型标识,所述类型标识用于指示IPv4隧道类型,所述IPv4隧道用于转发所述第二报文。
20.根据权利要求1-19任一项所述的方法,其特征在于,所述第一报文头为段路由头SRH。
21.根据权利要求1-20任一项所述的方法,其特征在于,所述第一报文还包括指针;
所述段路由设备为所述第一报文封装第二报文头,包括:
所述段路由设备根据所述指针确定所述多个第二类标识中的第一个标识在所述段列表中的位置。
22.根据权利要求1-21任一项所述的方法,其特征在于,所述段列表包括长度为128比特的元素,所述多个第二类标识中的第一个标识是所述元素中的第一个标识。
23.根据权利要求1-22任一项所述的方法,其特征在于,所述第二报文包括IPv6报文头,所述方法还包括:
在所述IPv6报文头的目的地址字段中添加跨域标识,所述跨域标识是所述第一类标识中的一个标识,所述跨域标识是长度为128比特的段标识或者长度小于128比特的压缩段标识。
24.一种转发报文的方法,其特征在于,所述方法包括:
段路由设备接收第一报文;
所述段路由设备在所述第一报文中添加段列表以形成第二报文,所述段列表指示所述第二报文的转发路径,所述转发路径包括多个网络设备,所述段列表包括依次排列的多个标识,所述多个标识中的每个标识用于标识所述多个网络设备中的一个网络设备或所述转发路径中的一个链路,所述多个标识包括至少一个第一类标识和多个第二类标识,所述第一类标识和所述第二类标识的类型不同,所述第一类标识所标识的网络设备或链路在第一网络中,所述第二类标识所标识的网络设备或链路在第二网络中,所述第一网络和所述第二网络的类型不同;
所述段路由设备发送所述第二报文。
25.根据权利要求24所述的方法,其特征在于,所述方法还包括:
所述段路由设备接收来自控制器的控制报文,所述控制报文包括所述段列表。
26.根据权利要求25所述的方法,其特征在于,所述控制报文包括混编标志,所述混编标志用于指示所述多个标识包括至少一个第一类标识和多个第二类标识,所述第一类标识和所述第二类标识的类型不同。
27.根据权利要求24所述的方法,其特征在于,所述段路由设备在所述第一报文中添加所述段列表以形成所述第二报文之前,所述方法还包括:
所述段路由设备确定所述转发路径;
所述段路由设备生成对应于所述转发路径的段列表。
28.一种生成段列表的方法,其特征在于,所述方法包括:
控制器确定报文的转发路径,所述转发路径包括位于至少两个网络中的多个网络设备,所述至少两个网络包括第一网络和第二网络,所述第一网络和所述第二网络的类型不同;
控制器生成对应于所述转发路径的所述段列表,所述段列表包括依次排列的所述多个标识,所述多个标识中的每个标识分别对应于所述多个网络设备中的一个网络设备或所述转发路径中的一个链路,所述多个标识包括至少一个第一类标识和多个第二类标识,所述第一类标识和所述第二类标识的类型不同,所述第一类标识所标识的网络设备或链路在所述第一网络中,所述第二类标识所标识的网络设备或链路在第二网络中;
控制器向所述转发路径的入口设备发送所述段列表。
29.一种网络设备,其特征在于,所述网络设备包括:
接收单元,用于接收来自第一网络的第一报文,所述第一报文的第一报文头包括段列表,所述段列表包括依次排列的多个标识,所述多个标识中的每个标识用于标识一个网络设备或一个链路,所述多个标识包括至少一个第一类标识和多个第二类标识,所述第一类标识和所述第二类标识的类型不同,所述第一类标识所标识的网络设备或链路在所述第一网络中,所述第二类标识所标识的网络设备或链路在第二网络中,所述第一网络和所述第二网络的类型不同;
处理单元,用于为所述第一报文封装第二报文头,以形成第二报文,所述第二报文头包括所述多个第二类标识;
发送单元,用于向所述第二网络发送所述第二报文。
30.根据权利要求29所述的网络设备,其特征在于,所述至少一个第一类标识包括长度为128比特的段标识或者长度小于128比特的压缩段标识。
31.根据权利要求30所述的网络设备,其特征在于,所述多个第二类标识彼此相邻,所述第一类标识位于所述多个第二类标识之前,或者,所述第一类标识位于所述多个第二类标识之后。
32.根据权利要求31所述的网络设备,其特征在于,所述段列表包括指示标识,所述指示标识用于指示所述第二类标识的起始位置。
33.根据权利要求32所述的网络设备,其特征在于,所述指示标识位于所述第一类标识之后,且所述指示标识位于所述多个第二类标识之前。
34.根据权利要求33所述的网络设备,其特征在于,所述指示标识的长度与所述压缩段标识的长度相同。
35.根据权利要求32所述的网络设备,其特征在于,所述指示标识包括在末尾段标识内,所述末尾段标识是所述至少一个第一类标识中的一个标识,所述末尾段标识与所述多个第二类标识中的第一个标识相邻,且所述末尾段标识位于所述第一个标识之前。
36.根据权利要求35所述的网络设备,其特征在于,所述末尾段标识是长度为128比特的段标识或者长度小于128比特的压缩段标识。
37.根据权利要求36所述的网络设备,其特征在于,所述指示标识用于标识段路由互联网协议第6版SRv6网络中的功能,所述指示标识位于所述末尾段标识的功能字段中。
38.根据权利要求29-37任一项所述的网络设备,其特征在于,所述多个第二类标识彼此相邻,所述多个第二类标识包括多协议标签交换MPLS标签,所述第二报文头为MPLS报文头,所述第二网络为MPLS网络。
39.根据权利要求38所述的网络设备,其特征在于,所述第一报文还包括结束标识;
所述处理单元,还用于根据所述结束标识确定所述多个第二类标识中的最后一个标识。
40.根据权利要求39所述的网络设备,其特征在于,所述结束标识包括在所述段列表中,且所述结束标识位于所述多个第二类标识之后。
41.根据权利要求40所述的网络设备,其特征在于,所述结束标识包括在所述段列表中,且所述结束标识位于所述多个第二类标识中的最后一个标识中。
42.根据权利要求38所述的网络设备,其特征在于,所述第一报文还包括数量标识;
所述处理单元,还用于根据所述数量标识确定所述多个第二类标识中标识的数量。
43.根据权利要求42所述的网络设备,其特征在于,所述数量标识包括在末尾段标识内,所述末尾段标识是所述至少一个第一类标识中的一个标识,所述末尾段标识与所述多个第二类标识中的第一个标识相邻,且所述末尾段标识位于所述第一个标识之前。
44.根据权利要求42所述的网络设备,其特征在于,所述数量标识包括在所述多个第二类标识中的第一个标识中。
45.根据权利要求29-37任一项所述的网络设备,其特征在于,所述多个第二类标识包括互联网协议第4版IPv4地址,所述第二报文头为IPv4报文头,所述第二网络为IPv4网络。
46.根据权利要求45所述的网络设备,其特征在于,所述多个第二类标识包括源标识和目的标识,所述源标识对应于所述IPv4隧道的源地址,所述目的标识对应于所述IPv4隧道的目的地址。
47.根据权利要求45所述的网络设备,其特征在于,所述段列表包括类型标识,所述类型标识用于指示IPv4隧道类型,所述IPv4隧道用于转发所述第二报文。
48.根据权利要求29-47任一项所述的网络设备,其特征在于,所述第一报文头为段路由头SRH。
49.根据权利要求29-48任一项所述的网络设备,其特征在于,所述第一报文还包括指针;
所述处理单元,还用于根据所述指针确定所述多个第二类标识中的第一个标识在所述段列表中的位置。
50.根据权利要求29-49任一项所述的网络设备,其特征在于,所述段列表包括长度为128比特的元素,所述多个第二类标识中的第一个标识是所述元素中的第一个标识。
51.根据权利要求29-50任一项所述的网络设备,其特征在于,所述第二报文包括IPv6报文头,
所述处理单元,还用于在所述IPv6报文头的目的地址字段中添加跨域标识,所述跨域标识是所述第一类标识中的一个标识,所述跨域标识是长度为128比特的段标识或者长度小于128比特的压缩段标识。
52.一种网络设备,其特征在于,所述网络设备包括:
接收单元,用于接收第一报文;
处理单元,用于在所述第一报文中添加段列表以形成第二报文,所述段列表指示所述第二报文的转发路径,所述转发路径包括多个网络设备,所述段列表包括依次排列的多个标识,所述多个标识中的每个标识用于标识所述多个网络设备中的一个网络设备或所述转发路径中的一个链路,所述多个标识包括至少一个第一类标识和多个第二类标识,所述第一类标识和所述第二类标识的类型不同,所述第一类标识所标识的网络设备或链路在第一网络中,所述第二类标识所标识的网络设备或链路在第二网络中,所述第一网络和所述第二网络的类型不同;
发送单元,用于发送所述第二报文。
53.根据权利要求52所述的网络设备,其特征在于,
所述接收单元,还用于接收来自控制器的控制报文,所述控制报文包括所述段列表。
54.根据权利要求53所述的网络设备,其特征在于,所述控制报文包括混编标志,所述混编标志用于指示所述多个标识包括至少一个第一类标识和多个第二类标识,所述第一类标识和所述第二类标识的类型不同。
55.根据权利要求52所述的网络设备,其特征在于,
所述处理单元,还用于确定所述转发路径,生成对应于所述转发路径的段列表。
56.一种控制器,其特征在于,所述控制器包括:
处理单元,用于确定报文的转发路径,所述转发路径包括位于至少两个网络中的多个网络设备,所述至少两个网络包括第一网络和第二网络,所述第一网络和所述第二网络的类型不同;生成对应于所述转发路径的所述段列表,所述段列表包括依次排列的所述多个标识,所述多个标识中的每个标识分别对应于所述多个网络设备中的一个网络设备或所述转发路径中的一个链路,所述多个标识包括至少一个第一类标识和多个第二类标识,所述第一类标识和所述第二类标识的类型不同,所述第一类标识所标识的网络设备或链路在所述第一网络中,所述第二类标识所标识的网络设备或链路在第二网络中;
发送单元,用于向所述转发路径的入口设备发送所述段列表。
57.一种网络系统,其特征在于,所述网络系统包括第一网络设备和第二网络设备,其中,所述第一网络设备是如权利要求29-51任一项所述的网络设备,所述第二网络设备是如权利要求52-55任一项所述的网络设备。
58.根据权利要求57所述的网络系统,其特征在于,所述网络系统还包括控制器,所述控制器是如权利要求56所述的网络设备。
59.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在处理器上运行时,实现权利要求1-28任一项所述的方法。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010085223.8A CN113259239A (zh) | 2020-02-10 | 2020-02-10 | 一种在混合网络中转发报文的方法、设备和系统 |
US17/171,429 US11924099B2 (en) | 2020-02-10 | 2021-02-09 | Method for forwarding packet in hybrid network, device, and system |
JP2021018955A JP7274516B2 (ja) | 2020-02-10 | 2021-02-09 | ハイブリッドネットワークでパケットを転送するための方法、デバイス、及びシステム |
EP21156350.7A EP3863240A1 (en) | 2020-02-10 | 2021-02-10 | Method for forwarding packet in hybrid network, device, and system |
KR1020210019277A KR102544995B1 (ko) | 2020-02-10 | 2021-02-10 | 하이브리드 네트워크에서 패킷을 포워딩하기 위한 방법, 디바이스, 및 시스템 |
KR1020230075979A KR102640600B1 (ko) | 2020-02-10 | 2023-06-14 | 하이브리드 네트워크에서 패킷을 포워딩하기 위한 방법, 디바이스, 및 시스템 |
US18/427,216 US12355666B2 (en) | 2020-02-10 | 2024-01-30 | Method for forwarding packet in hybrid network, device, and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010085223.8A CN113259239A (zh) | 2020-02-10 | 2020-02-10 | 一种在混合网络中转发报文的方法、设备和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113259239A true CN113259239A (zh) | 2021-08-13 |
Family
ID=74586938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010085223.8A Pending CN113259239A (zh) | 2020-02-10 | 2020-02-10 | 一种在混合网络中转发报文的方法、设备和系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11924099B2 (zh) |
EP (1) | EP3863240A1 (zh) |
JP (1) | JP7274516B2 (zh) |
KR (2) | KR102544995B1 (zh) |
CN (1) | CN113259239A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114050996A (zh) * | 2021-11-29 | 2022-02-15 | 中国人民解放军国防科技大学 | 一种段路由扩展报文转发方法 |
CN114448881A (zh) * | 2022-02-25 | 2022-05-06 | 烽火通信科技股份有限公司 | 一种跨sr mpls与srv6域互操作通信的方法和系统 |
CN114615197A (zh) * | 2022-04-07 | 2022-06-10 | 中国电信股份有限公司 | 报文转发方法、装置、电子设备及存储介质 |
WO2023193511A1 (zh) * | 2022-04-06 | 2023-10-12 | 中兴通讯股份有限公司 | 一种报文转发方法、装置、存储介质及电子装置 |
WO2025020440A1 (zh) * | 2023-07-24 | 2025-01-30 | 中国电信股份有限公司技术创新中心 | 报文转发方法、装置、设备、介质和程序产品 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11477041B2 (en) * | 2020-03-31 | 2022-10-18 | Nokia Solutions And Networks Oy | Stateless multicast based on local label spaces |
CN114124839B (zh) * | 2021-09-07 | 2023-06-06 | 中国联合网络通信集团有限公司 | 接口板和数据处理方法 |
CN113872866B (zh) * | 2021-09-28 | 2023-04-07 | 中国电信股份有限公司 | 报文转发方法、系统以及存储介质 |
CN113973074B (zh) * | 2021-10-26 | 2022-12-20 | 新华三信息安全技术有限公司 | 一种报文处理方法、装置、电子设备及介质 |
CN115150308B (zh) * | 2022-07-19 | 2023-10-10 | 天翼云科技有限公司 | 一种流量统计方法和装置 |
CN118075186A (zh) * | 2022-11-22 | 2024-05-24 | 华为技术有限公司 | 用于sd-wan的通信方法、报文处理方法及网络设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11134002B2 (en) * | 2018-10-22 | 2021-09-28 | Cisco Technology, Inc. | Packet network interworking including segment routing |
CN112583745A (zh) | 2019-09-27 | 2021-03-30 | 华为技术有限公司 | 一种在sr网络中转发报文的方法、设备和系统 |
-
2020
- 2020-02-10 CN CN202010085223.8A patent/CN113259239A/zh active Pending
-
2021
- 2021-02-09 JP JP2021018955A patent/JP7274516B2/ja active Active
- 2021-02-09 US US17/171,429 patent/US11924099B2/en active Active
- 2021-02-10 KR KR1020210019277A patent/KR102544995B1/ko active Active
- 2021-02-10 EP EP21156350.7A patent/EP3863240A1/en active Pending
-
2023
- 2023-06-14 KR KR1020230075979A patent/KR102640600B1/ko active Active
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114050996A (zh) * | 2021-11-29 | 2022-02-15 | 中国人民解放军国防科技大学 | 一种段路由扩展报文转发方法 |
CN114050996B (zh) * | 2021-11-29 | 2023-03-24 | 中国人民解放军国防科技大学 | 一种段路由扩展报文转发方法 |
CN114448881A (zh) * | 2022-02-25 | 2022-05-06 | 烽火通信科技股份有限公司 | 一种跨sr mpls与srv6域互操作通信的方法和系统 |
CN114448881B (zh) * | 2022-02-25 | 2023-06-09 | 烽火通信科技股份有限公司 | 一种跨sr mpls与srv6域互操作通信的方法和系统 |
WO2023193511A1 (zh) * | 2022-04-06 | 2023-10-12 | 中兴通讯股份有限公司 | 一种报文转发方法、装置、存储介质及电子装置 |
CN114615197A (zh) * | 2022-04-07 | 2022-06-10 | 中国电信股份有限公司 | 报文转发方法、装置、电子设备及存储介质 |
WO2025020440A1 (zh) * | 2023-07-24 | 2025-01-30 | 中国电信股份有限公司技术创新中心 | 报文转发方法、装置、设备、介质和程序产品 |
Also Published As
Publication number | Publication date |
---|---|
EP3863240A1 (en) | 2021-08-11 |
KR20210102107A (ko) | 2021-08-19 |
KR20230093199A (ko) | 2023-06-27 |
JP7274516B2 (ja) | 2023-05-16 |
US20210250288A1 (en) | 2021-08-12 |
US11924099B2 (en) | 2024-03-05 |
KR102640600B1 (ko) | 2024-02-27 |
JP2021129300A (ja) | 2021-09-02 |
KR102544995B1 (ko) | 2023-06-21 |
US20240250906A1 (en) | 2024-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113259239A (zh) | 一种在混合网络中转发报文的方法、设备和系统 | |
CN115004656B (zh) | 一种报文发送方法、设备及系统 | |
CN111698162B (zh) | 一种信息同步的方法,装置及系统 | |
CN114244771A (zh) | Pecp分段路由路径分段标签绑定扩展 | |
CN113973082A (zh) | 一种报文处理方法及网络设备 | |
US20220255857A1 (en) | Packet Processing Method, Network Node, and System | |
WO2022166465A1 (zh) | 一种报文处理方法及相关装置 | |
JP7674401B2 (ja) | パケット処理方法およびネットワークデバイス | |
CN112448888A (zh) | 一种在sr网络中转发报文的方法、设备和系统 | |
CN114205282B (zh) | SRv6 Policy的调度方法、系统、路由器和控制器 | |
US20200314016A1 (en) | Tunneling inter-domain stateless internet protocol multicast packets | |
JP2024520119A (ja) | パケット処理方法、装置、及びシステム | |
CN113765809B (zh) | Bier组播流量的统计方法、设备以及系统 | |
CN114422415A (zh) | 在分段路由中的出口节点处理流 | |
CN113630316A (zh) | 一种数据传输方法及通信装置 | |
CN115550252A (zh) | 路由发布和转发报文的方法、装置、设备和存储介质 | |
CN112702263B (zh) | 转发报文的方法及装置 | |
CN113542126B (zh) | 广义SRv6全路径压缩方法及装置 | |
CN111464441A (zh) | 一种通信方法及装置 | |
US12355666B2 (en) | Method for forwarding packet in hybrid network, device, and system | |
US10924395B2 (en) | Seamless multipoint label distribution protocol (mLDP) transport over a bit index explicit replication (BIER) core | |
WO2022222582A1 (zh) | 一种报文处理方法、装置、存储介质及电子装置 | |
CN114629834B (zh) | 通信方法及装置 | |
EP4525400A1 (en) | Message sending method, network device and system | |
CN118301060A (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 |