CN110602267A - 一种高效的dns服务器acl文件去重方法 - Google Patents
一种高效的dns服务器acl文件去重方法 Download PDFInfo
- Publication number
- CN110602267A CN110602267A CN201910864637.8A CN201910864637A CN110602267A CN 110602267 A CN110602267 A CN 110602267A CN 201910864637 A CN201910864637 A CN 201910864637A CN 110602267 A CN110602267 A CN 110602267A
- Authority
- CN
- China
- Prior art keywords
- section
- initial
- acl
- file
- sections
- 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
Classifications
-
- 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/10—Mapping addresses of different types
- H04L61/103—Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
-
- 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/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种高效的DNS服务器ACL文件去重方法,所述方法包括步骤1:监控BIND服务器的状态,每当BIND服务器进行配置热加载操作时,获取配置文件目录下的所有ACL文件内容并进行重复性检测;步骤2:若ACL文件内的IP端存在交叉或包含的情况,则对重复的IP段进行去重处理;步骤3:若ACL文件内的IP段交叉,则比较两个IP段的起始IP大小,删除起始IP较大的IP段;若ACL文件内的IP段为包含关系,则比较两个IP段的起始IP大小和结尾IP大小,将起始IP较小的IP段的结尾IP修改为另一个IP段的起始IP。
Description
技术领域
本发明涉计算机网络领域,具体的说,是一种高效的DNS服务器ACL文件去重方法。
背景技术
在IP(Internet Protocol,互联网协议)网络中,DNS(Domain Name System,域名系统)是最关键的基础服务之一,其主要功能是将域名与IP地址作转换。通过DNS服务器的查询服务,可以找到所需站点或资源的入口,进而对站点或资源进行访问。Bind(BerkeleyInternet Name Domain,伯克莱网间名域)是目前最常用的DNS服务器软件,其配置文件包括:
named.conf文件:记录Bind安装路径、ACL文件的存放路径、view文件的存放路径、日志的存放路径;
view文件:包含多个view(区域),每个view记录了地区信息、运营商信息、域名信息的组合对应的zone文件的存放路径;
zone文件:记录view对应的解析记录信息;
ACL文件:记录view对应的IP地址信息。
在多节点部署的业务中,其业务的dns服务器常用view文件指定业务的各个节点,并在view对应的ACL文件中加入该节点地区的所有客户端IP;一个节点(view)可包含一个或多个ACL文件;
首先介绍DNS Bind服务器解析请求的流程:dns查询请求到来时,首先获取请求的来源IP,之后读取Bind主配置文件named.conf的内容,获取其中配置的所有view文件,并按顺序从上至下依次遍历所有的view文件,判断请求的来源IP地址是否在view文件包含的ACL文件中,若包含,则使用该view文件指定的zone文件对查询请求查询的域名进行解析,否则使用默认的view进行解析或递归至上层dns服务器进行递归查询;
目前,绝大部分DNS的Bind服务器的ACL文件都采用手动添加或代码直接添加的方式,而没有对ACL文件的内容进行检测;由于bind服务器对view和ACL的遍历都是顺序的,在上述流程中,若ACL文件存在重复,则最先匹配到客户端IP的节点会对该dns查询进行解析,这样会导致原本应该解析到A节点的站点被解析到B处,造成域名解析错误。因此可以看出,在获取view文件包含的所有ACL文件时,未对ACL文件进行重复性检测,这是导致DNS解析异常的原因。
发明内容
本发明的目的在于提供一种高效的DNS服务器ACL文件去重方法,用于解决现有技术中DNS的Bind服务器的ACL文件采用手动添加或代码直接添加的方式而没有对acd文件内容进行检测导致DNS解析异常的问题。
本发明通过下述技术方案解决上述问题:
一种高效的DNS服务器ACL文件去重方法,所述方法包括如下步骤:
步骤1:监控BIND服务器的状态,每当BIND服务器进行配置热加载操作时,获取配置文件目录下的所有ACL文件内容并进行重复性检测;
步骤2:若ACL文件内的IP端存在交叉或包含的情况,则对重复的IP段进行去重处理;
步骤3:若ACL文件内的IP段交叉,则比较两个IP段的起始IP大小,删除起始IP较大的IP段;若ACL文件内的IP段为包含关系,则比较两个IP段的起始IP大小和结尾IP大小,将起始IP较小的IP段的结尾IP修改为另一个IP段的起始IP。
优选地,所述步骤1中的重复性检测包括如下步骤:
步骤1.1:将ACL文件中的IP或IP段转换为十进制的数字IP,IP段为两个数字的IP区间即为数组;
步骤1.2:提取每个区间的起始数字IP,即第一个IP,若此时存在重复的IP地址,表明存在重复,则返回重复的IP;不存在重复则进入步骤1.3;
步骤1.3:将步骤1.2所提取的区间起始数按从小到大的顺序放入数合法组中;
步骤1.4:获取步骤1.1中每个区间的第二个数字IP,使用二分查找法在步骤1.3的有序数组中查询第一个比该数字IP大的值,将这两个数字IP对应的IP段进行比较,返回重复的IP段;以此类推按顺序获取第n个数字IP,使用二分查找法在有序数组中查询第一个比该数字IP大的值,将这两个数字IP对应的IP进行比较,返回重复的IP段。
优选地,所述步骤1中设置有定时任务,用于定期对ACL文件进行检测。
本发明与现有技术相比,具有以下优点及有益效果:
当存在n个IP段待检测时,若采用传统的IP段两两比较,每次只能两个IP段进行对比,且每次的比较次数为n,所用的时间复杂度为O(n2);本发明的方法每次的比较次数为log2 n,所用的时间复杂度为O(nlog2 n),比较效率较高。同时,本方法在保证了DNS解析流程的效率尽可能不受影响的情况下,使用最少的遍历次数实现了对ACL文件内容的高效去重检测,很好的解决了ACL重复导致的域名解析异常问题。
附图说明
图1为本发明的实施例中的重复检测流程图。
具体实施方式
下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。
实施例1:
结合附图1所示,一种高效的DNS服务器ACL文件去重方法,所述方法包括如下步骤:
步骤1:监控BIND服务器的状态,每当BIND服务器进行配置热加载操作时,获取配置文件目录下的所有ACL文件内容并进行重复性检测,重复性检测包括如下步骤:
步骤1.1:将ACL文件中的IP或IP段转换为十进制的数字IP,IP段为两个数字的IP区间即为数组;
步骤1.2:提取每个区间的起始数字IP,即第一个IP,若此时存在重复的IP地址,表明存在重复,则返回重复的IP;不存在重复则进入步骤1.3;
步骤1.3:将步骤1.2所提取的区间起始数按从小到大的顺序放入数合法组中;
步骤1.4:获取步骤1.1中每个区间的第二个数字IP,使用二分查找法在步骤1.3的有序数组中查询第一个比该数字IP大的值,将这两个数字IP对应的IP段进行比较,返回重复的IP段;以此类推按顺序获取第n个数字IP,使用二分查找法在有序数组中查询第一个比该数字IP大的值,将这两个数字IP对应的IP进行比较,返回重复的IP段。;
步骤2:若ACL文件内的IP端存在交叉或包含的情况,则对重复的IP段进行去重处理;
步骤3:若ACL文件内的IP段交叉,则比较两个IP段的起始IP大小,删除起始IP较大的IP段;若ACL文件内的IP段为包含关系,则比较两个IP段的起始IP大小和结尾IP大小,将起始IP较小的IP段的结尾IP修改为另一个IP段的起始IP。
实施上述方法,当BIND服务器每次reload信号到来时,程序初始化一个空的有序数组A和一个映射表Dict,用于存放IP段数据;读取所有的ACL文件内容到内存,遍历所有的待检测的IP或IP段:对每个IP段,将其转化为十进制的首尾数字IP二元组:x.x.x.x/n转化为如[num_IP_min,num_IP_max]形式的数组,如IP段10.0.0.0/8可转化为[167772160,184549375];若是单个IP,则将其视为起始IP和末尾IP相同的IP段,如10.0.0.6转化为[167772166,167772166];在映射表中建立映射关系:以IP地址大端(即num_IP_max)为key值,IP段数组(即[num_IP_min,num_IP_max])为value作关联;
遍历转化后的IP段;对每个IP段IPseg_n,取其起始IP,即二元组的第一个元素,记为IPseg_min;使用二分查找法,在步骤1建立的有序数组中,查询第一个比自己大的元素的位置,将位置记为N;若查询成功,进入步骤4,若查询失败,则将该IP段的末尾IP,即二元组的第二个元素(记为IPseg_max)插入有序数组的末尾,重复步骤3;
在数组A中查询第N个元素的值,记为An,并在映射表Dict中查找An元素对应的IP段,记为An_min和An_max,若IPseg_min的值处于An_min和An_max中间,或IPseg_min的值处于An_min和An_max中间,表明IP段存在重复,返回两个重复的IP段并进入步骤5;否则进入步骤8;
对于两个存在重复的IP段IPseg_1和IPseg_2,对于其对应的数字IP段[seg1_min,seg1_max]和[seg2_min,seg2_max],判断seg2_min是否大于seg1_min且小于seg1_max,若是,表明为交叉关系,修改IPseg_1为[seg1_min,seg2_min]完成去重;进入步骤6;否则进入步骤8;
判断seg1_min是否大于seg2_min且小于seg2_max;若是,表明为交叉关系,修改IPseg_2为[seg2_min,seg1_min]完成去重;进入步骤8;否则进入步骤7;
若seg1_min小于seg2_min且seg1_max大于seg2_max;或是seg2_min小于seg1_min且seg2_max大于seg1_max;表明为包含关系;若seg1_min小于seg2_min则去除IPseg_2完成去重,否则去除IPseg_1完成去重;转入步骤8;
取IPseg_n的第二个元素,记为IPseg_max,若An_min的值处于IPseg_min和IPseg_max之间,或是An_min的值处于IPseg_min和IPseg_max之间,表明IP段存在重复,返回两个重复的IP段并进入步骤5;否则表明该IP段是合法IP段,转入步骤3继续遍历直到所有的IP段都被检测。
尽管这里参照本发明的解释性实施例对本发明进行了描述,上述实施例仅为本发明较佳的实施方式,本发明的实施方式并不受上述实施例的限制,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。
Claims (3)
1.一种高效的DNS服务器ACL文件去重方法,其特征在于,所述方法包括如下步骤:
步骤1:监控BIND服务器的状态,每当BIND服务器进行配置热加载操作时,获取配置文件目录下的所有ACL文件内容并进行重复性检测;
步骤2:若ACL文件内的IP端存在交叉或包含的情况,则对重复的IP段进行去重处理;
步骤3:若ACL文件内的IP段交叉,则比较两个IP段的起始IP大小,删除起始IP较大的IP段;若ACL文件内的IP段为包含关系,则比较两个IP段的起始IP大小和结尾IP大小,将起始IP较小的IP段的结尾IP修改为另一个IP段的起始IP。
2.根据权利要求1所述的高效的DNS服务器ACL文件去重方法,其特征在于,所述步骤1中的重复性检测包括如下步骤:
步骤1.1:将ACL文件中的IP或IP段转换为十进制的数字IP,IP段为两个数字的IP区间即为数组;
步骤1.2:提取每个区间的起始数字IP,即第一个IP,若此时存在重复的IP地址,表明存在重复,则返回重复的IP;不存在重复则进入步骤1.3;
步骤1.3:将步骤1.2所提取的区间起始数按从小到大的顺序放入数合法组中;
步骤1.4:获取步骤1.1中每个区间的第二个数字IP,使用二分查找法在步骤1.3的有序数组中查询第一个比该数字IP大的值,将这两个数字IP对应的IP段进行比较,返回重复的IP段;以此类推按顺序获取第n个数字IP,使用二分查找法在有序数组中查询第一个比该数字IP大的值,将这两个数字IP对应的IP进行比较,返回重复的IP段。
3.根据权利要求1所述的高效的DNS服务器ACL文件去重方法,其特征在于,所述步骤1中设置有定时任务,用于定期对ACL文件进行检测。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910864637.8A CN110602267B (zh) | 2019-09-12 | 2019-09-12 | 一种高效的dns服务器acl文件去重方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910864637.8A CN110602267B (zh) | 2019-09-12 | 2019-09-12 | 一种高效的dns服务器acl文件去重方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110602267A true CN110602267A (zh) | 2019-12-20 |
CN110602267B CN110602267B (zh) | 2021-06-22 |
Family
ID=68859364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910864637.8A Active CN110602267B (zh) | 2019-09-12 | 2019-09-12 | 一种高效的dns服务器acl文件去重方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110602267B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114362991A (zh) * | 2021-11-22 | 2022-04-15 | 北京威努特技术有限公司 | 一种acl访问控制列表规则过滤去重的方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104303482A (zh) * | 2012-05-08 | 2015-01-21 | 瑞典爱立信有限公司 | 用于分组分类的方法和设备 |
CN105635343A (zh) * | 2016-02-02 | 2016-06-01 | 中国互联网络信息中心 | 应用于dns查询的ip地址列表存储和查询方法 |
CN106302424A (zh) * | 2016-08-08 | 2017-01-04 | 杭州华三通信技术有限公司 | 一种安全隧道的建立方法及装置 |
CN106657443A (zh) * | 2017-02-13 | 2017-05-10 | 杭州迪普科技股份有限公司 | Ip地址去重方法和装置 |
CN109981540A (zh) * | 2017-12-28 | 2019-07-05 | 中国移动通信集团辽宁有限公司 | 防火墙数据优化方法、装置、计算机设备及可读存储介质 |
CN110213400A (zh) * | 2019-06-11 | 2019-09-06 | 四川长虹电器股份有限公司 | 一种快速自动构建dns调度acl的方法 |
-
2019
- 2019-09-12 CN CN201910864637.8A patent/CN110602267B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104303482A (zh) * | 2012-05-08 | 2015-01-21 | 瑞典爱立信有限公司 | 用于分组分类的方法和设备 |
CN105635343A (zh) * | 2016-02-02 | 2016-06-01 | 中国互联网络信息中心 | 应用于dns查询的ip地址列表存储和查询方法 |
CN106302424A (zh) * | 2016-08-08 | 2017-01-04 | 杭州华三通信技术有限公司 | 一种安全隧道的建立方法及装置 |
CN106657443A (zh) * | 2017-02-13 | 2017-05-10 | 杭州迪普科技股份有限公司 | Ip地址去重方法和装置 |
CN109981540A (zh) * | 2017-12-28 | 2019-07-05 | 中国移动通信集团辽宁有限公司 | 防火墙数据优化方法、装置、计算机设备及可读存储介质 |
CN110213400A (zh) * | 2019-06-11 | 2019-09-06 | 四川长虹电器股份有限公司 | 一种快速自动构建dns调度acl的方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114362991A (zh) * | 2021-11-22 | 2022-04-15 | 北京威努特技术有限公司 | 一种acl访问控制列表规则过滤去重的方法及装置 |
CN114362991B (zh) * | 2021-11-22 | 2024-04-16 | 北京威努特技术有限公司 | 一种acl访问控制列表规则过滤去重的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110602267B (zh) | 2021-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7401080B2 (en) | Storage reports duplicate file detection | |
JP3655486B2 (ja) | イベント・ログ方法 | |
RU2601201C2 (ru) | Способ и устройство для анализа пакетов данных | |
US8688659B2 (en) | Method for indexed-field based difference detection and correction | |
CN112003857A (zh) | 一种网络资产搜集方法、装置、设备及存储介质 | |
CN110019067B (zh) | 一种日志分析方法及系统 | |
US20080098365A1 (en) | Performance analyzer | |
CN109710439B (zh) | 故障处理方法和装置 | |
US11281623B2 (en) | Method, device and computer program product for data migration | |
CN110602267B (zh) | 一种高效的dns服务器acl文件去重方法 | |
CN109561163B (zh) | 统一资源定位符重写规则的生成方法及装置 | |
CN111432041A (zh) | 域名采集方法、系统、终端及计算机可读存储介质 | |
CN107590233B (zh) | 一种文件管理方法及装置 | |
CN114385668A (zh) | 冷数据清理方法、装置、设备及存储介质 | |
JP4422742B2 (ja) | 全文検索システム | |
CN106844553B (zh) | 基于样本数据的数据探测和扩充方法及装置 | |
CN112328379A (zh) | 一种应用迁移方法、装置、设备及介质 | |
US20040006562A1 (en) | Method, system and program product for automatically retrieving documents | |
CN113296704B (zh) | Sas hba卡固件日志的在线并行收集方法、装置及设备 | |
CN115396159A (zh) | 一种容器镜像的检测方法及客户端、服务端 | |
CN111885220B (zh) | 一种目标单位ip资产主动获取与验证方法 | |
CN1832419A (zh) | 一种表达式的解析方法 | |
CN105634841A (zh) | 一种减少网络审计系统冗余日志的方法与装置 | |
CN111274350B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN113553587B (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 |