CN112383479A - 规则查询方法、装置、计算机设备和存储介质 - Google Patents
规则查询方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN112383479A CN112383479A CN202011104222.XA CN202011104222A CN112383479A CN 112383479 A CN112383479 A CN 112383479A CN 202011104222 A CN202011104222 A CN 202011104222A CN 112383479 A CN112383479 A CN 112383479A
- Authority
- CN
- China
- Prior art keywords
- quintuple
- rule
- target
- information
- address
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种规则查询方法、装置、计算机设备和存储介质。该方法包括:计算机设备通过获取请求报文的五元组信息中的互联网协议IP地址,从预设的多个五元组规则表中,确定与该IP地址对应的目标五元组规则表,根据五元组信息查询目标五元组规则表,确定与五元组信息对应的目标五元组规则。本方法中,五元组规则表中包括五元组信息和五元组规则的对应关系,计算机设备在根据请求报文的五元组信息中的IP确定与其对应的目标五元组规则表之后,根据目标五元组规则表进行目标五元组规则的查询,避免了遍历所有五元组规则表的情况,减少了五元组规则的查询次数,节省了五元组规则的查询资源,进一步地,降低了FPGA的输入输出单元的消耗情况。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种规则查询方法、装置、计算机设备和存储介质。
背景技术
五元组规则查询是实现网络数据转发的重要一步,服务器通过提取网络数据包中的五元组信息,根据查询顺序从五元组规则库中查询网络数据包中的五元组信息对应的五元组规则,以获取该网络数据包的策略,从而实现不同网络数据包的不同处理操作。
在基于现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)开发的计算机设备的应用场景下,对于上亿级的五元组规则数量,FPGA内部存储资源有限,需要接入外部动态随机存取存储器DDR4RAM来存储五元组规则,计算机设备通过FPGA的输入输出单元访问DDR4RAM来响应五元组规则的查询请求。
然而,由于亿级五元组规则的数量庞大,每个输入输出单元接口的资源有限,大量的访问请求会消耗大量的FPGA芯片的输入输出单元。
发明内容
基于此,有必要针对上述技术问题,提供一种能够减少查询次数的规则查询方法、装置、计算机设备和存储介质。
第一方面,提供一种规则查询方法,该方法包括:
获取请求报文的五元组信息中的互联网协议IP地址;
从预设的多个五元组规则表中,确定与IP地址对应的目标五元组规则表;五元组规则表包括五元组信息和五元组规则之间的对应关系;
根据五元组信息查询目标五元组规则表,确定与五元组信息对应的目标五元组规则。
在本实施例中,计算机设备预先构建的五元组规则表中包括五元组信息和五元组规则的对应关系,在确定请求报文的五元组信息对应的目标五元组规则表之后,根据目标五元组规则表进行目标五元组规则的查询,避免了遍历所有五元组规则表的情况,减少了五元组规则的查询次数,节省了五元组规则的查询资源,进一步地,降低了FPGA的输入输出单元的消耗情况。
在其中一个实施例中,上述目标五元组规则表中包括索引表,从预设的多个五元组规则表中,确定IP对应的目标五元组规则表,包括:
将五元组信息中的第一IP地址,依次与各索引表中的各第二IP地址进行比较;
若在当前索引表中,存在与第一IP地址一致的第二目标IP地址,则确定当前索引表对应的五元组规则表为目标五元组规则表。
在本实施例中,计算机设备根据五元组规则中的索引表的第二IP地址和五元组信息中的第一IP地址,确定五元组信息中对应的目标五元组规则表,从而直接根据目标五元组规则表中的规则关联关系进行查询,并不是直接将五元组信息中的所有信息与所有五元组规则进行比较,减少了比较次数和比较资源。
在其中一个实施例中,上述根据五元组信息查询目标五元组规则表,确定与五元组信息对应的目标五元组规则,包括:
根据索引表中五元组规则标志位查询五元组规则模板表,确定与五元组信息对应的目标五元组规则。
在本实施例中,计算机设备在确定目标五元组规则表之后,才根据五元组规则标志位查询五元组规则模板表,确定五元组信息对应的目标五元组规则,并不是直接全部遍历查询所有五元组规则,减少了查询次数。
在其中一个实施例中,上述根据索引表中五元组规则标志位查询五元组规则模板表,确定与五元组信息对应的目标五元组规则,包括:
依次查询索引表中第二目标IP地址对应的五元组规则标志位;
若五元组规则标志位为第一值,则查询五元组规则标志位对应的五元组规则模板表,确定与五元组信息对应的目标五元组规则;
若索引表中的所有五元组规则标志位均为第二值,则确定第二目标IP地址为五元组信息对应的目标五元组规则。
在本实施例中,索引表中包括五元组标志位与五元组规则模板表的映射关系,计算机设备通过索引表中的五元组标志位即可确定是否需要查询与五元组标志位对应的五元组规则模板表,而不是直接查询五元组规则模板表,减少了五元组规则模板表的查询次数。
在其中一个实施例中,上述查询五元组规则标志位对应的五元组规则模板表,确定与五元组信息对应的目标五元组规则,包括:
根据五元组信息,从五元组规则标志位对应的五元组规则模板表中查询与五元组信息匹配的五元组规则;
若存在与五元组信息匹配的五元组规则,则将匹配到的五元组规则确定为目标五元组规则;
若不存在与五元组信息匹配的目标五元组规则,则确定第二目标IP地址为五元组信息对应的目标五元组规则。
在本实施例中,计算机设备通过五元组信息从对应的五元组规则模板表中查询目标五元组规则,可以有效地确定与当前五元组信息对应的目标五元组规则。
在其中一个实施例中,上述方法还包括:
若所有索引表中,均不存在与第一IP地址一致的第二目标IP地址,则终止查询操作。
在本实施例中,计算机设备在确定所有类型的五元组规则表中的索引表中,均不存在与第一IP地址一致的第二IP地址,终止查询操作,减少了无谓的查询次数和查询时间,提高了五元组规则的查询效率。
在其中一个实施例中,上述方法还包括:
根据IP的类型,对五元组规则进行分类,得到预设的多个五元组规则表;五元组规则表包括源IP规则表、目的IP规则表、以及源IP与目的IP组合规则表。
在本实施例中,计算机设备根据五元组规则的使用规律,将五元组规则分成至少3大类,分别为都包含SIP的SIP类、包含DIP的DIP类和同时包含SIP和DIP的SIP+DIP类,利用规则之间的关联关系,减少查询次数。
第二方面,提供一种规则查询装置,该装置包括:
获取模块,用于获取请求报文的五元组信息中的互联网协议IP地址;
第一确定模块,用于从预设的多个五元组规则表中,确定与IP地址对应的目标五元组规则表;五元组规则表包括五元组信息和五元组规则之间的对应关系;
第二确定模块,用于根据五元组信息查询目标五元组规则表,确定与五元组信息对应的目标五元组规则。
第三方面,提供一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行该计算机程序时实现上述第一方面任一所述的规则查询方法。
第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面任一所述的规则查询方法。
上述规则查询方法、装置、计算机设备和存储介质,计算机设备通过获取请求报文的五元组信息中的互联网协议IP地址,从预设的多个五元组规则表中,确定与该IP地址对应的目标五元组规则表,根据五元组信息查询目标五元组规则表,确定与五元组信息对应的目标五元组规则。本方法中,五元组规则表中包括五元组信息和五元组规则的对应关系,计算机设备在根据请求报文的五元组信息中的IP确定与其对应的目标五元组规则表之后,根据目标五元组规则表进行目标五元组规则的查询,避免了遍历所有五元组规则表的情况,减少了五元组规则的查询次数,节省了五元组规则的查询资源,进一步地,降低了FPGA的输入输出单元的消耗情况。
附图说明
图1为一个实施例中计算机设备的内部结构图;
图2为一个实施例中规则查询方法的流程示意图;
图3为一个实施例中规则查询方法的流程示意图;
图4为一个实施例中规则查询方法的流程示意图;
图5为一个实施例中规则查询方法的流程示意图;
图6为一个实施例中规则查询方法中五元组规则表的示意图;
图7为一个实施例中规则查询方法的流程示意图;
图8为一个实施例中规则查询方法的流量分配示意图;
图9为一个实施例中规则查询装置的结构框图;
图10为一个实施例中规则查询装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的规则查询方法,可以应用于如图1所示的应用环境中。在一个实施例中,提供了一种计算机设备,该计算机设备是基于FPGA开发的网络设备,其可以是服务器,其内部结构图可以如图1所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种规则查询方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本实施例提供的计算机设备是基于FPGA开发的网络设备,其与网络分流器连接,实现接入流量的分流,通过本实施例提高了五元组规则查询方案,在分流后的有限的流量资源下,实现亿级五元组规则的有效查询。
本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
下面将通过实施例并结合附图具体地对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。需要说明的是,本申请图2-图8实施例提供的规则查询方法,其执行主体为计算机是被饿,也可以是规则查询装置,该规则查询装置可以通过软件、硬件或者软硬件结合的方式成为计算机设备的部分或全部。下述方法实施例中,均以执行主体是计算机设备为例来进行说明。
在一个实施例中,如图2所示,提供了一种规则查询方法,涉及的是计算机设备获取请求报文的五元组信息中的互联网协议地址IP的类型,根据IP的类型,确定与其对应的目标五元组规则表,从而根据五元组信息查询目标五元组规则表,确定与五元组信息对应的目标五元组规则的过程,包括以下步骤:
S201、获取请求报文的五元组信息中的互联网协议IP地址。
其中,五元组信息中的IP地址包括多种类型,具体包括源IP(SIP)、目的IP(DIP)。五元组信息中包括SIP、DIP、源端口(S-Port,SP)、目的端口(D-Port,DP)、以及传输层协议(Protocol,P)。
在本实施例中,计算机设备在接收到请求报文时,对该请求报文中的内容进行解析,获取请求报文中的五元组信息。其中,五元组信息包括SIP、SP、P、DIP、DP,计算机设备在获取到当前请求报文之后,对请求报文进行解析,获取请求报文中的IP,需要说明的是,获取的请求报文中的IP可以是SIP,也可以是DIP,还可以是SIP+DIP,本实施例对此不做限定。
S202、从预设的多个五元组规则表中,确定与IP地址对应的目标五元组规则表;五元组规则表包括五元组信息和五元组规则之间的对应关系。
其中,预设的多个五元组规则表指的是根据不同类型的IP地址构建的不同类型的五元组规则表。
在本实施例中,计算机设备获取到当前请求报文中的IP地址,依次将IP地址与多个五元组规则表进行匹配,确定与当前IP地址对应的目标五元组规则表,可选地,不同类型的五元组规则表包括SIP规则表、DIP规则表、SIP+DIP规则表,示例地,按照一定的顺序,计算机设备可以先将请求报文中的IP与SIP规则表进行匹配,若SIP规则表中存在与请求报文中的IP匹配的SIP,则确定SIP规则表为目标五元组规则表;若SIP规则表中不存在与请求报文中的IP匹配的SIP,计算机设备则将请求报文中的IP与DIP规则表进行匹配,若DIP规则表中存在与请求报文中的IP匹配的DIP,则确定DIP规则表为目标五元组规则表;若DIP规则表中不存在与请求报文中的IP匹配的DIP,计算机设备则将请求报文中的IP与SIP+DIP规则表进行匹配,若SIP+DIP规则表中存在与请求报文中的IP匹配的SIP+DIP,则确定SIP+DIP规则表为目标五元组规则表。可选地,若SIP+DIP规则表中不存在与请求报文中的IP匹配的SIP+DIP,则意味着所有五元组规则表中均不存在与当前请求报文中IP匹配的规则,此时计算机设备可终止查询操作,本实施例对此不做限定。
S203、根据五元组信息查询目标五元组规则表,确定与五元组信息对应的目标五元组规则。
其中,请求报文的五元组信息包括SIP、DIP、SP、DP、以及P中至少一个,目标五元组规则表包括索引表和五元组规则模板表。
在本实施例中,可选地,五元组规则表中包括索引表和各五元组规则模板表对应的五元组规则标志位。计算机设备在确定目标五元组规则表之后,根据五元组规则表中的各五元组规则标志位,确定是否需要进行对应的五元组规则模板表的查询,从而确定与五元组信息对应的目标五元组规则。例如,计算机设备在SIP规则表的SIP索引表中查询到与请求报文中的IP匹配的SIP1,确定SIP规则表为目标五元组规则表,根据SIP索引表中SIP1所对应的五元组规则标志位,确定是否查询各标志位对应五元组规则模板表,若五元组规则标志位为第一值,则查询该五元组规则标志位对应的五元组规则模板表,在该五元组规则模板表中确定与五元组信息对应的目标五元组规则,本实施例对此不做限定。
上述规则查询方法中,计算机设备通过获取请求报文的五元组信息中的互联网协议IP地址,从预设的多个五元组规则表中,确定与该IP地址对应的目标五元组规则表,根据五元组信息查询目标五元组规则表,确定与五元组信息对应的目标五元组规则。本方法中,五元组规则表中包括五元组信息和五元组规则的对应关系,计算机设备在根据请求报文的五元组信息中的IP确定与其对应的目标五元组规则表之后,根据目标五元组规则表进行目标五元组规则的查询,避免了遍历所有五元组规则表的情况,减少了五元组规则的查询次数,节省了五元组规则的查询资源,进一步地,降低了FPGA的输入输出单元的消耗情况。
可选地,为了避免遍历所有五元组规则的情况,计算机设备可以先根据请求报文中的IP确定目标五元组规则表。在一个实施例中,如图3所示,上述目标五元组规则表中包括索引表,根据五元组信息查询目标五元组规则表,得到查询结果,包括:
S301、将五元组信息中的第一IP地址,依次与各索引表中的各第二IP地址进行比较。
其中,索引表中包括多个第二IP地址,每个第二IP地址构成一种IP规则。
在本实施例中,计算机设备在获取到请求报文中的第一IP地址之后,从多个五元组规则表中确定与当前第一IP地址匹配的目标五元组规则表,可选地,五元组规则表包括SIP规则表、DIP规则表、以及SIP+DIP规则表;各规则表包括其对应的索引表和五元组规则模板表,其中SIP规则表包括SIP索引表,DIP规则表包括DIP索引表,SIP+DIP规则表包括SIP+DIP索引表。具体地,按照一定的顺序,计算机设备可以分别将第一IP地址与SIP索引表、DIP索引表、以及SIP+DIP索引表中的各第二IP地址进行比较,得到比较结果,本实施例对此不做限定。
S302、若在当前索引表中,存在与第一IP地址一致的第二目标IP地址,则确定当前索引表对应的五元组规则表为目标五元组规则表。
在本实施例中,计算机设备按照一定的顺序,将第一IP地址与SIP索引表、DIP索引表、以及SIP+DIP索引表中的各第二IP地址进行比较,可选地,计算机设备可以先将第一IP地址与SIP索引表中的各第二IP地址比较,若SIP索引表中存在第二目标IP地址与第一IP地址一致,则确定SIP索引表确定为目标五元组规则表,即,将SIP规则表确定为目标五元组规则表。若SIP索引表中不存在第二IP地址与第一IP地址一致,计算机设备则可以将第一IP地址与DIP索引表中的各第二IP地址比较,若DIP索引表中存在第二目标IP地址与第一IP地址一致,则确定DIP索引表确定为目标五元组规则表,即,将DIP规则表确定为目标五元组规则表,本实施例对此不做限定。
在本实施例中,计算机设备根据五元组规则中的索引表的第二IP地址和五元组信息中的第一IP地址,确定五元组信息中对应的目标五元组规则表,从而直接根据目标五元组规则表中的规则关联关系进行查询,并不是直接将五元组信息中的所有信息与所有五元组规则进行比较,减少了比较次数和比较资源。
计算机设备在确定目标五元组规则表之后,根据目标五元组规则表确定目标五元组规则,在一个实施例中,上述目标五元组规则表中还包括五元组规则模板表,根据五元组信息查询目标五元组规则表,确定与五元组信息对应的目标五元组规则,包括:
根据索引表中五元组规则标志位查询五元组规则模板表,确定与五元组信息对应的目标五元组规则。
其中,五元组规则标志位可以包括多个,每个五元组规则标志位对应一种五元组规则模板表。五元组规则标志位与五元组规则模板表的映射关系可通过hash算法构建。
在本实施例中,计算机设备在确定目标五元组规则表之后,获取匹配得到的目标五元组规则表中的第二IP地址对应的五元组规则标志位,根据五元组规则标志位确定与五元组信息对应的目标五元组规则。示例地,计算机设备确定在SIP索引表中存在第二目标IP地址IP0与请求报文中的第一IP地址一致,此时,将SIP规则表确定为目标五元组规则表,并获取IP0对应的五元组规则标志位,分别为[X1,X2,X3],其中,可选地,X1用于指示SIP+P规则模板表、X2用于指示SIP+P+SP规则模板表、X3用于指示SIP+P+DP规则模板表,计算机设备根据[X1,X2,X3]的值,确定是否查询各自对应的五元组规则模板表,在确定查询五元组规则模板表的情况下,从五元组规则模板表中确定与五元组信息对应的目标五元组规则。
在本实施例中,计算机设备在确定索引表中存在第二目标IP地址之后,才根据五元组规则标志位查询五元组规则模板表,确定五元组信息对应的目标五元组规则,并不是直接全部遍历查询所有五元组规则,减少了查询次数。
可选地,计算机设备在根据五元组规则标志位确定与五元组信息对应的目标五元组规则时,在一个实施例中,如图4所示,上述根据索引表中五元组规则标志位查询五元组规则模板表,确定与五元组信息对应的目标五元组规则,包括:
S401、依次查询索引表中第二目标IP地址对应的五元组规则标志位。
在本实施例中,以上述例子说明,在SIP索引表中,存在第二目标IP地址IP0与第一IP地址一致,计算机获取到IP0对应的五元组规则标志位,分别为[X1,X2,X3],其中,X1用于指示SIP+P规则模板表、X2用于指示SIP+P+SP规则模板表、X3用于指示SIP+P+DP规则模板表,计算机设备根据五元组标志位的排列顺序,依次查询五元组规则标志位,示例地,计算机设备查询到第一五元组规则标志位X1的值为1,执行相应操作;之后查询到第二五元组规则标志位X2的值为0,执行相应操作,本实施例对此不做限定。
S402、若五元组规则标志位为第一值,则查询五元组规则标志位对应的五元组规则模板表,确定与五元组信息对应的目标五元组规则。
在本实施例中,以上述例子继续说明,计算机设备在依次查询过程中,在确定X1的值为第一值时,确定与X1对应的五元组规则模板表,从该五元组规则模板表中查询与五元组信息匹配的目标五元组规则。继续查询,计算机设备确定X2的值为第一值时,确定与X2对应的五元组规则模板表,从该五元组规则模板表中查询与五元组信息匹配的目标五元组规则。示例地,在二进制算法中,第一值可以1,当X1的值为1时,则说明在与X1对应的五元组规则模板表中,存在与当前第二目标IP地址对应的五元组规则,此时计算机设备从X1对应的五元组规则模板表中查询与五元组信息匹配的目标五元组规则,本实施例对此不做限定。
S403、若索引表中的所有五元组规则标志位均为第二值,则确定第二目标IP地址为五元组信息对应的目标五元组规则。
在本实施例中,以上述例子说明,在二进制算法中,第二值可以0,当X1的值为0时,则说明在与X1对应的五元组规则模板表中,不存在与当前第二目标IP地址对应的五元组规则,此时计算机设备不再查询X1对应的五元组规则模板表,若所有五元组规则标志位均为第二值,即[X1,X2,X3]对应的值均为0时,说明在与X1对应的五元组规则模板表、在与X2对应的五元组规则模板表、在与X3对应的五元组规则模板表中,均不存在与当前第二目标IP地址对应的五元组规则,此时,计算机设备确定第二目标IP地址为五元组信息对应的目标五元组规则,本实施例对此不做限定。
在本实施例中,索引表中包括五元组标志位与五元组规则模板表的映射关系,计算机设备通过索引表中的五元组标志位即可确定是否需要查询与五元组标志位对应的五元组规则模板表,而不是直接查询五元组规则模板表,这种优化查询方法,减少了五元组规则模板表的查询次数。
在一个实施例中,如图5所示,上述查询五元组规则标志位对应的五元组规则模板表,确定与五元组信息对应的目标五元组规则,包括:
S501、根据五元组信息,从五元组规则标志位对应的五元组规则模板表中查询与五元组信息匹配的五元组规则。
在本实施例中,五元组标志位的值为第一值的标志位可能存在多个,此时,计算机设备可以依次访问五元组标志位对应的五元组规则模板表,分别从各五元组规则模板表中查询与五元组信息匹配的五元组规则。示例地,以SIP规则表为例,若SIP索引表中五元组规则标志位[X1,X2,X3]均为1,计算机依次查询X1对应的五元组规则模板表、X2对应的五元组规则模板表、以及X3对应的五元组规则模板表,具体地,X1对应的五元组规则模板表为SIP+P规则模板表,计算机设备则根据五元组信息中的SIP和P,从SIP+P规则模板表中查询与五元组信息中的SIP和P匹配的五元组规则。X2、X3对应的五元组规则模板表的查询方式类似,这里不做赘述。
S502、若存在与五元组信息匹配的五元组规则,则将匹配到的五元组规则确定为目标五元组规则。
在本实施例中,若从五元组规则模板表中,查询到一条五元组规则与五元组信息匹配,则将该五元组规则确定为与五元组信息匹配的目标五元组规则,本实施例对此不做限定。
S503、若不存在与五元组信息匹配的目标五元组规则,则确定第二目标IP地址为五元组信息对应的目标五元组规则。
在本实施例中,若五元组规则模板表中不存在任意一条五元组规则与五元组信息匹配,则说明无法查询到与五元组信息匹配的目标五元组规则,此时,计算机设备将第二目标IP地址确定为五元组信息对应的目标五元组规则,本实施例对此不做限定。
在本实施例中,计算机设备通过五元组信息从对应的五元组规则模板表中查询目标五元组规则,可以有效地确定与当前五元组信息对应的目标五元组规则。
计算机设备在将索引表中的各第二IP地址与五元组信息中的第一IP地址进行对比时,还存在另外一种情况,在一个实施例中,上述方法还包括:
若所有索引表中,均不存在与第一IP地址一致的第二目标IP地址,则终止查询操作。
在本实施例中,计算机设备若在所有五元组规则表的索引表中,都没有查到与第一IP地址一致的第二IP地址,即,所有五元组规则表中均不存在与当前五元组信息中第一IP地址一致的第二IP地址,此时计算机设备就不需要做进一步查表,直接终止查询操作。
在本实施例中,计算机设备在确定所有类型的五元组规则表中的索引表中,均不存在与第一IP地址一致的第二IP地址,终止查询操作,减少了无谓的查询次数和查询时间,提高了五元组规则的查询效率。
在计算机设备进行五元组规则查询之前,计算机设备可根据实际情况构建五元组规则表,在一个实施例中,上述方法还包括:
根据IP的类型,对五元组规则进行分类,得到预设的多个五元组规则表;五元组规则表包括源IP规则表、目的IP规则表、以及源IP与目的IP组合规则表。
在本实施例中,计算机设备根据IP的类型构建其对应的五元组规则表,例如,针对SIP,构建SIP规则表,SIP规则表包括SIP索引表和SIP组合规则模板表,形成SIP对应的五元组规则表,分别为SIP索引表、SIP+P规则模板表、SIP+P+SP规则模板表、SIP+P+DP规则模板表等;如,针对DIP,构建DIP规则表,DIP规则表包括DIP索引表和DIP组合规则模板表,形成DIP对应的五元组规则表,分别为DIP索引表、DIP+P规则模板表、DIP+P+DP规则模板表、DIP+P+SP规则模板表等;如,针对SIP+DIP,构建SIP+DIP规则表,包括SIP+DIP索引表和SIP+DIP组合规则模板表,形成SIP+DIP对应的五元组规则表,分别为SIP+DIP索引表、SIP+DIP+P规则模板表、SIP+DIP+P+SP规则模板表、SIP+DIP+P+DP规则模板表、SIP+DIP+P+SP+DP规则模板等。需要说明的是,索引表中包括IP地址和五元组标志位。可参数图6所示,图6给出了以SIP为例的SIP索引表和SIP组合规则模板表,SIP索引表中包括多个IP地址和五元组标志位。DIP索引表和DIP组合规则模板表、SIP+DIP索引表和SIP+DIP组合规则模板表,与SIP索引表和SIP组合规则模板表类似,本实施例对此不做限定。
可选地,在根据实际情况构建五元组规则表时,不同情况包括的五元组规则的数量和内容不同,如图6所示,以SIP规则表为例,SIP规则表包括SIP索引表和SIP组合规则模板表,其中,SIP组合规则模板表包括SIP+P规则模板表、SIP+P+SP规则模板表、SIP+P+DP规则模板表。可以看到待构建的五元组规则包括IP0、IP1、IP1+P1、IP1+P1+SP、IP1+P1+DP、IP2+P2、IP2+P2+SP,其中,在构建SIP索引表的过程中,确定存在IP0,则构建对应的IP0规则,确定在SIP+P规则模板表、SIP+P+SP规则模板表、SIP+P+DP规则模板表中,均不存在IP0的组合规则,则相应的将IP0对应的各组合规则模板的五元组规则标志位置为第二值,这里示例地,可以置为0。在构建SIP索引表的过程中,确定存在IP1,则构建对应的IP1规则,确定SIP+P规则模板表、SIP+P+SP规则模板表、SIP+P+DP规则模板表中,也都存在IP1的组合规则,则相应的将IP1对应的各组合规则模板的五元组规则标志位置为第一值,这里示例地,可以置为1。在构建SIP索引表的过程中,确定不存在IP2,但是确定在SIP+P规则模板表、SIP+P+SP规则模板表中,存在IP2+P2、IP2+P2+SP的五元组规则,此时,计算机设备为了避免SIP索引表中不存在IP2,而无法查询IP2+P2、IP2+P2+SP这两条规则的情况,计算机设备可以在SIP索引表中构建IP2的虚表项,以便后续可以通过SIP索引表中的IP2查询到IP2对应的五元组规则标志位,本实施例对此不做限定。
在本实施例中,计算机设备根据五元组规则的使用规律,将五元组规则分成至少3大类,分别为都包含SIP的SIP类、包含DIP的DIP类和同时包含SIP和DIP的SIP+DIP类,利用规则之间的关联关系,减少查询次数。
为了更好的说明上述方法,如图7所示,本实施例提供一种规则查询方法,具体包括:
S101、根据IP地址的类型,对五元组规则进行分类,得到预设的多个五元组规则表;
S102、获取请求报文的五元组信息中的互联网协议IP地址;
S103、从预设的多个五元组规则表中,确定与IP地址对应的目标五元组规则表;
S104、将五元组信息中的第一IP地址,依次与各索引表中的各第二IP地址进行比较;若当前索引表中,存在与第一IP地址一致的第二目标IP地址,则执行步骤S105;若在所有的索引表中,均不存在与第一IP地址一致的第二目标IP地址,则执行步骤S108;
S105、确定当前索引表对应的五元组规则表为目标五元组规则表,并依次查询索引表中第二目标IP地址对应的五元组规则标志位;若五元组规则标志位为第一值,则执行步骤S106;若索引表中的所有五元组规则标志位均为第二值,则执行步骤S107;
S106、查询五元组规则标志位对应的五元组规则模板表,确定与五元组信息对应的目标五元组规则;
S107、确定第二目标IP地址为五元组信息对应的目标五元组规则;
S108、终止查询操作。
在本实施例中,假设计算机设备处理200G流量,300字节线速,处理速度需要达到80Mpps。在计算机设备处理数据时,可以将流量并行分两路,每路处理100G流量,每一路模板分布如下图8所示。查询模板按SIP类、DIP类、SIP+DIP类,分三级查询,每一级占用一个DDR接口,分两路,一共占用6个DDR-输入输出单元接口。
以现有的方法计算,每路100G流量,处理速度为40Mpps,假设sip类有8个模板,则至少需要查询8次,需要占用40Mpps*8=320Mpps的DDR带宽,而实际一个DDR接口只有130Mpps的带宽,显然,此时需要增加DDR接口数量,其对FPGA输入输出单元消耗也是巨大的。
通过本申请提供的规则查询方法,先把规则分为三大类,每一路40Mpps的流量有2/3在SIP类模板是没有五元组规则的,不会命中五元组规则,此时只需要查询sip类型一次,不命中不需要进行下一类型查询。在这种情况下,占用DDR接口带宽为40*(2/3)*1=26.7Mpps。DDR接口按130Mpps计算,剩余带宽为103.3Mpps。剩下的1/3的流量(40*(1/3)=13.4)是需要查询的。假设,SIP类规则数量为3500万,极限情况下虚表项也为3500万,实际五元组规则占用为7000万,按2.5亿的五元组规则总容量计算,得到出现查询冲突概率为0.28,根据冲突概率,确定冲突系数为1.3。那么,可支持查询次数=剩余带宽/(流量*hash冲突系数),即,103.3/(13.4*1.3)=5.92次。意味着,同一sip的类型查询次数可以达到5.92次,即可以同时实现同一个sip下的5条以上不同类型的规则的查询。
显然,通过本申请提供的规则查询方法,现有的DDR接口数量是完全可以满足亿级五元组规则的查询请求,进一步地,也不会出现耗费大量FPGA输入输出单元的情况。
上述实施例提供的规则查询方法,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
应该理解的是,虽然图2-8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-8中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图9所示,提供了一种规则查询装置,包括:获取模块01、第一确定模块02和第二确定模块03,其中:
获取模块01,用于获取请求报文的五元组信息中的互联网协议IP地址;
第一确定模块02,用于从预设的多个五元组规则表中,确定与IP地址对应的目标五元组规则表;五元组规则表包括五元组信息和五元组规则之间的对应关系;
第二确定模块03,用于根据五元组信息查询目标五元组规则表,确定与五元组信息对应的目标五元组规则。
在一个实施例中,目标五元组规则表中包括索引表,第一确定模块02,具体用于将五元组信息中的第一IP地址,依次与各索引表中的各第二IP地址进行比较;若在当前索引表中,存在与第一IP地址一致的第二目标IP地址,则确定当前索引表对应的五元组规则表为目标五元组规则表。
在一个实施例中,目标五元组规则表中还包括五元组规则模板表,第二确定模块03,具体用于根据索引表中五元组规则标志位查询五元组规则模板表,确定与五元组信息对应的目标五元组规则。
在一个实施例中,第二确定模块03,具体用于依次查询索引表中第二目标IP地址对应的五元组规则标志位;若五元组规则标志位为第一值,则查询五元组规则标志位对应的五元组规则模板表,确定与五元组信息对应的目标五元组规则;若索引表中的所有五元组规则标志位均为第二值,则确定第二目标IP地址为五元组信息对应的目标五元组规则。
在一个实施例中,第二确定模块03,具体用于根据五元组信息,从五元组规则标志位对应的五元组规则模板表中查询与五元组信息匹配的五元组规则;若存在与五元组信息匹配的五元组规则,则将匹配到的五元组规则确定为目标五元组规则;若不存在与五元组信息匹配的目标五元组规则,则确定第二目标IP地址为五元组信息对应的目标五元组规则。
在一个实施例中,第二确定模块03,还用于若所有索引表中,均不存在与第一IP地址一致的第二目标IP地址,则终止查询操作。
在一个实施例中,如图10所示,规则查询装置还包括分类模块04,用于根据IP的类型,对五元组规则进行分类,得到预设的多个五元组规则表;五元组规则表包括源IP规则表、目的IP规则表、以及源IP与目的IP组合规则表。
关于规则查询装置的具体限定可以参见上文中对于规则查询方法的限定,在此不再赘述。上述规则查询装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取请求报文的五元组信息中的互联网协议IP地址;
从预设的多个五元组规则表中,确定与IP地址对应的目标五元组规则表;五元组规则表包括五元组信息和五元组规则的对应关系;
根据五元组信息查询目标五元组规则表,确定与五元组信息对应的目标五元组规则。
上述实施例提供的计算机设备,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取请求报文的五元组信息中的互联网协议IP地址;
从预设的多个五元组规则表中,确定与IP地址对应的目标五元组规则表;五元组规则表包括五元组信息和五元组规则的对应关系;
根据五元组信息查询目标五元组规则表,确定与五元组信息对应的目标五元组规则。
上述实施例提供的计算机可读存储介质,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种规则查询方法,其特征在于,所述方法包括:
获取请求报文的五元组信息中的互联网协议IP地址;
从预设的多个五元组规则表中,确定与所述IP地址对应的目标五元组规则表;所述五元组规则表包括五元组信息和五元组规则之间的对应关系;
根据所述五元组信息查询所述目标五元组规则表,确定与所述五元组信息对应的目标五元组规则。
2.根据权利要求1所述的方法,其特征在于,所述目标五元组规则表中包括索引表,所述从预设的多个五元组规则表中,确定所述IP对应的目标五元组规则表,包括:
将所述五元组信息中的第一IP地址,依次与各所述索引表中的各第二IP地址进行比较;
若在当前索引表中,存在与所述第一IP地址一致的第二目标IP地址,则确定所述当前索引表对应的五元组规则表为所述目标五元组规则表。
3.根据权利要求2所述的方法,其特征在于,所述目标五元组规则表中还包括五元组规则模板表,所述根据所述五元组信息查询所述目标五元组规则表,确定与所述五元组信息对应的目标五元组规则,包括:
根据所述索引表中五元组规则标志位查询所述五元组规则模板表,确定与所述五元组信息对应的目标五元组规则。
4.根据权利要求3所述的方法,其特征在于,所述根据所述索引表中五元组规则标志位查询所述五元组规则模板表,确定与所述五元组信息对应的目标五元组规则,包括:
依次查询所述索引表中所述第二目标IP地址对应的五元组规则标志位;
若所述五元组规则标志位为第一值,则查询所述五元组规则标志位对应的五元组规则模板表,确定与所述五元组信息对应的目标五元组规则;
若所述索引表中的所有五元组规则标志位均为第二值,则确定所述第二目标IP地址为所述五元组信息对应的目标五元组规则。
5.根据权利要求4所述的方法,其特征在于,所述查询所述五元组规则标志位对应的五元组规则模板表,确定与所述五元组信息对应的目标五元组规则,包括:
根据所述五元组信息,从所述五元组规则标志位对应的五元组规则模板表中查询与所述五元组信息匹配的五元组规则;
若存在与所述五元组信息匹配的五元组规则,则将匹配到的五元组规则确定为所述目标五元组规则;
若不存在与所述五元组信息匹配的目标五元组规则,则确定所述第二目标IP地址为所述五元组信息对应的目标五元组规则。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所有所述索引表中,均不存在与所述第一IP地址一致的第二目标IP地址,则终止查询操作。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
根据所述IP的类型,对五元组规则进行分类,得到所述预设的多个五元组规则表;所述五元组规则表包括源IP规则表、目的IP规则表、以及源IP与目的IP组合规则表。
8.一种规则查询装置,其特征在于,所述装置包括:
获取模块,用于获取请求报文的五元组信息中的互联网协议IP地址;
第一确定模块,用于从预设的多个五元组规则表中,确定与所述IP地址对应的目标五元组规则表;所述五元组规则表包括五元组信息和五元组规则之间的对应关系;
第二确定模块,用于根据所述五元组信息查询所述目标五元组规则表,确定与所述五元组信息对应的目标五元组规则。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011104222.XA CN112383479B (zh) | 2020-10-15 | 2020-10-15 | 规则查询方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011104222.XA CN112383479B (zh) | 2020-10-15 | 2020-10-15 | 规则查询方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112383479A true CN112383479A (zh) | 2021-02-19 |
CN112383479B CN112383479B (zh) | 2022-03-22 |
Family
ID=74581540
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011104222.XA Active CN112383479B (zh) | 2020-10-15 | 2020-10-15 | 规则查询方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112383479B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1909455A (zh) * | 2006-08-09 | 2007-02-07 | 杭州华为三康技术有限公司 | 一种加速多域分类规则线性查找的系统和方法 |
US7299296B1 (en) * | 2002-09-18 | 2007-11-20 | Juniper Networks, Inc. | Filtering data flows based on associated forwarding tables |
CN101170563A (zh) * | 2007-11-30 | 2008-04-30 | 杭州华三通信技术有限公司 | 一种匹配报文规则的方法和装置 |
CN102316040A (zh) * | 2011-09-09 | 2012-01-11 | 中兴通讯股份有限公司 | 一种访问控制列表查找的方法及数据流分类装置 |
CN104468381A (zh) * | 2014-12-01 | 2015-03-25 | 国家计算机网络与信息安全管理中心 | 一种多域流规则匹配的实现方法 |
US20150146725A1 (en) * | 2013-11-26 | 2015-05-28 | Pismo Labs Technology Limited | Methods and systems for processing internet protocol packets |
EP3059906A1 (en) * | 2013-11-19 | 2016-08-24 | Huawei Technologies Co., Ltd. | Table items addressing method, switch, and controller based on flow table |
CN106027459A (zh) * | 2015-12-28 | 2016-10-12 | 深圳市恒扬数据股份有限公司 | 一种访问控制列表的查询方法及装置 |
-
2020
- 2020-10-15 CN CN202011104222.XA patent/CN112383479B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7299296B1 (en) * | 2002-09-18 | 2007-11-20 | Juniper Networks, Inc. | Filtering data flows based on associated forwarding tables |
CN1909455A (zh) * | 2006-08-09 | 2007-02-07 | 杭州华为三康技术有限公司 | 一种加速多域分类规则线性查找的系统和方法 |
CN101170563A (zh) * | 2007-11-30 | 2008-04-30 | 杭州华三通信技术有限公司 | 一种匹配报文规则的方法和装置 |
CN102316040A (zh) * | 2011-09-09 | 2012-01-11 | 中兴通讯股份有限公司 | 一种访问控制列表查找的方法及数据流分类装置 |
EP3059906A1 (en) * | 2013-11-19 | 2016-08-24 | Huawei Technologies Co., Ltd. | Table items addressing method, switch, and controller based on flow table |
US20150146725A1 (en) * | 2013-11-26 | 2015-05-28 | Pismo Labs Technology Limited | Methods and systems for processing internet protocol packets |
CN104468381A (zh) * | 2014-12-01 | 2015-03-25 | 国家计算机网络与信息安全管理中心 | 一种多域流规则匹配的实现方法 |
CN106027459A (zh) * | 2015-12-28 | 2016-10-12 | 深圳市恒扬数据股份有限公司 | 一种访问控制列表的查询方法及装置 |
Non-Patent Citations (2)
Title |
---|
GÖKSAN ERAL;ECE GÜRAN SCHMIDT: "FASST: A high performance scalable rule table hardware architecture for software defined networks", 《2018 26TH SIGNAL PROCESSING AND COMMUNICATIONS APPLICATIONS CONFERENCE (SIU)》 * |
庞立会等: "一种IPV6环境下的高性能规则匹配算法研究", 《计算机科学》 * |
Also Published As
Publication number | Publication date |
---|---|
CN112383479B (zh) | 2022-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111711577B (zh) | 流控设备的报文转发方法及装置 | |
US8542686B2 (en) | Ethernet forwarding database method | |
CN107528783B (zh) | 利用对前缀长度进行两个搜索阶段的ip路由缓存 | |
US10397362B1 (en) | Combined cache-overflow memory structure | |
CN108476179A (zh) | 简化的正交网络策略集选择 | |
WO2021238248A1 (zh) | 一种网络流量的分类处理方法、装置、设备及介质 | |
CN109921995B (zh) | 一种配置地址表的方法、fpga和应用该fpga的网络设备 | |
WO2020119310A1 (zh) | 查找表存储方法、装置及计算机可读存储介质 | |
CN112671648A (zh) | 一种sdn网络数据传输方法、sdn网络、设备及介质 | |
CN113411380B (zh) | 基于fpga可编程会话表的处理方法、逻辑电路和设备 | |
EP3958523B1 (en) | Information processing apparatus and packet control method | |
CN112866139A (zh) | 一种多规则流分类的实现方法、设备和存储介质 | |
US9923794B2 (en) | Method, apparatus, and system for identifying abnormal IP data stream | |
CN112383479B (zh) | 规则查询方法、装置、计算机设备和存储介质 | |
US20230367720A1 (en) | Data search method and apparatus, and integrated circuit | |
CN116599892A (zh) | 一种服务器系统、路由方法、装置及电子设备和存储介质 | |
CN114338529B (zh) | 五元组规则匹配方法及装置 | |
CN112291212B (zh) | 静态规则的管理方法、装置、电子设备和存储介质 | |
US11316788B2 (en) | Dynamic allocation of resources within network devices | |
US20180054386A1 (en) | Table lookup method for determing set membership and table lookup apparatus using the same | |
Lee et al. | Approaches for improving tuple space search-based table lookup | |
Song et al. | Rwhash: Rewritable hash table for fast network processing with dynamic membership updates | |
CN117955907B (zh) | 报文处理方法、虚拟交换机、装置和存储介质 | |
Hung et al. | Heterogeneous Flow Table Integration for Capacity Enhancement in Software-Defined Networks | |
CN115996203B (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 |