CN115996157A - 路由报文处理方法、装置、存储介质及电子装置 - Google Patents

路由报文处理方法、装置、存储介质及电子装置 Download PDF

Info

Publication number
CN115996157A
CN115996157A CN202111204435.4A CN202111204435A CN115996157A CN 115996157 A CN115996157 A CN 115996157A CN 202111204435 A CN202111204435 A CN 202111204435A CN 115996157 A CN115996157 A CN 115996157A
Authority
CN
China
Prior art keywords
indication information
variable
target
routing message
routing
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
Application number
CN202111204435.4A
Other languages
English (en)
Inventor
王玉保
周政
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN202111204435.4A priority Critical patent/CN115996157A/zh
Priority to PCT/CN2022/115496 priority patent/WO2023061069A1/zh
Publication of CN115996157A publication Critical patent/CN115996157A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例提供了一种路由报文处理方法、装置、存储介质及电子装置,该方法包括:第一设备获取目标路由信息;根据目标路由信息发布第一路由报文,该第一路由报文携带的第一指示信息指示接收该第一路由报文的设备进行以下至少之一处理:当接收该第一路由报文的设备为满足第一条件的设备,且在执行该第一目标动作的上下文中执行该第二目标动作;当接收该第一路由报文的设备为不满足该第一条件的设备,且在执行该第一目标动作的上下文中时不执行该第二目标动作,可以解决相关技术中发送端如何控制不同接收端对同一路由报文的不同处理的问题。

Description

路由报文处理方法、装置、存储介质及电子装置
技术领域
本申请实施例涉及通信领域,具体而言,涉及一种路由报文处理方法、装置、存储介质及电子装置。
背景技术
图1是根据相关技术中数据报文处理的组网结构示意图一,如图1所示,在客户端设备(Custom Premise Equipment,简称为CPE)通过静态虚拟扩展局域网(Virtualextensible Local Area Network,简称为VXLAN)隧道双归到PE1(Provider Edge,运营商边缘)和PE2节点时,PE1将其从CPE学到的MAC条目通过RT-2路由发布给PE2时,将Nexthop设置为CPE的地址,从而使得PE2收到该RT-2路由后,创建到CPE的隧道而不是到PE1的隧道。
图1所示网络只是一个简化了的网络,实际的网络往往会更复杂,图2是根据相关技术中数据报文处理的组网结构示意图二,如图2所示,其中,PE1和PE2作为以太网虚拟私有网络(Ethernet Virtual Private Network,简称为EVPN)域和静态VXLAN域的边界点,其中,PE1/PE2/PE3组成VXLAN EVPN域,PE1/PE2/CPE组成静态VXLAN域,在静态VXLAN域中,VXLAN隧道为静态配置,在VXLAN EVPN域中,VXLAN隧道为动态创建。按上述方法,则PE1仍然将从CPE学到的媒体接入控制(Medium Access Control,简称为MAC)地址在发布RT-2路由时以CPE的地址作为下一跳而不是以PE1自己的IP地址作为下一跳,这样一来,该RT-2路由到达PE3时,PE3也将会创建到CPE的VXLAN隧道T1而不是到PE1的VXLAN隧道T2,这样是不对的,因为CPE上并不会创建到PE3的静态VXLAN隧道,从而造成PE3通过所述隧道T1发送到CPE的VXLAN数据报文被CPE丢弃。
同时,对于PE1发布给PE2的包容式组播以太标记路由(Inclusive MulticastEthernet Tag,简称为IMET)路由,希望PE2收到该IMET路由(即RT-3路由)创建的是PE2到PE1的隧道,该隧道的源IP地址不能使用Anycast PE地址,而将使用PE2的物理IP地址作为源网络协议(Internet Protocol,简称为IP)地址。但是,对于PE1发布PE2的RT-2路由,却希望PE2收到该RT-2路由创建的是以Anycast PE地址作为源IP的隧道。这两种路由创建VXLAN隧道时的源IP需要采用不同的源IP,当前,这需要通过Route Map等复杂配置来实现。
EVPN网络中存在链路保护ESI链路保护(ESI Link Protection,简称为ELP),即设备间都试图通过对方绕道,于是造成数据报文在设备之间出现乒乓,也就是出现环路,为了破除此环路,需要将设备之间的隧道打上特殊标志,使得转发面根据此标志,知道从该隧道接收的数据报文不能再从该隧道发出。但是,有时候,从一条隧道接收的数据报文再从该隧道转发出去是正常的,因此,不能一刀切将所有隧道都打上该特殊标志。
针对相关技术中发送端如何控制不同接收端对同一路由报文的不同处理的问题,尚未提出解决方案。
发明内容
本申请实施例提供了一种路由报文处理方法、装置、存储介质及电子装置,以至少解决相关技术中发送端如何控制不同接收端对同一路由报文的不同处理的问题。
根据本申请的一个实施例,提供了一种路由报文处理方法,包括:
第一设备获取目标路由信息;
所述第一设备根据所述目标路由信息发布第一路由报文,其中,所述第一路由报文用于指示接收所述第一路由报文的设备执行第一目标动作,所述第一路由报文中携带第一指令指示信息、第二指令指示信息、第一指示信息、第一目标值描述信息缓冲区、第二目标值描述信息缓冲区、第一变量指示信息缓冲区以及第二目标动作的描述信息,所述第一指示信息指示接收所述第一路由报文的设备进行以下至少之一处理:
当接收所述第一路由报文的设备为满足第一条件的设备,且在执行所述第一目标动作的上下文中执行所述第二目标动作;
当接收所述第一路由报文的设备为不满足所述第一条件的设备,且在执行所述第一目标动作的上下文中时不执行所述第二目标动作;
其中,所述第一条件为第一变量与第一目标值匹配,所述第一变量为所述第一变量指示信息缓冲区中的指示信息所指示的变量,所述第一目标值为所述第一目标值描述信息缓冲区中的数值或者用所述第一目标值描述信息缓冲区中的指示信息所指示的方法获得的数值,所述第一指令指示信息指示确定所述第一变量指示信息缓冲区和所述第一目标值描述信息缓冲区的位置的方法,所述第二指令指示信息指示获得所述第二目标动作的描述信息的方法。
根据本申请的另一个实施例,还提供了一种路由报文处理方法,包括:
接收第一设备根据目标路由信息发布的第一路由报文,其中,所述第一路由报文用于指示接收所述第一路由报文的设备执行第一目标动作,所述第一路由报文中携带第一指令指示信息、第二指令指示信息、第一指示信息、第一目标值描述信息缓冲区、第二目标值描述信息缓冲区、第一变量指示信息缓冲区以及第二目标动作的描述信息;
根据所述第一指示信息指示进行以下至少之一处理:
当满足第一条件,且在执行所述第一目标动作的上下文中执行所述第二目标动作;
当不满足所述第一条件,且在执行所述第一目标动作的上下文中时不执行所述第二目标动作;
其中,所述第一条件为第一变量与第一目标值匹配,所述第一变量为所述第一变量指示信息缓冲区中的指示信息所指示的变量,所述第一目标值为所述第一目标值描述信息缓冲区中的数值或者用所述第一目标值描述信息缓冲区中的指示信息所指示的方法获得的数值,所述第一指令指示信息指示确定所述第一变量指示信息缓冲区和所述第一目标值描述信息缓冲区的位置的方法,所述第二指令指示信息指示获得所述第二目标动作的描述信息的方法。
根据本申请的另一个实施例,还提供了一种路由报文处理装置,应用于所述第一设备,包括:
获取模块,用于获取目标路由信息;
发布模块,用于根据所述目标路由信息发布第一路由报文,其中,所述第一路由报文用于指示接收所述第一路由报文的设备执行第一目标动作,所述第一路由报文中携带第一指令指示信息、第二指令指示信息、第一指示信息、第一目标值描述信息缓冲区、第二目标值描述信息缓冲区、第一变量指示信息缓冲区以及第二目标动作的描述信息,所述第一指示信息指示接收所述第一路由报文的设备进行以下至少之一处理:
当接收所述第一路由报文的设备为满足第一条件的设备,且在执行所述第一目标动作的上下文中执行所述第二目标动作;
当接收所述第一路由报文的设备为不满足所述第一条件的设备,且在执行所述第一目标动作的上下文中时不执行所述第二目标动作;
其中,所述第一条件为第一变量与第一目标值匹配,所述第一变量为所述第一变量指示信息缓冲区中的指示信息所指示的变量,所述第一目标值为所述第一目标值描述信息缓冲区中的数值或者用所述第一目标值描述信息缓冲区中的指示信息所指示的方法获得的数值,所述第一指令指示信息指示确定所述第一变量指示信息缓冲区和所述第一目标值描述信息缓冲区的位置的方法,所述第二指令指示信息指示获得所述第二目标动作的描述信息的方法。
根据本申请的另一个实施例,还提供了一种路由报文处理装置,包括:
接收模块,用于接收第一设备根据目标路由信息发布的第一路由报文,其中,所述第一路由报文用于指示接收所述第一路由报文的设备执行第一目标动作,所述第一路由报文中携带第一指令指示信息、第二指令指示信息、第一指示信息、第一目标值描述信息缓冲区、第二目标值描述信息缓冲区、第一变量指示信息缓冲区以及第二目标动作的描述信息;
处理模块,用于根据所述第一指示信息指示进行以下至少之一处理:
当满足第一条件,且在执行所述第一目标动作的上下文中执行所述第二目标动作;
当不满足所述第一条件,且在执行所述第一目标动作的上下文中时不执行所述第二目标动作;
其中,所述第一条件为第一变量与第一目标值匹配,所述第一变量为所述第一变量指示信息缓冲区中的指示信息所指示的变量,所述第一目标值为所述第一目标值描述信息缓冲区中的数值或者用所述第一目标值描述信息缓冲区中的指示信息所指示的方法获得的数值,所述第一指令指示信息指示确定所述第一变量指示信息缓冲区和所述第一目标值描述信息缓冲区的位置的方法,所述第二指令指示信息指示获得所述第二目标动作的描述信息的方法。
根据本申请的又一个实施例,还提供了一种计算机可读的存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
本申请实施例,第一设备获取目标路由信息;所述第一设备根据所述目标路由信息发布第一路由报文,所述第一路由报文携带的第一指示信息指示接收所述第一路由报文的设备进行以下至少之一处理:当接收所述第一路由报文的设备为满足第一条件的设备,且在执行所述第一目标动作的上下文中执行所述第二目标动作;当接收所述第一路由报文的设备为不满足所述第一条件的设备,且在执行所述第一目标动作的上下文中时不执行所述第二目标动作,可以解决相关技术中发送端如何控制不同接收端对同一路由报文的不同处理的问题,由发送端控制不同接收端对同一路由报文采取不同处理的方式,至少一种处理方式与当前协议规定的处理行为不同。
附图说明
图1是根据相关技术中数据报文处理的组网结构示意图一;
图2是根据相关技术中数据报文处理的组网结构示意图二;
图3是本申请实施例的路由报文处理方法的移动终端的硬件结构框图;
图4是根据本申请实施例的路由报文处理方法的流程图一;
图5是根据本申请实施例的路由报文处理方法的流程图二;
图6是根据本申请实施例的数据报文处理的组网结构示意图一;
图7是根据本申请实施例的Programming TLV的架构示意图;
图8是根据本申请实施例的数据报文处理的组网结构示意图二;
图9是根据本申请实施例的路由报文处理装置的框图一;
图10是根据本申请实施例的路由报文处理装置的框图二。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图3是本申请实施例的路由报文处理方法的移动终端的硬件结构框图,如图3所示,移动终端可以包括一个或多个(图3中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图3所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图3中所示更多或者更少的组件,或者具有与图3所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的路由报文处理方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及业务链地址池切片处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于上述移动终端或网络架构的路由报文处理方法,图4是根据本申请实施例的路由报文处理方法的流程图一,如图4所示,该流程包括如下步骤:
步骤S402,第一设备获取目标路由信息;
步骤S404,所述第一设备根据所述目标路由信息发布第一路由报文,其中,所述第一路由报文用于指示接收所述第一路由报文的设备执行第一目标动作,所述第一路由报文中携带第一指令指示信息、第二指令指示信息、第一指示信息、第一目标值描述信息缓冲区、第二目标值描述信息缓冲区、第一变量指示信息缓冲区以及第二目标动作的描述信息,所述第一指示信息指示接收所述第一路由报文的设备进行以下至少之一处理:
当接收所述第一路由报文的设备为满足第一条件的设备,且在执行所述第一目标动作的上下文中执行所述第二目标动作;
当接收所述第一路由报文的设备为不满足所述第一条件的设备,且在执行所述第一目标动作的上下文中时不执行所述第二目标动作;
其中,所述第一条件为第一变量与第一目标值匹配,所述第一变量为所述第一变量指示信息缓冲区中的指示信息所指示的变量,所述第一目标值为所述第一目标值描述信息缓冲区中的数值或者用所述第一目标值描述信息缓冲区中的指示信息所指示的方法获得的数值,所述第一指令指示信息指示确定所述第一变量指示信息缓冲区和所述第一目标值描述信息缓冲区的位置的方法,所述第二指令指示信息指示获得所述第二目标动作的描述信息的方法。
需要说明的是,在一些实施方式中,所述第一指令指示信息或第二指令指示信息可以是所述第一指示信息。
需要说明的是,所述第一目标动作为接收所述第一路由报文的节点在接收所述第一路由报文时根据所述第一路由报文中的信息进行的处理,而不是在接收所述第一路由报文后根据另外接收到的数据报文及所述第一路由报文中的信息对该数据报文进行的处理。进一步地,在一些实施方式中,执行所述第一目标动作所需的信息都在所述第一路由报文中或者都可以通过所述第一路由报文中的指示信息获得。
通过上述步骤S402至S404,可以解决相关技术中发送端如何控制不同接收端对同一路由报文的不同处理的问题,由发送端控制不同接收端对同一路由报文采取不同处理的方式,至少一种处理方式与当前协议规定的处理行为不同。
在一实施例中,所述第二目标动作为执行所述第一目标动作的上下文中的动作。
需要说明的是,所述第一目标动作上下文中的动作,包括执行所述第一目标动作前的动作、执行所述第一目标动作过程中的动作和执行所述第一目标动作后且执行其它动作前的动作。
在一实施例中,所述第一变量与所述第一目标值匹配包括:
若所述第一变量与所述第一目标值都不是集合,则所述第一变量等于所述第一目标值;
若所述第一变量与所述第一目标值的至少之一为集合,则所述第一变量与所述第一目标值存在包含关系。
需要说明的是,若所述第一变量与所述第一目标值均为集合,则所述第一变量与所述第一目标值匹配在一些实施方式中为所述第一变量包含于所述第一目标值,在另一些实施方式中为所述第一目标值包含于所述第一变量。
在一实施例中,所述第二目标动作的描述信息指示所述第二目标动作为不执行所述第一目标动作。
在一实施例中,所述第一变量指示信息缓冲区用于携带第一类指示信息,所述第一类指示信息为指示第一变量集合中的变量的指示信息,所述第一变量集合中至少包括两个变量。
在一实施例中,所述第二目标动作的描述信息包括第三指令指示信息、第二变量指示信息缓冲区和第二目标值描述信息缓冲区;
其中,所述第三指令指示信息指示所述第二目标动作为将第二变量的值设置为第一缓冲区中的值,所述第二变量为所述第二变量指示信息缓冲区中的指示信息所指示的变量,所述第一缓冲区为所述第二目标值描述信息缓冲区或者根据所述第二目标值描述信息缓冲区中的指示信息所指示的方法确定的缓冲区。
需要说明的是,在一种实施方式中,所述第三指令指示信息可以是所述第二指令指示信息。
在一实施例中,所述第二变量指示信息缓冲区用于携带第二类指示信息,所述第二类指示信息为指示第二变量集合中的变量的指示信息,所述第二变量集合中至少包括两个变量。
在一实施例中,所述第二变量集合中至少包括如下变量中的两变量:{IP隧道的源IP;隧道的目的IP;隧道上的Bypass标志;隧道上的水平分割标志;与所述第一路由报文对应的入口复制列表表项的Bypass标志;与所述第一路由报文对应的入口复制列表表项的水平分割标志};
需要说明的是,所述Bypass标志即存储所述第三指示信息的字段,所述水平分割标志即存储所述第四指示信息的字段,所述入口复制列表表项即由EVPN RT-3路由构建的表项。
所述两变量为所述第一设备、满足所述第一条件的设备和不满足所述第一条件的设备上的标准化变量。
在一实施例中,所述第一路由报文、所述第一变量、所述第一目标值、所述第二变量满足第五条件、第六条件、第七条件三者之一;其中,
所述第五条件为:所述第一路由报文为第二路由报文,其中,所述第二路由报文的下一跳Nexthop为标识所述第一设备的IP地址;
所述第一变量为接收所述第二路由报文的节点与其它节点之间的共同IP地址的集合,所述第一目标值为第五IP,所述第五IP为所述第一设备与满足所述第一条件的设备共同的IP地址,所述第二变量为与所述第二路由报文匹配的第一实体的第一属性;
所述第六条件为:所述第一路由报文为第三路由报文,其中,所述第三路由报文的下一跳Nexthop为标识所述第一设备的IP地址;所述第一变量为接收所述第三路由报文的节点上标识该节点的IP地址,所述第一目标值为第一IP值集合,所述第一IP值集合为所述第一设备上配置的IP地址值集合,所述第二变量为与所述第三路由报文匹配的第二实体的第二属性,其中,所述第一IP值集合中至少包括标识满足所述第一条件的设备的IP地址,且所述第一IP值集合中不包括标识不满足所述第一条件的设备的IP地址;
所述第七条件为:所述第一路由报文为第四路由报文,其中,所述第四路由报文的下一跳Nexthop为标识所述第一设备的IP地址;
所述第一变量为接收所述第四路由报文的节点上的第二IP值集合,所述第一目标值为标识所述第一设备的IP地址的值,所述第二IP值集合为所述接收所述第四路由报文的节点上配置的IP地址值集合,所述第二变量为与所述第四路由报文匹配的第二实体的第二属性,其中,所述第二IP值集合中至少包括标识所述第一设备的IP地址,且不满足所述第一条件的设备的第三IP地址值集合中不包括标识所述第一设备的IP地址,所述第三IP地址集合为不满足所述第一条件的设备上配置的IP地址值集合,且所述第三IP地址集合与所述第二IP地址集合通过同样的配置接口配置。
在一种实施方式中,所述第二路由报文、第三路由报文或第三路由报文的下一跳Nexthop为标识所述第一设备的IP地址。
在一实施例中,所述方法还包括:
当所述第一路由报文、所述第一变量、所述第一目标值、所述第二变量满足所述第六条件时,所述第一设备从第二设备接收第五路由报文,其中,所述第二设备为接收所述第三路由报文且满足所述第一条件的设备,所述第五路由报文的下一跳Nexthop为标识所述第二设备的IP地址,所述第五路由报文与所述第三路由报文为同类路由报文,且所述第五路由报文不携带与所述第一指示信息、第二指令指示信息、第三指令指示信息对应的指示信息;
响应于所述第五路由报文的下一跳在所述第一IP值集合中,所述第一设备将第四变量设置为第四目标值,使得所述第四变量与所述第二变量具有对称关系,其中,所述第四变量为对所述第五路由报文执行所述第一目标动作的上下文中的变量。
需要说明的是,所述第四变量与所述第二变量具有对称关系,可以是所述第四变量所属的第四实体与所述第二变量所属的第五实体具有对称关系且所述第四变量与所述第二变量分别为所述两个实体的键值中的同位元素,其中,所述第四实体与所述第五实体具有对称关系可以是所述第四实体的键值与所述第五实体的键值具有相同的结构并且具有相互对称的值,所述同位元素即所述键值中具有相同序数的元素;比如,当所述第四实体和所述第五实体的键值均包括<A属性,B属性>时,若所述第四实体的A属性等于所述第五实体的B属性且所述第四实体的B属性等于所述第五实体的A属性,则所述第四实体的键值与所述第五实体的键值就具有相互对称的值,从而所述第五实体与所述第四实体就具有对称关系,此时,若所述第四变量和所述第五变量分别为所述第四实体和所述第五实体的A属性(即所述键值中的第一个元素),则可以说所述第四变量与所述第二变量具有对称关系。
在一实施例中,所述方法还包括:
在发送所述第三路由报文之前,所述第一设备配置所述第一IP集合。
在一实施例中,所述第二目标动作包括将第三实体与所述目标路由信息耦合在一起以及将所述第三实体的第三属性设置为所述第二目标值,其中,所述第三属性为所述第一实体的所述第一属性或所述第二实体的所述第二属性,所述第三实体为所述第三属性所属的所述第二实体或所述第一实体,且所述第三属性为所述第三实体的存储第二指示信息的字段。
在一实施例中,所述第一路由报文为第六路由报文,所述第六路由报文包括:
所述第六路由报文指示通过第一目标隧道到达第四设备之后经过所述第四设备到达目标主机的路由信息;其中,所述第四设备通过同一NVO(Network VirtualizationOverlay,网络虚拟化覆盖)隧道多归入到所述第一设备和接收所述第六路由报文且满足所述第一条件的设备,且所述NVO隧道没有归入第三设备,所述第三设备为接收所述第六路由报文的节点且所述第三设备不满足所述第一条件。
在一实施例中,所述第一路由报文为第六路由报文,所述第六路由报文还包括:
所述第六路由报文指示通过第二目标隧道到达第一设备之后经过所述第一设备到达目标主机的路由信息。
在一实施例中,所述第二目标动作还包括,在将所述第三实体与所述目标路由信息耦合在一起之前,若所述第三实体还没有被创建,则创建所述第三实体。
在一实施例中,所述第二指示信息用于指示从所述第三实体收到的报文不可转发到第四实体,并且所述第四实体与所述第三实体不同。
需要说明的是,在一些实施方式中,所述第四实体为所述第一目标隧道。
在一实施例中,所述第二指示信息用于指示从所述第三实体收到的报文不可转发到所述第三实体。
在一实施例中,所述第一设备根据所述目标路由信息发布第六路由报文包括:
所述第一设备通过所述第六路由报文将所述目标路由信息发布到EVPN网络中,所述第二目标值为第二IP,所述第二IP为所述第一目标隧道的目的IP,所述第五IP的值从所述第一目标隧道的源IP获得,所述第三属性为与所述第六路由报文匹配的隧道的目的IP。
在一实施例中,所述第一设备根据所述目标路由信息发布第六路由报文包括:
所述第一设备通过所述第六路由报文将所述目标路由信息发布到EVPN网络中,所述第五IP的值从所述第一目标隧道的源IP获得,所述第二目标值描述信息缓冲区中的指示信息指示所述第二目标值从所述第一目标值获得,所述第三属性为与所述第六路由报文匹配的VXLAN隧道的源IP。
在一实施例中,所述第六路由报文还携带第四指令指示信息、第三变量指示信息缓冲区和第三目标值描述信息缓冲区,其中,所述第四指令指示信息、所述第三变量指示信息缓冲区和所述第三目标值描述信息缓冲区分别与所述第三指令指示信息、所述第二变量指示信息缓冲区、所述第二目标值缓冲区的作用相对应。
在一实施例中,所述第二实体或所述第一实体为以下至少之一:
与所述第一路由报文匹配的IP隧道的转发表项;
与所述第一路由报文匹配的以太分段标识符(Ethernet Segment Identifier,简称为ESI)转发表项;
与所述第一路由报文匹配的入口复制列表表项。
需要说明的是,所述IP隧道可以是承载VXLAN封装、SRv6封装、Geneve封装、VXLANGPE(Generic Protocol Extension,通用协议扩展)封装、NVGRE(Network Virtualizationusing Generic Routing Encapsulation,采用GRE的网络虚拟化)封装、GRE封装等封装的IP隧道,这些隧道有时也分别被称为VXLAN隧道、SRv6隧道、Geneve隧道、VXLAN GPE隧道、NVGRE隧道和GRE隧道,在数据中心等场景中,这些隧道有时也被称为NVO隧道;所述ESI转发表项可以是基于基于EVPN RT-1路由构建的转发表项,此时所述第一路由报文可以是EVPNRT-1路由报文;所述入口复制列表表项可以是基于EVPN RT-3路由构建的转发表项,此时所述第一路由报文可以是EVPN RT-3路由报文。
在一实施例中,所述第二目标值描述信息缓冲区中包含所述第二目标值或者指示取得所述第二目标值的方式。
在一实施例中,所述第一目标值描述信息缓冲区中包含所述第一目标值或者指示取得所述第一目标值的方式。
在一实施例中,所述第一变量集合中至少包括如下变量中的两变量:{节点RouterID;节点IP地址集合;BGP建链地址;Anycast PE地址集合;NVE接口的Source NVE地址};
需要说明的是,所述BGP建链地址即用于建立BGP会话的TCP会话的源IP地址。
所述两变量为所述第一设备、满足所述第一条件的设备和不满足所述第一条件的设备上的标准化变量。
需要说明的是,所述标准化变量,指的是所述第一设备、满足所述第一条件的设备和不满足所述第一条件的设备上对于指示所述变量的指示信息的格式有一致的定义,或者,所述第一设备、满足所述第一条件的设备和不满足所述第一条件的设备上采用相同的配置接口修改或指示同一所述变量;其中,同一所述变量在不同节点上可以具有不同的值,比如,不同节点的NVE IP的值是不同的,但它们都属于“NVE IP”这一变量,如果若干节点上对如何指示“NVE IP”变量的指示信息的格式有一致的定义,就可以说“NVE IP”变量是这些节点上的标准化变量。
需要说明的是,在一些实施方式中,所述第一变量指示信息缓冲区的指示信息可以是所述标准化变量的指示信息,此时:利用所述第一变量指示信息缓冲区中的指示信息可以改变的性质,每当增加一种新的标准化变量,就增加了一种新的所述第一条件,从而新的所述第一条件可以跟已有的任意一种所述第二目标动作进行组合,分别得到不同的新的处理行为;类似地,利用所述第二变量指示信息缓冲区中的指示信息可以改变的性质,每当增加一种新的标准化变量,就增加了一种新的所述第二目标动作,从而新的所述第二目标动作可以跟已有的任意一种所述第一条件进行组合,分别得到不同的新的处理行为。
通过由所述第一变量指示信息缓冲区和/或所述第二变量指示信息缓冲区提供的这种功能组合能力,只要定义一种新的标准化变量,即可得到多种新的处理行为,降低了新功能开发成本,缩短了新功能的开发时间。需要说明的是,由新增的标准化变量带来的新的所述第一条件和新的所述第二目标动作之间也可以进行功能组合,比如,新增标准化变量“NVE IP”以后,就可以实现当“NVE IP”为7.7.7.7时将“NVE IP”设置为8.8.8.8之类的功能。
在一实施例中,在所述第一设备根据所述目标路由信息发布所述第一路由报文之前,所述方法还包括:
指示发送所述第一路由报文。
在一实施例中,所述第一变量指示信息缓冲区用于通过改变指示信息指示所述第一变量集合中的不同变量,在不改变接收所述第一路由报文的节点上的配置的前提下,使得执行所述第二目标动作的节点发生变化。
在一实施例中,所述第一变量指示信息、所述第一目标值描述信息和所述第二目标动作的描述信息来自于配置信息。
在一实施例中,所述第一变量指示信息缓冲区、所述第一目标值描述信息和所述第二目标动作的描述信息以脚本的形式包含在所述第一路由报文中。
在一实施例中,所述第一变量指示信息缓冲区、所述第一目标值描述信息和所述第二目标动作的描述信息包含在同一TLV(Type,Length,Value)中,所述TLV的TLV类型值为所述第一指示信息。
根据本申请实施例的另一方面,还提供了一种路由报文处理方法,图5是根据本申请实施例的路由报文处理方法的流程图二,如图5所示,该流程包括如下步骤:
步骤S502,接收第一设备根据目标路由信息发布的第一路由报文,其中,所述第一路由报文用于指示接收所述第一路由报文的设备执行第一目标动作,所述第一路由报文中携带第一指令指示信息、第二指令指示信息、第一指示信息、第一目标值描述信息缓冲区、第二目标值描述信息缓冲区、第一变量指示信息缓冲区以及第二目标动作的描述信息;
步骤S504,根据所述第一指示信息指示进行以下至少之一处理:
当满足第一条件,且在执行所述第一目标动作的上下文中执行所述第二目标动作;
当不满足所述第一条件,且在执行所述第一目标动作的上下文中时不执行所述第二目标动作;
其中,所述第一条件为第一变量与第一目标值匹配,所述第一变量为所述第一变量指示信息缓冲区中的指示信息所指示的变量,所述第一目标值为所述第一目标值描述信息缓冲区中的数值或者用所述第一目标值描述信息缓冲区中的指示信息所指示的方法获得的数值,所述第一指令指示信息指示确定所述第一变量指示信息缓冲区和所述第一目标值描述信息缓冲区的位置的方法,所述第二指令指示信息指示获得所述第二目标动作的描述信息的方法。
通过上述步骤S502至S504,可以解决相关技术中发送端如何控制不同接收端对同一路由报文的不同处理的问题,由发送端控制不同接收端对同一路由报文采取不同处理的方式,至少一种处理方式与当前协议规定的处理行为不同。
在一实施例中,所述第一变量指示信息缓冲区用于携带第一类指示信息,所述第一类指示信息为指示第一变量集合中的变量的指示信息,所述第一变量集合中至少包括两个变量。
在一实施例中,所述第二目标动作的描述信息包括第三指令指示信息、第二变量指示信息缓冲区和第二目标值描述信息缓冲区;
其中,所述第三指令指示信息指示所述第二目标动作为将第二变量的值设置为第一缓冲区中的值,所述第二变量为所述第二变量指示信息缓冲区中的指示信息所指示的变量,所述第一缓冲区为所述第二目标值描述信息缓冲区或者根据所述第二目标值描述信息缓冲区中的指示信息所指示的方法确定的缓冲区。
在一实施例中,所述第二变量指示信息缓冲区用于携带第二类指示信息,所述第二类指示信息为指示第二变量集合中的变量的指示信息,所述第二变量集合中至少包括两个变量。所述第一变量指示信息缓冲区用于携带第一类指示信息,所述第一类指示信息为指示第一变量集合中的变量的指示信息,所述第一变量集合中至少包括两个变量。
在一实施例中当所述第一路由报文、所述第一变量、所述第一目标值、所述第二变量满足所述第六条件时,所述方法还包括:
向所述第一设备发送第五路由报文,其中,若为接收所述第三路由报文且满足所述第一条件的设备,所述第五路由报文的下一跳Nexthop为标识设备的IP地址,所述第五路由报文与所述第三路由报文为同类路由报文,且所述第五路由报文不携带与所述第一指示信息、第二指令指示信息、第三指令指示信息对应的指示信息;
所述第五路由报文用于指示所述第一设备执行如下处理:响应于所述第五路由报文的下一跳在所述第一IP值集合中,所述第一设备将第四变量设置为第四目标值,使得所述第四变量与所述第二变量具有对称关系,其中,所述第四变量为所述第一设备对所述第五路由报文执行所述第一目标动作的上下文中的变量。
在一实施例中,所述第二目标动作包括将第三实体与所述目标路由信息耦合在一起以及将所述第三实体的第三属性设置为所述第二目标值,其中,所述第三属性为第一实体的所述第一属性或所述第二实体的所述第二属性,所述第三实体为所述第三属性所属的所述第二实体或所述第一实体,所述第三属性为所述第三实体的存储第二指示信息的字段,所述第二目标值为所述第二指示信息的值。
在一实施例中,所述第二指示信息用于指示从所述第三实体收到的报文不可转发到第四实体,并且所述第四实体与所述第三实体不同。
在一实施例中,所述第二指示信息用于指示从所述第三实体收到的报文不可转发到所述第三实体。
在一实施例中,所述第二实体或所述第一实体为以下至少之一:
与所述第一路由报文匹配的IP隧道的转发表项;
与所述第一路由报文匹配的ESI转发表项;
与所述第一路由报文匹配的入口复制列表表项。
本申请一实施例中,当接收所述第一路由报文的设备为满足第一条件的设备(对应第二设备),且在执行所述第一目标动作的上下文中执行所述第二目标动作;当接收所述第一路由报文的设备为不满足所述第一条件的设备(对应第三设备),且在执行所述第一目标动作的上下文中时不执行所述第二目标动作,包括:
所述第一设备(比如PE1)为满足第三条件(即“通过第二网络区域的第四设备(比如CPE)到达某个主机H的”)的第一路由信息(比如从第四设备学习到的MAC条目)发布第一路由报文(即RT-2路由)。所述第一路由报文中携带所述第二目标值描述信息(标识第四设备的IP值,比如所述第二IP)、第一目标值描述信息(比如第一设备与第二设备的共同IP地址)、所述第一指令指示信息和所述第二目标动作(比如确定隧道目的IP)指示信息。所述第一路由报文用于第二设备和第三设备根据所述第一路由报文执行所述第一目标动作(比如“创建IP隧道”)。其中,所述第二设备为满足第一条件的设备,所述第三设备为不满足第一条件的设备,所述第二设备(比如PE2)根据所述第二目标值描述信息执行所述所述第二目标动作,所述第三设备(比如PE3)在执行所述第一目标动作时不采用所述第二目标值描述信息。其中,所述第一目标值描述信息为判断是否满足所述第一条件时所用的参数信息,所述第一设备也满足所述第一条件。
所述第一设备(比如PE1)为满足第三条件(即“通过第二网络区域的第四设备(比如CPE)到达某个主机H的”)的第一路由信息(比如从第四设备学习到的MAC条目)发布第一路由报文(即RT-2路由)。所述第一路由报文中携带所述第二目标值描述信息(指示获取所述第一目标值的方法指示信息)、第一目标值描述信息(比如第一设备与第二设备的共同IP地址)、所述第一指令指示信息和所述第二目标动作(比如确定与所述第一路由报文对应的NVO隧道的源IP)指示信息。所述第一路由报文用于第二设备和第三设备根据所述第一路由报文执行所述第一目标动作(比如“创建IP隧道”)。其中,所述第二设备为满足第一条件的设备,所述第三设备为不满足第一条件的设备,所述第二设备(比如PE2)根据所述第一目标值(即根据所述第二目标值描述信息中指示的方法获取到的值)执行所述第二目标动作(比如将所述第一目标值确定为所述NVO隧道的源IP),所述第三设备(比如PE3)在执行所述第一目标动作时不采用所述第二目标值描述信息。其中,所述第一目标值描述信息为判断是否满足所述第一条件时所用的参数信息,所述第一设备也满足所述第一条件。
所述第一设备(比如PE1)为满足第四条件(即存在Anycast VTEP(VXLAN TunnelEnd Point,VXLAN隧道端点)地址)的第一路由信息(即EVPN VPLS实例)发布第一路由报文(即RT-3路由)。所述第一路由报文中携带所述第二目标值描述信息(比如“指示BGP建链地址的指示信息”)、第一目标值描述信息(比如所述Anycast VTEP地址的值)、所述第一指令指示信息和所述第二目标动作(比如确定与所述第一路由报文对应的NVO隧道的源IP)指示信息。所述第一路由报文用于第二设备和第三设备根据所述第一路由报文执行所述第一目标动作(比如“创建IP隧道”)。其中,所述第二设备为满足第一条件的设备,所述第三设备为不满足第一条件的设备,所述第二设备(比如PE2)根据所述第二目标值执行所述第二目标动作(比如将所述第二目标值(比如接收所述第一路由报文的BGP会话的BGP建链地址中的本地地址)确定为所述NVO隧道的源IP的值),所述第三设备(比如PE3)在执行所述第一目标动作时不采用所述第二目标值描述信息。其中,所述第一目标值描述信息为判断是否满足所述第一条件时所用的参数信息,所述第一设备也满足所述第一条件。
所述第一设备根据第一路由信息发布第一路由报文。所述第一路由报文中携带第二目标值(即“action-parameters”)、第一目标值(即“matching-parameters”)和第二环境变量指示信息(match类型)和第一动作(action语句)指示信息。所述第一路由报文用于第二设备和第三设备根据所述第一路由报文执行第一处理。其中,所述第二设备为满足第二条件的设备,所述第三设备为不满足第二条件的设备,所述第二设备在进行所述第一处理时根据所述第一参数(即“action-parameters”)信息执行所述第一动作,所述第三设备在执行第一处理时不执行所述第一动作。其中,所述第二条件即所述第二环境变量的值等于所述第一目标值,所述第一设备也满足所述第二条件。
所述第一设备发布第一路由报文。所述第一路由报文中携带第二目标值描述信息(即“matching-parameters”)和第二环境变量指示信息(match类型)和第一动作描述信息(action语句)。所述第一路由报文用于第二设备和第三设备根据所述第一路由报文执行第一处理。其中,所述第二设备为满足第二条件的设备,所述第三设备为不满足第二条件的设备,所述第二设备在进行所述第一处理时执行所述第一动作,所述第三设备在执行第一处理时不执行所述第一动作。其中,所述第二条件即所述第一前置变量的值等于所述第二目标值。在一个实施例中,所述第一动作描述信息即是指示将第一环境变量指示信息的值设置为第一目标值,所述第一后置变量是所述第一处理过程中产生的变量,所述第一路由报文中还携带第一后置变量指示信息和第一目标值描述信息。其中,所述第二目标值描述信息包含所述第二目标值或者指示取得所述第二目标值的方法,所述第一目标值描述信息包含所述第一目标值或者指示取得所述第一目标值的方法。
进一步的,在发送所述第一路由报文之前,还需要,发送端和接收端对所述第一前置变量、第二目标值、第一动作描述信息的取值范围和含义有统一的认识。其中,在一些实施例中,所述第一前置变量取值范围包括{节点Router ID;节点IP地址集合;BGP(BorderGateway Protocol,边界网关协议)建链地址;Anycast PE地址集合;NVE接口的Source NVE地址},所述第一动作包括{Deny:丢弃所述第一路由报文;Set:将第X后置变量的值设置为第Y目标值},其中,所述第X后置变量的取值范围包括{IP隧道的源IP;隧道的目的IP;隧道上的Bypass标志;隧道上的水平分割标志;与所述第一路由报文对应的入口复制列表表项的Bypass标志;与所述第一路由报文对应的入口复制列表表项的水平分割标志}。
在一实施例中,所述第一前置变量指示信息、第二目标值描述信息和第一动作描述信息以脚本的形式包含在所述第一路由报文中,在一些实施例中,所述脚本来自于配置信息。
在另一实施例中,所述第一前置变量、第二目标值和第一动作描述信息以TLV的形式包含在所述第一路由报文中。
示例1
图6是根据本申请实施例的数据报文处理的组网结构示意图一,如图6所示,CPE、PE1和PE2以及CPE的CE组成下级网络(第二网络),PE1、PE2和PE3及其CE组成上级网络(第一网络),其中,PE1和PE2为所述下级网络和所述上级网络的边界节点,PE1和PE2对所述下级网络使用同一个虚地址作为NVE接口的地址,即Anycast PE地址,这样从CPE侧只感知到一个远端的NVE(Network Virtualization Edge,网络虚拟化边缘)接口,并与该虚地址建立VXLAN隧道。CPE上行的报文任选PE1或PE2都可以到达PE3或双归接入的CE3(CustomerEdge,客户边缘)(图1中的CE3在图2中仍然存在,只是图2中未示出),但是网络中也可能存在单归接入的CE设备,例如:CE1和CE2。CPE上行的报文到达其中一个PE后可能还需绕行到另一台PE设备才能到达单归接入的CE设备,所以在双活的PE1和PE2之间需要一个绕行通道。在PE1和PE2之间部署EVPN邻居,并分别配置不同的地址,即Bypass VTEP地址,用于在PE1和PE2之间创建Bypass VXLAN隧道作为绕行通道。
设定CPE地址为4.4.4.4(即第二IP值),PE1/PE2的Anycast地址为1.1.1.1(即第一IP值),PE1的实地址为100.1.1.1,PE2的实地址为200.2.2.2,PE3的实地址为150.3.3.3,实地址也是BGP建链地址、BGP Router ID。
其中,在CPE上配置静态VXLAN隧道<SIP=4.4.4.4,DIP=1.1.1.1>,在PE1上配置静态VXLAN隧道T14(<SIP=1.1.1.1,DIP=4.4.4.4>),在PE2上也配置静态VXLAN隧道T24(<SIP=1.1.1.1,DIP=4.4.4.4>),在PE1、PE2和PE3上开启EVPN,其它VXLAN隧道均通过EVPN控制面自动创建,包括PE2到PE1的VXLAN隧道T21,PE3到PE1的VXLAN隧道T31。
图7是根据本申请实施例的Programming TLV的架构示意图,如图7所示,PE1和PE2通过CPE侧的上行报文学习到的CPE侧的主机H1的MAC地址信息M1,所述M1是从所述静态VXLAN隧道T14上学到,从而得知所述主机H1可以先通过隧道T14的目的IP地址4.4.4.4到达CPE节点然后再经CPE节点到达所述H1主机,然后通过MAC/IP路由报文R1将所述M1发布到EVPN网络中,其中携带Programming TLV,所述Programming TLV中通过Action ParametersSub-TLV携带所述T14隧道的目的IP(即4.4.4.4,第二IP),通过Matching Parameters Sub-TLV携带所述T14隧道的源IP(即1.1.1.1,第一IP,同时也是PE1和PE2的Anycast PE地址),通过Matching Sub-TLV指示路由报文R1的接收端节点将其Anycast PE地址与MatchingParameters中携带的数据相匹配,并且若匹配成功(称为Matching Sub-TLV命中)则执行Action Sub-TLV对应的动作;通过Action Sub-TLV指示路由报文R1的接收端节点若Matching Sub-TLV命中,则在匹配VXLAN隧道时将Action Parameters Sub-TLV中携带的IP地址作为其为R1匹配的VXLAN隧道的目的IP。其中,所述Programming TLV是一种新的TLV。
PE2节点收到所述路由报文R1,根据其Matching Sub-TLV的指示将PE2上配置的Anycast PE地址与Matching Parameters Sub-TLV中的IP地址1.1.1.1相匹配,发现匹配成功,然后,根据Action Sub-TLV的指示将Action Parameters Sub-TLV中的IP地址4.4.4.4地址作为与R1相匹配的VXLAN隧道的目的IP地址。
PE3节点收到所述路由报文R1,根据其Matching Sub-TLV的指示发现本地没有配置Anycast PE地址,因而无法与Matching Parameters Sub-TLV中的IP地址进行匹配,于是匹配失败,因而忽略Action Sub-TLV的指示和Action Parameters Sub-TLV中的数据,从而创建一条源IP为150.3.3.3目的IP为100.1.1.1的VXLAN隧道T31。
值得注意的是,PE1所发布的所述RT-2路由R1的Nexthop为PE1的实地址(即100.1.1.1)。
第一指令指示信息(即Maching Sub-TLV的类型编码)指示Maching Sub-TLV的Value部分为所述第一变量指示信息缓冲区且Maching Parameters Sub-TLV的Value部分为第一目标值描述信息缓冲区。
第二指令指示信息(即Action Sub-TLV的类型编码)指示Action Sub-TLV的Value部分为所述第二变量指示信息缓冲区且Action Parameters Sub-TLV的Value部分为第二目标值描述信息缓冲区。
所述第一指示信息(即Programming TLV的类型编码)指示所述第二设备(即PE2)在执行所述第一目标动作时根据所述第二目标值执行所述第二目标动作,所述第一指示信息指示所述第三设备(即PE3)在执行所述第一目标动作时不根据所述第二目标值执行所述第二目标动作,所述第二设备为满足所述第一条件的设备,所述第三设备为不满足所述第一条件的设备,所述第一条件为所述第一变量等于所述第一目标值。其中,所述第二目标动作即给所述第二变量(即与R1相匹配的VXLAN隧道的目的IP)赋值,所述根据所述第二目标值(即4.4.4.4)执行所述第二目标动作即用所述第二目标值给所述第二变量赋值。
由于PE1和PE2所发布的RT-2路由的Nexthop为实地址而不是Anycast PE地址,PE1和PE2所发布的与CE3(参见图1,图2中未示出)对应RT-1路由的Nexthop也是实地址而不需要是Anycast PE地址,从而避免了当CE3双归链路中的一条链路失效时部分流量不得不经由PE1-PE2之间的VXLAN隧道绕行的问题。
示例2
除特殊说明之处以外,本实施例与示例1相同。
与示例1不同,本实施例用Action Sub-TLV指示所述路由报文R1的接收端节点将在所述Action Parameters Sub-TLV中携带的IP地址作为与R1相匹配的VXLAN隧道的目的IP,同时,用Action Parameters Sub-TLV指示与R1相匹配的VXLAN隧道的源IP在MatchingParameters Sub-TLV中。
值得注意的是,本实施例中,Action Parameters Sub-TLV中并没有携带任何IP地址,仅仅是携带了一个如何获取相应IP地址的指示信息。
示例3
除特殊说明之处以外,本实施例与示例1和示例2的叠加相同。
与示例1和示例2不同,本实施例中,所述路由报文R1(即第一路由报文)中同时包含两个Programming TLV,其方法为:其中一个Programming TLV(记为TLV1)与示例1中相同,另一个Programming TLV(记为TLV2)与示例2中相同。
值得注意的是,所述TLV1与所述TLV2的Matching Sub-TLV相同,MatchingParameters Sub-TLV也相同。
所述第一路由报文还携带第四指令指示信息(TLV2的Action Sub-TLV的类型编码)、第三变量指示信息缓冲区(TLV2的Action Sub-TLV的值域)和第三目标值描述信息缓冲区(TLV2的Action Parameters Sub-TLV的值域),其中,所述第四指令指示信息、所述第三变量指示信息缓冲区和所述第三目标值描述信息缓冲区分别与所述第三指令指示信息(TLV1的Action Sub-TLV的类型编码)、所述第二变量指示信息缓冲区(TLV1的Action Sub-TLV的值域)、所述第二目标值缓冲区(TLV1的Action Parameters Sub-TLV的值域)的作用相同。
需要说明的是,虽然这两个缓冲区的作用相同,但因为缓冲区中的内容是不同数据,从而两者对应的第二目标动作的行为也不同。
示例4
除特殊说明之处以外,本实施例与示例3相同。
与示例3不同,本实施例用一个Programming TLV(记为TLV3)取代示例3中的两个Programming TLV,其方法为:所述TLV3的Matching Sub-TLV与所述TLV1(或TLV2)的Matching TLV相同,所述TLV3的Matching Parameters Sub-TLV与所述TLV1(或TLV2)的Matching Parameters Sub-TLV相同;并且,通过在Action Parameters Sub-TLV中同时携带IPt和第九指示信息,使得根据所述TLV3的Action Parameters Sub-TLV可以同时获取到两个IP地址,即IPs和IPt,其中,所述第九指示信息指示在所述Matching Parameters Sub-TLV中获取所述IPs;并且,用所述TLV3的Action Sub-TLV指示所述路由报文R1的接收端节点用所述IPs作为与R1相匹配的VXLAN隧道的源IP,用所述IPt作为与R1相匹配的VXLAN隧道的目的IP。
示例5
除特殊说明之处以外,本实施例与示例4相同。
与示例4不同,本实施例不携带所述Programming TLV,而是携带Consignor PETLV,其方法为:在所述委托方运营商边缘Consignor PE TLV的Value部分携带所述IPt,用所述R1的Nexthop携带所述IPs,并且,通过所述Consignor PE TLV的TLV Type(即类型编码)指示对所述IPs进行与“所述TLV3中的Matching Sub-TLV指示对所述TLV3中携带的IPs进行的匹配”相同的匹配,同时,通过所述Consignor TLV的TLV Type还指示所述路由报文R1的接收端节点用所述IPs作为与R1相匹配的VXLAN隧道的源IP,用所述IPt作为与R1相匹配的VXLAN隧道的目的IP。
示例6
除特殊说明之处以外,本实施例与示例2相同。
与示例2不同,其中,PE1和PE2之间互相发送RT3路由R3,其中的Nexthop分别为PE1和PE2的实地址,其中的ORIP也分别是PE1和PE2的实地址,其中的PMSI Tunnel扩展团体属性中的Tunnel ID也分别是PE1和PE2的实地址。
与示例2不同,本实施例在RT-3路由报文R3中携带所述Programming TLV(记为TLV4),所述TLV4的Matching Sub-TLV、Matching Parameters Sub-TLV和Action Sub-TLV均与所述TLV2相同。
与示例2不同,本实施例在Action Parameters Sub-TLV中携带第十指示信息和第十一指示信息,并用所述第十指示信息指示所述路由报文R3的接收端节点上与所述路由报文R3匹配的VXLAN隧道(对应于所述第三实体)的源IP为所述接收端节点上的BGP建链地址(记为IPs2,即所述200.2.2.2),并且用所述第十一指示信息指示将所述VXLAN隧道标记为Bypass VXLAN隧道(对应于将所述第三实体的存储第三指示信息的字段设置为第三指示信息的值)。其中,所述第十指示信息和所述第十一指示信息可以是同一数据,所述第十一指示信息指示所述第三指示信息。
需要说明的是,PE2在收到所述路由报文R3以后,按照所述Programming TLV的指示,就会根据所述路由报文R3创建VXLAN隧道T21b,所述VXLAN隧道T21b的源IP为所述IPs2(即所述200.2.2.2),目的IP为所述RT-3路由的PMSI Tunnel扩展团体属性中的Tunnel ID(即所述100.1.1.1),并且,所述隧道T21b被标记为Bypass隧道。需要说明的是,二元组<第十指示信息,第十一指示信息>即对应于所述第二目标值描述信息,二元组<与所述路由报文R3匹配的VXLAN隧道的源IP,与所述路由报文R3匹配的VXLAN隧道的存储所述第三指示信息的字段(即所述Bypass标记)>即对应于所述第二变量,二元组<IPs2,所述第三指示信息的值>即对应于所述第二目标值。
需要说明的是,由于PE1和PE2没有将Anycast PE地址作为所述RT-3路由的ORIP(或PMSI Tunnel属性中的Tunnel ID),这就避免了PE3将它们发布的RT-3路由在入口复制列表中作为同一个成员看待,从而避免了来自PE3的广播、未知单播与组播(Broadcast,Unknown Unicast and Multicas,简称为BUM)报文不得不通过Bypass隧道绕行。
示例7
除特殊说明之处以外,本实施例与示例5和示例6的叠加相同。
需要说明的是,在本实施例中,所述Consignor PE TLV和所述TLV4分别在RT-2路由和RT-3路由中携带并且被处理。
需要说明的是,通过所述RT-3路由创建的VXLAN隧道T21b被标记为Bypass隧道。
示例8
除特殊说明之处以外,本实施例与示例7相同。
与示例7不同,在本实施例中,所述Consignor PE TLV虽然仍然存在,但其相应指示作用被脚本1代替,仅作为携带IP地址的工具。
与示例7不同,在本实施例中,所述TLV4被脚本2代替。
脚本1:
match anycast-vtep-address bgp-nexthop
set vxlan-tunnel-source bgp-nexthop
set vxlan-tunnel-destination consignor-pe-ip
第一指示信息即携带此脚本的TLV的类型码,此脚本的脚本语言至少有两种语句,match语句和set语句,且match语句和set语句各有两个参数。
第一指令指示信息(即脚本语言的match关键字)指示match语句的第一个参数(即脚本语言的关键字anycast-vtep-address)位置(即存储anycast-vtep-address的数据块)为所述第一变量指示信息缓冲区且match语句的第二个参数(即脚本语言的关键字vxlan-tunnel-destination)位置(即存储vxlan-tunnel-destination的数据块)为所述第一目标值描述信息缓冲区;
第二指令指示信息(即脚本语言的set关键字)指示set语句的第一个参数(即脚本语言的关键字bgp-nexthop)位置(即存储bgp-nexthop的数据块)为所述第二变量指示信息缓冲区且match语句的第二个参数(即脚本语言的关键字consignor-pe-ip)位置(即存储consignor-pe-ip的数据块)为所述第二目标值描述信息缓冲区;
所述第一指示信息指示所述第二设备在执行所述第一目标动作时根据所述第二目标值执行所述第二目标动作,所述第一指示信息指示所述第三设备在执行所述第一目标动作时不根据所述第二目标值执行所述第二目标动作,所述第二设备为满足所述第一条件的设备,所述第三设备为不满足所述第一条件的设备,所述第一条件为所述第一变量等于所述第一目标值。
所述第一设备(PE1)发布第一路由报文。所述第一路由报文中携带第二目标值描述信息(bgp-nexthop)和第一变量指示信息(anycast-vtep-address)和第一动作描述信息(set vxlan-tunnel-destination consignor-pe-ip)。所述第一路由报文用于第二设备(PE2)和第三设备(PE3)根据所述第一路由报文执行第一目标动作(创建VXLAN隧道)。其中,所述第二设备为满足第一条件(match anycast-vtep-address bgp-nexthop)的设备,所述第三设备为不满足第一条件的设备,所述第二设备在进行所述第一目标动作时执行所述第二目标动作(set vxlan-tunnel-destination consignor-pe-ip),所述第三设备在执行第一处理时不执行所述第二目标动作。其中,所述第一条件即所述第一变量(第一路由报文接收端的Anycast PE地址)的值等于所述第一目标值(第一路由报文的Nexthop)。在本实施例中,所述第二目标动作描述信息即是指示将第二变量(待创建VXLAN隧道的目的IP)的值设置为第二目标值(Consignor PE TLV的值),所述第二变量是所述第一目标动作(即创建VXLAN隧道)过程中产生的变量,所述第一路由报文中还携带第二变量指示信息(vxlan-tunnel-destination)和第二目标值描述信息(consignor-pe-ip)。其中,所述第一目标值描述信息指示取得所述第一目标值的方法(从第一路由报文的Nexthop中取得),所述第二目标值描述信息指示取得所述第二目标值的方法(从Consignor PE TLV中取得)。
脚本2:
match anycast-vtep-address bgp-nexthop
set vxlan-tunnel-source bgp-update-source
set vxlan-tunnel-flags bypass-tunnel
所述第一设备(PE1)发布第一路由报文。所述第一路由报文中携带第一目标值描述信息(bgp-nexthop)和第一前置变量(即所述第一变量)指示信息(anycast-vtep-address)和第一动作(即所述第二目标动作)描述信息(set vxlan-tunnel-source bgp-update-source)。所述第一路由报文用于第二设备(PE2)和第三设备(PE3)根据所述第一路由报文执行第一处理(即所述第一目标动作,在本示例中即创建VXLAN隧道)。其中,所述第二设备为满足第二条件(相当于所述第一条件,在本示例中即match anycast-vtep-address bgp-nexthop)的设备,所述第三设备为不满足第二条件的设备,所述第二设备在进行所述第一处理时执行所述第一动作(将待创建的VXLAN隧道的源IP设置为接收所述第一路由报文的节点的BGP建链地址),所述第三设备在执行第一处理时不执行所述第一动作。其中,所述第二条件即所述第一前置变量(第一路由报文接收端的Anycast PE地址)的值等于所述第一目标值(所述第一路由报文的Nexthop)。在一个实施例中,所述第一动作描述信息即是指示将第一后置变量(即所述第二变量,在本示例中即待创建VXLAN隧道的源IP)的值设置为第一目标值(接收所述第一路由报文的节点的BGP建链地址的值),所述第一后置变量是所述第一处理(即创建VXLAN隧道)过程中产生的变量,所述第一路由报文中还携带第一后置变量指示信息(即所述第二变量指示信息,在本实施例中即vxlan-tunnel-source)和第二目标值描述信息(bgp-update-source)。其中,所述第一目标值描述信息包含所述第一目标值或者指示取得所述第一目标值的方法(从第一路由报文的Nexthop中取得),所述第二目标值描述信息包含所述第二目标值或者指示取得所述第二目标值的方法(从接收所述第一路由报文的节点的BGP建链地址中取得)。
在发送所述第一路由报文之前,还需要,发送端和接收端对所述第一前置变量、第二目标值、第一动作及其描述信息(或指示信息)的取值范围和含义有统一的认识。其中,在一些实施例中,所述第一前置变量取值范围包括{节点Router ID;节点IP地址集合;BGP建链地址;Anycast PE地址集合;NVE接口的Source NVE地址},所述第一动作包括{Deny:丢弃所述第一路由报文;Set:将第X后置变量的值设置为第Y目标值},其中,所述第X后置变量的取值范围包括{IP隧道的源IP;隧道的目的IP;隧道上的Bypass标志;隧道上的水平分割标志;与所述第一路由报文对应的入口复制列表表项的Bypass标志;与所述第一路由报文对应的入口复制列表表项的水平分割标志}。
需要说明的是,当所述第一前置变量为一个集合时,所述第二目标值与所述第一前置变量匹配指的是所述第二目标值在所述集合中,其中,所述第一前置变量是执行所述第一处理之前就存在的变量。
示例9
图8是根据本申请实施例的数据报文处理的组网结构示意图二,如图8所示,是个EVPN网络,其中CE3在ES3上,当CE1节点失效时,PE1和PE2上ES3都会感知到该失效,并进行ESI链路保护ELP,也是说,PE1和PE2都试图通过对方绕到到CE3,于是造成数据报文在PE1和PE2之间乒乓,也就是出现环路,为了破除此环路,可以将PE1和PE2之间的隧道标记为水平分割隧道,也就是说,从该隧道接收的数据报文不能再从该隧道发出。
在PE1和PE2上相互将对方的NVE IP配置为自己的保护者IP,然后PE1和PE2向对方发送EVPN路由时分别携带一个Programming TLV,这两个Programming TLV分别是TLV5和TLV6。
其中,TLV5的Matching Sub-TLV指示用接收端的保护者IP集合(其中包括PE1的NVE IP)匹配Matching Parameters Sub-TLV中的值,Action Sub-TLV指示如果所述匹配成立,执行Action Parameters Sub-TLV中的动作,其中,Matching Parameters Sub-TLV的值为PE1的NVE IP,所述Action Parameters Sub-TLV指示在根据所述EVPN路由创建的VXLAN隧道T21c上打上“水平分割”标记。
其中,TLV6的Matching Sub-TLV指示用接收端的保护者IP集合(对应上述的第二IP值集合,其中包括PE2的NVE IP)匹配Matching Parameters Sub-TLV中的值,ActionSub-TLV指示如果所述匹配成立,执行Action Parameters Sub-TLV中的动作,其中,Matching Parameters Sub-TLV的值为PE2的NVE IP,所述Action Parameters Sub-TLV指示在根据所述EVPN路由创建的VXLAN隧道T12c上打上“水平分割”标记(对应上述的第四指示信息)。
需要说明的是,通过给所述VXLAN隧道T21c和T12c标记为“水平分割”隧道,使得PE1/PE2不会将对方发来的数据报文再发给对方,从而破除了所述环路。
需要说明的是,PE1(对应所述第一设备)和PE2(对应所述第二设备)只是相互将对方的NVE IP配置为自己的保护者IP(通过这种形式,PE1和PE2互相记录了对方的IP),PE1的保护者IP并不是PE1拥有的IP(因而也不是PE1与PE2共同的IP),PE2的保护者IP并不是PE2拥有的IP(因而也不是PE1与PE2共同的IP)。
示例10
除特殊说明之处以外,本实施例与示例9相同。
与示例9不同,在本实施例中,PE2不需要将PE1配置为其保护者,只有PE1需要将PE2配置为其保护者。
与示例9不同,在本实施例中,PE2不会给PE1发送Programming TLV,只有PE1会给PE2发送Programming TLV(记为TLV7)。所述TLV7的Matching Sub-TLV指示用接收端的NVEIP匹配Matching Parameters Sub-TLV中的值,Action Sub-TLV指示如果所述匹配成立,执行Action Parameters Sub-TLV中的动作,其中,Matching Parameters Sub-TLV的值为PE1的保护者IP组成的集合(对应上述的第一IP值集合,其中包括PE2的NVE IP),所述ActionParameters Sub-TLV指示在根据所述EVPN路由创建的VXLAN隧道T21c上打上“水平分割”标记(对应上述的第二指示信息)。
与示例9不同,在本实施例中,当PE1收到PE2发来的EVPN路由,虽然其中没有携带Programming TLV,PE1发现该路由的Next hop为自己的保护者IP集合中的元素(即该Nexthop匹配该集合),PE1也会将根据该路由创建的VXLAN隧道T12c打上“水平分割”标记。
通过以上方法,PE2和PE1分别会给所述VXLAN隧道T21c和T12c标记为“水平分割”隧道,使得PE1/PE2不会将对方发来的数据报文再发给对方,从而破除了所述环路。
在本实施例中,只要PE2是支持本发明的Programming TLV的节点,既不需要升级PE2节点,也不需要改变PE2节点上的配置,就破除了所述环路。
根据本申请的另一个实施例,还提供了一种路由报文处理装置,应用于所述第一设备,图9是根据本申请实施例的路由报文处理装置的框图一,如图9所示,包括:
获取模块92,用于获取目标路由信息;
发布模块94,用于根据所述目标路由信息发布第一路由报文,其中,所述第一路由报文用于指示接收所述第一路由报文的设备执行第一目标动作,所述第一路由报文中携带第一指令指示信息、第二指令指示信息、第一指示信息、第一目标值描述信息缓冲区、第二目标值描述信息缓冲区、第一变量指示信息缓冲区以及第二目标动作的描述信息,所述第一指示信息指示接收所述第一路由报文的设备进行以下至少之一处理:
当接收所述第一路由报文的设备为满足第一条件的设备,且在执行所述第一目标动作的上下文中执行所述第二目标动作;
当接收所述第一路由报文的设备为不满足所述第一条件的设备,且在执行所述第一目标动作的上下文中时不执行所述第二目标动作;
其中,所述第一条件为第一变量与第一目标值匹配,所述第一变量为所述第一变量指示信息缓冲区中的指示信息所指示的变量,所述第一目标值为所述第一目标值描述信息缓冲区中的数值或者用所述第一目标值描述信息缓冲区中的指示信息所指示的方法获得的数值,所述第一指令指示信息指示确定所述第一变量指示信息缓冲区和所述第一目标值描述信息缓冲区的位置的方法,所述第二指令指示信息指示获得所述第二目标动作的描述信息的方法。
在一实施例中,所述第一变量指示信息缓冲区用于携带第一类指示信息,所述第一类指示信息为指示第一变量集合中的变量的指示信息,所述第一变量集合中至少包括两个变量。
在一实施例中,所述第二目标动作的描述信息包括第三指令指示信息、第二变量指示信息缓冲区和第二目标值描述信息缓冲区;
其中,所述第三指令指示信息指示所述第二目标动作为将第二变量的值设置为第一缓冲区中的值,所述第二变量为所述第二变量指示信息缓冲区中的指示信息所指示的变量,所述第一缓冲区为所述第二目标值描述信息缓冲区或者根据所述第二目标值描述信息缓冲区中的指示信息所指示的方法确定的缓冲区。
在一实施例中,所述第二变量指示信息缓冲区用于携带第二类指示信息,所述第二类指示信息为指示第二变量集合中的变量的指示信息,所述第二变量集合中至少包括两个变量。
在一实施例中,所述第一路由报文、所述第一变量、所述第一目标值、所述第二变量满足第五条件、第六条件、第七条件三者之一;其中,
所述第五条件为:所述第一路由报文为第二路由报文,所述第一变量为接收所述第二路由报文的节点与其它节点之间的共同IP地址的集合,所述第一目标值为第五IP,所述第五IP为所述第一设备与满足所述第一条件的设备共同的IP地址,所述第二变量为与所述第二路由报文匹配的第一实体的第一属性;
所述第六条件为:所述第一路由报文为第三路由报文,所述第一变量为接收所述第三路由报文的节点上标识该节点的IP地址,所述第一目标值为第一IP值集合,所述第一IP值集合为所述第一设备上配置的IP地址值集合,所述第二变量为与所述第三路由报文匹配的第二实体的第二属性,其中,所述第一IP值集合中至少包括标识满足所述第一条件的设备的IP地址,且所述第一IP值集合中不包括标识不满足所述第一条件的设备的IP地址;
所述第七条件为:所述第一路由报文为第四路由报文,所述第一变量为接收所述第四路由报文的节点上的第二IP值集合,所述第一目标值为标识所述第一设备的IP地址的值,所述第二IP值集合为所述接收所述第四路由报文的节点上配置的IP地址值集合,所述第二变量为与所述第四路由报文匹配的第二实体的第二属性,其中,所述第二IP值集合中至少包括标识所述第一设备的IP地址,且不满足所述第一条件的设备的第三IP地址值集合中不包括标识所述第一设备的IP地址,所述第三IP地址集合为不满足所述第一条件的设备上配置的IP地址值集合,且所述第三IP地址集合与所述第二IP地址集合通过同样的配置接口配置。
在一实施例中,当所述第一路由报文、所述第一变量、所述第一目标值、所述第二变量满足所述第六条件时,所述方法还包括:
所述第一设备从第二设备接收第五路由报文,其中,所述第二设备为接收所述第三路由报文且满足所述第一条件的设备,所述第五路由报文的下一跳Nexthop为标识所述第二设备的IP地址,所述第五路由报文与所述第三路由报文为同类路由报文,且所述第五路由报文不携带与所述第一指示信息、第二指令指示信息、第三指令指示信息对应的指示信息;
响应于所述第五路由报文的下一跳在所述第一IP值集合中,所述第一设备将第四变量设置为第四目标值,其中,所述第四变量为对所述第五路由报文执行所述第一目标动作的上下文中的变量,使得所述第四变量与所述第二变量具有对称关系。
在一实施例中,所述第二目标动作包括将第三实体与所述目标路由信息耦合在一起以及将所述第三实体的第三属性设置为所述第二目标值,其中,所述第三属性为所述第一实体的所述第一属性或所述第二实体的所述第二属性,所述第三实体为所述第三属性所属的所述第二实体或所述第一实体,且所述第三属性为所述第三实体的存储第二指示信息的字段。在一实施例中,所述第二指示信息为第三指示信息或第四指示信息,其中,所述第三指示信息用于指示从所述第三实体收到的报文不可转发到第四实体,并且所述第四实体与所述第三实体不同,所述第四指示信息用于指示从所述第三实体收到的报文不可转发到所述第三实体。
在一实施例中,所述第一路由报文为第六路由报文,所述第六路由报文包括:
所述第六路由报文指示通过第一目标隧道到达第四设备之后经过所述第四设备到达目标主机的路由信息;其中,所述第四设备通过同一NVO隧道多归入到所述第一设备和接收所述第六路由报文且满足所述第一条件的设备,且所述NVO隧道没有归入第三设备,所述第三设备为接收所述第六路由报文的节点且所述第三设备不满足所述第一条件。
在一实施例中,所述第一变量指示信息缓冲区用于通过改变指示信息指示所述第一变量集合中的不同变量,在不改变接收所述第一路由报文的节点上的配置的前提下,使得执行所述第二目标动作的节点发生变化。
在一实施例中,所述装置还包括:
配置模块,用于在发送所述第三路由报文之前,配置所述第一IP值集合。
在一实施例中,所述第二目标动作为执行所述第一目标动作的上下文中的动作。
在一实施例中,所述第一变量与所述第一目标值匹配包括:
若所述第一变量与所述第一目标值都不是集合,则所述第一变量等于所述第一目标值;
若所述第一变量与所述第一目标值的至少之一为集合,则所述第一变量与所述第一目标值存在包含关系。
在一实施例中,所述第二目标动作的描述信息指示所述第二目标动作为不执行所述第一目标动作。
在一实施例中,所述第二变量集合中至少包括如下变量中的两变量:{IP隧道的源IP;隧道的目的IP;隧道上的Bypass标志;隧道上的水平分割标志;与所述第一路由报文对应的入口复制列表表项的Bypass标志;与所述第一路由报文对应的入口复制列表表项的水平分割标志};
所述两变量为所述第一设备、满足所述第一条件的设备和不满足所述第一条件的设备上的标准化变量。
在一实施例中,所述第二目标动作还包括,在将所述第三实体与所述目标路由信息耦合在一起之前,若所述第三实体还没有被创建,则创建所述第三实体。
在一实施例中,所述分布模块,还用于所述第一设备通过所述第六路由报文将所述目标路由信息发布到EVPN网络中,所述第二目标值为第二IP,所述第二IP为所述第一目标隧道的目的IP,所述第五IP的值从所述第一目标隧道的源IP获得,所述第三属性为与所述第六路由报文匹配的隧道的目的IP。
在一实施例中,所述分布模块,还用于
所述第一设备通过所述第六路由报文将所述目标路由信息发布到EVPN网络中,所述第五IP的值从所述第一目标隧道的源IP获得,所述第二目标值描述信息缓冲区中的指示信息指示所述第二目标值从所述第一目标值获得,所述第三属性为与所述第六路由报文匹配的VXLAN隧道的源IP。
在一实施例中,所述第六路由报文还携带第四指令指示信息、第三变量指示信息缓冲区和第三目标值描述信息缓冲区,其中,所述第四指令指示信息、所述第三变量指示信息缓冲区和所述第三目标值描述信息缓冲区分别与所述第三指令指示信息、所述第二变量指示信息缓冲区、所述第二目标值缓冲区的作用相对应。
在一实施例中,所述第二实体或所述第一实体为以下至少之一:
与所述第一路由报文匹配的IP隧道的转发表项;
与所述第一路由报文匹配的ESI转发表项;
与所述第一路由报文匹配的入口复制列表表项。
在一实施例中,所述第二目标值描述信息缓冲区中包含所述第二目标值或者指示取得所述第二目标值的方式。
在一实施例中,所述第一目标值描述信息缓冲区中包含所述第一目标值或者指示取得所述第一目标值的方式。
在一实施例中,所述第一变量集合中至少包括如下变量中的两变量:{节点RouterID;节点IP地址集合;BGP建链地址;Anycast PE地址集合;NVE接口的Source NVE地址};
所述两变量为所述第一设备、满足所述第一条件的设备和不满足所述第一条件的设备上的标准化变量。
在一实施例中,所述装置还包括:
指示模块,用于指示发送所述第一路由报文。
在一实施例中,所述第一变量指示信息、所述第一目标值描述信息和所述第二目标动作的描述信息来自于配置信息。
在一实施例中,所述第一变量指示信息缓冲区、所述第一目标值描述信息和所述第二目标动作的描述信息以脚本的形式包含在所述第一路由报文中。
在一实施例中,所述第一变量指示信息缓冲区、所述第一目标值描述信息和所述第二目标动作的描述信息包含在同一TLV中,所述TLV的TLV类型值为所述第一指示信息。
根据本申请的另一个实施例,还提供了一种路由报文处理装置,图10是根据本申请实施例的路由报文处理装置的框图二,如图10所示,包括:
接收模块102,用于接收第一设备根据目标路由信息发布的第一路由报文,其中,所述第一路由报文用于指示接收所述第一路由报文的设备执行第一目标动作,所述第一路由报文中携带第一指令指示信息、第二指令指示信息、第一指示信息、第一目标值描述信息缓冲区、第二目标值描述信息缓冲区、第一变量指示信息缓冲区以及第二目标动作的描述信息;
处理模块104,用于根据所述第一指示信息指示进行以下至少之一处理:
当满足第一条件,且在执行所述第一目标动作的上下文中执行所述第二目标动作;
当不满足所述第一条件,且在执行所述第一目标动作的上下文中时不执行所述第二目标动作;
其中,所述第一条件为第一变量与第一目标值匹配,所述第一变量为所述第一变量指示信息缓冲区中的指示信息所指示的变量,所述第一目标值为所述第一目标值描述信息缓冲区中的数值或者用所述第一目标值描述信息缓冲区中的指示信息所指示的方法获得的数值,所述第一指令指示信息指示确定所述第一变量指示信息缓冲区和所述第一目标值描述信息缓冲区的位置的方法,所述第二指令指示信息指示获得所述第二目标动作的描述信息的方法。
在一实施例中,所述第二目标动作的描述信息包括第三指令指示信息、第二变量指示信息缓冲区和第二目标值描述信息缓冲区;
其中,所述第三指令指示信息指示所述第二目标动作为将第二变量的值设置为第一缓冲区中的值,所述第二变量为所述第二变量指示信息缓冲区中的指示信息所指示的变量,所述第一缓冲区为所述第二目标值描述信息缓冲区或者根据所述第二目标值描述信息缓冲区中的指示信息所指示的方法确定的缓冲区。
在一实施例中,所述第一变量指示信息缓冲区用于携带第一类指示信息,所述第一类指示信息为指示第一变量集合中的变量的指示信息,所述第一变量集合中至少包括两个变量。
所述第二变量指示信息缓冲区用于携带第二类指示信息,所述第二类指示信息为指示第二变量集合中的变量的指示信息,所述第二变量集合中至少包括两个变量。
在一实施例中,当所述第一路由报文、所述第一变量、所述第一目标值、所述第二变量满足所述第六条件时,所述方法还包括:
向所述第一设备发送第五路由报文,其中,若为接收所述第三路由报文且满足所述第一条件的设备,所述第五路由报文的下一跳Nexthop为标识设备的IP地址,所述第五路由报文与所述第三路由报文为同类路由报文,且所述第五路由报文不携带与所述第一指示信息、第二指令指示信息、第三指令指示信息对应的指示信息;
所述第五路由报文用于指示所述第一设备执行如下处理:响应于所述第五路由报文的下一跳在所述第一IP值集合中,所述第一设备将第四变量设置为第四目标值,其中,所述第四变量为所述第一设备对所述第五路由报文执行所述第一目标动作的上下文中的变量,使得所述第四变量与所述第二变量具有对称关系。
在一实施例中,所述第二目标动作包括将第三实体与所述目标路由信息耦合在一起以及将所述第三实体的第三属性设置为所述第二目标值,其中,所述第三属性为第一实体的第一属性或第二实体的第二属性,所述第三实体为所述第三属性所属的所述第二实体或所述第一实体,所述第三属性为所述第三实体的存储第二指示信息的字段,所述第二目标值为所述第二指示信息的值。
在一实施例中,所述第二指示信息用于指示从所述第三实体收到的报文不可转发到第四实体,并且所述第四实体与所述第三实体不同,或者,
所述第二指示信息用于指示从所述第三实体收到的报文不可转发到所述第三实体。
在一实施例中,所述第二实体或所述第一实体为以下至少之一:
与所述第一路由报文匹配的IP隧道的转发表项;
与所述第一路由报文匹配的ESI转发表项;
与所述第一路由报文匹配的入口复制列表表项。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本申请的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (21)

1.一种路由报文处理方法,其特征在于,包括:
第一设备获取目标路由信息;
所述第一设备根据所述目标路由信息发布第一路由报文,其中,所述第一路由报文用于指示接收所述第一路由报文的设备执行第一目标动作,所述第一路由报文中携带第一指令指示信息、第二指令指示信息、第一指示信息、第一目标值描述信息缓冲区、第二目标值描述信息缓冲区、第一变量指示信息缓冲区以及第二目标动作的描述信息,所述第一指示信息指示接收所述第一路由报文的设备进行以下至少之一处理:
当接收所述第一路由报文的设备为满足第一条件的设备,且在执行所述第一目标动作的上下文中执行所述第二目标动作;
当接收所述第一路由报文的设备为不满足所述第一条件的设备,且在执行所述第一目标动作的上下文中时不执行所述第二目标动作;
其中,所述第一条件为第一变量与第一目标值匹配,所述第一变量为所述第一变量指示信息缓冲区中的指示信息所指示的变量,所述第一目标值为所述第一目标值描述信息缓冲区中的数值或者用所述第一目标值描述信息缓冲区中的指示信息所指示的方法获得的数值,所述第一指令指示信息指示确定所述第一变量指示信息缓冲区和所述第一目标值描述信息缓冲区的位置的方法,所述第二指令指示信息指示获得所述第二目标动作的描述信息的方法。
2.根据权利要求1所述的方法,其特征在于,
所述第一变量指示信息缓冲区用于携带第一类指示信息,所述第一类指示信息为指示第一变量集合中的变量的指示信息,所述第一变量集合中至少包括两个变量。
3.根据权利要求1所述的方法,其特征在于,
所述第二目标动作的描述信息包括第三指令指示信息、第二变量指示信息缓冲区和第二目标值描述信息缓冲区;
其中,所述第三指令指示信息指示所述第二目标动作为将第二变量的值设置为第一缓冲区中的值,所述第二变量为所述第二变量指示信息缓冲区中的指示信息所指示的变量,所述第一缓冲区为所述第二目标值描述信息缓冲区或者根据所述第二目标值描述信息缓冲区中的指示信息所指示的方法确定的缓冲区。
4.根据权利要求3所述的方法,其特征在于,
所述第二变量指示信息缓冲区用于携带第二类指示信息,所述第二类指示信息为指示第二变量集合中的变量的指示信息,所述第二变量集合中至少包括两个变量。
5.根据权利要求3所述的方法,其特征在于,
所述第一路由报文、所述第一变量、所述第一目标值、所述第二变量满足第五条件、第六条件、第七条件三者之一;其中,
所述第五条件为:所述第一路由报文为第二路由报文,所述第一变量为接收所述第二路由报文的节点与其它节点之间的共同IP地址的集合,所述第一目标值为第五IP,所述第五IP为所述第一设备与满足所述第一条件的设备共同的IP地址,所述第二变量为与所述第二路由报文匹配的第一实体的第一属性;
所述第六条件为:所述第一路由报文为第三路由报文,所述第一变量为接收所述第三路由报文的节点上标识该节点的IP地址,所述第一目标值为第一IP值集合,所述第一IP值集合为所述第一设备上配置的IP地址值集合,所述第二变量为与所述第三路由报文匹配的第二实体的第二属性,其中,所述第一IP值集合中至少包括标识满足所述第一条件的设备的IP地址,且所述第一IP值集合中不包括标识不满足所述第一条件的设备的IP地址;
所述第七条件为:所述第一路由报文为第四路由报文,所述第一变量为接收所述第四路由报文的节点上的第二IP值集合,所述第一目标值为标识所述第一设备的IP地址的值,所述第二IP值集合为所述接收所述第四路由报文的节点上配置的IP地址值集合,所述第二变量为与所述第四路由报文匹配的第二实体的第二属性,其中,所述第二IP值集合中至少包括标识所述第一设备的IP地址,且不满足所述第一条件的设备的第三IP地址值集合中不包括标识所述第一设备的IP地址,所述第三IP地址集合为不满足所述第一条件的设备上配置的IP地址值集合,且所述第三IP地址集合与所述第二IP地址集合通过同样的配置接口配置。
6.根据权利要求5所述的方法,其特征在于,当所述第一路由报文、所述第一变量、所述第一目标值、所述第二变量满足所述第六条件时,所述方法还包括:
所述第一设备从第二设备接收第五路由报文,其中,所述第二设备为接收所述第三路由报文且满足所述第一条件的设备,所述第五路由报文的下一跳Nexthop为标识所述第二设备的IP地址,所述第五路由报文与所述第三路由报文为同类路由报文,且所述第五路由报文不携带与所述第一指示信息、第二指令指示信息、第三指令指示信息对应的指示信息;
响应于所述第五路由报文的下一跳在所述第一IP值集合中,所述第一设备将第四变量设置为第四目标值,使得所述第四变量与所述第二变量具有对称关系,其中,所述第四变量为对所述第五路由报文执行所述第一目标动作的上下文中的变量。
7.根据权利要求5至6中任意一项所述的方法,其特征在于,
所述第二目标动作包括将第三实体与所述目标路由信息耦合在一起以及将所述第三实体的第三属性设置为所述第二目标值,其中,所述第三属性为所述第一实体的所述第一属性或所述第二实体的所述第二属性,所述第三实体为所述第三属性所属的所述第二实体或所述第一实体,且所述第三属性为所述第三实体的存储第二指示信息的字段。
8.根据权利要求7所述的方法,其特征在于,
所述第二指示信息为第三指示信息或第四指示信息,其中,所述第三指示信息用于指示从所述第三实体收到的报文不可转发到第四实体,并且所述第四实体与所述第三实体不同,所述第四指示信息用于指示从所述第三实体收到的报文不可转发到所述第三实体。
9.根据权利要求1所述的方法,其特征在于,
所述第一路由报文为第六路由报文,所述第六路由报文包括:
所述第六路由报文指示通过第一目标隧道到达第四设备之后经过所述第四设备到达目标主机的路由信息;其中,所述第四设备通过同一NVO隧道多归入到所述第一设备和接收所述第六路由报文且满足所述第一条件的设备,且所述NVO隧道没有归入第三设备,所述第三设备为接收所述第六路由报文的节点且所述第三设备不满足所述第一条件。
10.根据权利要求1至6、8中任意一项所述的方法,其特征在于,
所述第一变量指示信息缓冲区用于通过改变指示信息指示所述第一变量集合中的不同变量,在不改变接收所述第一路由报文的节点上的配置的前提下,使得执行所述第二目标动作的节点发生变化。
11.一种路由报文处理方法,其特征在于,包括:
接收第一设备根据目标路由信息发布的第一路由报文,其中,所述第一路由报文用于指示接收所述第一路由报文的设备执行第一目标动作,所述第一路由报文中携带第一指令指示信息、第二指令指示信息、第一指示信息、第一目标值描述信息缓冲区、第二目标值描述信息缓冲区、第一变量指示信息缓冲区以及第二目标动作的描述信息;
根据所述第一指示信息指示进行以下至少之一处理:
当满足第一条件,且在执行所述第一目标动作的上下文中执行所述第二目标动作;
当不满足所述第一条件,且在执行所述第一目标动作的上下文中时不执行所述第二目标动作;
其中,所述第一条件为第一变量与第一目标值匹配,所述第一变量为所述第一变量指示信息缓冲区中的指示信息所指示的变量,所述第一目标值为所述第一目标值描述信息缓冲区中的数值或者用所述第一目标值描述信息缓冲区中的指示信息所指示的方法获得的数值,所述第一指令指示信息指示确定所述第一变量指示信息缓冲区和所述第一目标值描述信息缓冲区的位置的方法,所述第二指令指示信息指示获得所述第二目标动作的描述信息的方法。
12.根据权利要求11所述的方法,其特征在于,
所述第二目标动作的描述信息包括第三指令指示信息、第二变量指示信息缓冲区和第二目标值描述信息缓冲区;
其中,所述第三指令指示信息指示所述第二目标动作为将第二变量的值设置为第一缓冲区中的值,所述第二变量为所述第二变量指示信息缓冲区中的指示信息所指示的变量,所述第一缓冲区为所述第二目标值描述信息缓冲区或者根据所述第二目标值描述信息缓冲区中的指示信息所指示的方法确定的缓冲区。
13.根据权利要求12所述的方法,其特征在于,
所述第一变量指示信息缓冲区用于携带第一类指示信息,所述第一类指示信息为指示第一变量集合中的变量的指示信息,所述第一变量集合中至少包括两个变量;
所述第二变量指示信息缓冲区用于携带第二类指示信息,所述第二类指示信息为指示第二变量集合中的变量的指示信息,所述第二变量集合中至少包括两个变量。
14.根据权利要求12或13所述的方法,其特征在于,当所述第一路由报文、所述第一变量、所述第一目标值、所述第二变量满足第六条件时,所述方法还包括:
向所述第一设备发送第五路由报文,其中,若为接收第三路由报文且满足所述第一条件的设备,所述第五路由报文的下一跳Nexthop为标识设备的IP地址,所述第五路由报文与所述第三路由报文为同类路由报文,且所述第五路由报文不携带与所述第一指示信息、第二指令指示信息、第三指令指示信息对应的指示信息;
所述第五路由报文用于指示所述第一设备执行如下处理:响应于所述第五路由报文的下一跳在第一IP值集合中,所述第一设备将第四变量设置为第四目标值,其中,所述第四变量为所述第一设备对所述第五路由报文执行所述第一目标动作的上下文中的变量,使得所述第四变量与所述第二变量具有对称关系。
15.根据权利要求12所述的方法,其特征在于,
所述第二目标动作包括将第三实体与所述目标路由信息耦合在一起以及将所述第三实体的第三属性设置为所述第二目标值,其中,所述第三属性为第一实体的第一属性或第二实体的第二属性,所述第三实体为所述第三属性所属的所述第二实体或所述第一实体,所述第三属性为所述第三实体的存储第二指示信息的字段,所述第二目标值为所述第二指示信息的值。
16.根据权利要求15所述的方法,其特征在于,
所述第二指示信息用于指示从所述第三实体收到的报文不可转发到第四实体,并且所述第四实体与所述第三实体不同,或者,
所述第二指示信息用于指示从所述第三实体收到的报文不可转发到所述第三实体。
17.根据权利要求15或16所述的方法,其特征在于,
所述第二实体或所述第一实体为以下至少之一:
与所述第一路由报文匹配的IP隧道的转发表项;
与所述第一路由报文匹配的ESI转发表项;
与所述第一路由报文匹配的入口复制列表表项。
18.一种路由报文处理装置,其特征在于,应用于所述第一设备,包括:
获取模块,用于获取目标路由信息;
发布模块,用于根据所述目标路由信息发布第一路由报文,其中,所述第一路由报文用于指示接收所述第一路由报文的设备执行第一目标动作,所述第一路由报文中携带第一指令指示信息、第二指令指示信息、第一指示信息、第一目标值描述信息缓冲区、第二目标值描述信息缓冲区、第一变量指示信息缓冲区以及第二目标动作的描述信息,所述第一指示信息指示接收所述第一路由报文的设备进行以下至少之一处理:
当接收所述第一路由报文的设备为满足第一条件的设备,且在执行所述第一目标动作的上下文中执行所述第二目标动作;
当接收所述第一路由报文的设备为不满足所述第一条件的设备,且在执行所述第一目标动作的上下文中时不执行所述第二目标动作;
其中,所述第一条件为第一变量与第一目标值匹配,所述第一变量为所述第一变量指示信息缓冲区中的指示信息所指示的变量,所述第一目标值为所述第一目标值描述信息缓冲区中的数值或者用所述第一目标值描述信息缓冲区中的指示信息所指示的方法获得的数值,所述第一指令指示信息指示确定所述第一变量指示信息缓冲区和所述第一目标值描述信息缓冲区的位置的方法,所述第二指令指示信息指示获得所述第二目标动作的描述信息的方法。
19.一种路由报文处理装置,其特征在于,包括:
接收模块,用于接收第一设备根据目标路由信息发布的第一路由报文,其中,所述第一路由报文用于指示接收所述第一路由报文的设备执行第一目标动作,所述第一路由报文中携带第一指令指示信息、第二指令指示信息、第一指示信息、第一目标值描述信息缓冲区、第二目标值描述信息缓冲区、第一变量指示信息缓冲区以及第二目标动作的描述信息;
处理模块,用于根据所述第一指示信息指示进行以下至少之一处理:
当满足第一条件,且在执行所述第一目标动作的上下文中执行所述第二目标动作;
当不满足所述第一条件,且在执行所述第一目标动作的上下文中时不执行所述第二目标动作;
其中,所述第一条件为第一变量与第一目标值匹配,所述第一变量为所述第一变量指示信息缓冲区中的指示信息所指示的变量,所述第一目标值为所述第一目标值描述信息缓冲区中的数值或者用所述第一目标值描述信息缓冲区中的指示信息所指示的方法获得的数值,所述第一指令指示信息指示确定所述第一变量指示信息缓冲区和所述第一目标值描述信息缓冲区的位置的方法,所述第二指令指示信息指示获得所述第二目标动作的描述信息的方法。
20.一种计算机可读的存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至10、11至17任一项中所述的方法。
21.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至10、11至17任一项中所述的方法。
CN202111204435.4A 2021-10-15 2021-10-15 路由报文处理方法、装置、存储介质及电子装置 Pending CN115996157A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202111204435.4A CN115996157A (zh) 2021-10-15 2021-10-15 路由报文处理方法、装置、存储介质及电子装置
PCT/CN2022/115496 WO2023061069A1 (zh) 2021-10-15 2022-08-29 路由报文处理方法、装置、存储介质及电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111204435.4A CN115996157A (zh) 2021-10-15 2021-10-15 路由报文处理方法、装置、存储介质及电子装置

Publications (1)

Publication Number Publication Date
CN115996157A true CN115996157A (zh) 2023-04-21

Family

ID=85988159

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111204435.4A Pending CN115996157A (zh) 2021-10-15 2021-10-15 路由报文处理方法、装置、存储介质及电子装置

Country Status (2)

Country Link
CN (1) CN115996157A (zh)
WO (1) WO2023061069A1 (zh)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103139189B (zh) * 2011-12-05 2017-03-22 京信通信系统(中国)有限公司 一种IPSec隧道共用方法、系统及设备
US10263913B2 (en) * 2015-04-08 2019-04-16 Oracle International Corporation Tunnel consolidation for real-time communications
EP3148151B1 (en) * 2015-09-23 2021-03-31 Vodafone GmbH Method, computer program product and network system for establishing a data communication
WO2018063276A1 (en) * 2016-09-30 2018-04-05 Intel Corporation U-plane path selection and reselection for ue to ue communication
CN112929274A (zh) * 2017-03-14 2021-06-08 华为技术有限公司 一种处理路由的方法、设备及系统
CN107294711B (zh) * 2017-07-11 2021-03-30 国网辽宁省电力有限公司 一种基于vxlan技术的电力信息内网报文加密发布方法
CN112583714B (zh) * 2019-09-30 2022-10-18 华为技术有限公司 路由控制方法和装置
CN111277481B (zh) * 2020-01-09 2021-09-24 奇安信科技集团股份有限公司 一种建立vpn隧道的方法、装置、设备及存储介质

Also Published As

Publication number Publication date
WO2023061069A1 (zh) 2023-04-20

Similar Documents

Publication Publication Date Title
US10270843B2 (en) Chaining service zones by way of route re-origination
CN109873760B (zh) 处理路由的方法和装置、以及数据传输的方法和装置
EP3065342B1 (en) Update of mac routes in evpn single-active topology
EP3070895B1 (en) Encapsulation method and system for flow identifier
US9225641B2 (en) Communication between hetrogenous networks
US20180367456A1 (en) System and method to facilitate packet forwarding using stateful bit index explicit replication (bier) in a networking environment
EP3151485A1 (en) Egress node protection in evpn all-active topology
CN107968750B (zh) 报文传输方法、装置及节点
US9860169B1 (en) Neighbor resolution for remote EVPN hosts in IPV6 EVPN environment
US20200396162A1 (en) Service function chain sfc-based communication method, and apparatus
EP3210347B1 (en) Pre-built match-action tables
EP3188422B1 (en) Traffic black holing avoidance and fast convergence for active-active pbb-evpn redundancy
CN110798403B (zh) 通信方法、通信设备和通信系统
CN105162704A (zh) Overlay网络中组播复制的方法及装置
EP3032782B1 (en) Packet transmission method and apparatus
EP3767900A1 (en) Method for discovering forwarding path, and related device thereof
CN105262686B (zh) 一种网络连通性验证方法和装置
US20190334814A1 (en) Path establishment method and device, and network node
CN115996157A (zh) 路由报文处理方法、装置、存储介质及电子装置
CN112910771B (zh) 连接建立方法、装置、设备和存储介质
CN114422415A (zh) 在分段路由中的出口节点处理流
US12003414B1 (en) Traffic handling for EVPN E-tree
US10924395B2 (en) Seamless multipoint label distribution protocol (mLDP) transport over a bit index explicit replication (BIER) core
CN115733643A (zh) Mac学习方法,装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication