CN109660390B - 一种基于外部询问dns服务器的信息更新方法及系统 - Google Patents
一种基于外部询问dns服务器的信息更新方法及系统 Download PDFInfo
- Publication number
- CN109660390B CN109660390B CN201811501169.XA CN201811501169A CN109660390B CN 109660390 B CN109660390 B CN 109660390B CN 201811501169 A CN201811501169 A CN 201811501169A CN 109660390 B CN109660390 B CN 109660390B
- Authority
- CN
- China
- Prior art keywords
- resource record
- record set
- scanned
- scanning
- updating
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于外部询问DNS服务器的信息更新方法及系统,该方法包括:为本地的所有资源记录集编号,并建立平衡二叉树;根据资源记录集使用频率分布利用模拟退火算法为资源记录集分配单周期内的初始扫描次数;依据编号随机生成哈希值,确定扫描的资源记录集,判断资源记录集的扫描次数是否为零,若是,确定发生碰撞,则顺序退避,进行下一编号的资源记录集的扫描,直至得到扫描次数不为零的资源记录集,对扫描次数不为零的资源记录集进行扫描,向服务器发送查询指令,根据服务器的应答结果更新被扫描的资源记录集。本发明依据使用频率合理地安排了询问次数,同时提高了询问效率,加快了周期完成速度,保证了资源记录集的及时更新。
Description
技术领域
本发明涉及计算机应用程序技术领域,特别是涉及一种基于外部询问DNS服务器的信息更新方法及系统。
背景技术
在当今的域名解析体系中存在着具有主从关系的服务器,主从关系的服务器间的数据同步、信息更新是依赖软件程序自动实现的。但对于第三方,获取资源记录并实现及时地更新、同步是十分困难的,只能通过资源记录集的域名主动询问资源记录集的内容来得到想要的信息。
有人们经常使用的域名,也有几乎不被使用的域名。可以认为使用频率代表了一条域名的重要性。若经常使用的域名所在的资源记录集发生变化,且不能及时更新的话,就无法为大多数人提供解析服务。为了满足人们的使用需求,经常使用的资源记录集应该更及时地更新。但是资源记录集的数量较多,逐一询问一遍需要的时间较长,因此经常使用的资源记录集往往不能及时更新。
因此,如何加快一个周期内对所有域名的询问以保证资源记录集的及时更新成为本领域亟待解决的问题。
发明内容
本发明的目的是提供一种基于外部询问DNS服务器的信息更新方法及系统,以加快一个周期内对所有域名的询问,保证资源记录集的及时更新。
为实现上述目的,本发明提供了一种基于外部询问DNS服务器的信息更新方法,所述方法包括:
建立数据结构:为本地的所有资源记录集编号,并以每一所述资源记录集为节点建立平衡二叉树;所述平衡二叉树的节点包括一所述资源记录集和与所述资源记录集对应的所述编号;
单周期扫描次数分配:根据对所述资源记录集询问的历史流量数据对资源记录集的使用频率进行统计,得到资源记录集使用频率分布;根据所述资源记录集使用频率分布利用模拟退火算法为每一所述资源记录集分配单周期内的初始扫描次数,并将所述初始扫描次数添加至对应的所述资源记录集所在的所述节点;
单周期扫描更新:依据所述编号随机生成哈希值,根据所述哈希值确定扫描的所述资源记录集,判断所述资源记录集的扫描次数是否为零,若是,确定发生碰撞,则顺序退避,进行下一所述编号的所述资源记录集的扫描,直至得到所述扫描次数不为零的所述资源记录集,对所述扫描次数不为零的所述资源记录集进行扫描,向所述DNS服务器发送查询指令,根据所述DNS服务器的应答结果更新被扫描的所述资源记录集,本次扫描后,被扫描的所述资源记录集的扫描次数减一;所述查询指令为查询所述DNS服务器中与被扫描的所述资源记录集相应的资源记录;若否,对所述扫描次数不为零的所述资源记录集进行扫描,向所述DNS服务器发送查询指令,根据所述DNS服务器的应答结果更新被扫描的所述资源记录集,本次扫描后,被扫描的所述资源记录集的扫描次数减一;按照所述编号顺序扫描,直至所有所述资源记录集的扫描次数均为零,结束单周期的扫描更新。
可选的,在所述“单周期扫描更新”之后所述方法还包括:
更新所述平衡二叉树包括所述资源记录集的删除、所述资源记录集的新增和/或所述资源记录集的内容更新;
对于所述资源记录集的删除:删除所述资源记录集对应的旧节点,对删除所述旧节点后的所述平衡二叉树的各个节点恢复所述初始扫描次数并重新编号;
对于所述资源记录集的新增:增加所述平衡二叉树的新节点,并增加所述新节点的新编号,设置预设新扫描次数;
对于所述资源记录集的内容更新:直接更新所述平衡二叉树中与内容更新的所述资源记录集对应的节点,恢复各个节点扫描次数为所述初始扫描次数。
可选的,所述预设新扫描次数为一次。
可选的,所述根据所述DNS服务器的应答结果更新被扫描的所述资源记录集,具体包括:
利用所述DNS服务器中与被扫描的所述资源记录集相应的资源记录替换被扫描的所述资源记录集。
可选的,所述根据所述DNS服务器的应答结果更新被扫描的所述资源记录集,具体包括:
判断被扫描的所述资源记录集中的域名信息列表与所述DNS服务器中与被扫描的所述资源记录集相应的资源记录中的域名信息列表是否相同;当不相同时,利用所述DNS服务器中与被扫描的所述资源记录集相应的资源记录替换被扫描的所述资源记录集;当相同时,不更新被扫描的所述资源记录集。
可选的,所述判断被扫描的所述资源记录集中的域名信息列表与所述DNS服务器中与被扫描的所述资源记录集相应的资源记录中的域名信息列表是否相同,具体包括:
利用快速傅里叶变换方法对被扫描的所述资源记录集中的域名信息列表与所述DNS服务器中与被扫描的所述资源记录集相应的资源记录中的域名信息列表进行字符串匹配;当匹配一致时,确定被扫描的所述资源记录集中的域名信息列表与所述DNS服务器中与被扫描的所述资源记录集相应的资源记录中的域名信息列表相同;当匹配不一致时,确定被扫描的所述资源记录集中的域名信息列表与所述DNS服务器中与被扫描的所述资源记录集相应的资源记录中的域名信息列表不相同。
本发明还提供了一种基于外部询问DNS服务器的信息更新系统,所述系统包括:
数据结构建立单元,用于建立数据结构:为本地的所有资源记录集编号,并以每一所述资源记录集为节点建立平衡二叉树;所述平衡二叉树的节点包括一所述资源记录集和与所述资源记录集对应的所述编号;
扫描次数分配单元,用于单周期扫描次数分配:根据对所述资源记录集询问的历史流量数据对资源记录集的使用频率进行统计,得到资源记录集使用频率分布;根据所述资源记录集使用频率分布利用模拟退火算法为每一所述资源记录集分配单周期内的初始扫描次数,并将所述初始扫描次数添加至对应的所述资源记录集所在的所述节点;
扫描更新单元,用于单周期扫描更新:依据所述编号随机生成哈希值,根据所述哈希值确定扫描的所述资源记录集,判断所述资源记录集的扫描次数是否为零,若是,确定发生碰撞,则顺序退避,进行下一所述编号的所述资源记录集的扫描,直至得到所述扫描次数不为零的所述资源记录集,对所述扫描次数不为零的所述资源记录集进行扫描,向所述DNS服务器发送查询指令,根据所述DNS服务器的应答结果更新被扫描的所述资源记录集,本次扫描后,被扫描的所述资源记录集的扫描次数减一;所述查询指令为查询所述DNS服务器中与被扫描的所述资源记录集相应的资源记录;若否,对所述扫描次数不为零的所述资源记录集进行扫描,向所述DNS服务器发送查询指令,根据所述DNS服务器的应答结果更新被扫描的所述资源记录集,本次扫描后,被扫描的所述资源记录集的扫描次数减一;按照所述编号顺序扫描,直至所有所述资源记录集的扫描次数均为零,结束单周期的扫描更新。
可选的,所述系统还包括:
数据结构更新单元,用于更新所述平衡二叉树;所述平衡二叉树的更新包括所述资源记录集的删除、所述资源记录集的新增和/或所述资源记录集的内容更新;所述数据结构更新单元包括:
删除子单元,对于所述资源记录集的删除:用于删除所述资源记录集对应的旧节点,对删除所述旧节点后的所述平衡二叉树的各个节点恢复所述初始扫描次数并重新编号;
新增子单元,对于所述资源记录集的新增:用于增加所述平衡二叉树的新节点,并增加所述新节点的新编号,设置预设新扫描次数为一次;
内容更新子单元,对于所述资源记录集的内容更新:用于直接更新所述平衡二叉树中与内容更新的所述资源记录集对应的节点,恢复各个节点扫描次数为所述初始扫描次数。
可选的,所述扫描更新单元包括资源记录集更新子单元,所述资源记录集更新子单元用于利用所述DNS服务器中与被扫描的所述资源记录集相应的资源记录替换被扫描的所述资源记录集。
可选的,所述扫描更新单元包括资源记录集更新子单元,所述资源记录集更新子单元用于判断被扫描的所述资源记录集中的域名信息列表与所述DNS服务器中与被扫描的所述资源记录集相应的资源记录中的域名信息列表是否相同;当不相同时,利用所述DNS服务器中与被扫描的所述资源记录集相应的资源记录替换被扫描的所述资源记录集;当相同时,不更新被扫描的所述资源记录集;
所述判断被扫描的所述资源记录集中的域名信息列表与所述DNS服务器中与被扫描的所述资源记录集相应的资源记录中的域名信息列表是否相同的方法为:
利用快速傅里叶变换方法对被扫描的所述资源记录集中的域名信息列表与所述DNS服务器中与被扫描的所述资源记录集相应的资源记录中的域名信息列表进行字符串匹配;当匹配一致时,确定被扫描的所述资源记录集中的域名信息列表与所述DNS服务器中与被扫描的所述资源记录集相应的资源记录中的域名信息列表相同;当匹配不一致时,确定被扫描的所述资源记录集中的域名信息列表与所述DNS服务器中与被扫描的所述资源记录集相应的资源记录中的域名信息列表不相同。
根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明提供的基于外部询问DNS服务器的信息更新方法及系统通过对资源记录集进行编号并建立平衡二叉树的数据结构和利用模拟退火算法为平衡二叉树的每一节点分配初始扫描次数,提高了询问效率,加快了周期完成速度,缩短了单周期询问时间,实现对所有资源记录集的及时扫描和更新。由于使用平衡二叉树的数据结构,相较于一般的暴力算法,优化了时间复杂度,平衡二叉树的单点查询、修改操作的复杂度为O(log(n))。
由于对资源记录集进行了编码,实现了使用整形数字代替字符串,极大地减少了运行内存。
在单个周期内的每次扫描顺序的起始资源记录集由哈希(hash)值确定,保证随机性的同时,为消息的发送和响应的处理留出了少许时间。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于外部询问DNS服务器的信息更新方法的流程图;
图2为本发明实施例提供的基于外部询问DNS服务器的信息更新方法中单周期扫描更新流程图;
图3为本发明实施例提供的基于外部询问DNS服务器的信息更新系统的系统框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
如图1所示,本实施例提供的基于外部询问DNS服务器的信息更新方法包括:
步骤101:建立数据结构:为本地的所有资源记录集编号,并以每一所述资源记录集为节点建立平衡二叉树;所述平衡二叉树的节点包括一所述资源记录集和与所述资源记录集对应的所述编号。
平衡二叉树是一个高效的二叉搜索树。以编号为依据,通过不断插入节点、调平衡的方式建树。查询对应编号的节点、在资源记录集的更新时删除旧节点或插入新节点等操作的复杂度均为O(log(n))。
一个非空的平衡二叉树具有下列性质:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;(3)左、右子树也分别为二叉排序树;即是一个高效的二叉搜索树。
建立、维护平衡二叉树就是一个不断维护上述三个性质的过程。这里使用的平衡二叉树,节点是一个类,包括了资源记录集的编号和分配到的初始扫描次数(在后续步骤中有详细描述)。编号对应上述三点性质中所述的“值”,是建立、维护时比较大小的依据。
使用平衡二叉树是为了在尽可能短的时间内找到某个编号对应的资源记录集,提高扫描速度和降低扫描复杂度。平衡二叉树的单点查询、修改操作的复杂度为O(log(n))。如果直接使用数组或未调平衡的二叉树,上说操作的复杂度将会升为O(n),处理大量数据时将消耗大量时间(n*n>n*log(n))。
步骤102:单周期扫描次数分配:根据对所述资源记录集询问的历史流量数据对资源记录集的使用频率进行统计,得到资源记录集使用频率分布;根据所述资源记录集使用频率分布利用模拟退火算法为每一所述资源记录集分配单周期内的初始扫描次数,并将所述初始扫描次数添加至对应的所述资源记录集所在的所述节点。
通过对查询流量的监测,能够得到资源记录集询问的历史流量数据,这样就可以得到一个资源记录集(RRset)的使用频率的分布。根据模拟退火算法(SimulatedAnnealing,SA)的思想,可推算出RRset使用频率最高的域名列表,在分配扫描次数时将重点考虑此列表的影响,并分配较多的初始扫描次数。将资源记录集使用频率分布与退火过程类比,温度高时,频率分布混乱,随着温度降低,可以依据频率分布确定一个合适的分配方法,将资源记录集使用频率分布调整为一个近似的正态分布。降温过程是对频数是否减小的判断,当频率分布相对平衡时(即达到热平衡),依据此时的频率数值分配该资源记录集的初始扫描次数。
需要说明的是,该单周期初始扫描次数的分配是一个初始化操作过程,并不是每个扫描周期都要重新分配初始扫描次数。这样也能提高信息扫描更新的速度,和降低复杂度。对于何时进行一次重新分配初始扫描次数,可以间隔一定时间,该时间段可以设定,程序将按照设定的时间段自动进行重新分配初始扫描次数。或者当网络环境发生改变或网络环境的变化超出预设阈值时,重新分配初始扫描次数。而对于未进行重新分配初始扫描次数时,完成单周期的扫描更新后(此时二叉树中所有节点的扫描次数为0)直接将资源记录集的扫描次数回复为初始扫描次数即可。
步骤103:单周期扫描更新:依据所述编号随机生成哈希值,根据所述哈希值确定扫描的所述资源记录集,判断所述资源记录集的扫描次数是否为零,若是,确定发生碰撞,则顺序退避,进行下一所述编号的所述资源记录集的扫描,直至得到所述扫描次数不为零的所述资源记录集,对所述扫描次数不为零的所述资源记录集进行扫描,向所述DNS服务器发送查询指令,根据所述DNS服务器的应答结果更新被扫描的所述资源记录集,本次扫描后,被扫描的所述资源记录集的扫描次数减一;所述查询指令为查询所述DNS服务器中与被扫描的所述资源记录集相应的资源记录;若否,对所述扫描次数不为零的所述资源记录集进行扫描,向所述DNS服务器发送查询指令,根据所述DNS服务器的应答结果更新被扫描的所述资源记录集,本次扫描后,被扫描的所述资源记录集的扫描次数减一;按照所述编号顺序扫描,直至所有所述资源记录集的扫描次数均为零,结束单周期的扫描更新。
在扫描过程中,先判断该RRset的扫描次数是否为零,若该RRset的扫描次数不为0,此时直接扫描即可,即向所述DNS服务器发送查询指令,根据DNS服务器的应答结果更新该被扫描的资源记录集。若该RRset的扫描次数为0,则确定发生了碰撞冲突,即该RRset的扫描次数用完,此时顺序退避,进行下一编号的RRset的扫描;即是说,依编号由小到大排列而成的闭合环上逐一向后判断,直到发现第一个扫描次数有剩余的RRset,将其作为本次扫描的对象。每对一个RRset完成一次扫描后,该RRset的扫描次数减1。单周期内的扫描流程如图2所示。
为了详细解释顺序退避的扫描过程,结合以下例子详细说明:
如存在有四个已编号的RRset,最初分配的扫描次数分别为3,1,2,1,见表1。
表1
详细扫描过程如下:
第一次随机生成的哈希值为1,即应扫描编号为1的RRset,该RRset的扫描次数剩余3次,不为0,因此本次扫描编号为1的RRset,该RRset的扫描次数减为2。
第二次随机生成的哈希值为2,即应扫描编号为2,该RRset的扫描次数剩余1次,不为0,因此本次扫描编号为2的RRset,该RRset的扫描次数减为0。
第三次随机生成的哈希值为4,即应扫描编号为4,该RRset的扫描次数剩余1次,不为0,因此本次扫描编号为4的RRset,该RRset的扫描次数减为0。
第四次随机生成的哈希值为4,即应扫描编号为4,该RRset的扫描次数剩余0次,顺序退避;判断编号为1的RRset的剩余次数,该RRset的剩余扫描次数为2,不为0,因此本次扫描编号为1的RRset,该RRset的扫描次数减为1。
第五次随机生成的哈希值为2,即应扫描编号为2,该RRset的扫描次数剩余0次,顺序退避;判断编号为3的RRset的剩余次数,该RRset的剩余扫描次数为2,不为0,因此本次扫描编号为3的RRset,该RRset的扫描次数减为1。
第六次随机生成的哈希值为3,即应扫描编号为3,该RRset的扫描次数剩余1次,不为0。因此本次扫描编号为3的RRset,该RRset的扫描次数减为0。
第七次随机生成的哈希值为2,即应扫描编号为2,该RRset的扫描次数剩余0次,顺序退避;判断编号编号为3的RRset的剩余次数,该RRset的剩余扫描次数为0,顺序退避;判断编号编号为4的RRset的剩余次数,该RRset的扫描次数剩余0次,顺序退避;判断编号为1的RRset的剩余次数,该RRset的剩余扫描次数为1,因此本次扫描编号为1的RRset,该RRset的扫描次数减为0。至此,完成了全部的7(分配次数之和3+1+2+1=7)次扫描。
在单周期内每次扫描顺序的起始资源记录集由hash值确定,通过散列查找的思想实现。根据编号随机生成hash值,确定单次扫描需要询问的资源记录集。这样保证随机性的同时,为消息的发送和响应的处理留出了少许时间。
本步骤103中,资源记录集的更新是通过总向权威服务器询问,并以其应答结果作为更新RRset的绝对依据进行的。一种情况是收到询问结果后,可以直接将相应节点替换。即利用所述DNS服务器中与被扫描的所述资源记录集相应的资源记录替换被扫描的所述资源记录集。
但出于对伪报文、伪数据等安全威胁的考虑,可以通过比对本地存储的域名信息列表,通过签名认证后,当发现RRset中的域名名称或IP地址等内容存在差异时再进行替换。即先判断被扫描的所述资源记录集中的域名信息列表与所述DNS服务器中与被扫描的所述资源记录集相应的资源记录中的域名信息列表是否相同;当不相同时,利用所述DNS服务器中与被扫描的所述资源记录集相应的资源记录替换被扫描的所述资源记录集;当相同时,不更新被扫描的所述资源记录集。
这里的判断被扫描的所述资源记录集中的域名信息列表与所述DNS服务器中与被扫描的所述资源记录集相应的资源记录中的域名信息列表是否相同可以利用快速傅里叶变换方法对被扫描的所述资源记录集中的域名信息列表与所述DNS服务器中与被扫描的所述资源记录集相应的资源记录中的域名信息列表进行字符串匹配;当匹配一致时,确定被扫描的所述资源记录集中的域名信息列表与所述DNS服务器中与被扫描的所述资源记录集相应的资源记录中的域名信息列表相同;当匹配不一致时,确定被扫描的所述资源记录集中的域名信息列表与所述DNS服务器中与被扫描的所述资源记录集相应的资源记录中的域名信息列表不相同。当然,还可以用其他的字符串匹配算法实现比对过程。
而对于签名认证,DNSSEC是域名解析系统使用的安全拓展,每个RRset后会附加一条RRSIG记录,用于身份认证和数据保护。因此可以通过该RRSIG记录实现签名认证。
作为一种可选的实施方式,在所述“单周期扫描更新”之后还可以包括:
更新所述平衡二叉树包括所述资源记录集的删除、所述资源记录集的新增和/或所述资源记录集的内容更新;
对于所述资源记录集的删除:删除所述资源记录集对应的旧节点,对删除所述旧节点后的所述平衡二叉树的各个节点恢复所述初始扫描次数并重新编号;
对于所述资源记录集的新增:增加所述平衡二叉树的新节点,并增加所述新节点的新编号,设置预设新扫描次数为一次;
对于所述资源记录集的内容更新:直接更新所述平衡二叉树中与内容更新的所述资源记录集对应的节点,恢复各个节点扫描次数为所述初始扫描次数。
经过单周期扫描更新后的的资源记录集的扫描次数均为0,需要对该扫描次数重新赋成初始扫描次数。遇到RRset新增或删除的情况时,需要维护编号,但不需要重新起先初始化。恢复初始扫描次数时,删除的RRset将直接忽略。对于新建的RRset,不确定它的访问频率,建议置扫描次数为1,即在每个周期中询问一次,直到下次统计、分配次数后再进行调整。
本实施例还提供了一种与上述基于外部询问DNS服务器的信息更新方法相应的系统,所述系统包括:
数据结构建立单元301,用于建立数据结构:为本地的所有资源记录集编号,并以每一所述资源记录集为节点建立平衡二叉树;所述平衡二叉树的节点包括一所述资源记录集和与所述资源记录集对应的所述编号;
扫描次数分配单元302,用于单周期扫描次数分配:根据对所述资源记录集询问的历史流量数据对资源记录集的使用频率进行统计,得到资源记录集使用频率分布;根据所述资源记录集使用频率分布利用模拟退火算法为每一所述资源记录集分配单周期内的初始扫描次数,并将所述初始扫描次数添加至对应的所述资源记录集所在的所述节点;
扫描更新单元303,用于单周期扫描更新:依据所述编号随机生成哈希值,根据所述哈希值确定扫描的所述资源记录集,判断所述资源记录集的扫描次数是否为零,若是,确定发生碰撞,则顺序退避,进行下一所述编号的所述资源记录集的扫描,直至得到所述扫描次数不为零的所述资源记录集,对所述扫描次数不为零的所述资源记录集进行扫描,向所述DNS服务器发送查询指令,根据所述DNS服务器的应答结果更新被扫描的所述资源记录集,本次扫描后,被扫描的所述资源记录集的扫描次数减一;所述查询指令为查询所述DNS服务器中与被扫描的所述资源记录集相应的资源记录;若否,对所述扫描次数不为零的所述资源记录集进行扫描,向所述DNS服务器发送查询指令,根据所述DNS服务器的应答结果更新被扫描的所述资源记录集,本次扫描后,被扫描的所述资源记录集的扫描次数减一;按照所述编号顺序扫描,直至所有所述资源记录集的扫描次数均为零,结束单周期的扫描更新。
所述扫描更新单元303包括资源记录集更新子单元,所述资源记录集更新子单元用于利用所述DNS服务器中与被扫描的所述资源记录集相应的资源记录替换被扫描的所述资源记录集。
所述扫描更新单元包括资源记录集更新子单元,所述资源记录集更新子单元用于判断被扫描的所述资源记录集中的域名信息列表与所述DNS服务器中与被扫描的所述资源记录集相应的资源记录中的域名信息列表是否相同;当不相同时,利用所述DNS服务器中与被扫描的所述资源记录集相应的资源记录替换被扫描的所述资源记录集;当相同时,不更新被扫描的所述资源记录集;
所述判断被扫描的所述资源记录集中的域名信息列表与所述DNS服务器中与被扫描的所述资源记录集相应的资源记录中的域名信息列表是否相同的方法为:
利用快速傅里叶变换方法对被扫描的所述资源记录集中的域名信息列表与所述DNS服务器中与被扫描的所述资源记录集相应的资源记录中的域名信息列表进行字符串匹配;当匹配一致时,确定被扫描的所述资源记录集中的域名信息列表与所述DNS服务器中与被扫描的所述资源记录集相应的资源记录中的域名信息列表相同;当匹配不一致时,确定被扫描的所述资源记录集中的域名信息列表与所述DNS服务器中与被扫描的所述资源记录集相应的资源记录中的域名信息列表不相同。
所述系统还可以包括:
数据结构更新单元,用于更新所述平衡二叉树;所述平衡二叉树的更新包括所述资源记录集的删除、所述资源记录集的新增和/或所述资源记录集的内容更新;所述数据结构更新单元包括:
删除子单元,对于所述资源记录集的删除:用于删除所述资源记录集对应的旧节点,对删除所述旧节点后的所述平衡二叉树的各个节点恢复所述初始扫描次数并重新编号;
新增子单元,对于所述资源记录集的新增:用于增加所述平衡二叉树的新节点,并增加所述新节点的新编号,设置预设新扫描次数为一次;
内容更新子单元,对于所述资源记录集的内容更新:用于直接更新所述平衡二叉树中与内容更新的所述资源记录集对应的节点,恢复各个节点扫描次数为所述初始扫描次数。
对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种基于外部询问DNS服务器的信息更新方法,其特征在于,所述方法包括:
建立数据结构:为本地的所有资源记录集编号,并以每一所述资源记录集为节点建立平衡二叉树;所述平衡二叉树的节点包括一所述资源记录集和与所述资源记录集对应的所述编号;
单周期扫描次数分配:根据对所述资源记录集询问的历史流量数据对资源记录集的使用频率进行统计,得到资源记录集使用频率分布;类比所述资源记录集使用频率分布和模拟退火算法的退火过程,得到类比结果;根据所述类比结果为每一所述资源记录集分配单周期内的初始扫描次数,并将所述初始扫描次数添加至对应的所述资源记录集所在的所述节点;
单周期扫描更新:依据所述编号随机生成哈希值,根据所述哈希值确定扫描的所述资源记录集,判断所述资源记录集的扫描次数是否为零,若是,确定发生碰撞,则顺序退避,进行下一所述编号的所述资源记录集的扫描,直至得到所述扫描次数不为零的所述资源记录集,对所述扫描次数不为零的所述资源记录集进行扫描,向所述DNS服务器发送查询指令,根据所述DNS服务器的应答结果更新被扫描的所述资源记录集,本次扫描后,被扫描的所述资源记录集的扫描次数减一;所述查询指令为查询所述DNS服务器中与被扫描的所述资源记录集相应的资源记录;若否,对所述扫描次数不为零的所述资源记录集进行扫描,向所述DNS服务器发送查询指令,根据所述DNS服务器的应答结果更新被扫描的所述资源记录集,本次扫描后,被扫描的所述资源记录集的扫描次数减一;按照所述编号顺序扫描,直至所有所述资源记录集的扫描次数均为零,结束单周期的扫描更新。
2.根据权利要求1所述的基于外部询问DNS服务器的信息更新方法,其特征在于,在所述“单周期扫描更新”之后所述方法还包括:
更新所述平衡二叉树包括所述资源记录集的删除、所述资源记录集的新增和/或所述资源记录集的内容更新;
对于所述资源记录集的删除:删除所述资源记录集对应的旧节点,对删除所述旧节点后的所述平衡二叉树的各个节点恢复所述初始扫描次数并重新编号;
对于所述资源记录集的新增:增加所述平衡二叉树的新节点,并增加所述新节点的新编号,设置预设新扫描次数;
对于所述资源记录集的内容更新:直接更新所述平衡二叉树中与内容更新的所述资源记录集对应的节点,恢复各个节点扫描次数为所述初始扫描次数。
3.根据权利要求2所述的基于外部询问DNS服务器的信息更新方法,其特征在于,所述预设新扫描次数为一次。
4.根据权利要求1所述的基于外部询问DNS服务器的信息更新方法,其特征在于,所述根据所述DNS服务器的应答结果更新被扫描的所述资源记录集,具体包括:
利用所述DNS服务器中与被扫描的所述资源记录集相应的资源记录替换被扫描的所述资源记录集。
5.根据权利要求1所述的基于外部询问DNS服务器的信息更新方法,其特征在于,所述根据所述DNS服务器的应答结果更新被扫描的所述资源记录集,具体包括:
判断被扫描的所述资源记录集中的域名信息列表与所述DNS服务器中与被扫描的所述资源记录集相应的资源记录中的域名信息列表是否相同;当不相同时,利用所述DNS服务器中与被扫描的所述资源记录集相应的资源记录替换被扫描的所述资源记录集;当相同时,不更新被扫描的所述资源记录集。
6.根据权利要求5所述的基于外部询问DNS服务器的信息更新方法,其特征在于,所述判断被扫描的所述资源记录集中的域名信息列表与所述DNS服务器中与被扫描的所述资源记录集相应的资源记录中的域名信息列表是否相同,具体包括:
利用快速傅里叶变换方法对被扫描的所述资源记录集中的域名信息列表与所述DNS服务器中与被扫描的所述资源记录集相应的资源记录中的域名信息列表进行字符串匹配;当匹配一致时,确定被扫描的所述资源记录集中的域名信息列表与所述DNS服务器中与被扫描的所述资源记录集相应的资源记录中的域名信息列表相同;当匹配不一致时,确定被扫描的所述资源记录集中的域名信息列表与所述DNS服务器中与被扫描的所述资源记录集相应的资源记录中的域名信息列表不相同。
7.一种基于外部询问DNS服务器的信息更新系统,其特征在于,所述系统包括:
数据结构建立单元,用于建立数据结构:为本地的所有资源记录集编号,并以每一所述资源记录集为节点建立平衡二叉树;所述平衡二叉树的节点包括一所述资源记录集和与所述资源记录集对应的所述编号;
扫描次数分配单元,用于单周期扫描次数分配:根据对所述资源记录集询问的历史流量数据对资源记录集的使用频率进行统计,得到资源记录集使用频率分布;类比所述资源记录集使用频率分布和利用模拟退火算法的退火过程,得到类比结果;根据所述类比结果为每一所述资源记录集分配单周期内的初始扫描次数,并将所述初始扫描次数添加至对应的所述资源记录集所在的所述节点;
扫描更新单元,用于单周期扫描更新:依据所述编号随机生成哈希值,根据所述哈希值确定扫描的所述资源记录集,判断所述资源记录集的扫描次数是否为零,若是,确定发生碰撞,则顺序退避,进行下一所述编号的所述资源记录集的扫描,直至得到所述扫描次数不为零的所述资源记录集,对所述扫描次数不为零的所述资源记录集进行扫描,向所述DNS服务器发送查询指令,根据所述DNS服务器的应答结果更新被扫描的所述资源记录集,本次扫描后,被扫描的所述资源记录集的扫描次数减一;所述查询指令为查询所述DNS服务器中与被扫描的所述资源记录集相应的资源记录;若否,对所述扫描次数不为零的所述资源记录集进行扫描,向所述DNS服务器发送查询指令,根据所述DNS服务器的应答结果更新被扫描的所述资源记录集,本次扫描后,被扫描的所述资源记录集的扫描次数减一;按照所述编号顺序扫描,直至所有所述资源记录集的扫描次数均为零,结束单周期的扫描更新。
8.根据权利要求7所述的基于外部询问DNS服务器的信息更新系统,其特征在于,所述系统还包括:
数据结构更新单元,用于更新所述平衡二叉树;所述平衡二叉树的更新包括所述资源记录集的删除、所述资源记录集的新增和/或所述资源记录集的内容更新;所述数据结构更新单元包括:
删除子单元,对于所述资源记录集的删除:用于删除所述资源记录集对应的旧节点,对删除所述旧节点后的所述平衡二叉树的各个节点恢复所述初始扫描次数并重新编号;
新增子单元,对于所述资源记录集的新增:用于增加所述平衡二叉树的新节点,并增加所述新节点的新编号,设置预设新扫描次数为一次;
内容更新子单元,对于所述资源记录集的内容更新:用于直接更新所述平衡二叉树中与内容更新的所述资源记录集对应的节点,恢复各个节点扫描次数为所述初始扫描次数。
9.根据权利要求7所述的基于外部询问DNS服务器的信息更新系统,其特征在于,所述扫描更新单元包括资源记录集更新子单元,所述资源记录集更新子单元用于利用所述DNS服务器中与被扫描的所述资源记录集相应的资源记录替换被扫描的所述资源记录集。
10.根据权利要求7所述的基于外部询问DNS服务器的信息更新系统,其特征在于,所述扫描更新单元包括资源记录集更新子单元,所述资源记录集更新子单元用于判断被扫描的所述资源记录集中的域名信息列表与所述DNS服务器中与被扫描的所述资源记录集相应的资源记录中的域名信息列表是否相同;当不相同时,利用所述DNS服务器中与被扫描的所述资源记录集相应的资源记录替换被扫描的所述资源记录集;当相同时,不更新被扫描的所述资源记录集;
所述判断被扫描的所述资源记录集中的域名信息列表与所述DNS服务器中与被扫描的所述资源记录集相应的资源记录中的域名信息列表是否相同的方法为:
利用快速傅里叶变换方法对被扫描的所述资源记录集中的域名信息列表与所述DNS服务器中与被扫描的所述资源记录集相应的资源记录中的域名信息列表进行字符串匹配;当匹配一致时,确定被扫描的所述资源记录集中的域名信息列表与所述DNS服务器中与被扫描的所述资源记录集相应的资源记录中的域名信息列表相同;当匹配不一致时,确定被扫描的所述资源记录集中的域名信息列表与所述DNS服务器中与被扫描的所述资源记录集相应的资源记录中的域名信息列表不相同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811501169.XA CN109660390B (zh) | 2018-12-10 | 2018-12-10 | 一种基于外部询问dns服务器的信息更新方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811501169.XA CN109660390B (zh) | 2018-12-10 | 2018-12-10 | 一种基于外部询问dns服务器的信息更新方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109660390A CN109660390A (zh) | 2019-04-19 |
CN109660390B true CN109660390B (zh) | 2021-12-28 |
Family
ID=66113411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811501169.XA Active CN109660390B (zh) | 2018-12-10 | 2018-12-10 | 一种基于外部询问dns服务器的信息更新方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109660390B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7769826B2 (en) * | 2003-06-26 | 2010-08-03 | Nominum, Inc. | Systems and methods of providing DNS services using separate answer and referral caches |
CN104618506A (zh) * | 2015-02-24 | 2015-05-13 | 庄奇东 | 一种众包的内容分发网络系统、方法与装置 |
-
2018
- 2018-12-10 CN CN201811501169.XA patent/CN109660390B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7769826B2 (en) * | 2003-06-26 | 2010-08-03 | Nominum, Inc. | Systems and methods of providing DNS services using separate answer and referral caches |
CN104618506A (zh) * | 2015-02-24 | 2015-05-13 | 庄奇东 | 一种众包的内容分发网络系统、方法与装置 |
Non-Patent Citations (1)
Title |
---|
基于机器学习的域名数据监控方法;刘明星等;《计算机工程》;20140930;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109660390A (zh) | 2019-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105959433B (zh) | 一种域名解析方法及其域名解析系统 | |
US20080140618A1 (en) | Distributed Directory with Proxy | |
EP3557841A1 (en) | Dns attack defense method, apparatus and system | |
CN109672760B (zh) | 基于区块链的dns根数据分发方法及系统 | |
CN111553670B (zh) | 一种交易处理方法、装置及计算机可读存储介质 | |
CN112559558A (zh) | 一种流水号生成方法和装置、计算设备和存储介质 | |
CN111917896A (zh) | 一种可信的域名解析方法、系统、电子设备及存储介质 | |
US20180321706A1 (en) | Timestamp Alignment Across a Plurality Of Computing Devices | |
CN112468525A (zh) | 一种基于区块链的域名管理系统 | |
CN112134967B (zh) | 一种基于共治链的域名解析方法及装置 | |
CN112468309A (zh) | 基于智能合约的域名管理系统 | |
CN108076081B (zh) | 一种业务数据的同步方法、装置和系统 | |
CN103678676A (zh) | Ip库处理方法和系统 | |
CN110737663A (zh) | 一种数据存储方法、装置、设备及存储介质 | |
CN113094334A (zh) | 基于分布式存储的数字服务方法、装置、设备及储存介质 | |
CN110855812A (zh) | 基于ip地址的定位方法、装置和设备 | |
CN109660390B (zh) | 一种基于外部询问dns服务器的信息更新方法及系统 | |
US20140365541A1 (en) | Storing an object in a distributed storage system | |
CN111866203B (zh) | 一种域名解析方法、装置、可读存储介质及设备 | |
CN108551495A (zh) | 一种不使用dns协议或类似协议的域名访问方法 | |
JP6442545B2 (ja) | Dnsサーバ、dnsサーバにおけるブラックリスト生成方法、dnsサーバに用いるブラックリスト生成プログラム | |
CN108365962B (zh) | 一种证书吊销列表查询方法及装置 | |
CN115858590A (zh) | 域名查询请求处理方法、计算机装置、设备、介质和产品 | |
CN112187900B (zh) | 基于区块链共享缓存的dns数据更新方法和系统 | |
EP3340582A1 (en) | Determining a top level domain from a domain name |
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 |