CN114422164B - 五元组表项下发装置及方法 - Google Patents
五元组表项下发装置及方法 Download PDFInfo
- Publication number
- CN114422164B CN114422164B CN202111435527.3A CN202111435527A CN114422164B CN 114422164 B CN114422164 B CN 114422164B CN 202111435527 A CN202111435527 A CN 202111435527A CN 114422164 B CN114422164 B CN 114422164B
- Authority
- CN
- China
- Prior art keywords
- destination address
- tuple
- ipv6
- address
- data
- 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
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/255—Maintenance or indexing of mapping tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开涉及一种五元组表项下发方法、装置、电子设备及计算机可读介质。该方法包括:获取待下发芯片的五元组信息,所述五元组信息中包括IPv6目的地址;基于结构体变量表将所述IPv6目的地址的n位字节替换为标签值;通过所述标签值、所述IPv6目的地址的m位字节生成压缩目的地址;基于所述压缩目的地址生成五元组表项,并将所述五元组表项下发至网络设备。本申请涉及的五元组表项下发方法、装置、电子设备及计算机可读介质,能够将IPv6五元组ACL表项数据全部填入ACL表项的匹配条件变量结构体中,可以保证下刷表项成功,还能够提高表项匹配速度。
Description
技术领域
本公开涉及计算机信息处理领域,具体而言,涉及一种五元组表项下发方法、装置、电子设备及计算机可读介质。
背景技术
随着网络规模日益扩大,网络流量日益增加,网络安全防护、流量控制和对带宽限制与分配等网络管理措施也越来越重要,用户强烈需要一种方法,能够精确控制网络流量,防范攻击或监控网络,ACL就在这种情况下应运而生了。ACL(Access Control List,访问控制列表)即通过配置对报文的匹配条件和处理动作而实现报文过滤和控制的功能。当网络设备的物理接口接收到报文,或将从物理接口发送出去之前,根据当前接口上配置的ACL表项对报文内容进行解析和匹配,对匹配到的报文进行相应动作处理。
随着网络的发展,IPV6地址越来越多,在下刷IPV6模式五元组ACL表项时,需要将源IPv6地址、目的IPv6地址、IP协议号、源端口号、目的端口号、物理端口等字段的数据依次填入ACL表项的匹配条件变量结构体中。其中源IPv6地址、目的IPv6地址、IP协议号、源端口号、目的端口号合称五元组,填入五元组表项的结构体的成员所需要的字节空间大于现有的大部分交换机芯片可用的数据字节数。在下刷IPV6模式五元组ACL表项时,指定的匹配条件的数据总字节数超过交换芯片提供的可用的数据字节数,就会存在由于交换芯片的硬件资源不足导致的下刷ACL表项失败情况。
因此,需要一种新的五元组表项下发方法、装置、电子设备及计算机可读介质。
在所述背景技术部分公开的上述信息仅用于加强对本申请的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
有鉴于此,本申请提供一种五元组表项下发方法、装置、电子设备及计算机可读介质,能够将IPv6五元组ACL表项数据全部填入ACL表项的匹配条件变量结构体中,可以保证下刷表项成功,还能够提高表项匹配速度。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请的一方面,提出一种五元组表项下发方法,该方法包括:获取待下发芯片的五元组信息,所述五元组信息中包括IPv6目的地址;基于结构体变量表将所述IPv6目的地址的n位字节替换为标签值;通过所述标签值、所述IPv6目的地址的m位字节生成压缩目的地址;基于所述压缩目的地址生成五元组表项,并将所述五元组表项下发至网络设备。
在本申请的一种示例性实施例中,还包括:基于多个结构体和其对应的标签值生成所述结构体变量表;其中,结构体中包含地址数据和地址数据对应的引用次数。
在本申请的一种示例性实施例中,还包括:所述网络设备获取流量数据;由所述流量数据中提取五元组信息,所述五元组信息中包括IPv6目的地址;将所述五元组信息中目的地址中的n位字节和所述结构体变量表中的数据进行首次匹配;在首次匹配一致时,将所述五元组信息中的其他信息和访问控制列表中的表项进行二次匹配。
在本申请的一种示例性实施例中,还包括:在首次匹配不一致时,按照预设策略对所述流量数据进行处理。
在本申请的一种示例性实施例中,将所述五元组信息中的其他信息和访问控制列表中的表项进行二次匹配,包括:在二次匹配一致时,基于所述访问控制列表中的处理动作对所述流量数据进行处理;在二次匹配不一致时,按照预设策略对所述流量数据进行处理。
在本申请的一种示例性实施例中,基于结构体变量表将所述IPv6目的地址的n位字节替换为标签值,包括:初始化所述结构体变量表;将所述IPv6目的地址的n位字节和所述结构体变量表中的结构体进行比较;根据比较结果将所述IPv6目的地址的n位字节替换为标签值。
在本申请的一种示例性实施例中,初始化所述结构体变量表,包括:将所述结构体变量表中结构体中的地址数据初始化为0xff;将所述结构体变量表中结构体中的地址数据对应的引用次数初始化为0。
在本申请的一种示例性实施例中,将所述IPv6目的地址的n位字节和所述结构体变量表中的结构体进行比较,包括:循环读取所述结构体变量表中的结构体;在所述结构体中的引用次数不为0时,将所述IPv6目的地址的n位字节和所述结构体中的地址数据进行比较。
在本申请的一种示例性实施例中,根据比较结果将所述IPv6目的地址的n位字节替换为标签值,包括:在比较结果一致时,将所述IPv6目的地址的n位字节替换为所述结构体对应的标签值;将所述结构体对应的引用次数加1。
在本申请的一种示例性实施例中,包括:在所述结构体变量表中所有结构体中的引用次数均为0或所有比较结果均不一致时,将所述IPv6目的地址的n位字节替换当前循环指针对应的标签值;将所述结构体对应的引用次数加1。
根据本申请的一方面,提出一种五元组表项下发装置,该装置包括:信息模块,用于获取待下发芯片的五元组信息,所述五元组信息中包括IPv6目的地址;替换模块,用于基于结构体变量表将所述IPv6目的地址的n位字节替换为标签值;压缩模块,用于通过所述标签值、所述IPv6目的地址的m位字节生成压缩目的地址;下发模块,用于基于所述压缩目的地址生成五元组表项,并将所述五元组表项下发至网络设备。
在本申请的一种示例性实施例中,还包括:流量模块,用于所述网络设备获取流量数据;提取模块,用于由所述流量数据中提取五元组信息,所述五元组信息中包括IPv6目的地址;首次匹配模块,用于将所述五元组信息中目的地址中的n位字节和所述结构体变量表中的数据进行首次匹配;二次匹配模块,用于在首次匹配一致时,将所述五元组信息中的其他信息和访问控制列表中的表项进行二次匹配。
根据本申请的一方面,提出一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上文的方法。
根据本申请的一方面,提出一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上文中的方法。
根据本申请的五元组表项下发方法、装置、电子设备及计算机可读介质,通过获取待下发芯片的五元组信息,所述五元组信息中包括IPv6目的地址;基于结构体变量表将所述IPv6目的地址的n位字节替换为标签值;通过所述标签值、所述IPv6目的地址的m位字节生成压缩目的地址;基于所述压缩目的地址生成五元组表项,并将所述五元组表项下发至网络设备的方式,能够将IPv6五元组ACL表项数据全部填入ACL表项的匹配条件变量结构体中,可以保证下刷表项成功,还能够提高表项匹配速度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
通过参照附图详细描述其示例实施例,本申请的上述和其它目标、特征及优点将变得更加显而易见。下面描述的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种五元组表项下发方法中结构体变量表示意图。
图2是根据一示例性实施例示出的一种五元组表项下发方法的流程图。
图3是根据另一示例性实施例示出的一种五元组表项下发方法的流程图。
图4是根据另一示例性实施例示出的一种五元组表项下发方法的流程图。
图5是根据一示例性实施例示出的一种五元组表项下发装置的框图。
图6是根据另一示例性实施例示出的一种五元组表项下发装置的框图。
图7是根据一示例性实施例示出的一种电子设备的框图。
图8是根据一示例性实施例示出的一种计算机可读介质的框图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本申请将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本申请概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的,因此不能用于限制本申请的保护范围。
本申请涉及的技术缩略语解释如下:
Ipv4地址:连接到Internet上的设备接口必须有一个全球唯一的IP地址。IP地址长度为32比特,通常采用点分十进制方式表示,即每个IP地址被表示为以小数点隔开的4个十进制整数,每个整数对应一个字节,如10.1.1.1。
IPv6地址:IPv6(Internet Protocol Version 6,因特网协议版本6)是网络层协议的第二代标准协议,也被称为IPng(IP Next Generation,下一代因特网),它是IETF(Internet Engineering Task Force,Internet工程任务组)设计的一套规范,是IPv4的升级版本。IPv6和IPv4之间最显著的区别为:IP地址的长度从32比特增加到128比特。
指针:计算机的内存中的每一个字节,都有一个编号,称之为地址。一个变量的地址,就是这个变量的指针。
指针变量:专门用来存放另一个变量的地址(指针)的变量,称之为指针变量。
以太网交换机:工作于OSI网络参考模型的第二层(即数据链路层),是一种基于MAC(Media Access Control,媒介访问控制)地址识别、完成以太网数据帧转发的网络设备。
ACL:ACL(Access Control List,访问控制列表)即通过配置对报文的匹配条件和处理动作而实现报文过滤和控制的功能。当网络设备的物理接口接收到报文,或将从物理接口发送出去之前,根据当前接口上配置的ACL表项对报文内容进行解析和匹配,对匹配到的报文进行相应动作处理。
ACL表项:ACL功能实现的基本单位。ACL表项分为两部分:匹配条件和动作。用户通过管理手段向交换芯片下刷ACL策略到指定ACL表项中,此时该ACL表项称为生效ACL表项,可以用于匹配进入ACL匹配流程的报文;否则称为空闲ACL表项,不起任何作用。
ACL模式:一条ACL不可能同时支持所有匹配条件,因此将ACL按照匹配条件进行分类,每一类作为一种ACL模式,支持若干关系密切的几种匹配条件。
IPv6模式:支持匹配IPv6报文的源IPv6地址、目的IPv6地址、IP协议号、源端口号、目的端口号、物理端口,其中前五种同时匹配时称为五元组。
本申请的发明人发现,源IPv6地址、目的IPv6地址、IP协议号、源端口号、目的端口号合称五元组,填入五元组表项的结构体的成员至少需要源IPv6地址(16字节)+目的IPv6地址(16字节)+IP协议号(1字节)+源端口号(2字节)+目的端口号(2字节)=37字节的空间。而一般情况下,网络设备中的交换芯片提供的可用的数据字节数为31字节,在下刷IPv6模式五元组ACL表项时,指定的匹配条件的数据总字节数超过交换芯片提供的可用的数据字节数导致下刷ACL表项失败。
为了解决现有技术中的难题,本申请提出一种五元组表项下发方法,采用本申请中的技术方案,IPv6五元组ACL表项数据就能全部填入ACL表项的匹配条件变量结构体中,可以下刷表项成功。而且,在实际中的五元组信息匹配时,采用两次匹配的方式,也能够提高ACL表项的匹配效率。
下面借助具体的实施例,进行详细说明。
图1是根据一示例性实施例示出的一种五元组表项下发方法中结构体变量表的示意图。
在一个实施例中,可基于多个结构体和其对应的标签值生成所述结构体变量表;其中,结构体中包含地址数据和地址数据对应的引用次数。
更具体的,在结构体变量表中可定义1个结构体类型指针dstIPv6_record_info,每一个label id对应1个结构体,该结构体包含2个成员:
(1)label id的引用次数reference;
(2)目的IPv6地址。
还可例如,申请一片空间由该结构体指针dstIPv6_record_info指向,空间总大小=单个结构体大小*允许分配的label id个数。
还可例如,将该片空间中每一个结构体的目的IPv6地址数据全部初始化为非法值0xff,将每个label id的引用次数reference初始化为0。
值得一提的是,在本申请中,允许分配的label id个数是可变的;而且对于压缩多少位的字节数据,这个位数也是可变的以满足五元组表项数据总字节数<=交换芯片提供的可用的数据字节数,位数的指定可以用掩码的形式实现,在本申请中,仅是用8位来举例说明,在实际操作中,还可以选取其他的位数进行替换。
图2是根据一示例性实施例示出的一种五元组表项下发方法的流程图。五元组表项下发方法20至少包括步骤S202至S208。
如图2所示,在S202中,获取待下发芯片的五元组信息,所述五元组信息中包括IPv6目的地址。其中,IPv6目的地址的字节数为n+m位,n和m为正整数。
在S204中,基于结构体变量表将所述IPv6目的地址的n位字节替换为标签值。初始化所述结构体变量表;将所述IPv6目的地址的n位字节和所述结构体变量表中的结构体进行比较;根据比较结果将所述IPv6目的地址的n位字节替换为标签值。
可例如,循环读取所述结构体变量表中的结构体;在所述结构体中的引用次数不为0时,将所述IPv6目的地址的n位字节和所述结构体中的地址数据进行比较。
在一个实施例中,在比较结果一致时,将所述IPv6目的地址的n位字节替换为所述结构体对应的标签值;将所述结构体对应的引用次数加1。
在一个实施例中,在所述结构体变量表中所有结构体中的引用次数均为0或所有比较结果均不一致时,将所述IPv6目的地址的n位字节替换当前循环指针对应的标签值;将所述结构体对应的引用次数加1。
“基于结构体变量表将所述IPv6目的地址的n位字节替换为标签值”的具体内容将在图4对应的实施例中进行详细描述。
在S206中,通过所述标签值、所述IPv6目的地址的m位字节生成压缩目的地址。在本申请中,仅是用8位来举例说明,在实际操作中,还可以选取其他的位数进行替换。
更具体的,根据上述替换操作,IPv6模式五元组中的目的IPv6地址(16字节)拆分为两部分,一部分为将高8位字节IPv6地址数据替换成1个id值,称为标签值;另一部分为低8位字节IPv6地址数据正常填入ACL表项结构体变量的匹配条件成员中。
在S208中,基于所述压缩目的地址生成五元组表项,并将所述五元组表项下发至网络设备。通过上述操作,ACL表项匹配条件的数据总字节数37字节-压缩8字节=29字节<31字节(可用的最大数据字节数),IPv6五元组表项就能全部填入ACL表项的匹配条件变量结构体中,可以下刷表项成功。
值得一提的是,在本申请的方面中,将高8位字节IPv6地址数据压缩成1个labelid值过程中,需要保证如果下刷多条IPV6模式五元组ACL表项,如果它们的高8位字节都相同,则只会引用同一个label id值,如果任意2条IPv6模式五元组ACL表项的目的IPv6地址高8位字节不同,则必须引用不同的label id值,这2个原则必须保证。
根据本申请的五元组表项下发方法,通过获取待下发芯片的五元组信息,所述五元组信息中包括IPv6目的地址;基于结构体变量表将所述IPv6目的地址的n位字节替换为标签值;通过所述标签值、所述IPv6目的地址的m位字节生成压缩目的地址;基于所述压缩目的地址生成五元组表项,并将所述五元组表项下发至网络设备的方式,能够将IPv6五元组ACL表项数据全部填入ACL表项的匹配条件变量结构体中,可以保证下刷表项成功,还能够提高表项匹配速度。
应清楚地理解,本申请描述了如何形成和使用特定示例,但本申请的原理不限于这些示例的任何细节。相反,基于本申请公开的内容的教导,这些原理能够应用于许多其它实施例。
图3是根据另一示例性实施例示出的一种五元组表项下发方法的流程图。图3所示的流程30是对图2所示的流程的补充描述。
如图3所示,在S302中,所述网络设备获取流量数据。
在S304中,由所述流量数据中提取五元组信息,所述五元组信息中包括IPv6目的地址。由报文数据中提取源IPv6地址、目的IPv6地址、IP协议号、源端口号、目的端口号。
在S306中,将所述五元组信息中目的地址中的n位字节和所述结构体变量表中的数据进行首次匹配。交换芯片会把报文目的IPv6地址的高8字节和之前下发的label id值对应的高8字节目的IPv6地址作比较,如果正好相同则认为首次匹配成功。
在S308中,在首次匹配一致时,将所述五元组信息中的其他信息和访问控制列表中的表项进行二次匹配。然后报文的目的IPv6地址的低8字节、源IPv6地址、IP协议号、源端口号、目的端口号依次二次匹配,在首次和二次匹配均成功时,则该条ACL的表项的对应动作生效。
在一个实施例中,在首次匹配不一致时,按照预设策略对所述流量数据进行处理。
在一个实施例中,在二次匹配一致时,基于所述访问控制列表中的处理动作对所述流量数据进行处理。
在一个实施例中,在二次匹配不一致时,按照预设策略对所述流量数据进行处理。
图4是根据另一示例性实施例示出的一种五元组表项下发方法的流程图。图4所示的流程40是对图2所示的流程中S204“基于结构体变量表将所述IPv6目的地址的n位字节替换为标签值”的详细描述。
如图4所示,在S402中,初始化结构体变量表,且i=0。下发IPv6五元组ACL表项时,循环label id总个数进行目的IPv6地址高8字节数据匹配,定义循环变量i,i的值从0递增到允许分配的label id个数-1。
在S404中,第i个label id<=label_id MAX,当前比较的label id不是最大的label id。
在S406中,第i个label id的引用次数不等于0。
在S408中,返回当前label i。引用次数是0则当前label id没有被引用过,该label id对应的结构体也是未使用过的,直接返回该label id值即可。
后续在将该label id和IPv6五元组ACL的匹配条件一起下刷表项过程中,该labelid的引用次数要+1,另外如果label id是第一次引用,则其对应的结构体的目的IPv6地址赋值为此次下刷的IPv6五元组ACL表项中的目的IPv6地址。
在S410中,此label id的值和当前目的IPV6的高8位数据相等,i++。先循环labelid总个数检查每一个label id对应的结构体中的引用次数是否为0。如果引用次数不是0说明当前label id已经被引用过,此时再进一步比较下发的目的IPv6地址的高8字节数据和当前label id结构体中的目的IPv6地址的高8位字节数据,如果二者相等可直接返回该label id值,如果二者不相等则继续检查下一个label id对应的结构体中引用次数。
在S412中,返回当前label id。
在S414中,label id资源耗尽,错误。先循环label id总个数检查每一个label id对应的结构体中的引用次数是否为0,如果循环完全部label id总数后发现每一个引用次数都非0,并且下发的目的IPv6地址的高8字节数据和每一个label id结构体中的目的IPv6地址的高8位字节数据都不相等,则此时label id资源耗尽,返回错误。
在一个实施例中,在删除IPv6五元组ACL表项时,该表项的目的IPv6地址的高8字节对应的label id的引用次数要-1,另外如果引用次数值减小到0,说明该label id没有ACL表项在引用,其对应的结构体的目的IPv6地址再次初始化为非法值0xff。
本领域技术人员可以理解实现上述实施例的全部或部分步骤被实现为由CPU执行的计算机程序。在该计算机程序被CPU执行时,执行本申请提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
此外,需要注意的是,上述附图仅是根据本申请示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图5是根据一示例性实施例示出的一种五元组表项下发装置的框图。如图5所示,五元组表项下发装置50包括:信息模块502,替换模块504,压缩模块506,下发模块508。
信息模块502用于获取待下发芯片的五元组信息,所述五元组信息中包括IPv6目的地址;其中,IPv6目的地址的字节数为n+m位,n和m为正整数。
替换模块504用于基于结构体变量表将所述IPv6目的地址的n位字节替换为标签值;替换模块504还用于初始化所述结构体变量表;将所述IPv6目的地址的n位字节和所述结构体变量表中的结构体进行比较;根据比较结果将所述IPv6目的地址的n位字节替换为标签值。
压缩模块506用于通过所述标签值、所述IPv6目的地址的m位字节生成压缩目的地址;压缩模块506还用于将IPv6模式五元组中的目的IPv6地址(16字节)拆分为两部分,一部分为将高8位字节IPv6地址数据替换成1个id值,称为标签值;另一部分为低8位字节IPv6地址数据正常填入ACL表项结构体变量的匹配条件成员中。
下发模块508用于基于所述压缩目的地址生成五元组表项,并将所述五元组表项下发至网络设备。
图6是根据另一示例性实施例示出的一种五元组表项下发装置的框图。如图6所示,五元组表项下发装置60包括:流量模块602,提取模块604,首次匹配模块606,二次匹配模块608。
流量模块602用于所述网络设备获取流量数据;
提取模块604用于由所述流量数据中提取五元组信息,所述五元组信息中包括IPv6目的地址;
首次匹配模块606用于将所述五元组信息中目的地址中的n位字节和所述结构体变量表中的数据进行首次匹配;首次匹配模块606还用于在首次匹配不一致时,按照预设策略对所述流量数据进行处理。
二次匹配模块608用于在首次匹配一致时,将所述五元组信息中的其他信息和访问控制列表中的表项进行二次匹配。二次匹配模块608还用于在二次匹配一致时,基于所述访问控制列表中的处理动作对所述流量数据进行处理;在二次匹配不一致时,按照预设策略对所述流量数据进行处理。
根据本申请的五元组表项下发装置,通过获取待下发芯片的五元组信息,所述五元组信息中包括IPv6目的地址;基于结构体变量表将所述IPv6目的地址的n位字节替换为标签值;通过所述标签值、所述IPv6目的地址的m位字节生成压缩目的地址;基于所述压缩目的地址生成五元组表项,并将所述五元组表项下发至网络设备的方式,能够将IPv6五元组ACL表项数据全部填入ACL表项的匹配条件变量结构体中,可以保证下刷表项成功,还能够提高表项匹配速度。
图7是根据一示例性实施例示出的一种电子设备的框图。
下面参照图7来描述根据本申请的这种实施方式的电子设备700。图7显示的电子设备700仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图7所示,电子设备700以通用计算设备的形式表现。电子设备700的组件可以包括但不限于:至少一个处理单元710、至少一个存储单元720、连接不同***组件(包括存储单元720和处理单元710)的总线730、显示单元740等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元710执行,使得所述处理单元710执行本说明书中描述的根据本申请各种示例性实施方式的步骤。例如,所述处理单元710可以执行如图2,图3,图4中所示的步骤。
所述存储单元720可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)7201和/或高速缓存存储单元7202,还可以进一步包括只读存储单元(ROM)7203。
所述存储单元720还可以包括具有一组(至少一个)程序模块7205的程序/实用工具7204,这样的程序模块7205包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线730可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备700也可以与一个或多个外部设备700’(例如键盘、指向设备、蓝牙设备等)通信,使得用户能与该电子设备700交互的设备通信,和/或该电子设备700能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口750进行。并且,电子设备700还可以通过网络适配器760与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器760可以通过总线730与电子设备700的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,如图8所示,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本申请实施方式的上述方法。
所述软件产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该计算机可读介质实现如下功能:获取待下发芯片的五元组信息,所述五元组信息中包括IPv6目的地址;基于结构体变量表将所述IPv6目的地址的n位字节替换为标签值;通过所述标签值、所述IPv6目的地址的m位字节生成压缩目的地址;基于所述压缩目的地址生成五元组表项,并将所述五元组表项下发至网络设备。该计算机可读介质还可实现如下功能:基于多个结构体和其对应的标签值生成所述结构体变量表;其中,结构体中包含地址数据和地址数据对应的引用次数。该计算机可读介质还可实现如下功能:所述网络设备获取流量数据;由所述流量数据中提取五元组信息,所述五元组信息中包括IPv6目的地址;将所述五元组信息中目的地址中的n位字节和所述结构体变量表中的数据进行首次匹配;在首次匹配一致时,将所述五元组信息中的其他信息和访问控制列表中的表项进行二次匹配。
本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本申请实施例的方法。
以上具体地示出和描述了本申请的示例性实施例。应可理解的是,本申请不限于这里描述的详细结构、设置方式或实现方法;相反,本申请意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
Claims (8)
1.一种五元组表项下发方法,其特征在于,包括:
网络设备获取流量数据,由所述流量数据中获取待下发芯片的五元组信息,所述五元组信息中包括IPv6目的地址,其中,IPv6目的地址的字节数为n+m位,n和m为正整数;
基于多个结构体和其对应的标签值生成结构体变量表,其中结构体中包含地址数据和地址数据对应的引用次数
将所述五元组信息中目的地址中的n位字节和所述结构体变量表中的数据进行首次匹配;
在首次匹配一致时,将所述五元组信息中的其他信息和访问控制列表中的表项进行二次匹配;
基于结构体变量表将所述IPv6目的地址的n位字节替换为标签值,包括:初始化所述结构体变量表,将所述IPv6目的地址的n位字节和所述结构体变量表中的结构体进行比较,以及根据比较结果将所述IPv6目的地址的n位字节替换为标签值;
通过所述标签值、所述IPv6目的地址的m位字节生成压缩目的地址;
基于所述压缩目的地址生成五元组表项,并将所述五元组表项下发至网络设备。
2.如权利要求1所述的方法,其特征在于,还包括:
在首次匹配不一致时,按照预设策略对所述流量数据进行处理。
3.如权利要求1所述的方法,其特征在于,将所述五元组信息中的其他信息和访问控制列表中的表项进行二次匹配,包括:
在二次匹配一致时,基于所述访问控制列表中的处理动作对所述流量数据进行处理;
在二次匹配不一致时,按照预设策略对所述流量数据进行处理。
4.如权利要求1所述的方法,其特征在于,初始化所述结构体变量表,包括:
将所述结构体变量表中结构体中的地址数据初始化为0xff;
将所述结构体变量表中结构体中的地址数据对应的引用次数初始化为0。
5.如权利要求1所述的方法,其特征在于,将所述IPv6目的地址的n位字节和所述结构体变量表中的结构体进行比较,包括:
循环读取所述结构体变量表中的结构体;
在所述结构体中的引用次数不为0时,将所述IPv6目的地址的n位字节和所述结构体中的地址数据进行比较。
6.如权利要求5所述的方法,其特征在于,根据比较结果将所述IPv6目的地址的n位字节替换为标签值,包括:
在比较结果一致时,将所述IPv6目的地址的n位字节替换为所述结构体对应的标签值;
将所述结构体对应的引用次数加1。
7.如权利要求6所述的方法,其特征在于,包括:
在所述结构体变量表中所有结构体中的引用次数均为0或所有比较结果均不一致时,将所述IPv6目的地址的n位字节替换当前循环指针对应的标签值;
将所述结构体对应的引用次数加1。
8.一种五元组表项下发装置,其特征在于,包括:
流量模块,用于网络设备获取流量数据;
提取模块,用于由所述流量数据中提取五元组信息,所述五元组信息中包括IPv6目的地址;
信息模块,用于获取待下发芯片的五元组信息,所述五元组信息中包括IPv6目的地址,其中,IPv6目的地址的字节数为n+m位,n和m为正整数;
替换模块,用于基于结构体变量表将所述IPv6目的地址的n位字节替换为标签值,其中所述结构体变量表基于多个结构体和其对应的标签值生成,其中结构体中包含地址数据和地址数据对应的引用次数,其中所述五元组信息中目的地址中的n位字节和所述结构体变量表中的数据被首次匹配,以及在首次匹配一致时,所述五元组信息中的其他信息和访问控制列表中的表项被二次匹配,所述替换包括:初始化所述结构体变量表,将所述IPv6目的地址的n位字节和所述结构体变量表中的结构体进行比较,以及根据比较结果将所述IPv6目的地址的n位字节替换为标签值;
压缩模块,用于通过所述标签值、所述IPv6目的地址的m位字节生成压缩目的地址;
下发模块,用于基于所述压缩目的地址生成五元组表项,并将所述五元组表项下发至网络设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111435527.3A CN114422164B (zh) | 2021-11-29 | 2021-11-29 | 五元组表项下发装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111435527.3A CN114422164B (zh) | 2021-11-29 | 2021-11-29 | 五元组表项下发装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114422164A CN114422164A (zh) | 2022-04-29 |
CN114422164B true CN114422164B (zh) | 2023-09-15 |
Family
ID=81266357
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111435527.3A Active CN114422164B (zh) | 2021-11-29 | 2021-11-29 | 五元组表项下发装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114422164B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115277553B (zh) * | 2022-06-24 | 2023-11-21 | 深圳星云智联科技有限公司 | 一种流表存储方法、装置、设备和计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009219012A (ja) * | 2008-03-12 | 2009-09-24 | Ipt Corp | 固定長データの検索方法 |
CN102291301A (zh) * | 2011-08-10 | 2011-12-21 | 杭州迪普科技有限公司 | 一种报文特征的匹配方法及装置 |
CN103825976A (zh) * | 2014-03-04 | 2014-05-28 | 杭州华三通信技术有限公司 | 分布式***架构中的nat处理方法及装置 |
CN106778242A (zh) * | 2016-11-28 | 2017-05-31 | 北京奇虎科技有限公司 | 基于虚拟机的内核漏洞检测方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10798000B2 (en) * | 2014-12-22 | 2020-10-06 | Arista Networks, Inc. | Method and apparatus of compressing network forwarding entry information |
US10091137B2 (en) * | 2017-01-30 | 2018-10-02 | Cavium, Inc. | Apparatus and method for scalable and flexible wildcard matching in a network switch |
-
2021
- 2021-11-29 CN CN202111435527.3A patent/CN114422164B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009219012A (ja) * | 2008-03-12 | 2009-09-24 | Ipt Corp | 固定長データの検索方法 |
CN102291301A (zh) * | 2011-08-10 | 2011-12-21 | 杭州迪普科技有限公司 | 一种报文特征的匹配方法及装置 |
CN103825976A (zh) * | 2014-03-04 | 2014-05-28 | 杭州华三通信技术有限公司 | 分布式***架构中的nat处理方法及装置 |
CN106778242A (zh) * | 2016-11-28 | 2017-05-31 | 北京奇虎科技有限公司 | 基于虚拟机的内核漏洞检测方法及装置 |
Non-Patent Citations (1)
Title |
---|
基于"IPv6+"的应用感知网络(APN6);何林;《电信科学》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114422164A (zh) | 2022-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111817960B (zh) | 流控设备的报文转发方法及装置 | |
Buchanan | The Handbook of Data Communications and Networks: Volume 1. Volume 2 | |
CN104169897A (zh) | 对用于快速pci高速多功能设备地址解码的数据解码 | |
CN114285781B (zh) | Srv6业务流量统计方法、装置、电子设备及介质 | |
CN114422164B (zh) | 五元组表项下发装置及方法 | |
CN114006956A (zh) | 报文数据解析方法、装置及设备 | |
CN114338498B (zh) | 基于SRv6的报文处理方法、***、电子设备及介质 | |
CN114338510B (zh) | 控制和转发分离的数据转发方法和*** | |
CN114828140A (zh) | 业务流量报文转发方法及装置、存储介质及电子设备 | |
CN113890879A (zh) | 数据访问的负载均衡方法、装置、计算机设备及介质 | |
CN113220481A (zh) | 请求处理及反馈方法、装置、计算机设备及可读存储介质 | |
CN108595973B (zh) | 指令确定方法、设备控制方法、装置和*** | |
CN114143079B (zh) | 包过滤策略的验证装置及方法 | |
CN116032614A (zh) | 容器网络微隔离方法、装置、设备和介质 | |
CN115333753A (zh) | 互联网协议地址生成方法、装置、存储介质与电子设备 | |
CN114124822B (zh) | 报文匹配处理装置及方法 | |
CN113922972B (zh) | 基于md5标识码的数据转发方法和装置 | |
CN112910910B (zh) | Opcda协议报文处理方法、装置、设备以及存储介质 | |
CN109068170A (zh) | 一种弹幕消息的存储方法、装置、终端和存储介质 | |
US20120110207A1 (en) | Embedding zone identifiers in ip addresses | |
CN113672416A (zh) | 内存资源泄漏的原因定位方法及装置 | |
CN113672261A (zh) | 云软件更新方法、电子设备和存储介质 | |
CN114363257B (zh) | 隧道报文的五元组匹配方法及装置 | |
CN115250254B (zh) | Netflow报文分发处理方法及装置 | |
CN111953807B (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 |