CN112311595A - 一种高效访问控制链表及其实现方法 - Google Patents

一种高效访问控制链表及其实现方法 Download PDF

Info

Publication number
CN112311595A
CN112311595A CN202011100604.5A CN202011100604A CN112311595A CN 112311595 A CN112311595 A CN 112311595A CN 202011100604 A CN202011100604 A CN 202011100604A CN 112311595 A CN112311595 A CN 112311595A
Authority
CN
China
Prior art keywords
access control
lock
linked list
list
control linked
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
Application number
CN202011100604.5A
Other languages
English (en)
Other versions
CN112311595B (zh
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.)
Chengdu Fenghuo Cloud Information Technology Co ltd
Fiberhome Telecommunication Technologies Co Ltd
Original Assignee
Chengdu Fenghuo Cloud Information Technology Co ltd
Fiberhome Telecommunication Technologies Co Ltd
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 Chengdu Fenghuo Cloud Information Technology Co ltd, Fiberhome Telecommunication Technologies Co Ltd filed Critical Chengdu Fenghuo Cloud Information Technology Co ltd
Priority to CN202011100604.5A priority Critical patent/CN112311595B/zh
Publication of CN112311595A publication Critical patent/CN112311595A/zh
Application granted granted Critical
Publication of CN112311595B publication Critical patent/CN112311595B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种高效访问控制链表,包括主无锁表、从无锁表和高效预取表,主无锁表存储有所有的规则,从无锁表为主无锁表的备份;高效预取表存储有已匹配的规则和包信息。主无锁表和从无锁表均采用区间子表的存储方式,将规则分为普通访问控制链表、网络地址转换访问控制链表、网络协议安全访问控制链表、深度报文检测访问控制链表,并分别存储在各区间子表中。本发明采用高效预取表机制和无锁表存储机制实现了高效匹配;将无锁表的规则分区间存储,表项结构层次明显,可直接进行分区匹配;采用主无锁表和备无锁表的主备切换机制,从而在对无锁表进行配置时无需加锁处理,提高匹配速率。本发明还提供了相应的高效访问控制链表的实现方法。

Description

一种高效访问控制链表及其实现方法
技术领域
本发明属于软转发技术领域,更具体地,涉及一种高效访问控制链表及其实现方法。
背景技术
访问控制链表广泛运用于路由器和虚拟防火墙等设备,目前通用的匹配算法局限性较多,内存消耗大,查找匹配速率较低,流程较为复杂。上述算法已不适用于大流量的设备,因此,提高访问控制链表匹配速率显得尤为重要。
当前软转发为支持DPDK(Data Plane Development Kit,数据平面开发套件)通配符匹配,当数据包进行匹配时,需遍历整个访问控制链表,当访问控制链表规则较多时,遍历整个访问控制链表规则及其消耗性能;当数据包进行匹配时,因为可能有规则插入和删除,需要首先加锁在进行匹配,降低了匹配速率;当前表项存储不区分访问控制列表(Access Control List,ACL)类别,匹配时需将所有ACL规则加入匹配,没有区分具体当前需要使用的子规则类,造成了资源的浪费。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供一种高效访问控制链表,实现高效匹配减少匹配时间。
为实现上述目的,按照本发明的一个方面,提供了一种高效访问控制链表,包括主无锁表、从无锁表和高效预取表,其中:
所述主无锁表存储有所有的规则,所述从无锁表为所述主无锁表的备份;
所述高效预取表存储有已匹配的规则和包信息。
本发明的一个实施例中,所述主无锁表和从无锁表均采用区间子表的存储方式,将规则分为普通访问控制链表、网络地址转换访问控制链表、网络协议安全访问控制链表、深度报文检测访问控制链表,并分别存储在各区间子表中。
本发明的一个实施例中,所述主无锁表存储了用户配置的各种检测字段以及对应动作。
本发明的一个实施例中,所述包信息包括源目的ip,或者源目的物理地址,或者源目的端口。
按照本发明的另一方面,还提供了一种基于上述高效访问控制链表的实现方法,包括:
当包流入后,首先根据包信息在高效预取表中查找是否存在与当前包信息匹配的预取表规则;
如果在高效预取表中查找到与当前包信息匹配的预取表规则,则取其中存储的动作信息进行操作。
本发明的一个实施例中,如果未在高效预取表中查到包相关的信息,则遍历主无锁表的表项,将提取包信息中的相关字段与无锁表中的相关字段进行匹配。
本发明的一个实施例中,匹配中后,将此条无锁表表项和对应的包信息存储到高效预取表。
本发明的一个实施例中,当配置新的规则时,将主无锁表的规则同步到备无锁表,将新规则插入到备无锁表,并同时将高效预取表中的规则清零,使新规则配置之前的高效预取表规则失效。
本发明的一个实施例中,当新的数据包到来时,再次更新包信息和规则到高效预取表,主无锁表倒换至备无锁表,然后再用之前备无锁表进行匹配。
本发明的一个实施例中,在遍历访问控制链表时,根据业务类型直接到相应访问控制链表子表中读取规则。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:
(1)本发明采用了高效预取表机制和无锁表存储机制实现了高效匹配,将规则匹配时间大大较少;
(2)本发明将无锁表的规则分区间存储,表项结构层次明显,可直接进行分区匹配,将规则匹配时间大大较少;
(3)本发明采用了主无锁表和备无锁表的主备切换机制,从而在对无锁表进行配置时无需加锁处理,提高了匹配速率。
附图说明
图1为本发明实施例中高效预取表和无锁表的存储结构布局;
图2为本发明实施例中主备访问控制链表存储的规则采用区间子表方式的示意图;
图3为本发明实施例中一种高效访问控制链表的实现方法示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
图1为本发明实施例中高效预取表和无锁表的存储结构布局,高效预取表中存储了已匹配过的无锁表的规则和包信息等数据,主无锁表存储了所有匹配规则,当数据包未匹配中高效预取表时,将遍历主无锁表进行匹配,备无锁表存储当有规则变动后所有规则。
本发明设计了无锁表匹配模式,即将访问控制链表设计为主从无锁表的存储方式,传统方式在多线程环境下匹配规则时需要遍历访问控制链表,由于用户随时可能会出现对访问控制链表的表项规则的增删操作,因此在匹配规则和用户对表项进行操作时需要加锁处理,性能将受影响。
无锁表存储了用户配置的各种检测字段,如源目的ip(internet protocol,网际互连协议)、源目的端口、源目的物理地址等字段以及对应动作如丢弃报文、重定向报文、放行报文等信息。无锁表匹配模式采用将访问控制链表设计为主从无锁表机制,当需要对访问控制链表进行配置(例如有新的规则插入或老的规则删除)时,将主无锁表的所有规则拷贝到从无锁表,再将新的规则插入到从无锁表,或者在从中删除老的规则,然后再进行主从无锁表的切换。此时,新的规则配置已更新到之前备访问控制链表中,无需加锁处理,提高了匹配速率。
另外,本发明还采用了高效预取表,高效预取表为一种存储已匹配中的规则和包信息等数据的表,包信息包括源目的ip、源目的物理地址、源目的端口等信息。针对每个数据包需遍历整个访问控制链表的传统做法,本发明将每次遍历的结果与规则信息存储到高效预取表,当下次相同的包进行匹配时,如果在高效预取表中匹配到包信息,直接在高效预取表中读取相应的信息进行处理,如果未匹配到则再遍历主无锁表。当访问控制链表规则较多时,直接读取高效预取表将明显提升包匹配速率,提高性能。当从访问控制链表中有新的规则插入或老的规则要删除时,将更新高效预取表,让高效预取表的信息和访问控制链表的信息匹配。
此外,如图2所示,本发明还将主备访问控制链表存储的规则采用区间子表的方式,将规则分为普通访问控制链表、网络地址转换访问控制链表、网络协议安全访问控制链表、深度报文检测访问控制链表,当需要遍历访问控制链表时,直接根据业务类型直接到相应访问控制链表的区间子表中读取规则,避免遍历整个访问控制链表。
如图3所示,本发明实施例提供了一种高效访问控制链表的实现方法,包括:
(1)包流入后,首先根据包信息如源目的ip在高效预取表中查找是否存在与当前包源目的ip匹配的预取表规则;
(2)如果在高效预取表中查找到与当前包源目的ip等信息匹配的预取表规则,则取其中存储的动作信息如包丢弃进行丢包操作;
(3)如果未在高效预取表中查到相应的与当前包源目的ip等匹配的信息,则遍历主无锁表的表项,将提取包信息中的相关字段(如源目的ip)与无锁表中的相关字段(如源目的ip)进行匹配,匹配中后,将此条无锁表表项和对应的包信息(如源目的ip以及相应的丢包动作)存储到高效预取表;
(4)当配置新的规则时,将主无锁表的规则同步到备无锁表,将新规则插入到备无锁表,并同时将高效预取表中的规则清零,使新规则配置之前的高效预取表规则失效,当新的数据包到来时,再次更新包信息和规则到高效预取表,主无锁表倒换至备无锁表,然后再用之前备无锁表进行匹配;
(5)表项存储结构采用分级存储,将规则按照区间的方式在无锁表存储,如基础访问控制链表存储在表项区间段1,深度报文检测访问控制链表规则存储在表项区间段4等,如图2所示。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种高效访问控制链表,其特征在于,包括主无锁表、从无锁表和高效预取表,其中:
所述主无锁表存储有所有的规则,所述从无锁表为所述主无锁表的备份;
所述高效预取表存储有已匹配的规则和包信息。
2.如权利要求1所述的高效访问控制链表,其特征在于,所述主无锁表和从无锁表均采用区间子表的存储方式,将规则分为普通访问控制链表、网络地址转换访问控制链表、网络协议安全访问控制链表、深度报文检测访问控制链表,并分别存储在各区间子表中。
3.如权利要求1或2所述的高效访问控制链表,其特征在于,所述主无锁表存储了用户配置的各种检测字段以及对应动作。
4.如权利要求1或2所述的高效访问控制链表,其特征在于,所述包信息包括源目的ip,或者源目的物理地址,或者源目的端口。
5.一种基于权利要求1至4任一项所述高效访问控制链表的实现方法,其特征在于,包括:
当包流入后,首先根据包信息在高效预取表中查找是否存在与当前包信息匹配的预取表规则;
如果在高效预取表中查找到与当前包信息匹配的预取表规则,则取其中存储的动作信息进行操作。
6.如权利要求5所述的高效访问控制链表的实现方法,其特征在于,
如果未在高效预取表中查到包相关的信息,则遍历主无锁表的表项,将提取包信息中的相关字段与无锁表中的相关字段进行匹配。
7.如权利要求6所述的高效访问控制链表的实现方法,其特征在于,
匹配中后,将此条无锁表表项和对应的包信息存储到高效预取表。
8.如权利要求5或6所述的高效访问控制链表的实现方法,其特征在于,
当配置新的规则时,将主无锁表的规则同步到备无锁表,将新规则插入到备无锁表,并同时将高效预取表中的规则清零,使新规则配置之前的高效预取表规则失效。
9.如权利要求5或6所述的高效访问控制链表的实现方法,其特征在于,
当新的数据包到来时,再次更新包信息和规则到高效预取表,主无锁表倒换至备无锁表,然后再用之前备无锁表进行匹配。
10.如权利要求5或6所述的高效访问控制链表的实现方法,其特征在于,
在遍历访问控制链表时,根据业务类型直接到相应访问控制链表子表中读取规则。
CN202011100604.5A 2020-10-15 2020-10-15 一种高效访问控制链表及其实现方法 Active CN112311595B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011100604.5A CN112311595B (zh) 2020-10-15 2020-10-15 一种高效访问控制链表及其实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011100604.5A CN112311595B (zh) 2020-10-15 2020-10-15 一种高效访问控制链表及其实现方法

Publications (2)

Publication Number Publication Date
CN112311595A true CN112311595A (zh) 2021-02-02
CN112311595B CN112311595B (zh) 2022-09-09

Family

ID=74327023

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011100604.5A Active CN112311595B (zh) 2020-10-15 2020-10-15 一种高效访问控制链表及其实现方法

Country Status (1)

Country Link
CN (1) CN112311595B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114363074A (zh) * 2022-01-07 2022-04-15 杭州安恒信息技术股份有限公司 一种访问控制实现方法、装置、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050259654A1 (en) * 2004-04-08 2005-11-24 Faulk Robert L Jr Dynamic access control lists
CN104361296A (zh) * 2014-11-14 2015-02-18 武汉烽火网络有限责任公司 一种并行的大容量访问控制列表的查找方法
WO2015131717A1 (zh) * 2014-10-09 2015-09-11 中兴通讯股份有限公司 一种网络设备的访问控制列表管理方法和装置
CN106027459A (zh) * 2015-12-28 2016-10-12 深圳市恒扬数据股份有限公司 一种访问控制列表的查询方法及装置
US20180302410A1 (en) * 2017-04-14 2018-10-18 Nxp Usa, Inc. Method and Apparatus for Speeding Up ACL Rule Lookups That Include TCP/UDP Port Ranges in the Rules
WO2019062839A1 (zh) * 2017-09-28 2019-04-04 北京金山云网络技术有限公司 转发报文的方法、装置、交换机、设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050259654A1 (en) * 2004-04-08 2005-11-24 Faulk Robert L Jr Dynamic access control lists
WO2015131717A1 (zh) * 2014-10-09 2015-09-11 中兴通讯股份有限公司 一种网络设备的访问控制列表管理方法和装置
CN104361296A (zh) * 2014-11-14 2015-02-18 武汉烽火网络有限责任公司 一种并行的大容量访问控制列表的查找方法
CN106027459A (zh) * 2015-12-28 2016-10-12 深圳市恒扬数据股份有限公司 一种访问控制列表的查询方法及装置
US20180302410A1 (en) * 2017-04-14 2018-10-18 Nxp Usa, Inc. Method and Apparatus for Speeding Up ACL Rule Lookups That Include TCP/UDP Port Ranges in the Rules
WO2019062839A1 (zh) * 2017-09-28 2019-04-04 北京金山云网络技术有限公司 转发报文的方法、装置、交换机、设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114363074A (zh) * 2022-01-07 2022-04-15 杭州安恒信息技术股份有限公司 一种访问控制实现方法、装置、设备及存储介质
CN114363074B (zh) * 2022-01-07 2024-04-16 杭州安恒信息技术股份有限公司 一种访问控制实现方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN112311595B (zh) 2022-09-09

Similar Documents

Publication Publication Date Title
US20080192754A1 (en) Routing system and method for managing rule entries of ternary content addressable memory in the same
EP1358739B1 (en) Method and apparatus for routing table management
US6842791B2 (en) Method and apparatus for memory efficient fast VLAN lookups and inserts in hardware-based packet switches
US7019674B2 (en) Content-based information retrieval architecture
KR100705593B1 (ko) 라우팅 시스템 및 라우팅 시스템의 룰 엔트리 관리 방법
US10511532B2 (en) Algorithmic longest prefix matching in programmable switch
US8938469B1 (en) Dynamically adjusting hash table capacity
US10110492B2 (en) Exact match lookup with variable key sizes
US7630373B2 (en) Packet transfer apparatus
US7680806B2 (en) Reducing overflow of hash table entries
US10148571B2 (en) Jump on a match optimization for longest prefix match using a binary search tree
US7313138B2 (en) Router device and routing method
JP2000232479A (ja) キャッシュを有するルータの方路決定装置及びプログラムを記録した機械読み取り可能な記録媒体
CN112311595B (zh) 一种高效访问控制链表及其实现方法
Yuan et al. Enhancing scalable name-based forwarding
CN110945496A (zh) 用于状态对象数据存储区的系统和方法
US6925503B2 (en) Method and system for performing a longest prefix match search
Kao et al. Dynamically updatable ternary segmented aging bloom filter for openflow-compliant low-power packet processing
US8503442B2 (en) Transmission information transfer apparatus and method thereof
US9152661B1 (en) System and method for searching a data structure
US20190005148A1 (en) System and method of coalescing writes to a hardware table in a non-disruptive fashion
KR20050066903A (ko) 고속 라우팅 시스템에서의 패킷 포워딩 처리장치 및 그를이용한 라우팅 룩업 방법
CN113114567B (zh) 一种消息处理方法、装置、电子设备及存储介质
CN107204926B (zh) 预处理cache的路由快速查找方法
CN115118681B (zh) 一种软硬件相结合配置mac地址条目的方法、系统和装置

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