CN114697408B - 一种隧道报文的处理方法和装置 - Google Patents
一种隧道报文的处理方法和装置 Download PDFInfo
- Publication number
- CN114697408B CN114697408B CN202011581609.4A CN202011581609A CN114697408B CN 114697408 B CN114697408 B CN 114697408B CN 202011581609 A CN202011581609 A CN 202011581609A CN 114697408 B CN114697408 B CN 114697408B
- Authority
- CN
- China
- Prior art keywords
- tunnel
- message
- processed
- header
- hash value
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种隧道报文的处理方法和装置,所述方法包括:当接收到待处理隧道报文时,解析出其隧道头特征;将所述待处理隧道报文的隧道头特征,与已存储的报文处理策略表进行匹配;若命中,根据所命中的报文处理策略处理所述待处理隧道报文;若未命中,解析出所述待处理隧道报文的原始报头特征;将所述待处理隧道报文的原始报头特征,与所述报文处理策略表进行匹配;若命中,根据所命中的报文处理策略处理所述待处理隧道报文。本申请方案,对接收到的待处理隧道报文进行双重匹配,提高了隧道报文处理的准确性。
Description
技术领域
本申请涉及通信技术领域,特别是一种隧道报文的处理方法和装置。
背景技术
隧道技术是一种数据包封装技术,它能够在互不兼容或不安全的网络上提供一条路径,使得不同协议类型的报文得以在这条路径上传输。常见的隧道协议包括IPv6 overIPv4(常用缩写为6over4)、IPv4 over IPv6(常用缩写为4over6)、GRE(Generic RoutingEncapsulation,通用路由封装协议)等,隧道报文就是基于上述隧道协议进行传输的报文。
随着网络规模的扩大以及网络结构的复杂化,隧道技术正在得到日益广泛的使用,网络中各类隧道报文的数量也大幅增长,而目前相关技术中,隧道报文处理的准确性问题仍有待解决。
发明内容
本申请提供一种隧道报文的处理方法和装置,于网络设备中预先存储报文处理策略表,当接收到待处理隧道报文时,先解析出其隧道头特征与上述报文处理策略表进行匹配,在未命中的情况下,再解析出其原始报头特征与上述报文处理策略表进行匹配,根据第一次或第二次所命中的报文处理策略,转发或丢弃所述待处理隧道报文。
根据本申请实施例的第一方面,提供一种隧道报文的处理方法,应用于网络设备的FPGA芯片,包括:
当接收到待处理隧道报文时,解析出所述待处理隧道报文的隧道头特征;
将所述待处理隧道报文的隧道头特征,与已存储的报文处理策略表进行匹配;
若命中任一条所述报文处理策略,根据所命中的报文处理策略处理所述待处理隧道报文;
若未命中任何所述报文处理策略,解析出所述待处理隧道报文的原始报头特征;
将所述待处理隧道报文的原始报头特征,与所述已存储的报文处理策略表进行匹配;
若命中任一条所述报文处理策略,根据所命中的报文处理策略处理所述待处理隧道报文。
根据本申请实施例的第二方面,提供一种隧道报文的处理装置,包括解析单元、匹配单元和处理单元:
其中,解析单元,用于在接收到待处理隧道报文时,解析出所述待处理隧道报文的隧道头特征,还用于在所述待处理隧道报文的隧道头特征未命中任何报文处理策略时,解析出所述待处理隧道报文的原始报头特征;
所述匹配单元,用于将所述待处理隧道报文的隧道头特征或原始报头特征与已存储的报文处理策略表进行匹配;
所述处理单元,用于在所述待处理隧道报文的隧道头特征或原始报头特征命中所述报文处理策略时,根据所命中的报文处理策略处理所述待处理隧道报文。
本申请所提供的技术方案,在待处理隧道报文的隧道头特征未命中报文处理策略的情况下,通过其原始报头特征再次匹配报文处理策略,对接收到的待处理隧道报文进行双重匹配,提高了隧道报文处理的准确性。
附图说明
图1为本申请实施例的一种隧道报文格式示意图;
图2为本申请实施例的另一种隧道报文格式示意图;
图3为本申请所提供的一种隧道报文处理的方法流程图;
图4为本申请实施例中的一种hash链表示意图;
图5为本申请方案中以hash链表形式保存报文处理策略表的方法流程图;
图6为本申请方案中将待处理隧道报文的隧道头特征与已存储的报文处理策略表进行匹配,根据所命中的处理策略处理待处理隧道报文的方法流程图;
图7为本申请所提供的一种隧道报文处理的装置所在网络设备的硬件结构图;
图8为本申请所提供的一种隧道报文处理的装置框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对隧道报文的相关概念进行介绍。
隧道技术是一种数据包封装技术,基于此技术对原始报文进行封装并添加新报头,所述新报头屏蔽了原始报文的协议类型且指示了特定的隧道信息,使得原始报文能够在与其原协议类型不兼容的网络或某个不安全的网络上利用上述特定隧道进行传输,这些封装后能够于特定隧道上传输的报文即隧道报文。
常见的隧道协议包括IPv6 over IPv4、IPv4 over IPv6、GRE等。
IPv6 over IPv4隧道协议,能够将IPv6协议下的报文,封装为IPv4协议下的报文,从而使得原本与IPv4网络所不兼容的IPv6报文得以在IPv4网络中进行传输,随着当前IPv4地址的枯竭,IPv6的运用逐渐得势,IPv6 over IPv4在此过渡时期具有广泛的应用场景。
如图1所示,以IPv6 over IPv4协议下的一种隧道报文为例,说明隧道报文的典型报文格式,该隧道报文除了标准报文所具备的前导码和MAC头外,在报文的三层头部分,即网络层报头部分,既包括IPv6格式的原始报文的三层头,还包括封装所添加的表征隧道信息的IPv4格式的三层头。
IPv6格式的原始报文三层头,携带着所述IPv6 over IPv4隧道报文所封装的原始报文的网络层相关信息,例如原始报文的五元组信息,即所述隧道报文原始真实的源、目的IP地址和端口号以及协议,它们被称为该隧道报文的内五元组信息。
IPv4格式的隧道头三层头,携带着所述IPv6 over IPv4隧道报文封装所添加的特定隧道的网络层相关信息,例如该特定传输隧道的五元组信息,即所述隧道两端设备的源、目的IP地址和端口号以及协议,它们被称为该隧道报文的外五元组信息。
上述IPv6 over IPv4隧道报文,其MAC头、IPv4头和IPv6头的其他具体格式,如图1所示,本申请于此不再赘述。
上述IPv6 over IPv4隧道报文,也可以利用GRE隧道技术实现,GRE隧道本身不限制其所封装和传输的报文协议类型,能够对包括IPv6、IPv4、MPLS(Multi-Protocol LabelSwitching,多协议标签交换)等多种协议类型的原始报文进行封装,使之成为GRE报文再行传输。如图2所示,IPv6格式的原始报文,首先封装添加GRE头成为GRE报文,再封装添加IPv4头,使之得以在IPv4网络间传输,如图2所示的隧道报文中各部分的具体格式,不再赘述。
以上例子仅用以示意说明,在实际应用中,报文格式中存在可变化或拓展、忽略的部分,本申请不再赘述。上述隧道技术仅是目前已有隧道技术中的部分,其他隧道技术,此处不再一一介绍。本申请中所述隧道报文的处理方法,对具体是何种隧道报文不做限制。
目前,相关技术中,沿用了处理传统单层报文的方法处理隧道报文。对接收到的待处理隧道报文,采取逐条读取已存储的报文处理策略表,按各条策略中规定的偏移值,于待处理隧道报文中提取相应IP特征,与该条策略中的隧道报文外层或内层IP地址进行匹配的方法,确定所述待处理隧道报文的处理方式。
上述方案,仅以隧道报文的外层IP地址,或仅以隧道报文的内层IP地址,作为报文处理策略匹配的指标,虽然能够沿用传统单层报文的处理流程,但降低了隧道报文处理的准确性。
基于以上技术背景,本申请提出一种隧道报文的处理方法,所述方法应用于网络设备的FPGA芯片,所述网络设备包括服务器、网关设备和个人终端等,如图3所示,该方法包括:
步骤302,当接收到待处理隧道报文时,解析出所述待处理隧道报文的隧道头特征;
待处理隧道报文的隧道头特征,就是所述待处理隧道报文在封装原始报文时所添加的新报头中用以指示隧道相关信息的特征,以IPv6 over IPv4隧道报文为例,包括但不限于图1中所示的IPv4头中的协议、源IP地址和端口号、目的IP地址和端口号中的若干项。
通过网络设备中的FPGA芯片解析待处理隧道报文,即可得到其隧道头特征。以处理图1所示的IPv6 over IPv4隧道报文为例,FPGA根据预设的前导码,确定接收到的待处理隧道报文的首字节位置,解析所述待处理隧道报文二层头,确定所述二层头的长度以及下一报头的协议类型:IP协议;根据所确定的下一报头协议类型:IP协议,在二层头结束、下一报头起始的位置,确定此IP报头的版本号:IPv4;开始解析所述隧道报文的IPv4头,在若干特定位置得到IPv4头中所述隧道头特征。
上述方法,仅是解析获得待处理隧道报文隧道头特征的方法中的一种,FPGA芯片中具体利用何种方式解析出待处理隧道报文的隧道头特征,本申请对此不做限制。
鉴于近年来,FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)器件性能的大幅度提升,其处理速率现已能够满足网络中报文处理的实时性等性能需求,因此在本申请方案中采用FPGA解析待处理隧道报文,能够达到快速高效地处理大量隧道报文的效果。
步骤304,将所述待处理隧道报文的隧道头特征,与已存储的报文处理策略表进行匹配;若命中任一条所述报文处理策略,根据所命中的报文处理策略处理所述待处理隧道报文。
已存储的报文存储策略表中包括若干隧道报文报头特征及处理策略之间的映射关系,所述隧道报文报头特征包括隧道报文隧道头特征和隧道报文原始报头特征。
由步骤302所得到的待处理隧道报文隧道头特征作为报文处理策略第一次匹配的匹配指标,与所述已存储的报文处理策略表中的若干隧道报文报头特征进行匹配,以判断是否能够根据所述报文处理策略表中某一报头特征所映射的处理策略处理所述待处理隧道报文,所述处理策略包括转发和丢弃等。
所述报文处理策略表由网络监管平台统一设置或由用户自行设置,保存在网络设备的TCAM(Ternary Content Addressable Memory,三态内容寻址存储器)或DDR(DoubleData Rate SDRAM,双倍速率同步动态随机存储器)等存储器中,网络监管平台或用户可以根据实际需求,对所欲转发或丢弃的各业务隧道报文报头特征及处理策略进行设置,也可以对已存储的报文处理策略进行删除和修改,或增加存储新的报文处理策略。本申请对于所述报文处理策略表设置和存储的具体方式不做限定。
步骤306,若未命中任何所述报文处理策略,解析出所述待处理隧道报文的原始报头特征。
当解析出的待处理隧道报文的隧道头特征并未命中已存储的报文处理策略时,本申请方案将再执行以待处理隧道报文原始报头特征为匹配指标的第二次报文处理策略的匹配。
待处理隧道报文的原始报头特征,就是所述待处理隧道报文所封装的原始报文的报头特征,以IPv6 over IPv4隧道报文为例,包括但不限于图1中所示的IPv6头中的协议、源IP地址和端口号、目的IP地址和端口号中的若干项。
通过网络设备中的FPGA芯片解析出待处理隧道报文的原始报头特征的方法,同上文步骤302所述,此处不再赘述。
步骤308,将所述待处理隧道报文的原始报头特征,与所述已存储的报文处理策略表进行匹配;若命中任一条所述报文处理策略,根据所命中的报文处理策略处理所述待处理隧道报文。
在本申请方案中,因为已存储的报文存储策略表中的报头特征除包括隧道报文隧道头特征,还包括隧道报文原始报头特征,在待处理隧道报文的隧道头特征并未命中已存储的报文处理策略时,并不意味着网络设备中并未存储处理所述待处理隧道报文的报文处理策略。因此,由步骤306得到待处理隧道报文的原始报头特征后,再执行第二次报文处理策略的匹配。
以待处理隧道报文的原始报头特征作为二次报文处理策略匹配的匹配指标,将其与已存储的报文处理策略表中的报头特征进行匹配,若命中,则按照所命中的报头特征所映射的处理策略,处理所述待处理隧道报文。若所映射的处理策略为转发,则转发该隧道报文;若所映射的处理策略为丢弃,则丢弃该隧道报文。
本申请所提供的隧道报文处理方法,对待处理隧道报文采取先以隧道头特征匹配报文处理策略,在隧道头特征未命中时,再以原始报头特征二次匹配报文处理策略的处理方式,通过两重匹配,提高了隧道报文处理的准确性。
进一步地,相关技术中还存在隧道报文处理效率低的问题,其方案中,逐条读取线性表中已存储的报文处理策略,以提取每条策略对应的IP特征与此条策略中的IP地址进行匹配,所进行的策略匹配按线性表所预设的顺序进行,可能进行了多次并非针对所述待处理隧道报文IP地址的处理策略的无效匹配,降低了隧道报文的处理效率。
因此,在一种可选择的方式下,本申请方案中,以hash链表的形式保存报文处理策略表,所述待处理隧道报文隧道头特征或原始报头特征与报文处理策略的匹配,相应地基于hash链表的形式进行。
为了使本领域技术人员更好地理解本申请中的技术方案,接下来结合附图,对隧道报文的处理作进一步的详细说明,后续描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。
首先,对上述hash链表的形式进行说明,其示意图如图4所示,而将报文处理策略表以hash链表的形式保存的方法流程图,如图5所示,该方法具体包括:
步骤502,获取隧道报文报头特征及相应处理策略。
网络监管平台或用户,根据实际需求,于网络设备中设置并保存报文处理策略表,首先需要获取其所欲转发或丢弃的各业务隧道报文的报头特征,以及该报头特征所对应的具体处理策略,所述隧道报文报头特征包括隧道报文隧道头特征和原始报头特征。
例如,一网络监管平台对网络中传输的众多隧道报文的安全性进行检测,且保存有安全隧道报文白名单、以及不安全隧道报文黑名单。当该网络监管平台为其管理的某网络设备设置报文处理策略表时,
针对其白名单中的安全隧道报文,获取它们的隧道头特征或原始报头特征,它们的处理策略应当设置为转发;
针对其黑名单中的不安全隧道报文,获取它们的隧道头特征或原始报头特征,它们的处理策略应当设置为丢弃。
步骤504,计算所述隧道报文报头特征的hash值。
假设于步骤502中,获取到一不安全隧道报文的报头特征为,协议:6、源IP地址:2000::2、源端口号:1024、目的端口号:1024、目的IP地址:2000::1,相应的处理策略为丢弃。
计算该报头特征的hash值,即计算06-2000::2-0400-0400-2000::1的hash值,具体采用何种算法,本申请不做限制。
步骤506,根据所述隧道报文报头特征的hash值,确定所述hash值对应的链表首节点地址。
在本申请方案中,所述报文处理策略表以链表形式存储于网络设备的DDR中,所述链表由若干链表节点构成的,每个链表节点则由所存储的具体内容和指向关联节点的指针构成,以单向链表为例,所述指针即为单向指针,指向该链表所挂载的下一个节点。
如图4所示,于DDR中预留存储报文处理策略表的存储空间,将此存储空间划分为两块,分别为链表首节点区域和链表其他区域;所述链表首节点区域按照预设数量划分为多个子空间,一个子空间用于存储一个链表的首节点,所述子空间的地址即链表首节点的地址。
如果将所述链表首节点区域划分为8个子空间,也就意味着将构建8个链表,确定链表首节点区域中每个子空间的地址,即可确定每个链表首节点的地址,假设8个链表各自的首节点地址分别为1至8。
而每个链表于首节点后所挂载的其他节点,则从链表其他区域中分配得到存储空间。
在上述设定下,假设于步骤504中,计算得到上述报头特征的hash值为25,预设使用一致性hash算法,可确定该hash值对应的链表首节点地址为1。
所述算法仅是可用算法中的一种,本申请对于确定所述hash值对应的链表首节点地址的具体方法不做限定,上述链表数量:8,hash值:25,以及链表首节点地址:1至8,仅仅是用以示意说明,在实际应用中视具体情况而变化,事实上链表数量应远高于上述示例数值。
步骤508,判断所述hash值对应的链表首节点内容是否为空。
若所述hash值对应的链表首节点内容为空,将所述隧道报文报头特征及相应处理策略保存在所述hash值对应的链表的首节点中。
在一种可能的情况下,确定所述hash值对应的链表首节点地址后,判断首节点内容是否为空,若首节点内容为空,所述hash值对应的链表尚中无节点,或者说所述hash值对应的链表尚未构建,则将上述隧道报文报头特征及相应处理策略存储在此hash值对应的链表首节点中。
步骤510,若所述hash值对应的链表首节点内容非空,将所述隧道报文报头特征及相应处理策略保存在所述hash值对应的链表的第二个节点中。
基于步骤506的设定,假设网络设备DDR中所存储的hash链表形式的报文处理策略表,如图4所示,且所述hash值:25,所对应的首节点地址为1的链表中首节点1-1内容非空,且除首节点1-1外还挂载有第二节点1-2。
此时,将上述隧道报文报头特征及相应处理策略挂载于所述链表的首节点1-1后,作为该链表的新的第二节点1-2,原先的第二节点与首节点1-1断链,变更为本链表中的第三节点1-3挂载于上述报头特征及相应处理策略的新的第二节点1-2后。
这一挂链方式,降低了链表中新节点插入时所需遍历的节点数量,提高了处理效率。
此外,利用DDR存储所述hash链表形式的报文处理策略表,通过DDR易于拓展、读写速度快的特点,有效应对当前网络规模不断扩大和报文处理效率要求不断提高的问题。
基于上述以hash链表形式保存的报文处理策略表,本申请方案中,步骤304,将待处理隧道报文的隧道头特征,与已存储的报文处理策略表进行匹配的方法流程图,如图6所示,具体包括:
步骤3042,计算所述待处理隧道报文的隧道头特征的hash值。
例如,以图1所示的待处理IPv6 over IPv4隧道报文为例,其隧道头特征为其外五元组,协议:17、源IP地址:1.2.3.4、源端口号:3544、目的端口号:3544、目的IP地址:3.6.9.1,即其隧道头特征,以十六进制表示,为:11-01020304-0dd8-0dd8-0306091。
计算上述隧道头特征:11-01020304-0dd8-0dd8-0306091的hash值,计算hash值的算法全局一致,在报文处理策略表设置和匹配时均相同。
步骤3044,根据待处理隧道报文的隧道头特征的hash值,确定所述hash值对应的链表首节点地址。
假设上一步骤计算隧道头特征的hash值为31,根据预设的算法确定该hash值对应的链表首节点地址,例如使用一致性hash算法,所述hash值对应的链表首节点地址即为7。
步骤3046,判断所述hash值对应的链表首节点内容是否为空,若所述hash值对应的链表首节点内容为空,则所述待处理隧道报文未命中任何所述报文处理策略。
如图4所示,首节点地址为7的这一链表中,首节点内容为空,意味着这一链表中尚未存储报文处理策略,没有可与待处理隧道报文匹配的报文处理策略,可确定待处理隧道报文的隧道头特征未命中任何已存储的报文处理策略。
步骤3048,若所述hash值对应的链表首节点内容非空,则将所述待处理隧道报文的隧道头特征,与所述hash值对应的链表各节点中的报头特征进行匹配。
根据所命中的所述hash值对应的链表节点中的处理策略处理所述待处理隧道报文。
在一种可能的情况下,首节点地址为7的这一链表中,首节点内容非空,意味着这一链表中可能存储着可与待处理隧道报文匹配的报文处理策略,但同一链表中可能存储着多个隧道报文报头特征及其相应处理策略,仍不能确定与当前待处理隧道报文相匹配的报文处理策略,因此需要在此链表中寻找具体匹配的策略,将待处理隧道报文的隧道头特征,与此链表中各节点中的报头特征进行匹配,根据匹配命中的报头特征所映射的处理策略处理所述待处理隧道报文。
基于hash链表形式保存报文处理策略表后,本申请方案中,步骤308,将待处理隧道报文的原始报头特征与已存储的报文处理策略表进行第二次匹配的方法,同上文所述步骤304的方法,此处不再赘述。
在本申请的上述实施例中,利用hash链表的形式存储报文处理策略表,相应地通过计算hash值,在该hash值对应的链表中搜寻相匹配的报文处理策略,能够减少待处理隧道报文的隧道头特征或原始报头特征与报文处理策略的无效匹配,提高隧道报文的处理效率。
以对如图1所示的IPv6 over IPv4隧道报文进行处理为例,具体说明本申请方案所提供的一种隧道报文处理方法。
当网络设备接收到待处理的IPv6 over IPv4隧道报文时,利用FPGA解析出其隧道头中的外五元组作为其隧道头特征,假设其具体值为:
11-01020304-0dd8-0dd8-03060901。
根据预设算法计算上述外五元组的hash值,为31,确定该hash值对应的链表首节点地址为7。
判断得到地址为7的链表首节点内容为空,确定待处理隧道报文的外五元组未命中已存储的报文处理策略。
因此利用FPGA再解析出该待处理隧道报文原始报头中的内五元组作为其原始报头特征,假设其具体值为:
06-2000::0002-0400-0400-2000::0001
根据预设算法计算上述内五元组的hash值,为25,确定该hash值对应的链表首节点地址为1。
判断得到地址为1的链表首节点内容非空,将待处理隧道报文的内五元组与首节点地址为1的链表中的各节点中所存储的隧道报文报头特征进行匹配。
所述待处理隧道报文的内五元组命中该链表中的第二节点,该节点中的处理策略为丢弃,故丢弃所述待处理隧道报文。
上述隧道报文处理方案,采取先以隧道头特征匹配报文处理策略,在未命中时,再以原始报头特征二次匹配报文处理策略的处理方式,通过两重匹配,提高了隧道报文处理的准确性。
同时,以hash链表的形式存储报文处理策略表,根据隧道报文隧道头特征或原始报头特征的hash值确定对应的链表,在所述对应的链表中搜寻相匹配的报文处理策略,减少报文处理策略的无效匹配,提高了处理效率。
与前述隧道报文处理的方法实施例相对应,本申请还提供了隧道报文处理的装置实施例。
本申请所提供的隧道报文处理的装置实施例,可以应用在任一执行隧道报文处理的配置有FPGA的网络设备中。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在网络设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图7所示,为本申请服务器健康状态的监测装置所在网络设备的一种硬件结构图,除了图7所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的网络设备通常根据其实际功能,还可以包括其他硬件,对此不再赘述。
参见图8,为本申请实施例所提供的一种隧道报文处理的装置的框图,该装置包括解析单元810、匹配单元820和处理单元830。
其中,解析单元810,用于在接收到待处理隧道报文时,解析出所述待处理隧道报文的隧道头特征,还用于在所述待处理隧道报文的隧道头特征未命中任何报文处理策略时,解析出所述待处理隧道报文的原始报头特征。
匹配单元820,用于将所述待处理隧道报文的隧道头特征或原始报头特征与已存储的报文处理策略进行匹配。
处理单元830,用于在所述待处理隧道报文的隧道头特征或原始报头特征命中所述报文处理策略时,根据所命中的报文处理策略处理所述待处理隧道报文。
可选择地,所述报文处理策略表以hash链表的形式保存,所述匹配单元820,在将所述待处理隧道报文的隧道头特征或原始报头特征与所述报文处理策略表进行匹配时,
具体用于计算所述待处理隧道报文的隧道头特征或原始报头特征的hash值;根据所述待处理隧道报文的隧道头特征或原始报头特征的hash值,确定所述hash值对应的链表首节点地址;
判断所述hash值对应的链表首节点内容是否为空,若所述hash值对应的链表首节点内容为空,则所述待处理隧道报文的隧道头特征或原始报头特征未命中任何所述报文处理策略;若所述hash值对应的链表首节点内容非空,则将所述待处理隧道报文的隧道头特征或原始报头特征,与所述hash值对应的链表各节点中的报头特征进行匹配。
进一步地,所述装置还包括存储单元840,用于获取隧道报文报头特征及相应处理策略;计算所述隧道报文报头特征的hash值;根据所述隧道报文报头特征的hash值,确定所述hash值对应的链表首节点地址;
判断所述hash值对应的链表首节点内容是否为空,若所述hash值对应的链表首节点内容为空,将所述隧道报文报头特征及相应处理策略保存在所述hash值对应的链表的首节点中;若所述hash值对应的链表首节点内容非空,将所述隧道报文报头特征及相应处理策略保存在所述hash值对应的链表的第二个节点中。
可选择地,所述待处理隧道报文的隧道头特征包括所述待处理隧道报文的外五元组中的若干项;所述待处理隧道报文的原始报头特征包括所述待处理隧道报文的内五元组中的若干项。
可选择地,所述报文处理策略表存储在网络设备的双倍速率同步动态随机存储器DDR中。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本说明书中描述的主题及功能操作的实施例可以在以下中实现:数字电子电路、有形体现的计算机软件或固件、包括本说明书中公开的结构及其结构性等同物的计算机硬件、或者它们中的一个或多个的组合。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上以被数据处理装置执行或控制数据处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。
本说明书中描述的处理及逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过根据输入数据进行操作并生成输出来执行相应的功能。所述处理及逻辑流程还可以由专用逻辑电路—例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)来执行,并且装置也可以实现为专用逻辑电路。
适合用于执行计算机程序的计算机包括,例如通用和/或专用微处理器,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的基本组件包括用于实施或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量存储设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏操纵台、全球定位系统(GPS)接收机、或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如EPROM、EEPROM和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及CD ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。
虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种隧道报文的处理方法,其特征在于,所述方法应用于网络设备的FPGA芯片,包括:
当接收到待处理隧道报文时,解析出所述待处理隧道报文的隧道头特征;
将所述待处理隧道报文的隧道头特征,与已存储的报文处理策略表进行匹配;
若命中任一条所述报文处理策略,根据所命中的报文处理策略处理所述待处理隧道报文;
若未命中任何所述报文处理策略,解析出所述待处理隧道报文的原始报头特征;
将所述待处理隧道报文的原始报头特征,与所述已存储的报文处理策略表进行匹配;
若命中任一条所述报文处理策略,根据所命中的报文处理策略处理所述待处理隧道报文。
2.根据权利要求1所述的方法,其特征在于,所述报文处理策略表以hash链表的形式保存;
将待处理隧道报文的隧道头特征或原始报头特征,与已存储的报文处理策略表进行匹配,包括:
计算所述待处理隧道报文的隧道头特征或原始报头特征的hash值;
根据所述待处理隧道报文的隧道头特征或原始报头特征的hash值,确定所述hash值对应的链表首节点地址;
判断所述hash值对应的链表首节点内容是否为空,
若所述hash值对应的链表首节点内容为空,则所述待处理隧道报文的隧道头特征或原始报头特征未命中任何所述报文处理策略;
若所述hash值对应的链表首节点内容非空,则将所述待处理隧道报文的隧道头特征或原始报头特征,与所述hash值对应的链表各节点中的报头特征进行匹配。
3.根据权利要求2所述的方法,其特征在于,所述报文处理策略表的保存过程包括:
获取隧道报文报头特征及相应处理策略;
计算所述隧道报文报头特征的hash值;
根据所述隧道报文报头特征的hash值,确定所述hash值对应的链表首节点地址;
判断所述hash值对应的链表首节点内容是否为空,
若所述hash值对应的链表首节点内容为空,将所述隧道报文报头特征及相应处理策略保存在所述hash值对应的链表的首节点中;
若所述hash值对应的链表首节点内容非空,将所述隧道报文报头特征及相应处理策略保存在所述hash值对应的链表的第二个节点中。
4.根据权利要求1所述的方法,其特征在于,所述待处理隧道报文的隧道头特征包括所述待处理隧道报文的外五元组中的若干项;
所述待处理隧道报文的原始报头特征包括所述待处理隧道报文的内五元组中的若干项。
5.根据权利要求1所述的方法,其特征在于,所述报文处理策略表存储在所述网络设备的双倍速率同步动态随机存储器DDR中。
6.一种隧道报文的处理装置,其特征在于,所述装置包括解析单元、匹配单元和处理单元:
所述解析单元,用于在接收到待处理隧道报文时,解析出所述待处理隧道报文的隧道头特征,
还用于在所述待处理隧道报文的隧道头特征未命中任何报文处理策略时,解析出所述待处理隧道报文的原始报头特征;
所述匹配单元,用于将所述待处理隧道报文的隧道头特征或原始报头特征与已存储的报文处理策略表进行匹配;
所述处理单元,用于在所述待处理隧道报文的隧道头特征或原始报头特征命中所述报文处理策略时,根据所命中的报文处理策略处理所述待处理隧道报文。
7.根据权利要求6所述的装置,其特征在于,所述报文处理策略表以hash链表的形式保存;
所述匹配单元,在将所述待处理隧道报文的隧道头特征或原始报头特征与所述报文处理策略表进行匹配时,具体用于计算所述待处理隧道报文的隧道头特征或原始报头特征的hash值;根据所述待处理隧道报文的隧道头特征或原始报头特征的hash值,确定所述hash值对应的链表首节点地址;
判断所述hash值对应的链表首节点内容是否为空,若所述hash值对应的链表首节点内容为空,则所述待处理隧道报文的隧道头特征或原始报头特征未命中任何所述报文处理策略;若所述hash值对应的链表首节点内容非空,则将所述待处理隧道报文的隧道头特征或原始报头特征,与所述hash值对应的链表各节点中的报头特征进行匹配。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括存储单元:
所述存储单元,用于获取隧道报文报头特征及相应处理策略;计算所述隧道报文报头特征的hash值;根据所述隧道报文报头特征的hash值,确定所述hash值对应的链表首节点地址;
判断所述hash值对应的链表首节点内容是否为空,若所述hash值对应的链表首节点内容为空,将所述隧道报文报头特征及相应处理策略保存在所述hash值对应的链表的首节点中;若所述hash值对应的链表首节点内容非空,将所述隧道报文报头特征及相应处理策略保存在所述hash值对应的链表的第二个节点中。
9.根据权利要求6所述的装置,其特征在于,所述待处理隧道报文的隧道头特征包括所述待处理隧道报文的外五元组中的若干项;
所述待处理隧道报文的原始报头特征包括所述待处理隧道报文的内五元组中的若干项。
10.根据权利要求6所述的装置,其特征在于,所述报文处理策略表存储在网络设备的双倍速率同步动态随机存储器DDR中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011581609.4A CN114697408B (zh) | 2020-12-28 | 2020-12-28 | 一种隧道报文的处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011581609.4A CN114697408B (zh) | 2020-12-28 | 2020-12-28 | 一种隧道报文的处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114697408A CN114697408A (zh) | 2022-07-01 |
CN114697408B true CN114697408B (zh) | 2023-09-26 |
Family
ID=82130510
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011581609.4A Active CN114697408B (zh) | 2020-12-28 | 2020-12-28 | 一种隧道报文的处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114697408B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101309273A (zh) * | 2008-07-16 | 2008-11-19 | 杭州华三通信技术有限公司 | 一种生成安全联盟的方法和装置 |
CN102301663A (zh) * | 2011-07-06 | 2011-12-28 | 华为技术有限公司 | 一种报文处理方法及相关设备 |
CN102970386A (zh) * | 2012-11-15 | 2013-03-13 | 杭州迪普科技有限公司 | 一种实现IPv6报文穿越IPv4网络的方法和设备 |
CN103929423A (zh) * | 2014-04-15 | 2014-07-16 | 广东电网公司电力科学研究院 | 处理电力规约的IPSec VPN安全转发方法与系统 |
CN104579998A (zh) * | 2013-10-29 | 2015-04-29 | 国家计算机网络与信息安全管理中心 | 一种负载均衡处理装置 |
CN105939304A (zh) * | 2015-06-11 | 2016-09-14 | 杭州迪普科技有限公司 | 一种隧道报文解析方法及装置 |
CN106878138A (zh) * | 2017-01-18 | 2017-06-20 | 新华三技术有限公司 | 一种报文传输方法和装置 |
CN107181662A (zh) * | 2017-05-18 | 2017-09-19 | 迈普通信技术股份有限公司 | 一种vxlan隧道负载均衡的方法及系统 |
WO2017173806A1 (zh) * | 2016-04-07 | 2017-10-12 | 烽火通信科技股份有限公司 | 交换芯片或np与cpu协同完成报文ipsec加密的方法与系统 |
CN108076066A (zh) * | 2017-12-27 | 2018-05-25 | 杭州迪普科技股份有限公司 | 一种防护gre报文的方法及装置 |
CN109039918A (zh) * | 2018-10-30 | 2018-12-18 | 新华三技术有限公司 | 一种报文发送方法及装置 |
CN111355698A (zh) * | 2018-12-24 | 2020-06-30 | 中兴通讯股份有限公司 | 一种传输方法、装置、报文发送端和接收端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11190374B2 (en) * | 2017-08-28 | 2021-11-30 | Bright Data Ltd. | System and method for improving content fetching by selecting tunnel devices |
-
2020
- 2020-12-28 CN CN202011581609.4A patent/CN114697408B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101309273A (zh) * | 2008-07-16 | 2008-11-19 | 杭州华三通信技术有限公司 | 一种生成安全联盟的方法和装置 |
CN102301663A (zh) * | 2011-07-06 | 2011-12-28 | 华为技术有限公司 | 一种报文处理方法及相关设备 |
CN102970386A (zh) * | 2012-11-15 | 2013-03-13 | 杭州迪普科技有限公司 | 一种实现IPv6报文穿越IPv4网络的方法和设备 |
CN104579998A (zh) * | 2013-10-29 | 2015-04-29 | 国家计算机网络与信息安全管理中心 | 一种负载均衡处理装置 |
CN103929423A (zh) * | 2014-04-15 | 2014-07-16 | 广东电网公司电力科学研究院 | 处理电力规约的IPSec VPN安全转发方法与系统 |
CN105939304A (zh) * | 2015-06-11 | 2016-09-14 | 杭州迪普科技有限公司 | 一种隧道报文解析方法及装置 |
WO2017173806A1 (zh) * | 2016-04-07 | 2017-10-12 | 烽火通信科技股份有限公司 | 交换芯片或np与cpu协同完成报文ipsec加密的方法与系统 |
CN106878138A (zh) * | 2017-01-18 | 2017-06-20 | 新华三技术有限公司 | 一种报文传输方法和装置 |
CN107181662A (zh) * | 2017-05-18 | 2017-09-19 | 迈普通信技术股份有限公司 | 一种vxlan隧道负载均衡的方法及系统 |
CN108076066A (zh) * | 2017-12-27 | 2018-05-25 | 杭州迪普科技股份有限公司 | 一种防护gre报文的方法及装置 |
CN109039918A (zh) * | 2018-10-30 | 2018-12-18 | 新华三技术有限公司 | 一种报文发送方法及装置 |
CN111355698A (zh) * | 2018-12-24 | 2020-06-30 | 中兴通讯股份有限公司 | 一种传输方法、装置、报文发送端和接收端 |
Non-Patent Citations (1)
Title |
---|
IPv4/IPv6过渡环境下转换网关关键技术研究;张志龙;《中国优秀硕士学位论文全文数据库》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114697408A (zh) | 2022-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8140709B2 (en) | Two stage internet protocol header compression | |
TW201501556A (zh) | 用於唯一枚舉解析樹中的路徑的裝置和方法 | |
US10791051B2 (en) | System and method to bypass the forwarding information base (FIB) for interest packet forwarding in an information-centric networking (ICN) environment | |
CN112787927B (zh) | 一种分段路由报文转发方法、装置及预设逻辑电路单元 | |
US20180048593A1 (en) | Flow entry generating and packet processing based on flow entry | |
CN113132202B (zh) | 一种报文传输方法及相关设备 | |
US11456961B1 (en) | Method to accelerate packet detection rule (PDR) matching and data packet processing in a user plane function (UPF) module in a communications network | |
WO2021088629A1 (zh) | DetNet数据包处理方法及装置 | |
WO2015172675A1 (zh) | 报文处理方法及装置 | |
CN114697408B (zh) | 一种隧道报文的处理方法和装置 | |
CN114697160B (zh) | 一种隧道报文的处理方法和装置 | |
CN115280745B (zh) | 随流检测方法和电子设备 | |
WO2004019561A1 (ja) | イーサネット(r)におけるフレーム転送方法及びノード | |
CN114760166B (zh) | 一种隧道报文的处理方法和装置 | |
US10256992B2 (en) | Tunnel encapsulation | |
US10917502B2 (en) | Method for using metadata in internet protocol packets | |
CN113302979A (zh) | 一种加速通信网络中的用户平面功能(upf)模块中的数据包检测规则(pdr)匹配和数据包处理的方法 | |
WO2016029681A1 (zh) | 交换接入模块、信元封装方法、交换网系统及计算机存储介质 | |
WO2024065732A1 (zh) | 一种数据处理方法、装置、转发芯片及网络设备 | |
WO2023125563A1 (zh) | 路由信息的编辑方法、装置、存储介质及电子装置 | |
CN116527559B (zh) | 网络切片的报文转发处理及发送方法、装置、设备和介质 | |
WO2022206397A1 (zh) | 一种缓存方法及集成电路 | |
US11115506B2 (en) | Inner VXLAN tunnel packet detection | |
WO2023216622A1 (zh) | 报文处理方法、设备、系统及计算机可读存储介质 | |
WO2023088226A1 (zh) | 转发报文的方法以及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |