CN117014370A - 处理报文的方法、装置以及系统 - Google Patents
处理报文的方法、装置以及系统 Download PDFInfo
- Publication number
- CN117014370A CN117014370A CN202210620663.8A CN202210620663A CN117014370A CN 117014370 A CN117014370 A CN 117014370A CN 202210620663 A CN202210620663 A CN 202210620663A CN 117014370 A CN117014370 A CN 117014370A
- Authority
- CN
- China
- Prior art keywords
- message
- label
- ipv6
- mpls
- sid
- 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
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000012545 processing Methods 0.000 title claims abstract description 64
- 230000006870 function Effects 0.000 claims description 29
- 230000015654 memory Effects 0.000 claims description 26
- 238000005538 encapsulation Methods 0.000 claims description 15
- 238000010586 diagram Methods 0.000 description 22
- 230000008569 process Effects 0.000 description 16
- 238000011144 upstream manufacturing Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 6
- 101100256921 Ajellomyces capsulatus SID3 gene Proteins 0.000 description 5
- 101100366400 Schizosaccharomyces pombe (strain 972 / ATCC 24843) spg1 gene Proteins 0.000 description 5
- 101000840469 Arabidopsis thaliana Isochorismate synthase 1, chloroplastic Proteins 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000004806 packaging method and process Methods 0.000 description 4
- 101100064323 Arabidopsis thaliana DTX47 gene Proteins 0.000 description 3
- 101150026676 SID1 gene Proteins 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 101100256916 Caenorhabditis elegans sid-1 gene Proteins 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- COCAUCFPFHUGAA-MGNBDDOMSA-N n-[3-[(1s,7s)-5-amino-4-thia-6-azabicyclo[5.1.0]oct-5-en-7-yl]-4-fluorophenyl]-5-chloropyridine-2-carboxamide Chemical compound C=1C=C(F)C([C@@]23N=C(SCC[C@@H]2C3)N)=CC=1NC(=O)C1=CC=C(Cl)C=N1 COCAUCFPFHUGAA-MGNBDDOMSA-N 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种处理报文的方法、装置以及系统,该方法包括:第一网络设备接收第一报文,根据第一报文和第一段标识SID确定第二报文,并根据标签转发路径对第二报文进行转发。其中,该第二报文为IPv6报文,包括数据报文和第一SID,第一SID包括第一前缀和至少一个MPLS标签,第一前缀用于指示第一SID携带至少一个MPLS标签,至少一个MPLS标签用于指示使用至少一个MPLS标签确定出的标签转发路径实现IPv6转发。本申请提供的技术方案可以在IPv6路径上实现MPLS转发。
Description
本申请要求于2022年4月29日提交中国国家知识产权局、申请号为202210475581.9、申请名称为“一种基于IPv6实现MPLS的方法、设备及系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请实施例涉及网络通信领域,并且更具体地,涉及一种处理报文的方法、装置以及系统。
背景技术
互联网协议第6版(internet protocol version 6,IPv6)是互联网工程任务组(internet engineering task force,IETF)设计的新一代IP协议。IPv6的使用,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍。
对于IPv6转发路径上包括需要通过标签转发的路径(例如,隧道)的场景,如何进行报文的处理和转发成为当前亟需要解决的问题。
发明内容
本申请实施例提供一种处理报文的方法、装置以及系统,可以在IPv6路径上实现MPLS转发,同时,还可以在进行IPv6转发时确定具体的MPLS转发路径。
第一方面,提供了一种处理报文的方法,该方法包括:第一网络设备接收第一报文,根据第一报文和第一段标识SID确定第二报文,并根据标签转发路径对第二报文进行转发。其中,该第二报文为IPv6报文,包括数据报文和第一SID,第一SID包括第一前缀和至少一个MPLS标签,第一前缀用于指示第一SID携带至少一个MPLS标签,至少一个MPLS标签用于指示使用至少一个MPLS标签确定出的标签转发路径实现IPv6转发。
上述技术方案中,第一网络设备可以使用至少一个MPLS标签确定出的标签转发路径实现IPv6转发,这样,在IPv6路径上实现MPLS转发,从而在基于IPv6转发的同时,进一步节约报文处理的时间,提高报文的转发速度。同时,进一步地,在进行IPv6转发时还可以指定隧道中的某一条具体转发路径。
结合第一方面,在第一方面的某些实现方式中,该第一报文为该数据报文,该第一网络设备根据该第一SID,对该第一报文进行IPv6封装,得到该第二报文。
结合第一方面,在第一方面的某些实现方式中,该第二报文包括IPv6基本头,该IPv6基本头包括目的地址DA字段,该DA字段用于承载该第一SID。
结合第一方面,在第一方面的某些实现方式中,该第二报文包括IPv6扩展头,该IPv6扩展头包括该第一SID。
结合第一方面,在第一方面的某些实现方式中,该IPv6扩展头还包括第二SID,该第二SID包括该第一前缀和至少一个MPLS标签,或该第二SID包括至少一个MPLS标签。
结合第一方面,在第一方面的某些实现方式中,该第一SID包括位置标识locator和功能标识function,该位置标识用于承载该第一前缀,该功能标识用于承载该至少一个MPLS标签。
结合第一方面,在第一方面的某些实现方式中,该第一网络设备根据第一MPLS标签和对应的MPLS转发表项,对该第二报文进行转发,该第一MPLS标签为该第一SID中封装在该第一前缀后的第一个MPLS标签。
结合第一方面,在第一方面的某些实现方式中,该MPLS转发表项指示在该第二报文中插入第二MPLS标签,该第一网络设备对该第二报文进行IPv6封装,生成第三报文,该第三报文为IPv6报文,该第三报文包括该第二MPLS标签;该第一网络设备根据该MPLS转发表项中该第二MPLS标签对应的出接口,发送该第三报文。
结合第一方面,在第一方面的某些实现方式中,该MPLS转发表项指示在该第二报文中插入第二MPLS标签,该第一网络设备将该第二MPLS标签封装在该第二报文中第一MPLS标签前,生成第三报文;该第一网络设备根据该MPLS转发表项中该第二MPLS标签对应的出接口,发送该第三报文。
结合第一方面,在第一方面的某些实现方式中,该至少一个MPLS标签为短标签。
结合第一方面,在第一方面的某些实现方式中,该第一网络设备为该标签转发路径的入口设备或中间转发设备。
第二方面,提供了一种处理报文的装置,设置于第一网络设备中,包括:接收模块,处理模块,发送模块。其中,接收模块用于接收第一报文,第一报文包括数据报文;处理模块用于根据该第一报文和第一段标识SID确定第二报文,该第二报文为互联网协议第六版IPv6报文,该第二报文包括该数据报文和该第一SID,该第一SID包括第一前缀和至少一个多协议标签交换MPLS标签,该第一前缀用于指示该第一SID携带该至少一个MPLS标签,该至少一个MPLS标签用于指示使用该至少一个MPLS标签确定出的标签转发路径实现IPv6转发;发送模块用于根据该标签转发路径对该第二报文进行转发。
结合第二方面,在第二方面的某些实现方式中,该第一报文为该数据报文,该处理模块具体用于:根据该第一SID,对该第一报文进行IPv6封装,得到该第二报文。
结合第二方面,在第二方面的某些实现方式中,该第二报文包括IPv6基本头,该IPv6基本头包括目的地址DA字段,该DA字段用于承载该第一SID。
结合第二方面,在第二方面的某些实现方式中,该第二报文包括IPv6扩展头,该IPv6扩展头包括该第一SID。
结合第二方面,在第二方面的某些实现方式中,该IPv6扩展头还包括第二SID,该第二SID包括该第一前缀和至少一个MPLS标签,或该第二SID包括至少一个MPLS标签。
结合第二方面,在第二方面的某些实现方式中,该第一SID包括位置标识locator和功能标识function,该位置标识用于承载该第一前缀,该功能标识用于承载该至少一个MPLS标签。
结合第二方面,在第二方面的某些实现方式中,该发送模块具体用于:根据第一MPLS标签和对应的MPLS转发表项,对该第二报文进行转发,该第一MPLS标签为该第一SID中封装在该第一前缀后的第一个MPLS标签。
结合第二方面,在第二方面的某些实现方式中,该MPLS转发表项指示在该第二报文中插入第二MPLS标签,该发送模块具体用于:对该第二报文进行IPv6封装,生成第三报文,该第三报文为IPv6报文,该第三报文包括该第二MPLS标签;根据该MPLS转发表项中该第二MPLS标签对应的出接口,发送该第三报文。
结合第二方面,在第二方面的某些实现方式中,该MPLS转发表项指示在该第二报文中插入第二MPLS标签,所该发送模块具体用于:将该第二MPLS标签封装在该第二报文中第一MPLS标签前,生成第三报文;根据该MPLS转发表项中该第二MPLS标签对应的出接口,发送该第三报文。
结合第二方面,在第二方面的某些实现方式中,该至少一个MPLS标签为短标签。
结合第二方面,在第二方面的某些实现方式中,该装置为该标签转发路径的入口设备或中间转发设备。
第二方面和第二方面的任意一个可能的实现方式的有益效果和第一方面以及第一方面的任意一个可能的实现方式的有益效果是对应的,对此,不再赘述。
第三方面,提供了一种第一网络设备,该第一网络设备具有实现上述处理报文的装置的功能。该功能可以基于硬件实现,也可以基于硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,第一网络设备的结构中包括处理器,该处理器被配置为支持第一网络设备执行上述方法中相应的功能。
该第一网络设备可以包括存储器,该存储器用于与处理器耦合,其保存第一网络设备必要的程序指令和数据。
在另一个可能的设计中,该第一网络设备包括:处理器、发送器、接收器、随机存取存储器、只读存储器以及总线。其中,处理器通过总线分别耦接发送器、接收器、随机存取存储器以及只读存储器。其中,当需要运行第一网络设备时,通过固化在只读存储器中的基本输入/输出系统或者嵌入式系统中的bootloader引导系统进行启动,引导第一网络设备进入正常运行状态。在第一网络设备进入正常运行状态后,在随机存取存储器中运行应用程序和操作系统,使得该处理器执行第一方面或第一方面的任意可能的实现方式中的方法。
第四方面,提供一种第一网络设备,该第一网络设备包括:主控板和接口板,进一步,还可以包括交换网板。该第一网络设备用于执行第一方面或第一方面的任意可能的实现方式中的处理报文的方法。
需要说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,第一网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,第一网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,第一网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的第一网络设备的数据接入和处理能力要大于集中式架构的设备。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。
第五方面,提供了一种第一网络设备,该第一网络设备包括控制模块和第一转发子设备。该第一转发子设备包括:接口板,进一步,还可以包括交换网板。该第一转发子设备用于执行第四方面中的接口板的功能,进一步,还可以执行第四方面中交换网板的功能。该控制模块中包括接收器、处理器、发送器、随机存取存储器、只读存储器以及总线。其中,处理器通过总线分别耦接接收器、发送器、随机存取存储器以及只读存储器。其中,当需要运行控制模块时,通过固化在只读存储器中的基本输入/输出系统或者嵌入式系统中的bootloader引导系统进行启动,引导控制模块进入正常运行状态。在控制模块进入正常运行状态后,在随机存取存储器中运行应用程序和操作系统,使得该处理器执行第四方面中主控板的功能。
可以理解的是,在实际应用中,第一网络设备可以包含任意数量的接口,处理器或者存储器。
第六方面,提供了一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一种可能执行的方法。
第七方面,提供了一种计算机可读介质,该计算机可读介质存储有程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一种可能执行的方法。这些计算机可读存储包括但不限于如下的一个或者多个:只读存储器(read-only memory,ROM)、可编程ROM(programmable ROM,PROM)、可擦除的PROM(erasablePROM,EPROM)、Flash存储器、电EPROM(electrically EPROM,EEPROM)以及硬盘驱动器(harddrive)。
第八方面,提供一种芯片,该芯片包括处理器与数据接口,其中,处理器通过该数据接口读取存储器上存储的指令,以执行第一方面或第一方面任意一种可能的实现方式中的方法。在具体实现过程中,该芯片可以以中央处理器(centralprocessingunit,CPU)、微控制器(microcontroller unit,MCU)、微处理器(micro processing unit,MPU)、数字信号处理器(digital signal processing,DSP)、片上系统(system on chip,SoC)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(fieldprogrammable gate array,FPGA)或可编辑逻辑器件(programmable logic device,PLD)的形式实现。
第九方面,提供了一种处理报文的系统,该系统包括上述如第二方面或第二方面任意一种可能的实现方式中的处理报文的装置。
附图说明
图1是本申请实施例提供的一种处理报文的方法的示意性流程图。
图2是本申请实施例提供的一种第一SID的结构示意图。
图3是一种MPLS标签的结构示意图。
图4是另一种MPLS标签的结构示意图。
图5是另一种MPLS标签的结构示意图。
图6是应用于本申请实施例的一种IPv6 MPLS场景示意图。
图7是本申请实施例提供的另一种处理报文的方法的示意性流程图。
图8是本申请实施例提供的一种报文1的格式示意图。
图9是本申请实施例提供的另一种报文1的格式示意图。
图10是本申请实施例提供的一种报文2的格式示意图。
图11是本申请实施例提供的一种报文3的格式示意图。
图12是应用于本申请实施例的另一种跨域场景示意图。
图13是本申请实施例提供的另一种处理报文的方法的示意性流程图。
图14是本申请实施例提供的一种报文4的格式示意图。
图15是本申请实施例提供的另一种报文4的格式示意图。
图16是本申请实施例提供的一种报文5的格式示意图。
图17是本申请实施例提供的另一种报文5的格式示意图。
图18是本申请实施例提供的一种报文6的格式示意图。
图19是本申请实施例提供的另一种报文7的格式示意图。
图20是本申请实施例提供的一种报文8的格式示意图。
图21是本申请实施例提供的另一种报文9的格式示意图。
图22是本申请实施例提供的一种处理报文的装置2200的示意性结构图。
图23是本申请实施例的第一网络设备2000的硬件结构示意图。
图24为本申请实施例的另一种第一网络设备2100的硬件结构示意图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
本申请将围绕包括多个设备、组件、模块等的系统来呈现各个方面、实施例或特征。应当理解和明白的是,各个系统可以包括另外的设备、组件、模块等,并且/或者可以并不包括结合附图讨论的所有设备、组件、模块等。此外,还可以使用这些方案的组合。
另外,在本申请实施例中,“示例的”、“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。
本申请实施例中,“相应的(corresponding,relevant)”和“对应的(corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。
本申请实施例描述的网络架构以及业务场景是为了更加清楚地说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:包括单独存在A,同时存在A和B,以及单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
互联网协议第6版(internet protocol version 6,IPv6)是互联网工程任务组(internet engineering task force,IETF)设计的新一代IP协议。IPv6的使用,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍。
多协议标签交换(multi-protocol label switching,MPLS)是一种在开放的通信网络上利用标签引导数据进行高速、高效传输的技术。与传统的互联网协议(internetprotocol,IP)路由方式相比,通过MPLS进行数据转发时,只需要在网络边缘分析IP报文头,而不用在每一跳都分析IP报文头,从而节约了报文处理的时间,提高了转发效率。
本申请实施例提供了一种处理报文的方法,可以在IPv6路径上实现MPLS转发,同时,还可以在进行IPv6转发时确定具体的MPLS转发路径。下面结合图1,对本申请实施例提供的一种处理报文的方法进行详细描述。
图1是本申请实施例提供的一种处理报文的方法的示意性流程图。如图1所示,该方法可以包括步骤110-130,下面分别对步骤110-130进行详细描述。
步骤110:第一网络设备接收第一报文。
第一网络设备接收到的第一报文可以包括数据报文,具体的报文格式有多种,本申请对此不做具体限定。一种可能的实现方式中,该第一报文为数据报文,另一种可能的实现方式中,该第一报文为一个IPv6报文,该IPv6报文包括一个内层的数据报文。
步骤120:第一网络设备根据第一报文和第一SID确定第二报文,该第二报文包括第一报文和第一SID,第一SID包括第一前缀和至少一个MPLS标签。
第一网络设备可以根据第一报文和第一段标识(segment identity,SID)确定第二报文,该第二报文为一个IPv6报文,可以包括上述第一报文和第一SID。
如图2所示,上述第一SID中可以包括第一前缀和至少一个MPLS标签。其中,第一前缀用于指示该第一SID中携带有所述至少一个MPLS标签,至少一个MPLS标签用于指示使用该至少一个MPLS标签确定出的标签转发路径实现IPv6转发。也就是说,第一SID中包括的至少一个MPLS标签指示了在实现IPv6转发中的标签转发路径。
应理解,IPv6分段路由(segment routingIPv6,SRv6)是基于源路由理念而设计的在网络上转发IPv6数据包的一种方法。基于IPv6转发面的分段路由(segment routing,SR)在报文中使用段标识(segment identity,SID)来指示网络中操作的指令。例如,通过在IPv6报文中插入一个路由扩展头SRH(Segment Routing Header),在SRH中压入一个显式的段标识(SID)栈,将IPv6地址作为一个SID,并在SID中进行编程。即将128bit的SID分为三个部分:位置(Locator)、功能(Function)以及参数(Argument)。其中,Locator用于路由寻址,Function用于指示相应的操作指令,Argument用于携带执行该指令所需要的参数。
举例说明,本申请实施例中,第一SID可以包括位置(Locator)、功能(Function)。其中,Locator部分可以用于承载上述第一前缀,Function部分可以用于承载上述至少一个MPLS标签。
需要说明的是,本申请实施例中用于承载第一前缀的Locator部分可以指示使用至少一个MPLS标签确定的标签转发路径上的所有设备。
上述MPLS标签的结构有多种,本申请实施例对此不做具体限定。作为示例,图3-图5列出了几种可能的MPLS标签的格式。例如,如图3所示,该MPLS标签也可以称为一种长标签,包括标签(label)字段、扩展(expand,EXP)字段、S字段、存活时间(time to live,TTL)字段等。其中,label字段用于指示一个标签值,EXP字段用于扩展,通常做服务等级(classof service,SoC),S字段用于标识该标签是否为最底层标签,TTL字段用于防止环路。又如,如图4所示,该MPLS标签也可以称为一种短标签,包括标签(label)字段以及S字段。又如,如图5所示,该MPLS标签也可以称为另一种短标签,包括标签(label)字段。
上述第二报文的格式有多种,本申请实施例对此不做具体限定。一种可能的实现方式中,第二报文包括IPv6基本头和第一报文,该IPv6基本头中包括目的地址(destination address,DA)字段,该DA字段用于承载所述第一SID。另一种可能的实现方式中,该第二报文包括IPv6基本头、IPv6扩展头以及第一报文,该IPv6基本头中的DA字段承载所述第一SID,该IPv6扩展头中还可以包括一个或多个SID。下面会结合具体的实施例,对第二报文的具体格式进行详细描述,此处暂不详述。
应理解,IPv6扩展头中的一个或多个SID可以仅包括至少一个MPLS标签,或者还可以包括上述第一前缀和至少一个MPLS标签,本申请对此不做具体限定。
还应理解,上述IPv6扩展头可以是分段路由选项头(segment routing header,SRH),或者还可以是其他扩展头,本申请实施例对此不做具体限定。
第一网络设备根据第一报文和第一SID确定第二报文的实现方式有多种,本申请实施例不做具体限定,下面举例几种可能的实现方式。一种可能的实现方式中,第一网络设备接收到的第一报文为一个数据报文,该第一网络设备在第一报文前封装一个IPv6报文头,该IPv6报文头中包括该第一SID。另一种可能的实现方式中,该第一网络设备接收到的第一报文为一个IPv6报文,该IPv6报文包括IPv6基本头和IPv6扩展头(包括第一SID),第一网络设备将IPv6扩展头中的第一SID作为IPv6基本头中的DA。下面会结合具体的实施例进行详细描述,此处暂不详述。
步骤130:第一网络设备根据使用至少一个MPLS标签确定出的标签转发路径对第二报文进行转发。
上述技术方案中,第一网络设备可以使用至少一个MPLS标签确定出的标签转发路径实现IPv6转发,这样,在IPv6路径上实现MPLS转发,从而在基于IPv6转发的同时,进一步节约报文处理的时间,提高报文的转发速度。同时,进一步地,在同时,还可以在进行IPv6转发时确定具体的MPLS转发路径。
下面以图6所示的场景为例,结合图7,对本申请实施例提供的处理报文的方法的一种具体实现方式进行描述。应理解,图6-图7的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将申请实施例限制于图6-图7的具体数值或具体场景。本领域技术人员根据所给出的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本申请实施例的范围内。
图6是应用于本申请实施例的一种IPv6 MPLS场景示意图。如图6所示,该场景中可以包括用户边缘(customer edge,CE)610设备、CE620设备、运营商边缘(provider edge,PE)630设备、PE 640设备、一个或多个运营商(provider,P)设备等。
CE610设备和CE620设备为虚拟专用网(virtual private network,VPN)1的边缘设备,PE630设备和PE640设备为基于标签转发的隧道的边缘设备,一个或多个P设备为基于标签转发的隧道的中间转发设备。为了便于描述,图6中以两个P设备(P650设备、P660设备)为例进行说明。
应理解,PE630、PE640、P650以及P660组成的隧道也可以称为IPv6 MPLS域,即该IPv6 MPLS域中的设备(也可以称为标签交换路由器(label switching routing,LSR))可以基于MPLS标签确定的标签转发路径来实现IPv6转发。其中,PE630为该隧道的入口(ingress)LSR,负责为进入IPv6 MPLS域的报文添加MPLS标签。P650以及P660为IPv6 MPLS域的中间转发LSR,负责根据MPLS标签沿着由一系列LSR构成的标签交换路径(labelswitched path,LSP)将报文传送给出口LSR。PE640作为该隧道的出口(egress)LSR,负责剥离报文中的标签,并转发给目的设备。
还应理解,LSP是从ingress到egress的一条隧道,LSP的建立过程实际就是将转发等价类(forwarding equivalence class,FEC)和MPLS标签进行绑定,并将这种绑定关系通告给相邻的LSR,以便在LSR上建立标签转发表的过程。在报文转发路径上,报文的发送方路由器是一条LSP的上游LSR,接收方路由器是下游LSR。作为示例,如图6所示,PE630为P650的上游LSR,P650为P660的上游LSR,P660为PE640的上游LSR,PE640为CE620的上游LSR。下游LSR将特定标签分配给特定FEC(即标签绑定)后,将标签通告给上游LSR,上游LSR保存标签和FEC的绑定关系。例如,CE620分配给PE640的标签为label A,PE640分配给P660的标签为label 3,P660分配给P650的标签为label 2,P650分配给PE630的标签为label 1。报文在IPv6 MPLS域内沿着LSP从Ingress传递到Egress,当上游LSR接收到某FEC的报文后,为报文添加下游为该FEC分配的标签,并转发给下游LSR。下面结合图7,对报文在该IPv6 MPLS域内转发的具体过程进行详细描述。
需要说明的是,上述分配的MPLS标签(例如,label A、label 1、label 2、label 3)可以是短标签,或者还可以是长标签,本申请实施例对此不做限定。具体的有关MPLS标签的格式请参考上文中图3-图5中的描述,此处不再赘述。
图7是本申请实施例提供的另一种处理报文的方法的示意性流程图。如图7所示,该方法可以包括步骤710-760,下面分别对步骤710-760进行详细描述。
步骤710:PE630接收CE610发送的数据报文1。
作为示例,PE630可以通过VPN1私网接口接收到CE610发送的数据报文1。该数据报文1为:源地址字段(source address,SA)+目的地址字段(destination address,DA)+数据(data)。其中,SA字段为CE610的地址(例如,10.1.1.1 1-1-1),DA字段为CE620的地址(例如,10.1.1.22-2-2)。
应理解,PE630可对应于上文中的第一网络设备。
步骤720:PE630对数据报文1进行IPv6封装,得到报文1。
PE630在接收到CE610发送的数据报文1后,可以根据该数据报文1的目的地址,查找对应的私网路由表,确定对应的目的地址路由的下一跳或下一跳对应的隧道信息。并根据确定的下一跳或下一跳对应的隧道信息对数据报文1进行IPv6封装,得到报文1。
一种可能的实现方式中,PE630封装的报文1包括IPv6基本头和数据报文1。如图8所示,该IPv6基本头可以包括如下字段:
版本号(version,Ver):长度为4bit。
传输类型(traffic class,TC):长度为8bit,用于区分不同的IPv6数据包的类别以及优先级。
流标识(flow label):长度为20bit,“流”可以理解为网络上从特定的源地址到特定的目的地址的数据包,属于同一个“流”的数据包的流标识相同。
载荷长度(payload length):长度为16bit,除IPv6基本头之外的其他部分的长度,例如IPv6扩展头和内层的用户数据报文的长度。
下一个头部(next header,NH):长度为8bit,可以理解为紧跟在IPv6基本头后面的IPv6扩展头的标识号(即IPv6扩展头的类型),其中,每一个IPv6扩展头中也包括NH字段。
跳数极限(hop limit,HL):长度为8bit,类似于IPv4的生存时间(timeto live,TTL)字段。
源地址(source address,SA):长度为128bit,用于填充发送IPv6报文的用户设备的地址。
目的地址(destination address,DA):长度为128bit,用于填充接收IPv6报文的用户设备的地址。
举例说明,本申请实施例中,上述IPv6基本头中的SA字段为PE630的地址(例如,10::1)。由于数据报文1的目的地址为CE610的地址(例如,10.1.1.1 1-1-1),PE630根据虚拟路由转发(virtual routing forwarding,VRF)1的私网路由表,查找到去私网10.1.1.2(CE620的地址)依赖的下一跳对应的是IPv6 MPLS域的隧道。因此,如图8所示,第一网络设备可以在IPv6基本头中的DA封装一个128bits的SID,该SID中可以包括:第一前缀(也可以称为special prefix)、该隧道对应的标签(例如,P650分配给PE630的特定标签为label 1)以及私网内层标签(例如,CE620分配给PE640的特定标签为label A)。
上述SID中封装的标签,从左往右依次可以称为最外层标签,内层标签等。例如,SID中的label 1也可以称为最外层标签,label A也可以称为内层标签。
需要说明的是,由于label A为底层标签,因此,label A需要设置标签栈底标记。
可选地,在一些实施例中,对于超过3层标签(以special prefix为32bits,每个标签为32bits为例,SID1中可封装3层标)的场景,也就是说,对于第一网络设备需要封装的标签在DA字段中放不下的场景。第一网络设备封装的报文1的格式如图9所示,该报文1包括:IPv6基本头、IPv6扩展头以及报文1。该IPv6扩展头中可以包括多个标签,当IPv6基本头的DA中填充的标签移位变成0之后,将IPv6扩展头中对应的标签放到IPv6基本头的DA中。该IPv6扩展头可以是SRH,或者也可以是其他扩展头,本申请对此不做限定。
上述包括多个标签的IPv6扩展头的格式有多种,本申请实施例对此不做具体限定。一种可能的实现方式中,IPv6扩展头中包括一个或多个SID,每个SID中包括第一前缀以及三层标签(以每个标签为32bits为例)。第一网络设备可以根据指示,将某个SID填充在IPv6基本头的DA字段中。例如,IPv6扩展头为SRH,第一网络设备可以根据段指示(segmentleft,SL)指针,确定对应的SID,并将该SID整体填充在DA中。另一种可能的实现方式中,IPv6扩展头中包括一个或多个SID,每个SID中包括四层标签(以每个标签为32bits为例)。第一网络设备可以取SID中的三层标签,并填充至DA的第一前缀后。例如,IPv6扩展头为SRH,第一网络设备可以根据SL指针和标签指示(label left,LL)指针,确定某个SID中的三层标签,并填充在DA的第一前缀后。应理解,LL指针也可以称为顶层指针,SL指针也可以称为尾指针。
为了便于描述,下面以PE630生成的报文1为图8所示的格式为例进行说明。
步骤730:PE630向P650发送报文1。
PE630根据报文1的IPv6基本头中的DA字段,向P650发送报文1。具体的,PE630可以根据DA字段(位于IPv6基本头)中第一前缀后的最外层标签,以及该最外层标签对应的标签转发表项,进行对应的操作。例如,第一前缀后的最外层标签为label 1,P650可以根据label 1对应的标签转发表项中指示的出接口为P650的接口,将报文1发送给P650。
步骤740:P650对报文1进行处理,得到报文2,并将报文2发送给P660。
P650接收到PE630发送的报文1后,由于报文1的IPv6基本头中的DA封装的是一个SID1(第一前缀+label 1+label A),P650可以根据SID1中第一前缀的指示,解析出第一前缀后的最外层标签,并根据该最外层标签对应的标签转发表项,进行对应的标签操作。
应理解,上述标签操作的类型可以包括但不限于:标签压入(push)、标签交换(swapping,SWAP)、标签弹出(pop)等。其中,push可以理解为在标签栈的栈顶增加一个标签;SWAP可以理解为根据标签转发表项,用下一跳分配的标签替换报文中的栈顶标签;pop可以理解为报文中的标签剥掉。
举例说明,P650解析出报文1的第一前缀后的最外层标签为label 1,P650可以根据label 1对应的标签转发表项,对报文1进行处理,生成报文2,并根据该标签转发表项发送报文2。
一个示例,假设label 1对应的标签转发表项1为:标签操作为SWAP;交换的标签为P660为其分配的标签(例如,label 2);出接口为连接P660的接口。P650根据标签转发表项1将报文1的DA中的label 1替换为label 2,生成报文2,并将报文2发送给P660。也就是说,如图10所示,P650发送给P660的报文2包括IPv6基本头和数据报文1,该IPv6基本头中的SA字段为PE630的地址(例如,10::1),IPv6基本头中的DA封装有SID2,该SID2中可以包括:第一前缀(也可以称为special prefix)、label 2以及私网内层标签(label A)。
另一个示例,假设label 1对应的标签转发表项1为:标签操作为push,压入的标签为P660为其分配的标签(例如,label 2),出接口为连接P660的接口。一种可能的实现方式中,P650可以在报文1前再封装一个新的IPv6基本头,生成报文2。该报文2中新的IPv6基本头中包括DA字段,该DA字段中填充有label 2。另一种可能的实现方式中,P650可以将报文1中第一前缀后的标签(例如,label 1)向后移动,并将需要新压入的标签(例如,label 2)放在第一前缀后面,生成报文2。P650根据上述标签转发表项1中的出接口,将报文2发送给P660。
可选地,报文2还可以包括IPv6扩展头,该IPv6扩展头包括多个SID,每个SID中可以包括多个标签(以每个标签为32bits为例,一个SID中可包括4个标签)。当报文2的DA中向后移动的标签在该DA中放不下时,可以将多余的标签放入IPv6扩展头中。具体的实现方式有多种,本申请实施例对此不做限定。例如,可以将多余的标签放入IPv6扩展头的一个SID中,并将该SID中的多个标签统一向后移动。又如,还可以在IPv6扩展头中使用一个新的SID,该新的SID中仅用于存放上述多余的标签,其余SID中的标签均不变。可选地,该新的SID可以位于IPv6扩展头中多个SID的栈顶。
步骤750:P660对报文2进行处理,得到报文3,并将报文3发送给PE640。
P660接收到P650发送的报文2后,由于报文2的IPv6基本头中的DA封装的是一个SID2(第一前缀+label 2+label A),P660可以根据SID2中第一前缀的指示,解析出第一前缀后的最外层标签,并根据该最外层标签对应的标签转发表项,进行对应的操作。
举例说明,P660解析出报文2的第一前缀后的最外层标签为label 2,P660可以根据label 2对应的标签转发表项,对报文2进行处理,生成报文3,并根据该标签转发表项发送报文3。
一个示例,假设label 2对应的标签转发表项2为:标签操作为POP;出接口为连接PE640的接口。P660根据标签转发表项2将报文2的DA中的label 2弹出,生成报文3,并将报文3发送给PE640。也就是说,如图11所示,P660发送给PE640的报文3包括IPv6基本头和数据报文1,该IPv6基本头中的SA字段为PE630的地址(例如,10::1),IPv6基本头中的DA封装有SID3,该SID3中可以包括:第一前缀(也可以称为special prefix)以及私网内层标签(label A)。
应理解,假设P660支持倒数第二跳弹出(penultimate hop popping,PHP)的特性,出口设备PE640分配给P660的标签为label3,P660根据PE640为其分配的标签为label3,在倒数第二跳将隧道对应的标签弹出(例如,将第一前缀后的最外层标签为label 2弹出)。因此,DA中封装的SID3中包括第一前缀以及私网内层标签(label A),该label A此时也可以称为最外层标签。
步骤760:PE640接收报文3,并对报文3处理后发送给CE620。
PE640接收到P660发送的报文3后,假设报文3的IPv6基本头中的DA封装的是一个SID3(第一前缀+label A),PE640可以根据SID3中第一前缀的指示,解析出第一前缀后的最外层标签,并根据该最外层标签对应的标签转发表项,进行对应的操作。
举例说明,PE640解析出报文3的第一前缀后的最外层标签为label A,PE640可以根据label A对应的标签转发表项,对报文3进行处理。例如,假设label A对应的标签转发表项3为:标签操作为Pop and Search,也就是POP掉该标签。PE640根据该标签指示,对报文3解封装,去掉IPv6封装,得到内层的数据报文1。如上文所述,该数据报文1包括:源地址字段(source address,SA)+目的地址字段(destination address,DA)+数据(data)。PE640可以根据数据报文1的目的地址为CE620的地址(例如,10.1.1.22-2-2),以及IPv6基本头中下一个头部(next header,NH)字段指示的报文类型(例如,L3报文),在对应的L3私网路由表中进行查找出接口,并通过该出接口向CE620发送数据报文1。
下面以图12所示的场景为例,结合图13,对本申请实施例提供的处理报文的方法的一种具体实现方式进行描述。应理解,图12-图13的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将申请实施例限制于图12-图13的具体数值或具体场景。本领域技术人员根据所给出的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本申请实施例的范围内。
图12是应用于本申请实施例的另一种跨域场景示意图。如图12所示,该场景中可以包括一个或多个IPv6域(例如,第一IPv6域、第二IPv6域)和IPv6 MPLS域,各个域之间采用分段路由(segment routing,SR)的方式进行IPv6转发。
应理解,基于IPv6转发平面的SR也可以简称为SRv6。为基于IPv6转发平面实现SR技术,在IPv6路由扩展头新增段路由扩展头(segment routing header,SRH),该SRH扩展头指定一个IPv6的显式路径,存储IPv6的分段列表(segment list)信息。segment list即对段和网络节点进行有序排列得到的一条转发路径。报文转发时,依靠SL字段和segmentlist字段共同决定IPv6目的地址(IPv6 DA)信息,从而指导报文的转发路径和行为。
如图12所示,在包括A设备和B设备的第一IPv6域中,可通过IPv6的方式进行报文转发,其中,A设备为该第一IPv6域的入口设备(ingress),B设备为第一IPv6域的出口设备(egress)。在包括C设备的第二IPv6域中,可通过IPv6的方式进行报文转发,其中,C设备为该第二IPv6域的入口设备(ingress)。在包括PE630、PE640、P650以及P660的IPv6 MPLS域中,可基于MPLS标签确定的标签转发路径来实现IPv6转发,其中,PE630为该IPv6 MPLS域的入口设备(ingress),PE640为该IPv6 MPLS域的出口设备(egress)。应理解,图12所示的IPv6 MPLS域中包括的设备(PE630、PE640、P650以及P660)与图6中的设备相同,具体的有关IPv6 MPLS域中各个设备的描述,请参见图6中的说明,此处不再赘述。
需要说明的是,对于跨域场景而言,两个域的边界设备可以是一个设备,或者也可以是两个设备,本申请实施例对此不做具体限定。例如,在图12中,边界设备B和边界设备PE630可以是一个设备,或者也可以是两个不同的设备。为了便于描述,图12中以边界设备B和边界设备PE630为不同的设备为例进行举例说明的。
图13是本申请实施例提供的另一种处理报文的方法的示意性流程图。如图13所示,该方法可以包括步骤1310-1370,下面分别对步骤1310-1370进行详细描述。
步骤1310:A设备获得数据报文,并对数据报文进行IPv6封装,得到报文4。
对于SRv6而言,A设备在获得数据报文后,可以对数据报文进行IPv6封装,得到IPv6报文,该IPv6报文包括:IPv6基本头、IPv6扩展头以及数据报文。其中,IPv6扩展头例如可以是SRH,该SRH中包括多个segment list列表信息,该多个segment list列表信息用于指示一条具体的转发路径。
下面对IPv6扩展头中包括的字段进行详细说明。应理解,有关于IPv6基本头中各个字段的描述,请参考步骤720中的说明,此处不再赘述。
IPv6扩展头可以包括如下字段:
下一个头部(next header,NH):长度为8bit,指示紧跟在IPv6扩展头后面的报文头的类型。
头部扩展长度(head extension length,Hdr Ext Len):长度为8bit,标识IPv6扩展头的长度,主要是指从segment list[0]到segment list[n]所占用长度。
路由类型(routing type):长度为8bit,标识路由头部类型,SRH type是4。
段指示(segment left,SL):长度为8bit,指示到达目的节点前仍然应当访问的中间节点数。
最后一个条目(last entry):长度为8bit,指示在段列表中包含段列表的最后一个元素的索引。
标识(flags):长度为8bit,指示数据包的一些标识。
标记(tag):长度为16bit,标识同组数据包。
段列表(segment list[n]),长度为128*n bit,段列表从路径的最后一段开始编码。segment list是IPv6地址形式。
一种可能的实现方式中,A设备封装得到的一种报文4的格式如图14所示,该报文4包括IPv6基本头、IPv6扩展头以及数据报文。其中,IPv6扩展头中SL的取值为2,段列表信息中包括:segment list[0]-segment list[2]。segment list[0]指示第一IPv6域的入口设备的地址,例如,C设备的地址2001:6::1;segment list[1]指示IPv6 MPLS域中基于MPLS标签确定的转发路径,例如,第一前缀+label 1;segment list[2]指示第二IPv6域的出口设备的地址,例如,B设备的地址2001:5::1。IPv6基本头中的SA字段为A设备的地址(例如,2002:2::1),目的地址DA为segment list[2]指示的地址,例如,B设备的地址2001:5::1。
另一种可能的实现方式中,A设备封装得到的另一种报文4的格式如图15所示,该报文4包括IPv6基本头、IPv6扩展头以及数据报文。其中,IPv6扩展头中SL的取值为2,段列表信息中包括:segment list[0]-segment list[3]。segment list[0]指示第一IPv6域的入口设备的地址,例如,C设备的地址2001:6::1;segment list[1]指示IPv6 MPLS域中基于MPLS标签确定的转发路径,例如,第一前缀+label 1;segment list[2]指示IPv6 MPLS域的入口设备的地址,例如,PE630设备的地址2001:100::1;segment list[3]指示第二IPv6域的出口设备的地址,例如,B设备的地址2001:5::1。IPv6基本头中的SA字段为A设备的地址(例如,2002:2::1),目的地址DA为segment list[2]指示的地址,例如,B设备的地址2001:5::1。
步骤1320:A设备将报文4发送给B设备。
A设备在封装得到报文4后,可以根据IPv6基本头中的目的地址DA字段为B设备的地址2001:5::1,将该报文4发送给B设备。
步骤1330:B设备对报文4进行处理,得到报文5,并将报文5发送给PE630。
B设备接收到A设备发送的报文4后,可以根据IPv6基本头的目的地址DA字段为B设备的地址2001:5::1,对报文4进行处理,得到报文5,并将报文5发送给IPv6 MPLS域的入口设备PE630。
一个示例,B设备可以将PE630所在隧道的隧道信息(本申请实施例中,该隧道信息为一个SID,该SID例如可以是第一前缀+label 1)封装在IPv6基本头的目的地址DA字段,生成报文5。并根据该DA字段,将报文5发送给IPv6 MPLS域的入口设备PE630。以便于PE630接收到报文5后,直接根据隧道信息以及对应的转发表项,将报文5沿着隧道进行转发。
举例说明,B设备接收到的报文4的格式如图14所示,B设备根据SL字段的指示,将对应的segment list作为IPv6基本头的目的地址DA字段。例如,图14所示的报文4中的SL字段取值为2,B设备根据SL-1=1,将segment list[1]=第一前缀+label 1作为IPv6基本头的目的地址DA字段,并将SL字段取值更新为1,生成报文5。报文5的格式如图16所示,该报文5包括IPv6基本头、IPv6扩展头以及数据报文。IPv6扩展头中SL的取值为1,段列表信息中包括:segment list[0]-segment list[2]。IPv6基本头中的SA字段为A设备的地址(例如,2002:2::1),目的地址DA为segment list[1]指示的地址,例如,第一前缀+label 1。
另一个示例,B设备可以将PE630的设备地址封装在IPv6基本头的目的地址DA字段,生成报文5。并根据该DA字段,将报文5发送给IPv6 MPLS域的入口设备PE630。这种实施例中,PE630在接收到报文5后,可以将隧道信息封装在IPv6基本头的目的地址DA字段中,并根据隧道信息以及对应的转发表项,将报文5沿着隧道进行转发。
举例说明,B设备接收到的报文4的格式如图15所示,B设备根据SL字段的指示,将对应的segment list作为IPv6基本头的目的地址DA字段。例如,图15所示的报文4中的SL字段取值为3,B设备根据SL-1=2,将segment list[2]=2001:100::1作为IPv6基本头的目的地址DA字段,并将SL字段取值更新为2,生成报文5。报文5的格式如图17所示,该报文5包括IPv6基本头、IPv6扩展头以及数据报文。IPv6扩展头中SL的取值为2,段列表信息中包括:segment list[0]-segment list[3]。IPv6基本头中的SA字段为A设备的地址(例如,2001:6::1),目的地址DA为segment list[2]指示的地址,例如,B设备的地址2001:100::1。
步骤1340:PE630接收B设备发送的报文5,并对其进行转发。
一种可能的实现方式中,PE630接收到的报文5的目的地址DA字段(位于IPv6基本头)已经封装了隧道信息(本申请实施例中,该隧道信息为一个SID,该SID例如可以是第一前缀+label 1),此时,PE630可以直接根据隧道信息以及对应的转发表项,将报文5沿着隧道进行转发。例如,PE630接收到的报文5的格式如图16所示,该报文5的DA字段为第一前缀+label 1,PE630可以根据DA字段中第一前缀后的最外层标签以及该最外层标签对应的标签转发表项,进行对应的转发操作。例如,第一前缀后的最外层标签为label1,P650可以根据label 1对应的标签转发表项中指示的出接口为P650的接口,将报文5发送给P650。需要说明的是,在该实现方式中,PE630和B设备也可能是一台设备。
另一种可能的实现方式中,PE630接收到的报文5的目的地址DA字段(位于IPv6基本头)为其自身的设备地址,PE630需要将对应的隧道信息(本申请实施例中,该隧道信息为一个SID,该SID例如可以是第一前缀+label 1)封装在报文5的目的地址DA字段中,生成报文6,并将报文6发送给P650。
举例说明,PE630接收到的报文5的格式如图17所示,PE630根据SL字段的指示,将对应的segment list作为IPv6基本头的目的地址DA字段。例如,如图17所示的报文5中的SL字段取值为2,PE630根据SL-1=1,将segment list[1]=第一前缀+label 1作为IPv6基本头的目的地址DA字段,并将SL字段取值更新为1,生成报文6。报文6的格式如图18所示,该报文6包括IPv6基本头、IPv6扩展头以及数据报文。IPv6扩展头中SL的取值为1,段列表信息中包括:segment list[0]-segment list[3]。IPv6基本头中的SA字段为A设备的地址(例如,2002:2::1),目的地址DA为segment list[1]指示的地址,例如,第一前缀+label 1。
步骤1350:P650接收PE630发送的报文,并基于报文中的MPLS标签,将接收到的报文沿着IPv6 MPLS域进行转发。
P650接收到PE630发送的报文后,由于IPv6基本头中的DA封装的是一个SID(例如,第一前缀+label 1),P650可以根据SID1中第一前缀的指示,解析出第一前缀后的最外层标签,并根据该最外层标签对应的标签转发表项,进行对应的标签操作,并发送给P660。
上述P650接收到PE630发送的报文可以是图16所示的报文5,或者也可以是图18所示的报文6,本申请实施例对此不做具体限定,只要报文的IPv6基本头中的DA封装的是一个SID(例如,第一前缀+label 1)即可。为了便于描述,下面以P650接收到PE630发送的报文为图18所示的报文6为例进行说明。
作为示例,P650向P660发送的一种报文格式如图19所示。图19所示的报文7与图18所示的报文6相比,不同之处在于,P650将IPv6基本头中的DA的label 1替换为label2。具体的处理过程和步骤740对应,具体的请参考步骤740中的描述,此处不再赘述。
步骤1360:P660接收P650发送的报文,并基于报文中的MPLS标签,将接收到的报文沿着IPv6 MPLS域进行转发。
P660接收到P650发送的报文后,可以根据IPv6基本头中的DA中第一前缀的指示,解析出第一前缀后的最外层标签,并根据该最外层标签对应的标签转发表项,进行对应的操作。
以P660接收到P650发送的报文为图19所示的报文7为例。该报文7的IPv6基本头中的DA为第一标签+label 2,假设label 2对应的标签转发表项为:标签操作为POP;出接口为连接PE640的接口。P660根据标签转发表项将报文7中的label 2弹出,并发送给PE640。此时,由于将label 2弹出后,再无其他标签,本申请实施例中有以下几种不同的处理方式。
一种可能的实现方式中,P660在第一标签后再封装一个特殊标签,生成报文8。并根据上述标签转发表项中对应的出接口,将报文8发送给PE640。如图20所示,该报文8中包括与图19所示的报文7相比,不同之处在于,P650将IPv6基本头中的DA的label 1替换为特殊标签。
需要说明的是,该特殊标签需要指示其为栈底标签,再没有其他标签。一个示例,该特殊标签是一个长标签,例如,NULL(0)标签,该NULL(0)标签的栈底位置真。另一个示例,该特殊标签是一个短标签,由于短标签没有栈底位标识,因此,可以定义一个无用(invaild)标签,该invaild标签标识后面没有其他标签。
步骤1370:PE640接收P660发送的报文,并对该报文处理后,发送给C设备。
一个示例,PE640接收P660发送的报文为图20所示的报文8。PE640根据报文8的IPv6基本头中DA封装的是一个第一前缀+特殊标签,解析特殊标签,并根据该特殊标签对应的标签转发表项,进行对应的操作。例如,该特殊标签指示其为栈底标签,再没有其他标签,PE640可以根据IPv6扩展头中SL字段的指示确定对应的segment list,并将该segmentlist作为IPv6基本头中的DA,从而生成报文9。
举例说明,如图20所示,报文8中的SL字段取值为1,PE640根据SL-1=0,将segmentlist[0]=2001:6::1作为IPv6基本头的目的地址DA字段,并将SL字段取值更新为0,生成报文9。报文9的格式如图21所示,该报文9包括IPv6基本头、IPv6扩展头以及数据报文。IPv6扩展头中SL的取值为0,段列表信息中包括:segment list[0]-segment list[3]。IPv6基本头中的SA字段为A设备的地址(例如,2001:6::1),目的地址DA为segment list[0]指示的地址,例如,C设备的地址2001:6::1。
PE640可以根据IPv6基本头的目的地址DA字段为C设备的地址2001:6::1,将生成的报文9发送给C设备。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
上文结合图1至图21,详细描述了本申请实施例提供的处理报文的方法,下面将结合图22至图24,详细描述本申请的装置的实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
图22是本申请实施例提供的一种处理报文的装置2200的示意性结构图。该装置2200设置于第一网络设备中。图22所示的处理报文的装置2200可以执行上述实施例的处理报文的方法的相应步骤。
如图22所示,所述处理报文的装置2200包括:接收模块2210,处理模块2220,发送模块2230。其中,接收模块2210用于接收第一报文,第一报文包括数据报文;处理模块2220用于根据该第一报文和第一段标识SID确定第二报文,该第二报文为互联网协议第六版IPv6报文,该第二报文包括该数据报文和该第一SID,该第一SID包括第一前缀和至少一个多协议标签交换MPLS标签,该第一前缀用于指示该第一SID携带该至少一个MPLS标签,该至少一个MPLS标签用于指示使用该至少一个MPLS标签确定出的标签转发路径实现IPv6转发;发送模块2230用于根据该标签转发路径对该第二报文进行转发。
可选地,该第一报文为该数据报文,该处理模块2220具体用于:根据该第一SID,对该第一报文进行IPv6封装,得到该第二报文。
可选地,该第二报文包括IPv6基本头,该IPv6基本头包括目的地址DA字段,该DA字段用于承载该第一SID。
可选地,该第二报文包括IPv6扩展头,该IPv6扩展头包括该第一SID。
可选地,该IPv6扩展头还包括第二SID,该第二SID包括该第一前缀和至少一个MPLS标签,或该第二SID包括至少一个MPLS标签。
可选地,该第一SID包括位置标识locator和功能标识function,该位置标识用于承载该第一前缀,该功能标识用于承载该至少一个MPLS标签。
可选地,该发送模块2230具体用于:根据第一MPLS标签和对应的MPLS转发表项,对该第二报文进行转发,该第一MPLS标签为该第一SID中封装在该第一前缀后的第一个MPLS标签。
可选地,该MPLS转发表项指示在该第二报文中插入第二MPLS标签,该发送模块2230具体用于:对该第二报文进行IPv6封装,生成第三报文,该第三报文为IPv6报文,该第三报文包括该第二MPLS标签;根据该MPLS转发表项中该第二MPLS标签对应的出接口,发送该第三报文。
可选地,该MPLS转发表项指示在该第二报文中插入第二MPLS标签,所该发送模块2230具体用于:将该第二MPLS标签封装在该第二报文中第一MPLS标签前,生成第三报文;根据该MPLS转发表项中该第二MPLS标签对应的出接口,发送该第三报文。
可选地,该至少一个MPLS标签为短标签。
可选地,该处理报文的装置2200为该标签转发路径的入口设备或中间转发设备。
图23是本申请实施例的第一网络设备2000的硬件结构示意图。图23所示的第一网络设备2000可以执行上述实施例的处理报文的方法。
如图23所示,所述第一网络设备2000包括处理器2001、存储器2002、接口2003和总线2004。其中接口2003可以通过无线或有线的方式实现,具体来讲可以是网卡。上述处理器2001、存储器2002和接口2003通过总线2004连接。
所述接口2003具体可以包括发送器和接收器,用于第一网络设备实现上述收发。
所述处理器2001用于执行上述实施例中由第一网络设备进行的处理。存储器2002包括操作系统20021和应用程序20022,用于存储程序、代码或指令,当处理器或硬件设备执行这些程序、代码或指令时可以完成方法实施例中涉及第一网络设备的处理过程。可选的,所述存储器2002可以包括只读存储器(read-only memory,ROM)和随机存取存储器(randomaccess memory,RAM)。其中,所述ROM包括基本输入/输出系统(basic input/outputsystem,BIOS)或嵌入式系统;所述RAM包括应用程序和操作系统。当需要运行第一网络设备2000时,通过固化在ROM中的BIOS或者嵌入式系统中的bootloader引导系统进行启动,引导第一网络设备2000进入正常运行状态。在第一网络设备2000进入正常运行状态后,运行在RAM中的应用程序和操作系统,从而,完成方法实施例中涉及第一网络设备2000的处理过程。
可以理解的是,图23仅仅示出了第一网络设备2000的简化设计。在实际应用中,第一网络设备可以包含任意数量的接口,处理器或者存储器。
图24为本申请实施例的另一种第一网络设备2100的硬件结构示意图。图24所示的第一网络设备2100可以执行上述实施例的处理报文的方法。
如图24所述,第一网络设备2100包括:主控板2110、接口板2130、交换网板2120和接口板2140。主控板2110、接口板2130和2140,以及交换网板2120之间通过系统总线与系统背板相连实现互通。其中,主控板2110用于完成系统管理、设备维护、协议处理等功能。交换网板2120用于完成各接口板(接口板也称为线卡或业务板)之间的数据交换。接口板2130和2140用于提供各种业务接口(例如,POS接口、GE接口、ATM接口等),并实现数据包的转发。
接口板2130可以包括中央处理器2131、转发表项存储器2134、物理接口卡2133和网络处理器2132。其中,中央处理器2131用于对接口板进行控制管理并与主控板上的中央处理器进行通信。转发表项存储器2134用于保存表项。物理接口卡2133用于完成流量的接收和发送。
应理解,本申请实施例中接口板2140上的操作与所述接口板2130的操作一致,为了简洁,不再赘述。
应理解,本实施例的第一网络设备2100可对应于上述方法实施例所具有的功能和/或所实施的各种步骤,在此不再赘述。
此外,需要说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,第一网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,第一网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下第一网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的第一网络设备的数据接入和处理能力要大于集中式架构的设备。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。
本申请实施例还提供了一种计算机可读介质,该计算机可读介质存储有程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述第一网络设备执行的方法。这些计算机可读存储包括但不限于如下的一个或者多个:只读存储器(read-onlymemory,ROM)、可编程ROM(programmable ROM,PROM)、可擦除的PROM(erasable PROM,EPROM)、Flash存储器、电EPROM(electrically EPROM,EEPROM)以及硬盘驱动器(harddrive)。
本申请实施例还提供了一种芯片,应用于第一网络设备中,该芯片包括:至少一个处理器、至少一个存储器和接口电路,所述接口电路负责所述芯片与外界的信息交互,所述至少一个存储器、所述接口电路和所述至少一个处理器通过线路互联,所述至少一个存储器中存储有指令;所述指令被所述至少一个处理器执行,以进行上述各个方面的所述的方法中所述第一网络设备的操作。在具体实现过程中,该芯片可以以中央处理器(centralprocessingunit,CPU)、微控制器(microcontroller unit,MCU)、微处理器(microprocessing unit,MPU)、数字信号处理器(digital signal processing,DSP)、片上系统(system on chip,SoC)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或可编辑逻辑器件(programmable logic device,PLD)的形式实现。
本申请实施例还提供了一种计算机程序产品,应用于第一网络设备中,所述计算机程序产品包括一系列指令,当所述指令被运行时,以进行上述各个方面的所述的方法中所述第一网络设备的操作。
本申请实施例还提供了一种系统,包括:上述第一网络设备。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (24)
1.一种处理报文的方法,其特征在于,包括:
第一网络设备接收第一报文,第一报文包括数据报文;
所述第一网络设备根据所述第一报文和第一段标识SID确定第二报文,所述第二报文为互联网协议第六版IPv6报文,所述第二报文包括所述数据报文和所述第一SID,所述第一SID包括第一前缀和至少一个多协议标签交换MPLS标签,所述第一前缀用于指示所述第一SID携带所述至少一个MPLS标签,所述至少一个MPLS标签用于指示使用所述至少一个MPLS标签确定出的标签转发路径实现IPv6转发;
所述第一网络设备根据所述标签转发路径对所述第二报文进行转发。
2.根据权利要求1所述的方法,其特征在于,所述第一报文为所述数据报文,
所述第一网络设备根据所述第一报文和第一段标识SID确定第二报文,包括:
所述第一网络设备根据所述第一SID,对所述第一报文进行IPv6封装,得到所述第二报文。
3.根据权利要求1或2所述的方法,其特征在于,所述第二报文包括IPv6基本头,所述IPv6基本头包括目的地址DA字段,所述DA字段用于承载所述第一SID。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述第二报文包括IPv6扩展头,所述IPv6扩展头包括所述第一SID。
5.根据权利要求4所述的方法,其特征在于,所述IPv6扩展头还包括第二SID,
所述第二SID包括所述第一前缀和至少一个MPLS标签,或
所述第二SID包括至少一个MPLS标签。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述第一SID包括位置标识locator和功能标识function,所述位置标识用于承载所述第一前缀,所述功能标识用于承载所述至少一个MPLS标签。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述第一网络设备根据所述标签转发路径对所述第二报文进行转发,包括:
所述第一网络设备根据第一MPLS标签和对应的MPLS转发表项,对所述第二报文进行转发,所述第一MPLS标签为所述第一SID中封装在所述第一前缀后的第一个MPLS标签。
8.根据权利要求7所述的方法,其特征在于,所述MPLS转发表项指示在所述第二报文中插入第二MPLS标签,
所述第一网络设备根据第一MPLS标签和对应的MPLS转发表项,对所述第二报文进行转发,包括:
所述第一网络设备对所述第二报文进行IPv6封装,生成第三报文,所述第三报文为IPv6报文,所述第三报文包括所述第二MPLS标签;
所述第一网络设备根据所述MPLS转发表项中所述第二MPLS标签对应的出接口,发送所述第三报文。
9.根据权利要求7所述的方法,其特征在于,所述MPLS转发表项指示在所述第二报文中插入第二MPLS标签,
所述第一网络设备根据第一MPLS标签和对应的MPLS转发表项,对所述第二报文进行转发,包括:
所述第一网络设备将所述第二MPLS标签封装在所述第二报文中第一MPLS标签前,生成第三报文;
所述第一网络设备根据所述MPLS转发表项中所述第二MPLS标签对应的出接口,发送所述第三报文。
10.根据权利要求1至9中任一项所述的方法,其特征在于,所述至少一个MPLS标签为短标签。
11.根据权利要求1至10中任一项所述的方法,其特征在于,所述第一网络设备为所述标签转发路径的入口设备或中间转发设备。
12.一种处理报文的装置,其特征在于,所述装置设置于第一网络设备中,所述装置包括:
接收模块,用于接收第一报文,第一报文包括数据报文;
处理模块,用于根据所述第一报文和第一段标识SID确定第二报文,所述第二报文为互联网协议第六版IPv6报文,所述第二报文包括所述数据报文和所述第一SID,所述第一SID包括第一前缀和至少一个多协议标签交换MPLS标签,所述第一前缀用于指示所述第一SID携带所述至少一个MPLS标签,所述至少一个MPLS标签用于指示使用所述至少一个MPLS标签确定出的标签转发路径实现IPv6转发;
发送模块,用于根据所述标签转发路径对所述第二报文进行转发。
13.根据权利要求12所述的装置,其特征在于,所述第一报文为所述数据报文,
所述处理模块具体用于:根据所述第一SID,对所述第一报文进行IPv6封装,得到所述第二报文。
14.根据权利要求12或13所述的装置,其特征在于,所述第二报文包括IPv6基本头,所述IPv6基本头包括目的地址DA字段,所述DA字段用于承载所述第一SID。
15.根据权利要求12至14中任一项所述的装置,其特征在于,所述第二报文包括IPv6扩展头,所述IPv6扩展头包括所述第一SID。
16.根据权利要求15所述的装置,其特征在于,所述IPv6扩展头还包括第二SID,
所述第二SID包括所述第一前缀和至少一个MPLS标签,或
所述第二SID包括至少一个MPLS标签。
17.根据权利要求12至16中任一项所述的装置,其特征在于,所述第一SID包括位置标识locator和功能标识function,所述位置标识用于承载所述第一前缀,所述功能标识用于承载所述至少一个MPLS标签。
18.根据权利要求12至17中任一项所述的装置,其特征在于,所述发送模块具体用于:
根据第一MPLS标签和对应的MPLS转发表项,对所述第二报文进行转发,所述第一MPLS标签为所述第一SID中封装在所述第一前缀后的第一个MPLS标签。
19.根据权利要求18所述的装置,其特征在于,所述MPLS转发表项指示在所述第二报文中插入第二MPLS标签,
所述发送模块具体用于:
对所述第二报文进行IPv6封装,生成第三报文,所述第三报文为IPv6报文,所述第三报文包括所述第二MPLS标签;
根据所述MPLS转发表项中所述第二MPLS标签对应的出接口,发送所述第三报文。
20.根据权利要求18所述的装置,其特征在于,所述MPLS转发表项指示在所述第二报文中插入第二MPLS标签,
所所述发送模块具体用于:
将所述第二MPLS标签封装在所述第二报文中第一MPLS标签前,生成第三报文;
根据所述MPLS转发表项中所述第二MPLS标签对应的出接口,发送所述第三报文。
21.根据权利要求12至20中任一项所述的装置,其特征在于,所述至少一个MPLS标签为短标签。
22.根据权利要求12至21中任一项所述的装置,其特征在于,所述装置为所述标签转发路径的入口设备或中间转发设备。
23.一种第一网络设备,其特征在于,包括:处理器和存储器,所述存储器用于存储程序或代码,所述处理器用于从存储器中调用并运行所述程序以执行权利要求1至11中任一项所述的方法。
24.一种处理报文的系统,其特征在于,包括如权利要求12至22中任一项所述的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2023/090925 WO2023208056A1 (zh) | 2022-04-29 | 2023-04-26 | 处理报文的方法、装置以及系统 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210475581 | 2022-04-29 | ||
CN2022104755819 | 2022-04-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117014370A true CN117014370A (zh) | 2023-11-07 |
Family
ID=88560615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210620663.8A Pending CN117014370A (zh) | 2022-04-29 | 2022-06-02 | 处理报文的方法、装置以及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117014370A (zh) |
-
2022
- 2022-06-02 CN CN202210620663.8A patent/CN117014370A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111713079B (zh) | 包括段路由的分组网络互通 | |
CN110784411B (zh) | 建立bier转发表项的方法、装置和系统 | |
CN111512601B (zh) | 分组的分段路由网络处理 | |
CN111953604B (zh) | 一种为业务流提供业务服务的方法和装置 | |
JP4511532B2 (ja) | パケット交換通信ネットワークにおけるコネクション指向の転送のための装置 | |
CN112087386B (zh) | 一种报文处理的方法、设备和系统 | |
CN114465920B (zh) | 确定对应关系的方法、装置以及系统 | |
EP4160950A1 (en) | Method and apparatus for sending message, and network device, system and storage medium | |
CN113259239A (zh) | 一种在混合网络中转发报文的方法、设备和系统 | |
EP4040738A1 (en) | Message processing method, device and system | |
CN112019433A (zh) | 一种报文转发方法和装置 | |
CN113114576B (zh) | 报文发送的方法、设备和系统 | |
CN113973082A (zh) | 一种报文处理方法及网络设备 | |
CN112583711A (zh) | 一种报文处理方法及装置 | |
CN112822097A (zh) | 报文转发的方法、第一网络设备以及第一设备组 | |
WO2022007702A1 (zh) | 一种报文处理方法及网络设备 | |
CN115550252A (zh) | 路由发布和转发报文的方法、装置、设备和存储介质 | |
CN111669422A (zh) | 报文的传输方法和设备 | |
CN113630316B (zh) | 一种数据传输方法及通信装置 | |
CN111404797A (zh) | 控制方法、sdn控制器、sdn接入点、sdn网关及ce | |
CN113765809A (zh) | Bier组播流量的统计方法、设备以及系统 | |
CN117014370A (zh) | 处理报文的方法、装置以及系统 | |
WO2023208056A1 (zh) | 处理报文的方法、装置以及系统 | |
CN114598644A (zh) | Bier报文转发的方法、设备以及系统 | |
WO2023125774A1 (zh) | 一种vxlan报文传输方法、网络设备及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |