隧道报文处理方法、装置、电子设备和存储介质与流程

未命名 09-09 阅读:115 评论:0


1.本技术涉及网络通信领域,具体而言,涉及一种隧道报文处理方法、装置、电子设备和存储介质。


背景技术:

2.随着网络的不断发展,隧道技术广泛应用于各网络中。隧道技术可以使两个独立的网络互通。在初次构建隧道网络、网络配置变动或隧道处于不稳定震荡过程中,隧道的两端的状态会在down和up之间切换。隧道两端的交换设备各自处理隧道的up状态,因此,会存在隧道一端的交换设备处于up状态,隧道另一端的交换设备处于down状态。此时,处于up状态的交换设备会向隧道另一端的交换设备发送隧道封装报文。
3.正常来说,接收到隧道封装报文的交换设备需要对隧道封装报文进行解封装,然后根据报文的实际目的ip地址进行报文转发。然而,由于接收到隧道封装报文的交换设备处于down状态,无法对隧道封装报文进行解封装,报文被当做普通三层报文转发。同时,由于隧道封装报文外层目的ip地址为处于down状态的交换设备的ip地址(由隧道协议规定),按照交换设备的默认逻辑,会认为该报文需要处于down状态的交换设备处理,因此,该报文会被发送至交换设备的cpu处理。由于报文的实际目的ip不是交换设备,最终cpu会将该报文丢弃。在隧道封装报文数量较多时,大量的隧道封装报文送到cpu处理,会冲击cpu,使cpu占用率升高,影响交换设备的正常工作。


技术实现要素:

4.本技术实施例的目的在于提供一种隧道报文处理方法、装置、电子设备和存储介质,用以解决隧道封装报文冲击交换设备的cpu的问题。
5.第一方面,本技术提供一种隧道报文处理方法,应用于设置隧道的交换设备,所述方法包括:接收对端发送的隧道封装报文;确定未保存对应所述隧道的解封装表,根据所述隧道封装报文的外层信息查询预设的acl表项的匹配条件,以使所述外层信息命中所述匹配条件,通过所述acl表项中的执行动作丢弃所述报文。
6.在本技术实施例中,接收对端发送的隧道封装报文,判断自身是否保存有隧道的解封装表。确定未保存对应隧道的解封装表时,根据隧道封装报文的外层信息查询预设的acl表项的匹配条件,以使外层信息命中匹配条件,通过acl表项中的执行动作丢弃报文。通过上述方式,在交换设备未保存有隧道的解封装表时丢弃隧道封装报文,通过acl表项中的执行动作丢弃隧道封装报文,避免将无法被解封装的隧道封装报文送到cpu上进行处理,从而减轻对cpu的冲击。此外,相比于通过在隧道两端的交换设备上设置私有协议解决隧道封装报文冲击cpu的问题,通过acl表项丢弃不能解封装的隧道封装报文,从而减轻对cpu的冲击,无需保证隧道两端交换设备均支持对应的私有协议,还可以减轻隧道两端交换设备的耦合度。
7.在可选的实施方式中,所述预设的acl表项的匹配条件为所述隧道封装报文的报
文头包括隧道标识信息和所述隧道封装报文的目的ip地址为所述交换设备的隧道ip地址。
8.在可选的实施方式中,所述方法还包括:确定保存有对应所述隧道的解封装表,根据所述隧道封装报文的内层信息查询预设的acl表项的匹配条件,以使所述内层信息无法命中所述匹配条件,根据所述解封装表对所述隧道封装报文进行解封装,并转发所述隧道封装报文。
9.在本技术实施例中,通过上述方式,在交换设备保存有隧道的封装报文时,对隧道封装报文进行解封装,并转发所述隧道封装报文,从而保证隧道封装报文的正常转发。
10.在可选的实施方式中,所述隧道为vxlan隧道、ip in ip隧道或gre隧道中的一种。
11.在可选的实施方式中,所述隧道为vxlan隧道,所述隧道标识信息为所述隧道报文的协议号和目的端口号,所述交换设备的隧道ip地址为所述交换设备在所述vxlan隧道中的ip地址。
12.第二方面,本技术提供一种隧道报文处理装置,配置于设置隧道的交换设备,所述装置包括:接收模块,用于接收对端发送的隧道封装报文;丢弃模块,用于确定未保存对应隧道的解封装表,根据所述隧道封装报文的外层信息查询预设的acl表项的匹配条件,以使所述外层信息命中所述匹配条件,通过所述acl表项中的执行动作丢弃所述报文。
13.在可选的实施方式中,所述预设的acl表项的匹配条件为所述隧道封装报文的报文头包括隧道标识信息和所述隧道封装报文的目的ip地址为所述交换设备的隧道ip地址。
14.在可选的实施方式中,所述装置还包括:转发模块,用于确定保存有对应所述隧道的解封装表,根据所述隧道封装报文的内层信息查询所述预设的acl表项的匹配条件,以使所述内层信息无法命中所述匹配条件,根据所述解封装表对所述隧道封装报文进行解封装,并转发所述隧道封装报文。
15.在可选的实施方式中,所述隧道为vxlan隧道、ip in ip隧道或gre隧道中的一种。
16.在可选的实施方式中,所述隧道为vxlan隧道,所述隧道标识信息为所述隧道报文的协议号和目的端口号,所述交换设备的隧道ip地址为所述交换设备在所述vxlan隧道中的ip地址。
17.第三方面,本技术提供一种电子设备,包括:处理器、存储器和总线;所述处理器和所述存储器通过所述总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如前述实施方式任一项所述的方法。
18.第四方面,本技术提供一种存储介质,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被计算机读取并运行时,执行如前述实施方式任一项所述的方法。
附图说明
19.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
20.图1为本技术实施例提供的一种隧道报文处理方法的流程图;
21.图2为本技术实施例提供的一种隧道报文处理装置的结构框图;
22.图3为本技术实施例提供的一种电子设备的结构示意图。
23.图标:200-隧道报文处理装置;201-接收模块;202-丢弃模块;300-电子设备;301-处理器;302-通信接口;303-存储器;304-总线。
具体实施方式
24.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
25.请参阅图1,图1为本技术实施例提供的一种隧道报文处理方法的流程图,本技术实施例提供的隧道报文处理方法应用于设置隧道的交换设备,该隧道报文处理方法,可以包括如下步骤:
26.步骤101:接收对端发送的隧道封装报文。
27.步骤102:确定未保存对应隧道的解封装表,根据隧道封装报文的外层信息查询预设的acl表项的匹配条件,以使外层信息命中匹配条件,通过acl表项中的执行动作丢弃报文。
28.下面对上述方法进行详细介绍。
29.步骤101:接收对端发送的隧道封装报文。
30.本技术实施例中,两台交换设备之间建立隧道。一台交换设备接收对端(隧道对端的交换设备)发送的隧道封装报文。需要说明的是,本技术实施例中,两台交换设备无需配置私有协议保证隧道两端均处于up状态。
31.具体地,两台交换设备之间的隧道可以为vxlan(virtual extensible local area network,虚拟扩展局域网)隧道、ip in ip隧道或gre隧道中的一种。其中,ip in ip隧道主要是指基于ip地址封装的隧道,包括ipv4 in ipv6、ipv6 in ipv4、ipv4 in ipv4和ipv6in ipv6。本技术对两台交换设备基于何种隧道协议建立隧道不作具体限定。
32.步骤102:确定未保存对应隧道的解封装表,根据隧道封装报文的外层信息查询预设的acl表项的匹配条件,以使外层信息命中匹配条件,通过acl表项中的执行动作丢弃报文。
33.本技术实施例中,交换设备接收对端发送的隧道封装报文后,判断自身是否保存有隧道的解封装表。
34.交换设备中预设有,acl(access control lists,访问控制列表)表项,在交换设备没有保存有隧道的封装表时,则采用隧道封装报文的外层信息去查询预设的acl表项的匹配条件。该acl表项的执行动作为丢弃满足匹配条件的报文。在隧道封装报文的外层信息命中匹配条件时,交换设备会根据acl表项的执行动作将该隧道封装报文丢弃。本技术实施例是在交换设备未保存有隧道的解封装表时丢弃隧道封装报文,避免无法被解封装的隧道封装报文送到cpu上进行处理,从而减轻对cpu的冲击。此外,由于acl表项为交换设备的硬件资源,根据acl表项进行隧道封装报文丢弃时,该隧道封装报文不会发送到交换设备的cpu,因此,通过acl表项进行隧道封装报文丢弃不会对cpu造成处理压力。
35.具体地,预设的acl表项的匹配条件为隧道封装报文的报文头包括隧道标识信息和隧道封装报文的目的ip地址为交换设备的隧道ip地址。
36.隧道封装报文的外层信息为通过隧道进行报文转发时,由隧道协议在原本报文的报文头前封装的隧道报文头。该隧道报文头中会携带隧道标识信息,用于表征隧道的类型。
根据隧道协议可知,隧道报文头中的目的ip地址为接收该隧道封装报文的交换设备的隧道ip地址。因此,根据隧道封装报文的外层信息查询预设的acl表项的匹配条件时,隧道封装报文的外层信息会命中预设的acl表项的匹配条件,从而根据预设的acl表项的执行动作将该隧道封装报文丢弃。
37.进一步地,作为一种可选的实施方式,本技术提供的隧道报文处理方法还包括:
38.确定保存有对应隧道的解封装表,根据隧道封装报文的内层信息查询预设的acl表项的匹配条件,以使内层信息无法命中匹配条件时,根据解封装表对隧道封装报文进行解封装,并转发隧道封装报文。
39.本技术是实施例中,在交换设备保存有隧道封装表时,则采用隧道封装报文的内层信息去查询预设的acl表项的匹配条件。需要说明的是,隧道封装报文的内层信息为在根据隧道协议封装隧道报文头之前的报文的原报文头。报文原本的报文头中不会包括隧道标识信息,该报文头中的目的ip地址为实际接收该报文的某台网络设备的ip地址。因此,根据隧道封装报文的内层信息查询预设的acl表项的匹配条件时,隧道封装报文的内层信息不会命中预设的acl表项的匹配条件,则不会根据预设的acl表项的执行动作将该隧道封装报文丢弃。由于此时交换设备保存有隧道的解封装表,交换设备可以根据隧道的解封装表对该隧道封装报文进行解封装,解封装后确定出内层信息中实际接收该报文的某台网络设备的ip地址,基于该ip地址转发该报文。需要说明的是,关于根据隧道的解封装表对该隧道封装报文进行解封装并转发该隧道封装报文的具体实施方式可以参考现有技术,在此不过多赘述。
40.以下结合一个具体示例,对上述步骤进行具体介绍。
41.作为一种可选的实施方式,两台交换设备之间的隧道为vxlan隧道,隧道标识信息为隧道报文的协议号和目的端口号,交换设备的隧道ip地址为交换设备在vxlan隧道中的ip地址。根据vxlan隧道协议可知,vxlan隧道的协议号为udp,目的端口号为4789。因此,在本实施例中,预设的acl表项的匹配条件为:1、隧道封装报文的报文头的协议号为udp且目的端口号为4789;2、隧道封装报文的目的ip地址为交换设备的隧道ip地址。
42.在交换设备未处于up状态时,交换设备中未保存有隧道的解封装表,当接收到隧道对端的交换设备发送的隧道封装报文时,判断交换设备中未保存有隧道的解封装表,则根据隧道封装报文的外层信息查询预设的acl表项的匹配条件。此时,隧道封装报文的外层信息会命中预设的acl表项的匹配条件,该隧道封装报文被丢弃。
43.在交换设备处于up状态时,交换设备中保存有隧道的解封装表,当接收到隧道对端的交换设备发送的隧道封装报文时,判断交换设备中保存有隧道的解封装表,则根据隧道封装报文的内层信息查询预设的acl表项的匹配条件。此时,隧道封装报文的内层信息不会命中预设的acl表项的匹配条件,交换设备根据隧道的解封装表对该隧道封装报文进行解封装并转发该隧道封装报文。
44.需要说明的是,由于两台交换设备之间可能会建立几十条或几百条隧道,针对每种类型的隧道,只需要下发一条预设的acl表项,即可实现在交换设备未保存该种隧道的隧道解封表时,将该种隧道类型对应的隧道封装报文丢弃,避免该种隧道类型对应的隧道封装报文冲击cpu,解决隧道封装报文冲击交换设备的cpu的问题,减轻交换设备的cpu的处理压力,提高整个网络的稳定性和可靠性。
45.综上所述,本技术实施例提供一种隧道报文处理装置,接收对端发送的隧道封装报文,判断自身是否保存有隧道的解封装表。确定未保存有对应隧道的解封装表时,根据隧道封装报文的外层信息查询预设的acl表项的匹配条件,以使外层信息命中匹配条件,通过acl表项中的执行动作丢弃报文。通过上述方式,在交换设备未保存有隧道的解封装表时丢弃隧道封装报文,通过acl表项中的执行动作丢弃隧道封装报文,避免将无法被解封装的隧道封装报文送到cpu上进行处理,从而减轻对cpu的冲击。此外,相比于通过在隧道两端的交换设备上设置私有协议解决隧道封装报文冲击cpu的问题,通过acl表项丢弃不能解封装的隧道封装报文,从而减轻对cpu的冲击,无需保证隧道两端交换设备均支持对应的私有协议,还可以减轻隧道两端交换设备的耦合度。
46.基于同一发明构思,本技术实施例中还提供一种隧道报文处理装置。请参阅图2,图2为本技术实施例提供的一种隧道报文处理装置的结构框图,该隧道报文处理装置200配置于设置隧道的交换设备,该隧道报文处理装置200可以包括:
47.接收模块201,用于接收对端发送的隧道封装报文;
48.丢弃模块202,用于确定未保存对应所述隧道的解封装表,根据所述隧道封装报文的外层信息查询预设的acl表项的匹配条件,以使所述外层信息命中所述匹配条件,通过所述acl表项中的执行动作丢弃所述报文。
49.在可选的实施方式中,所述预设的acl表项的匹配条件为所述隧道封装报文的报文头包括隧道标识信息和所述隧道封装报文的目的ip地址为所述交换设备的隧道ip地址。
50.在可选的实施方式中,所述装置还包括:转发模块,用于确定保存有对应所述隧道的解封装表,根据所述隧道封装报文的内层信息查询预设的acl表项的匹配条件,以使所述内层信息无法命中所述匹配条件,根据所述解封装表对所述隧道封装报文进行解封装,并转发所述隧道封装报文。
51.在可选的实施方式中,所述隧道为vxlan隧道、ip in ip隧道或gre隧道中的一种。
52.在可选的实施方式中,所述隧道为vxlan隧道,所述隧道标识信息为所述隧道报文的协议号和目的端口号,所述交换设备的隧道ip地址为所述交换设备在所述vxlan隧道中的ip地址。
53.请参阅图3,图3为本技术实施例的电子设备300的结构示意图,该电子设备300包括:至少一个处理器301,至少一个通信接口302,至少一个存储器303和至少一个总线304。其中,总线304用于实现这些组件直接的连接通信,通信接口302用于与其他节点设备进行信令或数据的通信,存储器303存储有处理器301可执行的机器可读指令。当电子设备300运行时,处理器301与存储器303之间通过总线304通信,机器可读指令被处理器301调用时执行如上述隧道报文处理方法。
54.处理器301可以是一种集成电路芯片,具有信号处理能力。上述处理器301可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其可以实现或者执行本技术实施例中公开的各种方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
55.存储器303可以包括但不限于随机存取存储器(random access memory,ram),只读存储器(read only memory,rom),可编程只读存储器(programmable read-only memory,prom),可擦除只读存储器(erasable programmable read-only memory,eprom),电可擦除只读存储器(electric erasable programmable read-only memory,eeprom)等。
56.可以理解,图3所示的结构仅为示意,电子设备300还可包括比图3中所示更多或者更少的组件,或者具有与图3所示不同的配置。图3中所示的各组件可以采用硬件、软件或其组合实现。于本技术实施例中,电子设备300可以是,但不限于台式机、笔记本电脑、智能手机、智能穿戴设备、车载设备等实体设备,还可以是虚拟机等虚拟设备。另外,电子设备300也不一定是单台设备,还可以是多台设备的组合,例如服务器集群,等等。
57.此外,本技术实施例还提供一种计算机存储介质,该计算机存储介质上存储有计算机程序,该计算机程序被计算机运行时,执行如上述实施例中隧道报文处理方法的步骤。
58.在本技术所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
59.另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
60.再者,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
61.需要说明的是,功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
62.在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
63.以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。

技术特征:
1.一种隧道报文处理方法,其特征在于,应用于设置隧道的交换设备,所述方法包括:接收对端发送的隧道封装报文;确定未保存对应所述隧道的解封装表,根据所述隧道封装报文的外层信息查询预设的acl表项的匹配条件,以使所述外层信息命中所述匹配条件,通过所述acl表项中的执行动作丢弃所述报文。2.根据权利要求1所述的方法,其特征在于,所述预设的acl表项的匹配条件为所述隧道解封报文的报文头包括隧道标识信息和所述隧道封装报文的目的ip地址为所述交换设备的隧道ip地址。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:确定保存有对应所述隧道的解封装表,根据所述隧道封装报文的内层信息查询所述预设的acl表项的匹配条件,以使所述内层信息无法命中所述匹配条件,根据所述解封装表对所述隧道封装报文进行解封装,并转发所述隧道封装报文。4.根据权利要求1-3任一项所述的方法,其特征在于,所述隧道为vxlan隧道、ip in ip隧道或gre隧道中的一种。5.根据权利要求4所述的方法,其特征在于,所述隧道为vxlan隧道,所述隧道标识信息为所述隧道报文的协议号和目的端口号,所述交换设备的隧道ip地址为所述交换设备在所述vxlan隧道中的ip地址。6.一种隧道报文处理装置,其特征在于,配置于设置隧道的交换设备,所述装置包括:接收模块,用于接收对端发送的隧道封装报文;丢弃模块,用于确定未保存对应所述隧道的解封装表,根据所述隧道封装报文的外层信息查询预设的acl表项的匹配条件,以使所述外层信息命中所述匹配条件,通过所述acl表项中的执行动作丢弃所述报文。7.根据权利要求6所述的装置,其特征在于,所述预设的acl表项的匹配条件为所述隧道封装报文的报文头包括隧道标识信息和所述隧道封装报文的目的ip地址为所述交换设备的隧道ip地址。8.根据权利要求6所述的装置,其特征在于,所述装置还包括:转发模块,用于确定保存有对应所述隧道的解封装表,根据所述隧道封装报文的内层信息查询所述预设的acl表项的匹配条件,以使所述内层信息无法命中所述匹配条件,根据所述解封装表对所述隧道封装报文进行解封装,并转发所述隧道封装报文。9.一种电子设备,其特征在于,包括:处理器、存储器和总线;所述处理器和所述存储器通过所述总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1-5任一项所述的方法。10.一种存储介质,其特征在于,所述存储介质上存储有计算机程序指令,所述计算机程序指令被计算机读取并运行时,执行如权利要求1-5任一项所述的方法。

技术总结
本申请提供一种隧道报文处理方法、装置、电子设备和存储介质,所述隧道报文处理方法应用于设置隧道的交换设备,所述方法包括:接收对端发送的隧道封装报文;确定未保存对应所述隧道的解封装表,根据所述隧道封装报文的外层信息查询预设的ACL表项的匹配条件,以使所述外层信息命中所述匹配条件,通过所述ACL表项中的执行动作丢弃所述报文。通过上述方式,在交换设备未保存有隧道的解封装表时丢弃隧道封装报文,通过ACL表项中的执行动作丢弃隧道封装报文,避免将无法被解封装的隧道封装报文送到CPU上进行处理,从而减轻对CPU的冲击。从而减轻对CPU的冲击。从而减轻对CPU的冲击。


技术研发人员:齐朋冲
受保护的技术使用者:迈普通信技术股份有限公司
技术研发日:2022.02.28
技术公布日:2023/9/7
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐