数据报文的处理方法及装置、存储介质、电子装置与流程

    专利2022-07-07  161

    本发明实施例涉及通信领域,具体而言,涉及一种数据报文的处理方法及装置、存储介质、电子装置。
    背景技术
    ::互联网协议第6版(internetprotocolversion6,简称为ipv6)是互联网工程任务组(internetengineeringtaskforce,简称为ietf)设计的用于替代ipv4的下一代ip协议。ipv6的使用,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍。位索引显式复制(bitindexedexplicitreplication,简称为bier)(rfc8279)是一种新型组播数据转发技术,该将网络边缘的节点都只用一个bit位来表示,组播流量在中间网络传输,额外封装一个特定的bier报文头,这个报文头以bit位串的形式标注了该组播流的所有目的节点,中间网络转发节点根据bit位进行路由,保障流量能够发送到所有目的节点。中间节点转发设备事先通过路由协议,如三层网络中的开放式最短路径优先(ospfopenshortestpathfirst,简称为ospf)协议,中间系统到中间系统(intermediatesystem-to-intermediatesystem,简称为isis)协议,形成用于指导bier转发的位索引转发表(bitindexforwardingtable,简称为bift)表,在收到封装bier报文头的流量时,依据bift来完成报文到目的节点的转发。bier这种数据面转发技术因为没有组播树的建立问题,消除了组播树建立的时延,并且在网络出现链路或者节点问题时,收敛速度同ospf或isis协议,比原来的组播树重建降低了巨大的时延。bier技术在传输的时候,仅需要将某条组播流量封装在bier报文内作为载荷(payload)传输。对于bier域的入口设备bfir(bit-forwardingingressrouter)来说,需要知道哪些bier域的出口设备bfers(bit-forwardingegressrouters)需要这条组播流量,这样在bfer收到这条组播流量后,才能转发给bier域外需要收到这条流量的组播接收者。bier技术可以直接封装在以太报文中进行传输(协议号0xab37),在某些节点不能支持对以太bier报文进行直接辨识时,如果仍然采用以太报文传输,不能正确辨识该报文的节点将成为黑洞丢弃报文。针对相关技术中,如何将bier报文在ipv6报文中进行优化的问题,尚未提出有效的解决方案。技术实现要素:本发明实施例提供了一种数据报文的处理方法及装置、存储介质、电子装置,以至少解决相关技术中尚未提供如何将bier报文在ipv6报文中进行优化的问题的技术方案。根据本发明的一个实施例,提供了一种数据报文的处理方法,包括:在位转发入口路由器bfir对数据报文进行位索引显式复制bier报文封装,以及外层ipv6报文封装的情况下,将bier报文头中的entropy字段,拷贝到外层ipv6报文的flowlabel字段的位置,并将为虚拟专用网络vpn数据所分配的标签值,置于所述bier报文头中的原entropy字段的位置;在bier报文头之后设置数据报文,将bier报文头中的proto字段设置为表示所述数据报文的数据报文类型所对应的值,其中,所述数据报文类型至少包括以下之一:ipv4报文,ipv6报文,以太网报文,多协议标签交换(multi-protocollabelswitching,简称为mpls)报文,运行、管理和维护(operationadministrationandmaintenance,简称为oam)报文。在一个示例性实施例中,还包括:将bier报文头中的entropy字段,拷贝到外层ipv6报文的flowlabel字段的位置之后,所述方法还包括:在需要对所述数据报文进行处理的设备在对所述数据报文进行转发处理时,仅根据所述ipv6报文头中的flowlabel字段进行负载均衡处理。在一个示例性实施例中,所述方法还包括:在位转发出口路由器bfer收到数据报文时,将外层ipv6报文头从所述数据报文中剥离,根据bier报文头中的原entropy字段中的标签值,查找到与所述标签值对应的vpn;根据proto字段所指示的数据类型,对所述数据报文进行转发处理。在一个示例性实施例中,所述方法还包括:对于非bfir和非bfer的纯中间节点,如果所述中间节点仅根据所述ipv6报文头中的flowlabel进行负载均衡处理,则执行在bfir和bfer之间进行能力协商与通告的处理流程。在一个示例性实施例中,所述方法还包括:所述能力协商与通告的处理流程中的能力协商信息的定义通过tlv的形式体现。在一个示例性实施例中,所述能力协商与通告的处理流程中的能力协商信息的定义通过tlv的形式体现,至少包括以下之一:通过所述tlv中的type为1,length为1个字节,且value值定义为1来指示已将bier报文头中的entropy字段,拷贝到外层ipv6报文的flowlabel字段之后的位置,以及已将为虚拟专用网络vpn数据所分配的标签值,置于所述bier报文头中的原entropy字段的位置;通过所述tlv中的type为1,length为0,且无value值来指示已将bier报文头中的entropy字段,拷贝到外层ipv6报文的flowlabel字段之后的位置,以及已将为虚拟专用网络vpn数据所分配的标签值,置于所述bier报文头中的原entropy字段的位置。在一个示例性实施例中,所述方法还包括:通过所述tlv中的type为2,length为1个字节,且value值定义为1来指示已将bier报文头中的dscp字段,拷贝到外层ipv6报文的traffcclass字段或其他字段的位置;通过所述tlv中的type为2,length为0,且无value值来指示已将bier报文头中的dscp字段,拷贝到外层ipv6报文的trafficclass字段或其他字段的位置。在一个示例性实施例中,所述方法还包括:将所述tlv的形式携带在bfir和bfer之间的至少以下之一协议中:边界网关协议bgp,组播虚拟专用网络mvpn协议,组播侦听发现协议。在一个示例性实施例中,所述方法还包括:在将bier报文头中的entropy字段,拷贝到外层ipv6报文的flowlabel字段的位置,并将为虚拟专用网络vpn数据所分配的标签值,置于所述bier报文头中的原entropy字段的位置之后,所述方法还包括:bier报文头的保留为rsv设置为1。在一个示例性实施例中,所述方法还包括:在网络中的任一节点的转义能力出现变化的情况下,通过协议通告的方式通知所述网络中除所述任一节点外的其他节点,其中,所述转义能力用于指示所述任一节点是否具备将bier报文头中的entropy字段,拷贝到外层ipv6报文的flowlabel字段的位置,并将为虚拟专用网络vpn数据所分配的标签值,置于所述bier报文头中的原entropy字段的位置的能力。根据本发明的另一个实施例,还提供了一种数据报文的处理装置,包括:处理模块,用于在位转发入口路由器bfir对数据报文进行位索引显式复制bier报文封装,以及外层ipv6报文封装的情况下,将bier报文头中的entropy字段,拷贝到外层ipv6报文的flowlabel字段的位置,并将为虚拟专用网络vpn数据所分配的标签值,置于所述bier报文头中的原entropy字段的位置;设置模块,用于在bier报文头之后设置数据报文,将bier报文头中的proto字段设置为表示所述数据报文的数据报文类型所对应的值,其中,所述数据报文类型至少包括以下之一:ipv4报文,ipv6报文,以太网报文,mpls报文,oam报文。根据本发明的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。通过本发明,可以对bier报文和ipv6报文进行如下处理:将bier报文头中的entropy字段,拷贝到外层ipv6报文的flowlabel字段的位置,并将为虚拟专用网络vpn数据所分配的标签值,置于所述bier报文头中的原entropy字段的位置;在bier报文头之后设置数据报文,将bier报文头中的proto字段设置为表示所述数据报文的数据报文类型所对应的值,进而实现了将bier报文封装在ipv6报文中,同样对dscp字段也可以同样进行转义处理。采用上述技术方案,解决了相关技术中,还未能有效实现将bier报文在ipv6报文中进行优化等问题。附图说明图1是本发明实施例的一种数据报文的处理方法的计算机终端的硬件结构框图;图2是根据本发明实施例的数据报文的处理方法的流程图;图3是根据本发明实施例的bier报文封装在ipv6报文中的示意图(一);图4是根据本发明实施例的tlv的示意图;图5是根据本发明实施例的应用在bier域的bier报文传输机制的示意图;图6是根据本发明实施例的bier报文封装在ipv6报文中的示意图(二);图7是根据本发明实施例的数据报文的处理装置的结构示意图。具体实施方式下文中将参考附图并结合实施例来详细说明本发明的实施例。需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。本申请实施例中所提供的方法实施例可以在计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的一种数据报文的处理方法的计算机终端的硬件结构框图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,其中,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的数据报文的处理方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。相关技术中,组播技术在互联网上正得到越来越多的应用,比如多方会议,远程教育,远程医疗,网络直播等。随着ipv6的部署,这些组播数据报文,穿越ipv6网络已成为必须,对于一些不能直接支持bier以太封装报文处理的节点,将bier封装在ipv6头中已成为一个必须具备的功能。本发明实施例以下提出一种新的报文封装方式,将bier封装与ipv6封装结合起来,并将其中重复的部分字段进行转义处理,结合控制面的能力通告,在完全不影响功能的情况下,优化报文的封装与处理流程。在本实施例中提供了一种运行于上述计算机终端的数据报文的处理方法,图2是根据本发明实施例的数据报文的处理方法的流程图,如图2所示,该流程包括如下步骤:步骤s102,在位转发入口路由器bfir对数据报文进行位索引显式复制bier报文封装,以及外层ipv6报文封装的情况下,将bier报文头中的entropy字段,拷贝到外层ipv6报文的flowlabel字段的位置,并将为虚拟专用网络vpn数据所分配的标签值,置于所述bier报文头中的原entropy字段的位置;步骤s104,在bier报文头之后设置数据报文,将bier报文头中的proto字段设置为表示所述数据报文的数据报文类型所对应的值,其中,所述数据报文类型至少包括以下之一:ipv4报文,ipv6报文,以太网报文,mpls报文,oam报文。通过本发明,可以对bier报文和ipv6报文进行如下处理:将bier报文头中的entropy字段,拷贝到外层ipv6报文的flowlabel字段的位置,并将为虚拟专用网络vpn数据所分配的标签值,置于所述bier报文头中的原entropy字段的位置;在bier报文头之后设置数据报文,将bier报文头中的proto字段设置为表示所述数据报文的数据报文类型所对应的值,进而实现了将bier报文封装在ipv6报文中,采用上述技术方案,解决了相关技术中,还未能有效实现将bier报文封装在ipv6报文中等问题。其中,上述步骤的执行主体可以为基站、终端等,但不限于此。步骤s102和步骤s104的执行顺序是可以互换的,即可以先执行步骤s104,然后再执行s102。应用上述步骤s102-步骤s104的技术方案,如图3所示,这种情况下,即使是基于vpn的业务,proto字段不再设置为mpls类型,而是直接设置为数据报文的真正类型,也就是ipv4,ipv6,ethernet,mpls或者oam等.在一个示例性实施例中,在通过步骤s102-s104的字段设置之后,上述方法还包括:将bier报文头中的entropy字段,拷贝到外层ipv6报文的flowlabel字段的位置,所述方法还包括:在需要对所述数据报文进行处理的设备在对所述数据报文进行转发处理时,仅根据所述ipv6报文头中的flowlabel字段进行负载均衡处理,可以理解的是,沿路的设备在进行转发处理时,仅根据ipv6头中的flowlabel字段进行负载均衡处理,而不再根据bier报文头中的entropy字段进行处理。在一个示例性实施例中,所述方法还包括:在位转发出口路由器bfer收到数据报文时,将外层ipv6报文头从所述数据报文中剥离,根据bier报文头中的原entropy字段中的标签值,查找到与所述标签值对应的vpn;根据proto字段所指示的数据类型,对所述数据报文进行转发处理,即在本发明实施例中,bfer在收到报文时,将外层ipv6头剥离后,将bier报文头中的原entropy字段,现label字段,查找到对应的vpn,然后直接根据proto的指示,读取后续的数据报文进行转发处理。假设proto是ipv4,则bfer在对应的vpn中进行ipv4路由表查表处理,将数据报文转发给正确的接收者。需要注意的是,entropy值为0时,可以用于表示全局组播,也就是vpn为0或者没有vpn的情况,这种情况下,根据proto查找相应的全局路由表即可。bfir和bfer对报文的转义处理,如果设备全都支持且仅支持这种方式,即只要bier报文封装到ipv6头中都采用这样的解析方法,不需要其他的控制手段。但网络中部署的设备有的无法支持这种转义处理方式,因此可能存在两种方式都支持的情况,这种情况下,需要控制面进行扩展,扩展方式包括:在一个示例性实施例中,所述方法还包括:对于非bfir和非bfer的纯中间节点,如果所述中间节点仅根据所述ipv6报文头中的flowlabel进行负载均衡处理,则执行在bfir和bfer之间进行能力协商与通告的处理流程。在一个示例性实施例中,所述方法还包括:所述能力协商与通告的处理流程中的能力协商信息的定义通过tlv(type,length,value)的形式体现。在一个示例性实施例中,所述能力协商与通告的处理流程中的能力协商信息的定义通过tlv的形式体现,至少包括以下之一:通过所述tlv中的type为1,length为1个字节,且value值定义为1来指示已将bier报文头中的entropy字段,拷贝到外层ipv6报文的flowlabel字段之后的位置,以及已将为虚拟专用网络vpn数据所分配的标签值,置于所述bier报文头中的原entropy字段的位置;通过所述tlv中的type为1,length为0,且无value值来指示已将bier报文头中的entropy字段,拷贝到外层ipv6报文的flowlabel字段之后的位置,以及已将为虚拟专用网络vpn数据所分配的标签值,置于所述bier报文头中的原entropy字段的位置。在一个示例性实施例中,所述方法还包括:通过所述tlv的type为2,length为1个字节,且value值定义为1来指示已将bier报文头中的dscp字段,拷贝到外层ipv6报文的trafficclass字段的位置,或者其他位置,bier报文头中原dscp字段则可以做其他用途;在dscp字段中的tlv中的type为2,length为0,且无value值来指示已将bier报文头中的dscp字段,拷贝到外层ipv6报文的trafficclass字段的位置,或者其他位置,bier报文头中原dscp字段可以做其他用途。即对于非bfir和非bfer的纯中间节点,如果这些节点仅根据ipv6头中的flowlabel进行负载均衡处理,不看bier报文头中的entropy字段,则仅需要在bfir和bfer之间进行能力协商与通告,能力协商信息的定义可以通过tlv的形式来体现,如图4所示。比如第一种方式定义type为1,表示“转义”,length为1个字节,value值定义为1表示entropy字段转义为数据报文的业务vpnlabel。第二种方式直接定义type为1,length为0,后面无需跟value,而是直接用type值为1表示entropy字段转义为数据报文的业务vpnlabel。后续如果对dscp字段也进行转义时,对于第一种方式可以定义value为2来表示dscp字段转义,也可以采用第二种方式,直接定义类型2来表示dscp字段转义。对于bier报文头中的dscp字段,类似的,在外层ipv6头的trafficclass复制了该值后,dscp字段可以用于表示其他的内容。需要说明的是,tlv的通告则是随着bfir和bfer之间的协议信息交互进行,可以扩展bgp,mvpn,mld等等协议,比如bfir与bfer之间使用bgp进行数据报文信息交互,则可以将此tlv扩展随着bgp的报文进行通告;假设bfir与bfer之间使用mld进行数据报文信息交互,则可以将此扩展随着mld的报文进行通告。在其中的bfr设备原本根据bier报文头中的entropy字段进行负载均衡处理时,也可以在ospf或者isis等协议泛洪bier的bfr-id值等信息时,同样通告节点的转义能力。以免出现负载均衡处理错误的情况。在一个示例性实施例中,所述方法还包括:将所述tlv的形式携带在bfir和bfer之间的至少以下之一协议中:边界网关协议bgp,组播虚拟专用网络mvpn协议,组播侦听发现协议。在一个示例性实施例中,所述方法还包括:在将bier报文头中的entropy字段,拷贝到外层ipv6报文的flowlabel字段的位置,并将为虚拟专用网络vpn数据所分配的标签值,置于所述bier报文头中的原entropy字段的位置之后,所述方法还包括:bier报文头的保留为rsv设置为1。可以理解的是,在bfir/bfer同时支持转义和不转义的封装处理方式时,可能无法识别出entropy的真正含义,这时可以使用bier报文头中另外的位,比如保留rsv位中的某一位,比如低bit位设置为1来表示entropy字段已经通过转义处理。这样bfir的封装流程将增加如下步骤:在对entropy字段进行转义处理后,将rsv设置为1。bfer的解封装处理流程中,将增加对rsv的判断,如果发现相应的位被设置成1时,则说明该bier报文头中的entropy字段已经被转义处理,这样bfer可以将entropy字段中的值作为vpnlabel来进行定位vpn表项的操作。在一个示例性实施例中,所述方法还包括:在网络中的任一节点的转义能力出现变化的情况下,通过协议通告的方式通知所述网络中除所述任一节点外的其他节点,其中,所述转义能力用于指示所述任一节点是否具备将bier报文头中的entropy字段,拷贝到外层ipv6报文的flowlabel字段的位置,并将为虚拟专用网络vpn数据所分配的标签值,置于所述bier报文头中的原entropy字段的位置的能力。即在节点对转义能力的支持出现变化时,能够以协议通告的方式告知其他节点,方式可以通过能力的再次通告,但携带特殊值的方式,比如上述能力tlv中新增类型或者value设置为特殊值如全f等方式;或者通过协议基础信息重新通告,如bgp协议重新通告所支持的地址族,但不再携带该能力信息的方式;使其他节点获知该信息。这样bfir节点在封装时会按照已有规则进行封装,bfr节点还可以根据下一跳节点的情况进行动态调整,以免出现报文处理错误的情况。为了更好的理解上述数据报文的处理流程,以下结合可选实施例对上述技术方案进行说明,但不用于限定本发明实施例的技术方案。可选实施例一:如图5所示的bier域,该域使用ipv6封装的bier报文传输机制,bfir和bfer之间的组播数据报文有基于vpn1的,也有基于vpn2的,bfir为vpn1分配标签10,为vpn2分配标签20。bfir与bfer之间运行基于bgp的mvpn,进行数据报文信息交互,也就是确定某条流量有哪些接收者所在bfer时,进行转义能力交互。也可以在最初协议会话建立的时候就进行转义能力通告。bfir支持转义能力,则通告该能力,bfer支持转义能力的也通告该能力,不支持该能力的则不通告。假设bfer2不支持转义能力,bfer1和bfer3支持转义能力,bfir发现对接收者包括bfer2的流量不能进行转义处理。在这个图例中,对于vpn2的流量可以进行转义封装处理。bfir对数据报文的处理流程为:步骤10,bfir收到来自vpn2的流量,bfer对应bfer1和bfer3,将本来需要封装到bier报文头中entropy字段,用于负载均衡的值,封装到外层ipv6头的flowlabel字段中;步骤12,bfir将vpn2所对应的标签值20,封装到bier报文头的entropy字段中;步骤14,因bfer1和bfer3同时支持转义和非转义方式,为了进行区分,bfir将rsv的低bit位置为1,表示entropy字段已进行转义。步骤16,bfir将组播数据报文直接作为bier报文的payload直接附加在bier报文头后,并将组播数据报文的类型直接赋值在bier报文头中的proto字段。如该数据报文是ipv4组播数据报文,则直接将bier报文头中的proto字段值设置为ipv4类型。步骤18,bier报文头及ipv6头中的其他字段按照原有规则进行封装。中间bfr设备的处理流程:步骤20:根据ipv6头中的flowlabel字段进行负载均衡处理。步骤22:其余处理转发流程同已有规则。bfer收到报文时的处理流程为:步骤24:bfer识别bier报文头中的rsv低bit位,当该值为1时知道该报文进行转义处理;步骤26:bfer读取entropy字段的值,并在其不为0时,定位到相应的vpn。在该例中,将识别出该字段是标签值20,bfer定位到vpn2;如果为0时则查找全局路由表。步骤28:bfer根据bier报文头中的proto值,直接查找vpn2中的路由表进行转发。可选实施例二:在网络中的节点能力支持出现变化时,当前的报文处理节点,能根据下一跳节点的情况,自动调整报文封装,以免出现节点无法正确处理报文的情况。如图5所示,假设网络中已经进行转义能力的通告,bfir对发送给支持转义能力bfer的报文,都进行转义处理。如图例中所述,bfir通过协议通告,学习到bfer1和bfer3都支持转义能力,也用实施例一中的方式进行正常转义封装处理。当bfer3由于配置或者其他情况出现能力变化时,比如bfer3进行设备更新后,不能支持转义能力,bfir对需要发送给bfer3的报文,不能再进行转义处理。具体步骤为:步骤30,bfir收到bfer的能力撤销报文,该报文可能是通过能力的再次通告,但携带特殊值的方式,比如上述能力tlv中新增类型或者value设置为特殊值如全f等方式;或者通过协议基础信息重新通告,但不再携带该能力信息的方式;使其他节点获知该信息。步骤32,bfir在对来自vpn2的报文封装,不再采用转义封装方式,而是采用已有封装规则进行封装转发。或者对bfer1仍然采用转义封装方式,对bfer3采用已有封装规则进行封装转发。对于bfr节点的处理,可选支持如下步骤:如图5中的bfrn节点,在获知bfer3不再支持转义功能时,收到了具有转义功能且需要发送给bfer3的报文,处理步骤为:步骤40,bfrn收到报文,根据ipv6头中的flowlabel进行正常的负载均衡处理后,读取bier报文头中的rsv低bit位字段,发现已置为1;步骤42,bfrn对报文进行重新调整封装,将bier报文头中的proto字段设置为mpls,在bier报文头与后续的数据报文中插入标签,值为bier报文头的原entropy字段。重新对rsv位置0,封装后的报文类似图6,也就是将转义字段按照原有规则进行恢复。步骤44,bfrn将重新封装的报文转发给bfer3。在bfer3收到报文时,根据正常的处理规则进行处理,不会出现报文处理错误的情况。通过上述技术方案,本发明可选实施例提出一种新的报文封装方式,将bier封装与ipv6封装结合起来,将其部分字段进行转义处理,结合控制面的能力协商,在完全不影响功能的情况下,优化业务报文的封装与处理流程,可以起到提高封装及处理效率的作用,有利于bier技术的进一步优化,利用外层ipv6头中的字段,在不影响功能实现的前提下,对bier报文头中的字段进行转义处理,并且用能力通告进行协商。起到优化业务携带,优化报文封装及提高处理速度的目的。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。在本实施例中还提供了一种数据报文的处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图7是根据本发明实施例的数据报文的处理装置的结构框图,如图7所示,该装置包括:处理模块70,用于在位转发入口路由器bfir对数据报文进行位索引显式复制bier报文封装,以及外层ipv6报文封装的情况下,将bier报文头中的entropy字段,拷贝到外层ipv6报文的flowlabel字段的位置,并将为虚拟专用网络vpn数据所分配的标签值,置于所述bier报文头中的原entropy字段的位置;设置模块72,用于在bier报文头之后设置数据报文,将bier报文头中的proto字段设置为表示所述数据报文的数据报文类型所对应的值,其中,所述数据报文类型至少包括以下之一:ipv4报文,ipv6报文,以太网报文,mpls报文,oam报文。通过本发明,可以对bier报文和ipv6报文进行如下处理:将bier报文头中的entropy字段,拷贝到外层ipv6报文的flowlabel字段的位置,并将为虚拟专用网络vpn数据所分配的标签值,置于所述bier报文头中的原entropy字段的位置;在bier报文头之后设置数据报文,将bier报文头中的proto字段设置为表示所述数据报文的数据报文类型所对应的值,进而实现了将bier报文封装在ipv6报文中,采用上述技术方案,解决了相关技术中,还未能有效实现将bier报文封装在ipv6报文中进行优化等问题。应用上述技术方案,如图3所示,这种情况下,即使是基于vpn的业务,proto字段不再设置为mpls类型,而是直接设置为数据报文的真正类型,也就是ipv4,ipv6,ethernet,mpls,oam等.在一个示例性实施例中,处理模块70,还用于在需要对所述数据报文进行处理的设备在对所述数据报文进行转发处理时,仅根据所述ipv6报文头中的flowlabel字段进行负载均衡处理,可以理解的是,沿路的设备在进行转发处理时,仅根据ipv6头中的flowlabel字段进行负载均衡处理,而不再根据bier报文头中的entropy字段进行处理。在一个示例性实施例中,处理模块70,还用于在位转发出口路由器bfer收到数据报文时,将外层ipv6报文头从所述数据报文中剥离,根据bier报文头中的原entropy字段中的标签值,查找到与所述标签值对应的vpn;根据proto字段所指示的数据类型,对所述数据报文进行转发处理,即在本发明实施例中,bfer在收到报文时,将外层ipv6头剥离后,将bier报文头中的原entropy字段,现label字段,查找到对应的vpn,然后直接根据proto的指示,读取后续的数据报文进行转发处理。假设proto是ipv4,则bfer在对应的vpn中进行ipv4路由表查表处理,将数据报文转发给正确的接收者。需要注意的是,entropy值为0时,可以用于表示全局组播,也就是vpn为0或者没有vpn的情况,这种情况下,根据proto查找相应的全局路由表即可。bfir和bfer对报文的转义处理,如果设备全都支持且仅支持这种方式,即只要bier报文封装到ipv6头中都采用这样的解析方法,不需要其他的控制手段。但网络中部署的设备有的无法支持这种转义处理方式,因此可能存在两种方式都支持的情况,这种情况下,需要控制面进行扩展,扩展方式包括:在一个示例性实施例中,对于非bfir和非bfer的纯中间节点,如果所述中间节点仅根据所述ipv6报文头中的flowlabel进行负载均衡处理,处理模块70,还用于执行在bfir和bfer之间进行能力协商与通告的处理流程。在一个示例性实施例中,所述方法还包括:所述能力协商与通告的处理流程中的能力协商信息的定义通过tlv(type,length,value)的形式体现。在一个示例性实施例中,所述能力协商与通告的处理流程中的能力协商信息的定义通过tlv的形式体现,至少包括以下之一:通过所述tlv中的type为1,length为1个字节,且value值定义为1来指示已将bier报文头中的entropy字段,拷贝到外层ipv6报文的flowlabel字段之后的位置,以及已将为虚拟专用网络vpn数据所分配的标签值,置于所述bier报文头中的原entropy字段的位置;通过所述tlv中的type为1,length为0,且无value值来指示已将bier报文头中的entropy字段,拷贝到外层ipv6报文的flowlabel字段之后的位置,以及已将为虚拟专用网络vpn数据所分配的标签值,置于所述bier报文头中的原entropy字段的位置。在一个示例性实施例中,通过所述tlv的type为2,length为1个字节,且value值定义为1来指示已将bier报文头中的dscp字段,拷贝到外层ipv6报文的trafficclass字段的位置,bier头中的原dscp字段可以用于表示其他含义;在所述tlv中的type为2,length为0,且无value值来指示已将bier报文头中的dscp字段,拷贝到外层ipv6报文的trafficclass字段的位置,以及bier头中的原dscp字段可以用于表示其他含义。即对于非bfir和非bfer的纯中间节点,如果这些节点仅根据ipv6头中的flowlabel进行负载均衡处理,而不看bier报文头中的entropy字段,则仅需要在bfir和bfer之间进行能力协商与通告,能力协商信息的定义可以通过tlv的形式来体现,如图4所示。比如第一种方式定义type为1,表示“转义”,length为1个字节,value值定义为1表示entropy字段转义为数据报文的业务vpnlabel。第二种方式直接定义type为1,length为0,后面无需跟value,而是直接用type值为1表示entropy字段转义为数据报文的业务vpnlabel。后续如果对dscp字段也进行转义时,对于第一种方式可以定义value为2来表示dscp字段转义,也可以采用第二种方式,直接定义类型2来表示dscp字段转义。对于bier报文头中的dscp字段,类似的,在外层ipv6头的trafficclass复制了该值后,dscp字段可以用于表示其他的内容。需要说明的是,tlv的通告则是随着bfir和bfer之间的协议信息交互进行,可以扩展bgp,mvpn,mld等等协议,比如bfir与bfer之间使用bgp进行数据报文信息交互,则可以将此tlv扩展随着bgp的报文进行通告;假设bfir与bfer之间使用mld进行数据报文信息交互,则可以将此扩展随着mld的报文进行通告。在其中的bfr设备原本根据bier报文头中的entropy字段进行负载均衡处理时,也可以在ospf或者isis等协议泛洪bier的bfr-id值等信息时,同样通告节点的转义能力。以免出现负载均衡处理错误的情况。在一个示例性实施例中,所述方法还包括:将所述tlv的形式携带在bfir和bfer之间的至少以下之一协议中:边界网关协议bgp,组播虚拟专用网络mvpn协议,组播侦听发现协议。在一个示例性实施例中,所述方法还包括:在将bier报文头中的entropy字段,拷贝到外层ipv6报文的flowlabel字段之后的位置,并将为虚拟专用网络vpn数据所分配的标签值,置于所述bier报文头中的原entropy字段的位置之后,所述方法还包括:bier报文头的保留为rsv设置为1。可以理解的是,在bfir/bfer同时支持转义和不转义的封装处理方式时,可能无法识别出entropy的真正含义,这时可以使用bier报文头中另外的位,比如保留rsv位中的某一位,比如低bit位设置为1来表示entropy字段已经通过转义处理。这样bfir的封装流程将增加如下步骤:在对entropy字段进行转义处理后,将rsv设置为1。bfer的解封装处理流程中,将增加对rsv的判断,如果发现相应的位被设置成1时,则说明该bier报文头中的entropy字段已经被转义处理,这样bfer可以将entropy字段中的值作为vpnlabel来进行定位vpn表项的操作。在一个示例性实施例中,在网络中的任一节点的转义能力出现变化的情况下,通过协议通告的方式通知所述网络中除所述任一节点外的其他节点,其中,所述转义能力用于指示所述任一节点是否具备将bier报文头中的entropy字段,拷贝到外层ipv6报文的flowlabel字段之后的位置,并将为虚拟专用网络vpn数据所分配的标签值,置于所述bier报文头中的原entropy字段的位置的能力。即在节点对转义能力的支持出现变化时,能够以协议通告的方式告知其他节点,方式可以通过能力的再次通告,但携带特殊值的方式,比如上述能力tlv中新增类型或者value设置为特殊值如全f等方式;或者通过协议基础信息重新通告,如bgp协议重新通告所支持的地址族,但不再携带该能力信息的方式;使其他节点获知该信息。这样bfir节点在封装时会按照已有规则进行封装,bfr节点还可以根据下一跳节点的情况进行动态调整,以免出现报文处理错误的情况。需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。本发明的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:u盘、只读存储器(read-onlymemory,简称为rom)、随机存取存储器(randomaccessmemory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 当前第1页1 2 3 
    技术特征:

    1.一种数据报文的处理方法,其特征在于,包括:

    在位转发入口路由器bfir对数据报文进行位索引显式复制bier报文封装,以及外层ipv6报文封装的情况下,将bier报文头中的entropy字段,拷贝到外层ipv6报文的flowlabel字段的位置,并将为虚拟专用网络vpn数据所分配的标签值,置于所述bier报文头中的原entropy字段的位置;

    在bier报文头之后设置数据报文,将bier报文头中的proto字段设置为表示所述数据报文的数据报文类型所对应的值,其中,所述数据报文类型至少包括以下之一:ipv4报文,ipv6报文,以太网报文,mpls报文,oam报文。

    2.根据权利要求1所述的方法,其特征在于,还包括:将bier报文头中的entropy字段,拷贝到外层ipv6报文的flowlabel字段的位置之后,所述方法还包括:

    在需要对所述数据报文进行处理的设备在对所述数据报文进行转发处理时,仅根据所述ipv6报文头中的flowlabel字段进行负载均衡处理。

    3.根据权利要求1所述的方法,其特征在于,所述方法还包括:

    在位转发出口路由器bfer收到数据报文时,将外层ipv6报文头从所述数据报文中剥离,根据bier报文头中的原entropy字段中的标签值,查找到与所述标签值对应的vpn;

    根据proto字段所指示的数据类型,对所述数据报文进行转发处理。

    4.根据权利要求1所述的方法,其特征在于,所述方法还包括:

    对于非bfir和非bfer的纯中间节点,如果所述中间节点仅根据所述ipv6报文头中的flowlabel进行负载均衡处理,则执行在bfir和bfer之间进行能力协商与通告的处理流程。

    5.根据权利要求4所述的方法,其特征在于,所述方法还包括:所述能力协商与通告的处理流程中的能力协商信息的定义通过tlv的形式体现。

    6.根据权利要求5所述的方法,其特征在于,所述能力协商与通告的处理流程中的能力协商信息的定义通过tlv的形式体现,至少包括以下之一:

    通过所述tlv中的type为1,length为1个字节,且value值定义为1来指示已将bier报文头中的entropy字段,拷贝到外层ipv6报文的flowlabel字段的位置,以及已将为虚拟专用网络vpn数据所分配的标签值,置于所述bier报文头中的原entropy字段的位置;

    通过所述tlv中的type为1,length为0,且无value值来指示已将bier报文头中的entropy字段,拷贝到外层ipv6报文的flowlabel字段之后的位置,以及已将为虚拟专用网络vpn数据所分配的标签值,置于所述bier报文头中的原entropy字段的位置。

    7.根据权利要求5所述的方法,其特征在于,所述方法还包括:

    在所述tlv的type为2,length为1个字节,且value值定义为1来指示已将bier报文头中的dscp字段,拷贝到外层ipv6报文的trafficclass或者其他字段的位置;

    在所述tlv中的type为2,length为0,且无value值来指示已将bier报文头中的dscp字段,拷贝到外层ipv6报文的trafficclass或者其他字段的位置。

    8.根据权利要求5所述的方法,其特征在于,所述方法还包括:将所述tlv的形式携带在bfir和bfer之间的至少以下之一协议中:边界网关协议bgp,组播虚拟专用网络mvpn协议,组播侦听发现协议。

    9.根据权利要求1所述的方法,其特征在于,所述方法还包括:

    在将bier报文头中的entropy字段,拷贝到外层ipv6报文的flowlabel字段的位置,并将为虚拟专用网络vpn数据所分配的标签值,置于所述bier报文头中的原entropy字段的位置之后,所述方法还包括:bier报文头的保留为rsv设置为1。

    10.根据权利要求1至9任一项所述的方法,其特征在于,所述方法还包括:

    在网络中的任一节点的转义能力出现变化的情况下,通过协议通告的方式通知所述网络中除所述任一节点外的其他节点,其中,所述转义能力用于指示所述任一节点是否具备将bier报文头中的entropy字段,拷贝到外层ipv6报文的flowlabel字段之后的位置,并将为虚拟专用网络vpn数据所分配的标签值,置于所述bier报文头中的原entropy字段的位置的能力。

    11.一种数据报文的处理装置,其特征在于,包括:

    处理模块,用于在位转发入口路由器bfir对数据报文进行位索引显式复制bier报文封装,以及外层ipv6报文封装的情况下,将bier报文头中的entropy字段,拷贝到外层ipv6报文的flowlabel字段的位置,并将为虚拟专用网络vpn数据所分配的标签值,置于所述bier报文头中的原entropy字段的位置;

    设置模块,用于在bier报文头之后设置数据报文,将bier报文头中的proto字段设置为表示所述数据报文的数据报文类型所对应的值,其中,所述数据报文类型至少包括以下之一:ipv4报文,ipv6报文,以太网报文,mpls报文,oam报文。

    12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至10任一项中所述的方法。

    13.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至10任一项中所述的方法。

    技术总结
    本发明实施例提供了一种数据报文的处理方法及装置、存储介质、电子装置,上述方法包括:在位转发入口路由器BFIR对数据报文进行位索引显式复制BIER报文封装,以及外层IPv6报文封装的情况下,将BIER报文头中的Entropy字段,拷贝到外层IPv6报文的Flow Label字段的位置,并将为虚拟专用网络VPN数据所分配的标签值,置于所述BIER报文头中的原Entropy字段的位置;在BIER报文头之后设置数据报文,将BIER报文头中的Proto字段设置为表示所述数据报文的数据报文类型所对应的值,其中,所述数据报文类型至少包括以下之一:IPv4报文,IPv6报文,以太网报文,MPLS报文,OAM报文,采用上述方案,解决了相关技术中,尚未提供如何将BIER报文在IPv6报文中进行优化的问题。

    技术研发人员:朱小龙;张征;冯军;陈勇;马汝胜
    受保护的技术使用者:中兴通讯股份有限公司
    技术研发日:2020.07.31
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-8375.html

    最新回复(0)