一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

BIER报文转发的方法、设备以及系统与流程

2022-06-08 22:54:46 来源:中国专利 TAG:
bier报文转发的方法、设备以及系统1.本技术要求于2020年12月2日提交中国专利局、申请号为202011393273.9、发明名称为“一种使用bier的组播转发方法、设备及系统”的中国专利申请的优先权,其全部内容通过引用结合在本技术中。
技术领域
:2.本技术涉及网络通信领域,并且更具体地,涉及一种bier报文转发的方法、设备和系统。
背景技术
::3.互联网协议(internetprotocol,ip)组播技术实现了ip网络中点到多点的高效数据传送,能够有效地节约网络带宽、降低网络负载。为此,业界提出了一种新的用于构建组播报文转发路径的技术,称为基于位索引的显式复制(bitindexedexplicitreplication,bier)技术,该技术提出了一种新的不需要构建组播分发树的组播技术架构。bier报文中需要同时标识bier报文内层数据报文的源节点所属的虚拟专用网(virtualprivatenetwork,vpn)以及bier域的入口节点信息,从而使得bier报文能够支持多种组播部署和应用方式,例如,支持对bier报文中bier头的倒数第二跳弹出,支持bier域中发送bier报文的入口节点不配置位转发路由器标识(bit-forwardingrouteridentifier,bfrid)等。4.一种相关的技术方案中,bier报文中还包括ip头 虚拟扩展局域网(virtualextensiblelocalareanetwork,vxlan)头/网络虚拟化通用路由封装(networkvirtualizationgenericroutingencapsulation,nvgre)头/通用的网络虚拟化封装(genericnetworkvirtualizationencapsulation,geneve)头。其中,ip头 vxlan/nvgre/geneve用于标识bier报文内层数据报文的源节点所属vpn的同时,还用于标识发送bier域中发送bier报文的入口节点信息。这种技术方案中,虽然可以同时标识bier报文内层数据报文的源节点所属vpn以及bier域的入口节点信息,但是这种封装下bier报文的头部封装开销较大。技术实现要素:5.本技术提供一种bier报文转发的方法、设备和系统,可以在bier报文中标识内层数据报文的源节点所属vpn以及bier域中发送bier报文的入口节点信息的同时,还可以减小bier报文头部的封装开销。6.第一方面,提供了一种bier报文转发的方法,包括:第一网络设备接收第二网络设备发送的bier报文,所述bier报文包括数据报文和全局虚拟专用网vpn标识,所述全局vpn标识用于在bier域中唯一标识所述数据报文的源设备所属的vpn,所述全局vpn标识包括所述第二网络设备的标识和第一标识,所述第二网络设备的标识用于在所述bier域中标识所述第二网络设备,所述第一标识用于在所述第二网络设备上标识所述数据报文的源设备所属的vpn,所述第二网络设备为所述bier域的入口节点,所述第一网络设备为所述bier域的出口节点;所述第一网络设备根据所述全局vpn标识确定与所述全局vpn标识对应的第一vpn,所述第一vpn是所述第一网络设备确定的、所述数据报文的目的设备所属的vpn;所述第一网络设备向所述第一vpn对应的所述数据报文的目的设备发送所述数据报文。7.上述技术方案中,第二网络设备向第一网络设备发送的bier报文中可以包括全局vpn标识,该全局vpn标识包括第二网络设备的标识和在第二网络设备上标识数据报文的源设备所属的vpn。上述bier报文仅通过全局vpn标识就可以同时标识bier报文内层数据报文的源节点所属vpn以及bier域的入口节点信息,因此,可以在bier报文中标识内层数据报文的源节点所属vpn以及bier域中发送bier报文的入口节点信息的同时,还可以减小bier报文头部的封装开销。8.结合第一方面,在第一方面的某些实现方式中,所述第二网络设备的标识包括以下中的任一种:所述第二网络设备的互联网协议第4版ipv4地址,所述第二网络设备的互联网协议第6版ipv6地址,所述第二网络设备的ipv6地址的前缀和所述第二网络设备的介质访问控制mac地址。9.结合第一方面,在第一方面的某些实现方式中,所述方法还包括:所述第一网络设备接收控制报文,所述控制报文中包括所述全局vpn标识和第二路由目标属性;所述第一网络设备根据所述控制报文确定第一路由目标属性,所述第一路由目标属性和所述第二路由目标属性对应;所述第一网络设备根据所述第一网络设备上的所述第一路由目标属性和所述第一vpn之间的对应关系,确定所述全局vpn标识和所述第一vpn之间的对应关系。10.结合第一方面,在第一方面的某些实现方式中,所述方法还包括:所述第一网络设备根据所述bier报文的bier头中的协议proto字段确定所述bier报文中包括所述全局vpn标识。11.结合第一方面,在第一方面的某些实现方式中,所述全局vpn标识位于所述bier头之后。12.结合第一方面,在第一方面的某些实现方式中,所述第一网络设备对所述bier报文进行解封装,获得所述数据报文;所述第一网络设备向所述第一vpn对应的所述数据报文的目的设备发送所述数据报文。13.第二方面,提供了一种bier报文转发的方法,包括:第二网络设备确定全局vpn标识和第二路由目标属性之间的对应关系,所述全局vpn标识用于在bier域中唯一标识数据报文的源设备所属的vpn,所述全局vpn标识包括所述第二网络设备的标识和第一标识,所述第二网络设备的标识用于在所述bier域中标识所述第二网络设备,所述第一标识用于在所述第二网络设备上标识所述数据报文的源设备所属的vpn,所述第二网络设备为所述bier域的入口节点;所述第二网络设备向第一网络设备发送控制报文,所述控制报文中包括所述全局vpn标识和所述第二路由目标属性,所述第一网络设备为所述bier域的出口节点;所述第二网络设备获取所述数据报文,所述数据报文的源设备所属的vpn对应所述第二路由目标属性;所述第二网络设备根据所述对应关系获得bier报文,所述bier报文包括所述数据报文和所述全局vpn标识;所述第二网络设备向所述第一网络设备发送所述bier报文。14.结合第二方面,在第二方面的某些实现方式中,第二网络设备的标识包括以下中的任一种:所述第二网络设备的互联网协议第4版ipv4地址,所述第二网络设备的互联网协议第6版ipv6地址,所述第二网络设备的ipv6地址的前缀,所述第二网络设备的介质访问控制mac地址。15.结合第二方面,在第二方面的某些实现方式中,所述bier报文的bier头中的协议proto字段用于指示所述bier报文中包括所述全局vpn标识。16.结合第二方面,在第二方面的某些实现方式中,所述全局vpn标识位于所述bier报文的bier头之后。17.第三方面,提供了一种第一网络设备,包括:接收模块,处理模块,发送模块,18.接收模块,用于接收第二网络设备发送的bier报文,所述bier报文包括数据报文全局虚拟专用网vpn标识,所述全局vpn标识用于在bier域中唯一标识所述数据报文的源设备所属的vpn,所述全局vpn标识包括所述第二网络设备的标识和第一标识,所述第二网络设备的标识用于在所述bier域中标识所述第二网络设备,所述第一标识用于在所述第二网络设备上标识所述数据报文的源设备所属的vpn,所述第二网络设备为所述bier域的入口节点,所述第一网络设备为所述bier域的出口节点;19.处理模块,用于根据所述全局vpn标识确定与所述全局vpn标识对应的第一vpn,所述第一vpn是所述第一网络设备确定的、所述数据报文的目的设备所属的vpn;20.发送模块,用于向所述第一vpn对应的所述数据报文的目的设备发送所述数据报文。21.结合第三方面,在第三方面的某些实现方式中,所述第二网络设备的标识包括以下中的任一种:所述第二网络设备的互联网协议第4版ipv4地址,所述第二网络设备的互联网协议第6版ipv6地址,所述第二网络设备的ipv6地址的前缀和所述第二网络设备的介质访问控制mac地址。22.结合第三方面,在第三方面的某些实现方式中,所述接收模块,还用于接收控制报文,所述控制报文中包括所述全局vpn标识和第二路由目标属性;所述处理模块,还用于根据所述控制报文确定第一路由目标属性,所述第一路由目标属性和所述第二路由目标属性对应;根据所述第一网络设备上的所述第一路由目标属性和所述第一vpn之间的对应关系,确定所述全局vpn标识和所述第一vpn之间的对应关系。23.结合第三方面,在第三方面的某些实现方式中,所述处理模块,还用于根据所述bier报文的bier头中的协议proto字段确定所述bier报文中包括所述全局vpn标识。24.结合第三方面,在第三方面的某些实现方式中,所述全局vpn标识位于所述bier头之后。25.结合第三方面,在第三方面的某些实现方式中,所述处理模块,还用于对所述bier报文进行解封装,获得所述数据报文。26.第四方面,提供了一种第二网络设备,包括:处理模块,发送模块,接收模块,27.处理模块,用于确定全局vpn标识和第二路由目标属性之间的对应关系,所述全局vpn标识用于在bier域中唯一标识数据报文的源设备所属的vpn,所述全局vpn标识包括所述第二网络设备的标识和第一标识,所述第二网络设备的标识用于在所述bier域中标识所述第二网络设备,所述第一标识用于在所述第二网络设备上标识所述数据报文的源设备所属的vpn,所述第二网络设备为所述bier域的入口节点;28.发送模块,用于向第一网络设备发送控制报文,所述控制报文中包括所述全局vpn标识和所述第二路由目标属性,所述第一网络设备为所述bier域的出口节点;29.接收模块,用于获取所述数据报文,所述数据报文的源设备所属的vpn对应所述第二路由目标属性;30.所述处理模块,还用于根据所述对应关系获得bier报文,所述bier报文包括所述数据报文和所述全局vpn标识;31.所述发送模块,还用于向所述第一网络设备发送所述bier报文。32.结合第四方面,在第四方面的某些实现方式中,第二网络设备的标识包括以下中的任一种:所述第二网络设备的互联网协议第4版ipv4地址,所述第二网络设备的互联网协议第6版ipv6地址,所述第二网络设备的ipv6地址的前缀,所述第二网络设备的介质访问控制mac地址。33.结合第四方面,在第四方面的某些实现方式中,所述bier报文的bier头中的协议proto字段用于指示所述bier报文中包括所述全局vpn标识。34.结合第四方面,在第四方面的某些实现方式中,所述全局vpn标识位于所述bier报文的bier头之后。35.第五方面,提供了一种第一网络设备,所述第一网络设备具有实现上述方法中第一网络设备行为的功能。所述功能可以基于硬件实现,也可以基于硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。36.在一个可能的设计中,第一网络设备的结构中包括处理器和接口,所述处理器被配置为支持第一网络设备执行上述方法中相应的功能。所述接口用于支持第一网络设备接收第二网络设备发送的bier报文,或者用于支持向所述第一vpn对应的所述数据报文的目的设备发送所述数据报文。37.所述第一网络设备还可以包括存储器,所述存储器用于与处理器耦合,其保存第一网络设备必要的程序指令和数据。38.在另一个可能的设计中,所述第一网络设备包括:处理器、发送器、接收器、随机存取存储器、只读存储器以及总线。其中,处理器通过总线分别耦接发送器、接收器、随机存取存储器以及只读存储器。其中,当需要运行第一网络设备时,通过固化在只读存储器中的基本输入/输出系统或者嵌入式系统中的bootloader引导系统进行启动,引导第一网络设备进入正常运行状态。在第一网络设备进入正常运行状态后,在随机存取存储器中运行应用程序和操作系统,使得该处理器执行第一方面或第一方面的任意可能的实现方式中的方法。39.第六方面,提供一种第一网络设备,所述第一网络设备包括:主控板和接口板,进一步,还可以包括交换网板。所述第一网络设备用于执行第一方面或第一方面的任意可能的实现方式中的方法。具体地,所述第一网络设备包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的模块。40.第七方面,提供一种第一网络设备,所述第一网络设备包括控制模块和第一转发子设备。所述第一转发子设备包括:接口板,进一步,还可以包括交换网板。所述第一转发子设备用于执行第六方面中的接口板的功能,进一步,还可以执行第六方面中交换网板的功能。所述控制模块中包括接收器、处理器、发送器、随机存取存储器、只读存储器以及总线。其中,处理器通过总线分别耦接接收器、发送器、随机存取存储器以及只读存储器。其中,当需要运行控制模块时,通过固化在只读存储器中的基本输入/输出系统或者嵌入式系统中的bootloader引导系统进行启动,引导控制模块进入正常运行状态。在控制模块进入正常运行状态后,在随机存取存储器中运行应用程序和操作系统,使得该处理器执行第六方面中主控板的功能。41.可以理解的是,在实际应用中,第一网络设备可以包含任意数量的接口,处理器或者存储器。42.第八方面,提供了一种第二网络设备,所述控制器具有实现上述方法中第二网络设备行为的功能。所述功能可以基于硬件实现,也可以基于硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。43.在一个可能的设计中,第二网络设备的结构中包括处理器和接口,所述处理器被配置为支持第二网络设备执行上述方法中相应的功能。所述接口用于支持第二网络设备获取数据报文,或者用于支持第二网络设备向所述第一网络设备发送所述bier报文,或者用于支持第二网络设备向所述第一网络设备发送控制报文。44.所述第二网络设备还可以包括存储器,所述存储器用于与处理器耦合,其保存控制器必要的程序指令和数据。45.在另一个可能的设计中,所述第二网络设备包括:处理器、发送器、接收器、随机存取存储器、只读存储器以及总线。其中,处理器通过总线分别耦接发送器、接收器、随机存取存储器以及只读存储器。其中,当需要运行第二网络设备时,通过固化在只读存储器中的基本输入/输出系统或者嵌入式系统中的bootloader引导系统进行启动,引导第二网络设备进入正常运行状态。在第二网络设备进入正常运行状态后,在随机存取存储器中运行应用程序和操作系统,使得该处理器执行第二方面或第二方面的任意可能的实现方式中的方法。46.第九方面,提供一种第二网络设备,所述第二网络设备包括:主控板和接口板,进一步,还可以包括交换网板。所述第二网络设备用于执行第二方面或第二方面的任意可能的实现方式中的方法。具体地,所述第二网络设备包括用于执行第二方面或第二方面的任意可能的实现方式中的方法的模块。47.第十方面,提供一种第二网络设备,所述第二网络设备包括控制模块和第一转发子设备。所述第一转发子设备包括:接口板,进一步,还可以包括交换网板。所述第一转发子设备用于执行第九方面中的接口板的功能,进一步,还可以执行第九方面中交换网板的功能。所述控制模块中包括接收器、处理器、发送器、随机存取存储器、只读存储器以及总线。其中,处理器通过总线分别耦接接收器、发送器、随机存取存储器以及只读存储器。其中,当需要运行控制模块时,通过固化在只读存储器中的基本输入/输出系统或者嵌入式系统中的bootloader引导系统进行启动,引导控制模块进入正常运行状态。在控制模块进入正常运行状态后,在随机存取存储器中运行应用程序和操作系统,使得该处理器执行第九方面中主控板的功能。48.可以理解的是,在实际应用中,第二网络设备可以包含任意数量的接口,处理器或者存储器。49.第十一方面,提供了一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一种可能执行的方法。50.第十二方面,提供了一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述第二方面或第二方面的任一种可能执行的方法。51.第十三方面,提供了一种计算机可读介质,该计算机可读介质存储有程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一种可能执行的方法。这些计算机可读存储包括但不限于如下的一个或者多个:只读存储器(read-onlymemory,rom)、可编程rom(programmablerom,prom)、可擦除的prom(erasableprom,eprom)、flash存储器、电eprom(electricallyeprom,eeprom)以及硬盘驱动器(harddrive)。52.第十四方面,提供了一种计算机可读介质,该计算机可读介质存储有程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述第二方面或第二方面的任一种可能执行的方法。这些计算机可读存储包括但不限于如下的一个或者多个:只读存储器(read-onlymemory,rom)、可编程rom(programmablerom,prom)、可擦除的prom(erasableprom,eprom)、flash存储器、电eprom(electricallyeprom,eeprom)以及硬盘驱动器(harddrive)。53.第十五方面,提供一种芯片,该芯片包括处理器与数据接口,其中,处理器通过该数据接口读取存储器上存储的指令,以执行第一方面或第一方面任意一种可能的实现方式中的方法。在具体实现过程中,该芯片可以以中央处理器(centralprocessingunit,cpu)、微控制器(microcontrollerunit,mcu)、微处理器(microprocessingunit,mpu)、数字信号处理器(digitalsignalprocessing,dsp)、片上系统(systemonchip,soc)、专用集成电路(application-specificintegratedcircuit,asic)、现场可编程门阵列(fieldprogrammablegatearray,fpga)或可编辑逻辑器件(programmablelogicdevice,pld)的形式实现。54.第十六方面,提供一种芯片,该芯片包括处理器与数据接口,其中,处理器通过该数据接口读取存储器上存储的指令,以执行第二方面或第二方面任意一种可能的实现方式中的方法。在具体实现过程中,该芯片可以以中央处理器(centralprocessingunit,cpu)、微控制器(microcontrollerunit,mcu)、微处理器(microprocessingunit,mpu)、数字信号处理器(digitalsignalprocessing,dsp)、片上系统(systemonchip,soc)、专用集成电路(application-specificintegratedcircuit,asic)、现场可编程门阵列(fieldprogrammablegatearray,fpga)或可编辑逻辑器件(programmablelogicdevice,pld)的形式实现。55.第十七方面,提供了一种系统,该系统包括上述第一网络设备和第二网络设备。附图说明56.图1是一种bier域的示意性组网图。57.图2是一种可能的bier头格式的示意图。58.图3是另一种可能的bier头格式的示意图。59.图4是一种基于bier技术建立bier转发表以及进行bier报文转发的过程。60.图5是本技术实施例提供的一种bier报文转发的方法的示意性流程图。61.图6是本技术实施例提供的一种出口节点建立全局vpn标识和本地vpn标识之间的对应关系的方法的示意性流程图。62.图7是本技术实施例提供的另一种bier报文转发的方法的示意性流程图。63.图8是本技术实施例提供的一种第一网络设备800的示意性结构图。64.图9是本技术实施例提供的一种第二网络设备900的示意性结构图。65.图10是本技术实施例的第一网络设备2000的硬件结构示意图。66.图11为本技术实施例的另一种第一网络设备2100的硬件结构示意图。67.图12是本技术实施例的第二网络设备2200的硬件结构示意图。68.图13为本技术实施例的另一种第二网络设备2300的硬件结构示意图。具体实施方式69.下面将结合附图,对本技术中的技术方案进行描述。70.本技术将围绕包括多个设备、组件、模块等的系统来呈现各个方面、实施例或特征。应当理解和明白的是,各个系统可以包括另外的设备、组件、模块等,并且/或者可以并不包括结合附图讨论的所有设备、组件、模块等。此外,还可以使用这些方案的组合。71.另外,在本技术实施例中,“示例的”、“例如”等词用于表示作例子、例证或说明。本技术中被描述为“示例”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。72.本技术实施例中,“相应的(corresponding,relevant)”和“对应的(corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。73.本技术实施例描述的网络架构以及业务场景是为了更加清楚地说明本技术实施例的技术方案,并不构成对于本技术实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。74.在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。75.本技术中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,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可以是单个,也可以是多个。76.组播(multicast)是一种通过使用一个组播地址将数据在同一时间以高效的方式发往处于传输控制协议(transmissioncontrolprotocol,tcp)/互联网协议(internetprotocol,ip)网络上的多个接收者的数据传输方式。组播源经由网络中的链路向组播组中的组播组成员发送组播流,该组播组中的组播组成员均可以接收到该组播流。组播传输方式实现了组播源和组播组成员之间的点对多点的数据连接。由于组播流在每条网络链路上只需传递一次,且只有在链路出现支路时,该组播才会被复制。因此,组播传输方式提高了数据传输效率和减少了骨干网络出现拥塞的可能性。77.互联网协议(internetprotocol,ip)组播技术实现了ip网络中点到多点的高效数据传送,能够有效地节约网络带宽、降低网络负载。因此,在实时数据传送、多媒体会议、数据拷贝、交互式网络电视(internetprotocoltelevision,iptv)、游戏和仿真等诸多方面都有广泛的应用。该组播技术使用组播协议构建控制平面组播树,然后利用组播树将网络平面逻辑树状,以实现组播点到多点的数据转发。这种以构建分发树为核心的中间设备都需要维护复杂的组播转发信息状态。在网络规模越来越大,组播报文的流量与日俱增的情况下,这种组播技术面临越来越大的成本和运维方面的挑战。78.为此,业界提出了一种新的用于构建组播报文转发路径的技术,称为位索引的显式复制(bitindexexplicitreplication,bier)技术,该技术提出了一种不需要构建组播分发树的组播技术架构。如图1所示,支持bier技术的路由器称为位转发路由器(bit-forwardingrouter,bfr)。对数据报文进行bier封装的bfr称为位转发入口路由器(bitforwardingingressrouter,bfir)。对从bier报文中解封装出数据报文的bfr称为位转发出口路由器(bitforwardingegressrouter,bfer)。由上述bfir以及一个或多个bfer组成的传输bier报文的网络域称为bier域(bierdomain)。可选地,该bier域还可以包括一个或多个bfr。其中,bfir位于bier域的入口位置,作为bier报文转发的头节点负责对bier报文进行封装;bfr位于bier域的中间位置,作为bier报文的中间转发节点负责对bier报文进行转发;bfer位于bier域的出口位置,作为bier报文转发的尾节点负责对bier报文进行解封装。应理解,bier域中的bfir和bfer也可以称为bier域中的边缘bfr。79.为了便于理解,下面先结合图2-图4,对bier的相关技术进行详细描述。80.上述bier报文可以包括bier头和数据报文。其中,数据报文可以是互联网协议第6版(internetprotocolversion6,ipv6)组播报文,或者还可以是互联网协议第4版(internetprotocolversion4,ipv4)组播报文,或者还可以是以太网(ethernet)报文,本技术不做具体限定。bier头中通过位串(bitstring)标注了该数据报文的所有目的设备。应理解,在bier域中,可以对上述的边缘bfr配置一个在整个bier子域(sub-domain,sd)中全局唯一的比特位置(bitposition)标识。作为一个示例,为每一个边缘bfr配置一个值作为bfr标识(bfridentifier,bfrid),bier域中所有的bfrid组成一个bitstring。bier域中的bfr可以根据位索引转发表(bitindexforwardingtable,bift)以及所述bier头中携带的bitstring进行转发。81.本技术实施例对bier头的格式不做具体限定,只要bier头中包含bitstring字段即可。下面分别结合图2-图3,对两种可能的bier头格式进行详细描述。82.图2是一种可能的bier头格式的示意性框图。如图2所示,bier头中可以包含但不限于:一个长度为20bit的位索引转发表标识(bitindexforwardingtableidentifier,biftid)、比特串长度(bitstringlength,bsl)、64bit(8个字节)的其他字段,例如,bier头后面的原始组播报文的流量类型(trafficclass,tc)、栈(stack,s)、生存时间(timetolive,ttl)字段、熵(entropy)字段、版本号(version,ver)字段、半字节(nibble)字段、协议(protocol,proto)字段、操作维护管理(operationadministrationandmaintenance,oam)字段、保留(reserve,rsv)字段、差分服务代码点(differentialservicecodepoints,dscp)字段等。83.(1)biftid字段84.可以是bift-id,可以包括子域(sub-domain,sd)/比特串长度(bitstringlength,bsl)/集合标识(setidentifier,si)的一个组合,不同的biftid可以对应于不同的sd/bsl/si组合。应理解,不同的biftid可以映射出不同的sd/bsl/si组合。其中,一个bier域可以根据实际的业务场景的需求划分和配置为不同的子域sd,以支持内部网关协议(interiorgatewayprotocol,igp)多拓扑等特性。bsl为bier头中包括的bitstring的长度。si可以理解为网络中的多个边缘bfr或配置的bfrid组成的集合。85.在图2所示的bier头中不直接包含sd/bsl/si字段,sd/bsl/si为三个隐式字段,需要根据biftid字段映射出sd/bsl/si取值。86.(2)比特串(bitstring)字段87.bitstring中的每个bit用来标识边缘bfr,例如bitstring的低位(最右)的一个bit用来标识bfr-id=1的bfer。bitstring中从右往左第2个bit用来标识bfr-id=2的bfer。转发面转发所依据的转发表项则是根据报文中的bitstring决定该报文要往哪几个bfer发送。当bier域中的bfr在接收到了包含有bier头的报文时,根据bier头中携带的bitstring以及biftid转发bier报文。需要说明的是,bit位的值为1表示报文要往该bfr-id所代表的bfer设备发送,bit位的值为0则表示报文不需要往该bfr-id所代表的bfer设备发送。88.(3)协议(protocol,proto)字段89.用来标识bier头后面的载荷(payload)格式。例如,proto字段的值为4代表bier头后面的数据报文为ipv4报文。又如,proto字段的值为6代表bier头后面的数据报文为ipv6报文。90.图3是另一种可能的bier头格式的示意性框图。相比较图2所示的bier头格式而言,图3所示的bier头格式中不包含bift-id字段,而显示包含sd/bsl/si三个字段。也就是说,图3所示的bier头格式中直接包含sd/bsl/si三个字段,而无需由biftid字段映射出sd/bsl/si取值。91.下面以图4所示的bier域为例,对基于bier技术建立bier转发表以及进行bier报文转发的过程进行详细描述。92.如图4所示,ce1、ce1b、ce2、ce2b、ce3、ce3b属于用户边缘(customeredge,ce)设备,可以是ce侧的路由器或主机。作为示例,ce1、ce2、ce3可以属于一个vpn,对于数据报文而言,ce1可以作为数据报文的入口(ingress)节点,ce2、ce3可以作为该数据报文的出口(egress)节点。作为另一个示例,ce1b、ce2b、ce3b可以属于一个vpn,对于数据报文而言,ce1b可以作为数据报文的入口(ingress)节点,ce2b、ce3b可以作为该数据报文的出口(egress)节点。93.参见图4,设备a至设备f组成的网络属于承载网络,该承载网络例如可以是运营商网络,或者还可以是数据中心网络,或者还可以是园区网络等,本技术对此不做具体限定。设备a、设备d、设备e、设备f属于服务提供商边缘(provideredge,pe)设备,其中,对于承载网络或bier报文的转发而言,设备a可以是为bier域的入口(ingress)pe设备,负责对数据报文进行bier封装得到bier报文,对应于图1中的bfir。设备d、设备e、设备f为bier域的出口(egress)pe设备,负责从bier报文中解封装出原始组播报文,对应于图1中的bfer。设备b、设备c属于bier域的中间转发设备,对应于图1中bfr。94.本技术实施例中可以为每一个bier域内的边缘bfr分配一个唯一的bfr-id,例如,在图4中,为设备a、设备e、设备d、设备f配置的bfr-id分别为4、1、3、2。中间转发的bfr,例如,设备b、设备c不分配bfr-id。需要说明的是,本技术实施例中,“id”和“id”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。其中,本技术中的bfr-id可以指图4中的id。95.当设备a接收到数据报文后,可以对该数据报文封装一个bier头,形成bier报文。其中,bier头的bitstring字段标注了该bier报文的所有目的设备。例如,对于bfr-id为1的设备e对应的bitstring为0001,bfr-id为2的设备f对应的bitstring为0010,bfr-id为3的设备d对应的bitstring为0100,bfr-id为4的设备a对应的bitstring为1000。96.应理解,为每一个bier域内的边缘bfr分配的bfr-id值可以通过路由协议向bier域内的其他bfr进行泛洪,以便于bier域内的设备可以根据泛洪的bier信息建立bift,该bift用于指导bier域内的设备对bier报文的转发。97.以设备a为例,如果需要将bier报文发送至bfr-id分别为1、2、3的bfer,该bier报文需要先发送至设备a的邻居(设备b),bfr-id为4的边缘bfr为其自己,因此,设备a建立的bift为:邻居(neighbor,nbr)=b,转发位掩码(forwardingbitmask,fbm)=0111。该bift表示当有bier报文的bitstring从右往左第1个bit位、第2个bit位、第3个bit位任意一个为1时,该bier报文会往设备a的邻居(设备b)发送,nbr=b表示设备a的邻居为设备b。假设设备a获取的数据报文的接收者分别为bfr-id为3的目的设备为d、bfr-id为2的目的设备为f、bfr-id为1的目的设备为e。设备a封装的bier头的bitstring为0111,并根据上述设备a建立的bift将bier报文转发到邻居设备b。98.设备b收到该bier报文后,根据bitstring为0111以及图4中设备b建立的bift确定需要将该bier报文分别发送至设备c和设备d。例如,设备b将该bier报文往设备c发送时,可以将bier头的bitstring(0111)以及bift表项里nbr=c对应的fbm字段做and操作,本技术实施例中and的结果是0011,因此,设备b可以将bier头的bitstring修改为0011,并发送至设备c。又如,设备b将该bier报文往设备d发送时,可以将bier头的bitstring修改为0100,并发送至设备d。99.同样的,设备c可以根据bier报文的bitstring以及图4中设备c建立的bift确定需要将该bier报文分别发送至设备e和设备f。设备c发送给设备e的bier报文的bitstring为0001,发送给设备f的bier报文的bitstring为0010。100.对于设备e而言,其建立的bift中的nbr=*e*表示设备e的邻居设备为自己。设备e可以根据bift中的标识*确定设备e的邻居为自己,设备e作为bier域出口的bfer,可以从bier报文中解封装出数据报文,并根据内层的数据报文中的信息(例如,数据报文中的目的地址)将该数据报文转发至ce。设备f的转发过程和设备e的转发过程类似,具体的可以参考设备e的转发过程,此处不再赘述。101.对于bier域出口的bfer,例如设备e,在接收到bier报文后,需要确定该数据报文所属的虚拟专用网(virtualprivatenetwork,vpn)实例,根据所述vpn实例确定与所述vpn实例对应的虚拟路由转发(virtualrouteforwarding,vrf)表,并根据数据报文中的信息(例如,数据报文中的目的地址)以及vrf表,将所述数据报文转发至vrf表中的下一跳(例如,ce2或ce2b)。因此,设备a作为bier域的bfir,在封装bier报文时需要标识数据报文对应的vpn信息以及源节点(例如,设备a)的信息。102.一种相关的技术方案中,bier报文中还包括ip头 虚拟扩展局域网(virtualextensiblelocalareanetwork,vxlan)头/网络虚拟化通用路由封装(networkvirtualizationgenericroutingencapsulation,nvgre)头/通用的网络虚拟化封装(genericnetworkvirtualizationencapsulation,geneve)头。其中,ip头 vxlan/nvgre/geneve用于标识bier报文内层数据报文的源节点所属vpn的同时,还用于标识发送bier域中发送bier报文的入口节点信息。这种技术方案中,虽然可以同时标识bier报文内层数据报文的源节点所属vpn以及bier域的入口节点信息,但是这种封装下bier报文的头部封装开销较大。103.有鉴于此,本技术实施例提供了一种bier报文转发的方法,可以在bier报文中标识内层数据报文的源节点所属vpn以及bier域中发送bier报文的入口节点信息的同时,还可以减小bier报文头部的封装开销。104.图5是本技术实施例提供的一种bier报文转发的方法的示意性流程图。参见图5,该方法可以包括步骤510-530,下面分别对步骤510-530进行详细描述。105.步骤510:第一网络设备接收第二网络设备发送的bier报文,所述bier报文包括数据报文和全局虚拟专用网vpn标识。106.第一网络设备可以是bier域的出口节点,对应于图4中的设备a。第二网络设备可以是bier域的入口节点,对应于图4中的设备e。107.上述bier报文中包括的数据报文可以是组播报文,或者还可以是广播、单播、组播(broadcast,unicast,multicast,bum)报文,本技术对不做具体限定。108.bier报文中包括的全局虚拟专用网vpn标识可以用于在bier域中唯一标识所述数据报文的源设备所属的vpn。全局vpn标识可以包括第二网络设备的标识和第一标识,其中,所述第二网络设备的标识用于在所述bier域中标识所述第二网络设备,该第二网络设备的标识可以包括但不限于以下中的任一种:第二网络设备的互联网协议第4版ipv4地址,第二网络设备的互联网协议第6版ipv6地址,第二网络设备的ipv6地址的前缀和第二网络设备的介质访问控制(mediaaccesscontrol,mac)地址。所述第一标识用于在所述第二网络设备上标识所述数据报文的源设备所属的vpn,也就是说,第一标识是在第二网络设备本地配置的,用于在第二网络设备上标识数据报文的源设备所属的vpn。应理解,上述数据报文的源设备可以是与第二网络设备通信的ce设备。以第二网络设备为图4中的设备a为例,该数据报文的源设备可以是与设备a通信的ce1或ce1b。109.步骤520:第一网络设备根据所述全局vpn标识确定与所述全局vpn标识对应的第一vpn。110.第一网络设备在接收到bier报文后,可以根据bier报文中包括的全局vpn标识以及全局vpn标识和第一vpn之间的对应关系,确定与全局vpn标识对应的第一vpn。其中,第一vpn可以是第一网络设备本地配置的,用于在第一网络设备上标识数据报文的目的设备所属的vpn。应理解,上述数据报文的目的设备可以是与第一网络设备通信的ce设备。以第一网络设备为图4中的设备e为例,该数据报文的目的设备可以是与设备e通信的ce2或ce2b。111.可选地,在步骤520之前,第一网络设备还可以确定全局vpn标识和第一vpn之间的对应关系。作为示例,第一网络设备可以接收第二网络设备发送的控制报文,所述控制报文中包括所述全局vpn标识和第二路由目标属性。第一网络设备可以根据第二路由目标属性确定与第二路由目标属性对应的第一路由目标属性,并根据第一网络设备上本地配置的第一路由目标属性和所述第一vpn之间的对应关系,确定所述全局vpn标识和所述第一vpn之间的对应关系。112.应理解,在上述第一路由目标属性和第二路由目标属性中,路由目标(routetarget,rt)属性可以用于控制vpn站点之间路由的分发,rt属性也可以是rt团体扩展属性。具体的,作为示例,rt属性可以携带在第二网络设备发送给第一网络设备的bgp路由(也可以称为bgp消息)中。第一网络设备接收到bgp路由后,可以根据bgp路由中携带的rt属性将该bgp路由安装到vrf中。rt属性也可以理解为用于标识一组vrf,例如,允许多个vrf配置同一个rt属性,第二网络设备可以将接收到的bgp路由对应安装到多个vrf中。又如,一个vrf配置一个rt属性,不同的vrf配置不同的rt属性,第二网络设备接收到一个bgp路由时只会安装到一个vrf中。113.步骤530:第一网络设备向所述第一vpn对应的所述数据报文的目的设备发送所述数据报文。114.第一网络设备在确定与全局vpn标识对应的第一vpn后,可以对bier报文进行解封装,获得所述数据报文。并向第一vpn对应的所述数据报文的目的设备发送所述数据报文。以第一网络设备为图4中的设备e,与第一vpn对应的数据报文的目的设备为ce2为例,第一网络设备可以通过连接ce2的接口将所述数据报文发送给ce2。115.上述技术方案中,第二网络设备向第一网络设备发送的bier报文中可以包括全局vpn标识,该全局vpn标识包括第二网络设备的标识和在第二网络设备上标识数据报文的源设备所属的vpn。上述bier报文仅通过全局vpn标识就可以同时标识bier报文内层数据报文的源节点所属vpn以及bier域的入口节点信息,因此,可以在bier报文中标识内层数据报文的源节点所属vpn以及bier域中发送bier报文的入口节点信息的同时,还可以减小bier报文头部的封装开销。116.下面以图4所示的bier域为例,结合图6,对本技术实施例提供的一种出口节点建立全局vpn标识和本地vpn标识之间的对应关系的具体实现方式进行详细描述。应理解,图6的例子仅仅是为了帮助本领域技术人员理解本技术实施例,而非要将申请实施例限制于所示例的具体数值或具体场景。本领域技术人员根据下面所给出的图6的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本技术实施例的范围内。117.图6是本技术实施例提供的一种出口节点建立全局vpn标识和本地vpn标识之间的对应关系的方法的示意性流程图。参见图6,该方法可以包括步骤610-630,下面分别对步骤610-630进行详细描述。118.步骤610:bier域的入口设备(例如,设备a)为不同的vpn配置不同的全局vpn标识。119.设备a作为bier域的入口设备,可以为不同的vpn分配不同的全局vpn标识,一个全局vpn标识可以用于在bier域中唯一标识一个数据报文的源设备(例如,和设备a通信的ce)所属的vpn。也就是说,不同的vpn对应的全局vpn标识各不相同。作为示例,上述全局vpn标识可以为一个不小于6个字节(也就是说,不小于48位),且不大于20字节(也就是说,不大于160位)的值。120.上述全局vpn标识可以包括设备a的的标识和设备a本地配置的用于标识数据报文的源设备所属的vpn的一个id值。全局vpn标识的具体实现方式有多种,本技术实施例对此不做具体限定。例如,可以将包含一个ipv4地址和一个id值作为全局vpn标识,其中,ipv4地址是bier域的入口设备(例如,设备a)上的一个ipv4地址,id是bier域的入口设备(例如,设备a)上配置的与用于标识数据报文的源设备所属的vpn的值,不同的vpn对应不同的id。又如,还可以将包含一个ipv6地址(或者ipv6地址的一部分)和一个id的值作为全局vpn标识,其中,ipv6地址或者ipv6地址的一部分均是bier域的入口设备(例如,设备a)的、能在承载网络中唯一标识bier域的入口设备(例如,设备a)。又如,还可以将包含一个介质访问控制(mediaaccesscontrol,mac)地址和一个id的值作为全局vpn标识,其中,mac地址唯一标识bier域的入口设备(例如,设备a)。下面结合具体的例子,分别对上述几种不同方式的具体实现过程进行详细描述。121.一种可能的实现方式中,全局vpn标识包括bier域的入口设备(例如,设备a)上的一个ipv4地址和一个与vpn相关的id。例如,设备a上的一个ipv4地址为1.1.1.10,该地址1.1.1.10可以在承载网络中唯一标识设备a。设备a上的配置如下所示:122.ipvpnvpn1123.mvpn124.global-vpn-id1.1.1.10:1234125.ipvpnvpn2126.mvpn127.global-vpn-id1.1.1.10:1235128.其中,“global-vpn-id1.1.1.10:1234”表示vpn1对应的全局vpn标识为1.1.1.10:1234,该全局vpn标识由“1.1.1.10”和“:1234”组成。“1.1.1.10”表示设备a上的一个ipv4地址,“:1234”表示设备a上与vpn1对应的一个id。[0129]“global-vpn-id1.1.1.10:1235”表示vpn2对应的全局vpn标识为1.1.1.10:1235,该全局vpn标识由“1.1.1.10”和“:1235”组成,其中,“1.1.1.10”表示设备a上的一个ipv4地址,“:1235”表示设备a上与vpn2对应的一个id。[0130]上述配置中的全局vpn标识的长度可以有多种,本技术对此不做具体限定。作为一个示例,该全局vpn标识的长度可以是96位的长度。例如,在本例中配置全局vpn标识为《1.1.1.10:1234》的情况下,该全局vpn标识可以是由32位的ipv4地址《1.1.1.10》 32位填充《全0》 32位的id值《1234》组成。又如,在本例中配置全局vpn标识为《1.1.1.10:1234》的情况下,该全局vpn标识还可以是由32位ipv4地址《1.1.1.10》 32位的id值《1234》 32位填充《全0》组成。作为另一个示例,该全局vpn标识的长度还可以是80位的长度。例如,在本例中配置全局vpn标识为《1.1.1.10:1234》的情况下,该全局vpn标识可以是由32位ipv4地址《1.1.1.10》 16位的id值《1234》 16位填充《全0》组成。又如,在本例中配置全局vpn标识为《1.1.1.10:1234》的情况下,该全局vpn标识还可以是由32位ipv4地址《1.1.1.10》 16位填充《全0》 16位的id值《1234》组成。[0131]另一种可能的实现方式中,全局vpn标识包括bier域的入口设备(例如,设备a)上的一个ipv6地址(或者ipv6地址的一部分)和一个与vpn相关的id。例如,设备a上的一个ipv6地址前缀为2001:db8:a:a,即所有以2001:db8:a:a开头的ipv6地址都属于设备a。设备a上的配置如下所示:[0132]srv6locatorloc12001:db8:a:a::64static64[0133]ipvpnvpn1[0134]mvpn[0135]global-vpn-idloc1::1234[0136]ipvpnvpn2[0137]mvpn[0138]global-vpn-idloc1::1235[0139]其中,“srv6locatorloc12001:db8:a:a::64static64”表示在设备a上定义一个地址块loc1为2001:db8:a:a,掩码为64位,即设备a上的一个ipv6地址前缀为2001:db8:a:a。[0140]“global-vpn-idloc1::1234”表示vpn1对应的全局vpn标识由“loc1”和“::1234”组成,“loc1”表示在设备a上定义一个地址块2001:db8:a:a,“::1234”表示设备a上vpn1对应的一个id。即vpn1对应的全局vpn标识为2001:db8:a:a::1234。[0141]“global-vpn-idloc1::1235”表示vpn2对应的全局vpn标识由“loc1”和“::1235”组成,“loc1”表示在设备a上定义一个地址块2001:db8:a:a,“::1235”表示设备a上vpn2对应的一个id。即vpn2对应的全局vpn标识为2001:db8:a:a::1235。[0142]上述配置中的全局vpn标识的长度可以有多种,本技术对此不做具体限定。作为一个示例,该全局vpn标识的长度可以是128位的长度。例如,在本例中配置全局vpn标识为《2001:db8:a:a::1234》的情况下,该全局vpn标识可以是由64位的ipv6地址前缀《2001:db8:a:a》 64位的id值《::1234》组成。又如,在本例中配置全局vpn标识为《2001:db8:a:a::1234》的情况下,该全局vpn标识还可以是由64位的ipv6地址前缀《2001:db8:a:a》 32位的id值《::1234》 32位填充《全0》组成。作为另一个示例,该全局vpn标识的长度还可以是96位的长度。例如,在本例中配置全局vpn标识为《2001:db8:a:a::1234》的情况下,该全局vpn标识可以是由64位的ipv6地址前缀《2001:db8:a:a》 32位的id值《::1234》组成。[0143]另一种可能的实现方式中,全局vpn标识包括bier域的入口设备(例如,设备a)上的一个mac地址和一个与vpn相关的id。例如,设备a上的一个mac地址为98-76-54-33-22-11,该mac地址98-76-54-33-22-11可以在承载网络中唯一标识设备a。设备a上的配置如下所示:[0144]ipvpnvpn1[0145]mvpn[0146]global-vpn-id98-76-54-33-22-11:1234[0147]ipvpnvpn2[0148]mvpn[0149]global-vpn-id98-76-54-33-22-11:1235[0150]其中,“global-vpn-id98-76-54-33-22-11:1234”表示vpn1对应的全局vpn标识为98-76-54-33-22-11:1234,该全局vpn标识由“98-76-54-33-22-11”和“:1234”组成。“98-76-54-33-22-11”表示设备a上的一个mac地址,“:1234”表示设备a上与vpn1对应的一个id。[0151]“global-vpn-id98-76-54-33-22-11:1235”表示vpn2对应的全局vpn标识为98-76-54-33-22-11:1235,该全局vpn标识由“98-76-54-33-22-11”和“:1235”组成。“98-76-54-33-22-11”表示设备a上的一个mac地址,“:1235”表示设备a上与vpn2对应的一个id。[0152]上述配置中的全局vpn标识的长度可以有多种,本技术对此不做具体限定。作为一个示例,该全局vpn标识的长度可以是64位的长度。例如,在本例中配置全局vpn标识为《98-76-54-33-22-11:1235》的情况下,该全局vpn标识可以是由48位的mac地址《98-76-54-33-22-11》 16位的id值《1234》组成。[0153]步骤620:bier域的入口设备(例如,设备a)向bier域的出口设备(例如,设备e、设备f)发送全局vpn标识和与该全局vpn标识对应的路由目标属性。[0154]设备a可以通过控制面消息将全局vpn标识和与该全局vpn标识对应的路由目标属性发布给bier域的出口设备(例如,设备e、设备f)。本技术实施例对上述控制面消息的具体类型不做限定,一个示例,该控制面消息可以是网关边界协议(bordergatewayprotocol,bgp)消息,例如,组播虚拟专用网(multicastvpn,mvpn)地址族的bgp消息(或简称bgp-mvpn消息),又如,以太vpn实例(ethernetvpninstance,evpn)地址族的bgp消息(或简称bgp-evpn消息)。作为示例,在使用bgp-mvpn消息时,这个从bier域的入口设备(例如,设备a)发布给bier域的出口设备(例如,设备e、设备f)的消息可以是组播虚拟专用网包含提供者组播服务接口自动发现路由(multicastvpninclusiveprovidermulticastserviceinterfaceauto-discoveryroute,mvpni-pmsia-d)消息或者组播虚拟专用网选择性提供者组播服务接口自动发现路由(multicastvpnselectiveprovidermulticastserviceinterfaceauto-discoveryroute,mvpns-pmsia-d)消息。[0155]以设备a通过发布i-pmsia-d消息携带全局vpn标识和与该全局vpn标识对应的路由目标属性为例,i-pmsia-d消息可以包括rt扩展团体属性以及全局vpn标识。其中,rt扩展团体属性即上文中的路由目标属性,全局vpn标识即上文中设备a配置的global-vpn-id。s-pmsia-d消息和i-pmsia-d消息类似,也会携带设备a配置的全局vpn标识和与该全局vpn标识对应的路由目标属性,具体的请参见对i-pmsia-d消息的描述,此处不再赘述。[0156]在设备a上还会配置vpn和路由目标属性(也可以称为vpn-target或target)之间的对应关系。作为示例,设备a上的配置如下所示:[0157]ipvpnvpn1[0158]vpn-target1:1[0159]ipvpnvpn2[0160]vpn-target2:2[0161]其中,“ipvpnvpn1vpn-target1:1”表示vpn1对应的vpn-target为《1:1》。“ipvpnvpn2vpn-target2:2”表示vpn2对应的vpn-target为《2:2》。[0162]步骤630:bier域的出口设备(例如,设备e、设备f)建立全局vpn标识和本地vpn标识之间的对应关系。[0163]bier域的出口设备(例如,设备e、设备f)本地可以配置vpn-target和本地vpn标识之间的对应关系。作为示例,设备e和设备f上的配置如下所示:[0164]设备e:[0165]ipvpne_vpn1[0166]vpn-target1:1[0167]ipvpne_vpn2[0168]vpn-target2:2[0169]其中,“ipvpne_vpn1vpn-target1:1”表示本地vpn标识《e_vpn1》对应的vpn-target为《1:1》。“ipvpne_vpn2vpn-target2:2”表示本地vpn标识《e_vpn2》对应的vpn-target为《2:2》。[0170]设备f:[0171]ipvpnf_vpn1[0172]vpn-target1:1[0173]ipvpnf_vpn2[0174]vpn-target2:2[0175]其中,“ipvpnf_vpn1vpn-target1:1”表示本地vpn标识《f_vpn1》对应的vpn-target为《1:1》。“ipvpnf_vpn2vpn-target2:2”表示本地vpn标识《f_vpn2》对应的vpn-target为《2:2》。[0176]bier域的出口设备(例如,设备e、设备f)接收到bier域的入口设备(例如,设备a)发送的全局vpn标识和vpn-target后,可以根据vpn-target、本地配置的vpn-target和本地vpn标识之间的对应关系确定本地vpn标识,再进一步建立bier域的出口设备的本地vpn标识和全局vpn标识之间的对应关系。[0177]下面以设备a发送给bier域的出口设备(例如,设备e、设备f)的消息中包括(global-vpn-id《1.1.1.10:1234》)和(vpn-target《1:1》)为例,对设备e和设备f上建立对应关系的具体实现方式进行详细描述。[0178]以设备e为例,设备e收到设备a发送的消息后,可以根据消息中的vpn-target《1:1》及设备e本地的配置确定其本地vpn标识《e_vpn1》,进而确定(global-vpn-id《1.1.1.10:1234》,本地vpn标识《e_vpn1》)之间的对应关系1。[0179]以设备f为例,设备f收到设备a发送的消息后,可以根据消息中的vpn-target《1:1》及设备f本地的配置确定其本地vpn标识《f_vpn1》,进而确定(global-vpn-id《1.1.1.10:1234》,本地vpn标识《f_vpn1》)之间的对应关系2。[0180]下面以设备a发送给bier域的出口设备(例如,设备e、设备f)的消息中包括(global-vpn-id《1.1.1.10:1235》)和(vpn-target《2:2》)为例,对设备e和设备f上建立对应关系的具体实现方式进行详细描述。[0181]以设备e为例,设备e收到设备a发送的消息后,可以根据消息中的vpn-target《2:2》及设备e本地的配置确定其本地vpn标识《e_vpn2》,进而确定(global-vpn-id《1.1.1.10:1235》,本地vpn标识《e_vpn2》)之间的对应关系3。[0182]以设备f为例,设备f收到设备a发送的消息后,可以根据消息中的vpn-target《2:2》及设备f本地的配置确定其本地vpn标识《f_vpn2》,进而确定(global-vpn-id《1.1.1.10:1235》,本地vpn标识《f_vpn2》)之间的对应关系4。[0183]下面以图4所示的bier域为例,结合图7,对本技术实施例提供的一种bier报文转发的方法的具体实现方式进行详细描述。应理解,图7的例子仅仅是为了帮助本领域技术人员理解本技术实施例,而非要将申请实施例限制于所示例的具体数值或具体场景。本领域技术人员根据下面所给出的图7的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本技术实施例的范围内。[0184]图7是本技术实施例提供的另一种bier报文转发的方法的示意性流程图。参见图7,该方法可以包括步骤710-730,下面分别对步骤710-730进行详细描述。应理解,图7中是以设备a接收到ce1发送的数据报文为例进行举例说明的。[0185]步骤710:设备a对从ce1接收到的数据报文进行bier封装,得到bier报文。[0186]设备a接收ce1发送的数据报文,确定该数据报文对应的vpn部分,并对数据报文封装vpn部分和bier头,得到bier报文。一种实现方式中,vpn部分为全局vpn标识,该bier报文的格式可以是:bier头 全局vpn标识 数据报文。一种实现方式中,vpn部分为全局vpn标识 proto字段 保留字段,该bier报文的格式可以是:bier头 全局vpn标识 proto字段 保留字段 数据报文。[0187]具体的,由于ce1属于vpn1,设备a可以确定从ce1接收到的数据报文属于vpn1,设备a再进一步根据步骤610中的配置确定vpn1对应的全局vpn标识。例如,vpn1对应的全局vpn标识可以是《1.1.1.10:1234》,其长度可以是96位,或者还可以是80位,具体的格式请参见步骤610中的描述,此处不再赘述。又如,vpn1对应的全局vpn标识还可以是《2001:db8:a:a::1234》,其长度可以是128位,或者还可以是96位,具体的格式请参见步骤610中的描述,此处不再赘述。又如,vpn1对应的全局vpn标识还可以是《98-76-54-33-22-11:1234》。[0188]步骤720:设备a还可以将bier报文经过承载网络传输至bier域的出口设备(例如,设备e、设备f)。[0189]一种可能的路径是,设备a发送给设备b,设备b发送给设备c,设备c发送给设备e和设备f。另一种可能的路径是,设备a发送给设备b,设备b经过设备d发送给设备c,设备c发送给设备e和设备f。具体的转发bier报文的过程请参考图4中的描述,此处不再赘述。[0190]步骤730:bier域的出口设备(例如,设备e、设备f)对bier报文进行处理。[0191]以设备e为例。设备e收到bier报文后,可以根据bier报文的bier头确定是否需要对bier报文进行解封装。例如,设备e的bfr-id为1,bier头中bitstring字段从右往左第1个bit位的值为1,则设备e确定自己是该bier报文的尾节点,设备e可以对该bier报文进行如下处理。[0192]1、设备e确定bier报文中包括全局vpn标识。[0193]作为示例,bier报文的bier头中的proto字段可以用于指示bier头后面为全局vpn标识,设备e也可以根据bier头中的proto字段确定bier报文中包括全局vpn标识。[0194]2、设备e根据全局vpn标识确定设备e上的本地vpn标识。[0195]设备e根可以读取bier报文中包括的全局vpn标识,并根据全局vpn标识和设备e上的本地vpn标识之间的对应关系确定设备e上的本地vpn标识。以bier报文中包括的全局vpn标识为《1.1.1.10:1234》,设备e可以根据(global-vpn-id《1.1.1.10:1234》,本地vpn标识《e_vpn1》)之间的对应关系1确定本地vpn标识为《e_vpn1》。也就是说,设备e可以确定bier报文内层数据报文属于vpn1。[0196]3、设备e对bier报文进行解封装,得到内层的数据报文,并将该数据报文发送给vpn1对应的接口。[0197]设备e可以解封装去掉bier报文外层的bier头和全局vpn标识,得到数据报文。由于数据报文属于vpn1,设备e可以通过连接ce2的接口将所述数据报文发送给ce2。[0198]设备f对bier报文进行处理与设备e类似,具体的请参考设备e对bier报文的处理过程,此处不再赘述。[0199]上文结合图1至图7,详细描述了本技术实施例提供的一种bier报文转发的方法,下面将结合图8至图13,详细描述本技术的装置的实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。[0200]图8是本技术实施例提供的一种第一网络设备800的示意性结构图。图8所示的该第一网络设备800可以执行上述实施例的方法中第一网络设备执行的相应步骤。如图8所示,所述第一网络设备800包括:接收模块810、处理模块820,发送模块830,[0201]接收模块810,用于接收第二网络设备发送的bier报文,所述bier报文包括数据报文全局虚拟专用网vpn标识,所述全局vpn标识用于在bier域中唯一标识所述数据报文的源设备所属的vpn,所述全局vpn标识包括所述第二网络设备的标识和第一标识,所述第二网络设备的标识用于在所述bier域中标识所述第二网络设备,所述第一标识用于在所述第二网络设备上标识所述数据报文的源设备所属的vpn,所述第二网络设备为所述bier域的入口节点,所述第一网络设备为所述bier域的出口节点;[0202]处理模块820,用于根据所述全局vpn标识确定与所述全局vpn标识对应的第一vpn,所述第一vpn是所述第一网络设备确定的、所述数据报文的目的设备所属的vpn;[0203]发送模块830,用于向所述第一vpn对应的所述数据报文的目的设备发送所述数据报文。[0204]可选地,所述第二网络设备的标识包括以下中的任一种:所述第二网络设备的互联网协议第4版ipv4地址,所述第二网络设备的互联网协议第6版ipv6地址,所述第二网络设备的ipv6地址的前缀和所述第二网络设备的介质访问控制mac地址。[0205]可选地,所述接收模块810,还用于接收控制报文,所述控制报文中包括所述全局vpn标识和第二target;所述处理模块820,还用于根据所述控制报文确定第一target,所述第一target和所述第二target对应;根据所述第一网络设备上的所述第一target和所述第一vpn之间的对应关系,确定所述全局vpn标识和所述第一vpn之间的对应关系。[0206]可选地,所述处理模块820,还用于根据所述bier报文的bier头中的协议proto字段确定所述bier报文中包括所述全局vpn标识。[0207]可选地,所述全局vpn标识位于所述bier头之后。[0208]可选地,所述处理模块820,还用于对所述bier报文进行解封装,获得所述数据报文。[0209]图9是本技术实施例提供的一种第二网络设备900的示意性结构图。图9所示的该第二网络设备900可以执行上述实施例的方法中第二网络设备执行的相应步骤。如图9所示,所述第二网络设备900包括:处理模块910、发送模块920,接收模块930,[0210]处理模块910,用于确定全局vpn标识和第二target之间的对应关系,所述全局vpn标识用于在bier域中唯一标识数据报文的源设备所属的vpn,所述全局vpn标识包括所述第二网络设备的标识和第一标识,所述第二网络设备的标识用于在所述bier域中标识所述第二网络设备,所述第一标识用于在所述第二网络设备上标识所述数据报文的源设备所属的vpn,所述第二网络设备为所述bier域的入口节点;[0211]发送模块920,用于向第一网络设备发送控制报文,所述控制报文中包括所述全局vpn标识和所述第二target,所述第一网络设备为所述bier域的出口节点;[0212]接收模块930,用于获取所述数据报文,所述数据报文的源设备所属的vpn对应所述第二target;[0213]所述处理模块910,还用于根据所述对应关系获得bier报文,所述bier报文包括所述数据报文和所述全局vpn标识;[0214]所述发送模块920,还用于向所述第一网络设备发送所述bier报文。[0215]可选地,第二网络设备的标识包括以下中的任一种:所述第二网络设备的互联网协议第4版ipv4地址,所述第二网络设备的互联网协议第6版ipv6地址,所述第二网络设备的ipv6地址的前缀,所述第二网络设备的介质访问控制mac地址。[0216]可选地,所述bier报文的bier头中的协议proto字段用于指示所述bier报文中包括所述全局vpn标识。[0217]可选地,所述全局vpn标识位于所述bier报文的bier头之后。[0218]图10是本技术实施例的第一网络设备2000的硬件结构示意图。图10所示第一网络设备2000可以执行上述实施例的方法中第一网络设备执行的相应步骤。[0219]如图10所示,所述第一网络设备2000包括处理器2001、存储器2002、接口2003和总线2004。其中接口2003可以通过无线或有线的方式实现,具体来讲可以是网卡。上述处理器2001、存储器2002和接口2003通过总线2004连接。[0220]所述接口2003具体可以包括发送器和接收器,用于第一网络设备实现上述收发。例如,所述接口2003用于接收第二网络设备发送的bier报文,或者用于向所述第一vpn对应的所述数据报文的目的设备发送所述数据报文。[0221]所述处理器2001用于执行上述实施例中由第一网络设备进行的处理。例如,用于根据所述全局vpn标识确定与所述全局vpn标识对应的第一vpn;和/或用于本文所描述的技术的其他过程。存储器2002包括操作系统20021和应用程序20022,用于存储程序、代码或指令,当处理器或硬件设备执行这些程序、代码或指令时可以完成方法实施例中涉及第一网络设备的处理过程。可选的,所述存储器2002可以包括只读存储器(read-onlymemory,rom)和随机存取存储器(randomaccessmemory,ram)。其中,所述rom包括基本输入/输出系统(basicinput/outputsystem,bios)或嵌入式系统;所述ram包括应用程序和操作系统。当需要运行第一网络设备2000时,通过固化在rom中的bios或者嵌入式系统中的bootloader引导系统进行启动,引导第一网络设备2000进入正常运行状态。在第一网络设备2000进入正常运行状态后,运行在ram中的应用程序和操作系统,从而,完成方法实施例中涉及第一网络设备2000的处理过程。[0222]可以理解的是,图10仅仅示出了第一网络设备2000的简化设计。在实际应用中,第一网络设备可以包含任意数量的接口,处理器或者存储器。[0223]图11为本技术实施例的另一种第一网络设备2100的硬件结构示意图。图11所示的第一网络设备2100可以执行上述实施例的方法中第一网络设备执行的相应步骤。[0224]如图11所述,第一网络设备2100包括:主控板2110、接口板2130、交换网板2120和接口板2140。主控板2110、接口板2130和2140,以及交换网板2120之间通过系统总线与系统背板相连实现互通。其中,主控板2110用于完成系统管理、设备维护、协议处理等功能。交换网板2120用于完成各接口板(接口板也称为线卡或业务板)之间的数据交换。接口板2130和2140用于提供各种业务接口(例如,pos接口、ge接口、atm接口等),并实现数据包的转发。[0225]接口板2130可以包括中央处理器2131、转发表项存储器2134、物理接口卡2133和网络处理器2132。其中,中央处理器2131用于对接口板进行控制管理并与主控板上的中央处理器进行通信。转发表项存储器2134用于保存表项,例如,上文中的bift。物理接口卡2133用于完成流量的接收和发送。[0226]应理解,本技术实施例中接口板2140上的操作与所述接口板2130的操作一致,为了简洁,不再赘述。[0227]应理解,本实施例的第一网络设备2100可对应于上述方法实施例所具有的功能和/或所实施的各种步骤,在此不再赘述。[0228]此外,需要说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,第一网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,第一网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,第一网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的第一网络设备的数据接入和处理能力要大于集中式架构的设备。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。[0229]图12是本技术实施例的第二网络设备2200的硬件结构示意图。图12所示第二网络设备2200可以执行上述实施例的方法中第二网络设备执行的相应步骤。[0230]如图12所示,所述第二网络设备2200包括处理器2201、存储器2202、接口2203和总线2204。其中接口2203可以通过无线或有线的方式实现,具体来讲可以是网卡。上述处理器2201、存储器2202和接口2203通过总线2204连接。[0231]所述接口2203具体可以包括发送器和接收器,用于获取所述数据报文;向第一网络设备发送控制报文;向所述第一网络设备发送所述bier报文。所述处理器2201用于执行上述实施例中由第二网络设备进行的处理。例如,所述处理器2201用于确定全局vpn标识和第二target之间的对应关系;根据所述对应关系获得bier报文,所述bier报文包括所述数据报文和所述全局vpn标识;和/或用于本文所描述的技术的其他过程。存储器2202包括操作系统22021和应用程序22022,用于存储程序、代码或指令,当处理器或硬件设备执行这些程序、代码或指令时可以完成方法实施例中涉及第二网络设备的处理过程。可选的,所述存储器2202可以包括只读存储器(read-onlymemory,rom)和随机存取存储器(randomaccessmemory,ram)。其中,所述rom包括基本输入/输出系统(basicinput/outputsystem,bios)或嵌入式系统;所述ram包括应用程序和操作系统。当需要运行第二网络设备2200时,通过固化在rom中的bios或者嵌入式系统中的bootloader引导系统进行启动,引导第二网络设备2200进入正常运行状态。在第二网络设备2200进入正常运行状态后,运行在ram中的应用程序和操作系统,从而,完成方法实施例中涉及第二网络设备2200的处理过程。[0232]可以理解的是,图12仅仅示出了第二网络设备2200的简化设计。在实际应用中,第二网络设备可以包含任意数量的接口,处理器或者存储器。[0233]图13为本技术实施例的另一种第二网络设备2300的硬件结构示意图。图13所示的第二网络设备230可以执行上述实施例的方法中第二网络设备执行的相应步骤。[0234]如图13所述,第二网络设备230包括:主控板2310、接口板2330、交换网板2320和接口板2340。主控板2310、接口板2330和2340,以及交换网板2320之间通过系统总线与系统背板相连实现互通。其中,主控板2310用于完成系统管理、设备维护、协议处理等功能。交换网板2320用于完成各接口板(接口板也称为线卡或业务板)之间的数据交换。接口板2330和2340用于提供各种业务接口(例如,pos接口、ge接口、atm接口等),并实现数据包的转发。[0235]接口板2330可以包括中央处理器2331、转发表项存储器2334、物理接口卡2333和网络处理器2332。其中,中央处理器2331用于对接口板进行控制管理并与主控板上的中央处理器进行通信。转发表项存储器2334用于保存表项,例如,上文中的bift。物理接口卡2133用于完成流量的接收和发送。[0236]应理解,本技术实施例中接口板2340上的操作与所述接口板2330的操作一致,为了简洁,不再赘述。应理解,本实施例的第二网络设备2300可对应于上述方法实施例所具有的功能和/或所实施的各种步骤,在此不再赘述。[0237]此外,需要说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,第二网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,第二网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,第二网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的第二网络设备的数据接入和处理能力要大于集中式架构的设备。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。[0238]本技术实施例还提供了一种计算机可读介质,该计算机可读介质存储有程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述第一网络设备执行的方法。这些计算机可读存储包括但不限于如下的一个或者多个:只读存储器(read-onlymemory,rom)、可编程rom(programmablerom,prom)、可擦除的prom(erasableprom,eprom)、flash存储器、电eprom(electricallyeprom,eeprom)以及硬盘驱动器(harddrive)。[0239]本技术实施例还提供了一种计算机可读介质,该计算机可读介质存储有程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述第二网络设备执行的方法。这些计算机可读存储包括但不限于如下的一个或者多个:只读存储器(read-onlymemory,rom)、可编程rom(programmablerom,prom)、可擦除的prom(erasableprom,eprom)、flash存储器、电eprom(electricallyeprom,eeprom)以及硬盘驱动器(harddrive)。[0240]本技术实施例还提供了一种芯片系统,应用于第一网络设备中,该芯片系统包括:至少一个处理器、至少一个存储器和接口电路,所述接口电路负责所述芯片系统与外界的信息交互,所述至少一个存储器、所述接口电路和所述至少一个处理器通过线路互联,所述至少一个存储器中存储有指令;所述指令被所述至少一个处理器执行,以进行上述各个方面的所述的方法中所述第一网络设备的操作。[0241]在具体实现过程中,该芯片可以以中央处理器(centralprocessingunit,cpu)、微控制器(microcontrollerunit,mcu)、微处理器(microprocessingunit,mpu)、数字信号处理器(digitalsignalprocessing,dsp)、片上系统(systemonchip,soc)、专用集成电路(application-specificintegratedcircuit,asic)、现场可编程门阵列(fieldprogrammablegatearray,fpga)或可编辑逻辑器件(programmablelogicdevice,pld)的形式实现。[0242]本技术实施例还提供了另一种芯片系统,应用于第二网络设备中,该芯片系统包括:至少一个处理器、至少一个存储器和接口电路,所述接口电路负责所述芯片系统与外界的信息交互,所述至少一个存储器、所述接口电路和所述至少一个处理器通过线路互联,所述至少一个存储器中存储有指令;所述指令被所述至少一个处理器执行,以进行上述各个方面的所述的方法中所述第二网络设备的操作。[0243]在具体实现过程中,该芯片可以以中央处理器(centralprocessingunit,cpu)、微控制器(microcontrollerunit,mcu)、微处理器(microprocessingunit,mpu)、数字信号处理器(digitalsignalprocessing,dsp)、片上系统(systemonchip,soc)、专用集成电路(application-specificintegratedcircuit,asic)、现场可编程门阵列(fieldprogrammablegatearray,fpga)或可编辑逻辑器件(programmablelogicdevice,pld)的形式实现。[0244]本技术实施例还提供了一种计算机程序产品,应用于第一网络设备中,所述计算机程序产品包括一系列指令,当所述指令被运行时,以进行上述各个方面的所述的方法中所述第一网络设备的操作。[0245]本技术实施例还提供了一种计算机程序产品,应用于第二网络设备中,所述计算机程序产品包括一系列指令,当所述指令被运行时,以进行上述各个方面的所述的方法中所述第二网络设备的操作。[0246]应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。[0247]本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。[0248]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。[0249]在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。[0250]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。[0251]另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。[0252]所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。[0253]以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献