一种域名的分布式智能解析方法

文档序号:8530461阅读:443来源:国知局
一种域名的分布式智能解析方法
【技术领域】
[0001]本发明涉及域名解析技术领域,特别是一种域名的分布式智能解析方法。
【背景技术】
[0002]在互联网高速发达的今天,信息安全已经不容忽视。越来越多的设备通过联网发布到互联网上,互联网用户通过域名来访问网络基础设施上的内容资源,域名服务器负责解析,将容易记忆的域名地址转换为IP地址。在这种开放的大数据环境下,如何发现和检测网络基础设施的安全性,已经是一个极大的挑战。对网络设施的安全检测,首先需要对其进行定位。通过域名解析得到IP地址,可以定位到网络基础设施,从而可以对其进行各种安全检测,如端口扫描,漏洞扫描等。因此,大规模的域名解析对网络基础设施的安全发现有着重要的意义。
[0003]一般的域名解析客户端是向某个域名服务器发送DNS请求命令,这种方法无法适应海量的域名解析,有如下缺点:1、单个域名解析客户端计算能力有限,无法横向扩展。2、大量的解析请求对单个域名服务器会产生网络阻塞和计算延迟,影响解析的速度。3、单个域名解析客户端对单个域名服务器大规模连续发送DNS请求,会被域名服务器认为是恶意请求(DDOS攻击)而被拉入黑名单,而拒绝请求。

【发明内容】

[0004]本发明需要解决的技术问题一种海量域名的快速解析方法。
[0005]为解决上述的技术问题,本发明的一种域名的分布式智能解析方法,包括以下步骤,
[0006]分布式架构建立:建立分布式架构,将域名解析客户端分布在多台机器上;
[0007]域名调度:域名调度模块按照调度策略将域名调度进入分布式任务队列中,可以对域名进行优先级的调度;
[0008]域名解析:域名解析客户端向分布式任务队列请求任务,完成域名服务器解析,并将解析结果发送回到消息结果队列中,让安全检测处理程序做进一步的处理。
[0009]进一步的,每一个域名解析客户端都配置了大量的域名服务器,在发送域名解析请求过程中,对域名服务器列表基于自我检测的优胜劣汰,选择一个最优的域名服务器发送请求。
[0010]更进一步的,所述选择最优的域名服务器包括以下步骤:
[0011]步骤SlOl:初始化,将域名服务器列表中第一个域名服务器作为候选节点,并将比较节点位置设置为2 ;
[0012]步骤S102:比较节点位置是否大于域名列表的长度,如果否,则进入步骤S103 ;如果是,则进入步骤S108;
[0013]步骤S103:从域名服务器列表中取出比较位置中的元素作为比较节点,将比较位置加I ;
[0014]步骤S104:判断候选节点权重参数与比较节点是否相等,即判断候选节点的权重系数/请求次数的比值是否等于比较节点的权重系数/请求次数的比值,如果是,则进入步骤S106 ;如果否,则进入步骤S105 ;
[0015]步骤S105:判断候选节点权重参数是否小于比较节点,即判断候选节点的权重系数/请求次数的比值是否小于比较节点的权重系数/请求次数的比值,如果是,则进入步骤S107 ;如果否,则进入步骤SlOl ;
[0016]步骤S106:判断候选节点请求时间是否晚于比较节点,即判断候选节点的请求时间是否晚于比较节点请求时间,如果是,则进入步骤SlOl ;如果否,则进入步骤S107 ;
[0017]步骤S107:节点替换,将候选节点替换为比较节点,返回步骤SlOl ;
[0018]步骤S108:确定最优域名服务器,确定候选节点为最优域名服务器。
[0019]采用上述方法后,本发明通过将域名调度到分布式队列和域名服务解析器的横向扩展,解决了单个域名服务器计算能力有限的问题,解决了域名服务器的负载均衡以及恶意请求问题,不仅加快了域名解析的速度,而且大幅度提高域名解析请求的有效率。
【附图说明】
[0020]下面结合附图和【具体实施方式】对本发明作进一步的说明。
[0021]图1为本发明域名解析示意图。
[0022]图2为本发明最优域名服务器选择的流程示意图。
【具体实施方式】
[0023]本发明一种域名的分布式智能解析方法,包括以下步骤:
[0024]分布式架构建立:建立分布式架构,将域名解析客户端分布在多台机器上;
[0025]域名调度:域名调度模块将域名调度进入分布式任务队列中;
[0026]域名解析;域名解析客户端向分布式任务队列请求任务,完成域名服务器解析,并将解析结果发送到消息结果队列中,让安全检测处理程序做进一步的处理。
[0027]其中,每一个域名解析客户端都配置了大量的域名服务器,在发送域名解析请求过程中,对域名服务器列表基于自我检测的优胜劣汰,选择一个最优的域名服务器发送请求。
[0028]如图1所示,首先将海量域名存入到数据库中,域名调度模块从域名数据库中,可以按照一定的调度策略将域名数据写入到的分布式任务队列中,当任务队列容量满的时候,调度模块阻塞;当任务队列容量有剩余,调度模块继续将域名任务写入到分布式任务队列。部署在多个机器上的域名解析客户端向分布式队列请求任务,取得任务后,域名解析客户端从域名服务器列表中,选择一个域名服务器发送域名解析请求,并将解析结果发送到结果消息中存储待安全检测程序做进一步的处理。
[0029]如图2所示,选择最优的域名服务器包括以下步骤:
[0030]步骤SlOl:初始化,将域名服务器列表中第一个域名服务器作为候选节点,并将比较节点位置设置为2 ;
[0031]步骤S102:比较节点位置是否大于域名列表的长度,如果否,则进入步骤S103 ;如果是,则进入步骤S108;
[0032]步骤S103:从域名服务器列表中取出比较位置中的元素作为比较节点,将比较位置加I ;
[0033]步骤S104:判断候选节点权重参数与比较节点是否相等,即判断候选节点的权重系数/请求次数的比值是否等于比较节点的权重系数/请求次数的比值,如果是,则进入步骤S106 ;如果否,则进入步骤S105 ;
[0034]步骤S105:判断候选节点权重参数是否小于比较节点,即判断候选节点的权重系数/请求次数的比值是否小于比较节点的权重系数/请求次数的比值,如果是,则进入步骤S107 ;如果否,则进入步骤SlOl ;
[0035]步骤S106:判断候选节点请求时间是否晚于比较节点,即判断候选节点的请求时间是否晚于比较节点请求时间,如果是,则进入步骤SlOl ;如果否,则进入步骤S107 ;
[0036]步骤S107:节点替换,将候选节点替换为比较节点,返回步骤SlOl ;
[0037]步骤S108:确定最优域名服务器,确定候选节点为最优域名服务器。
[0038]域名解析过程如下:
[0039]域名解析器在结构上分为一个任务请求线程和多个(可配置)解析线程。任务请求线程主要是向分布式队列请求任务,为了提高单个解析器的效率,解析器内部有一个域名任务队列,只要队列容量未满,任务请求线程就向任务队列请求任务,并将任务放入到这个内部队列中;解析线程不断的从这个内部队列中取出解析任务执行。通过这种异步的方式,进行任务的读取和执行,不仅在程序结构上解耦了读取和执行的关联性,而且在一定程度上提高了任务执行的效率。
[0040]解析过程如下:
[0041]将大量的域名服务器存放到内存数组中,初始化每一个域名服务器的请求次数,请求时间,权重系数,这三个参数是用来选择请求域名服务器的参数。
[0042]解析线程取得任务后,根据如图的优先级选择算法,选择出一个最优的域名服务器发送,并更新该域名服务器的请求时间,将请求次数加I域名服务器成功响应后,将权重系统加1,将结果发送回结果消息中;如果域名服务器响应超时,则将权重系统减I。
[0043]虽然以上描述了本发明的【具体实施方式】,但是本领域熟练技术人员应当理解,这些仅是举例说明,可以对本实施方式作出多种变更或修改,而不背离发明的原理和实质,本发明的保护范围仅由所附权利要求书限定。
【主权项】
1.一种域名的分布式智能解析方法,其特征在于,包括以下步骤: 分布式架构建立:建立分布式架构,将域名解析客户端分布在多台机器上; 域名调度:域名调度模块按照调度策略将域名调度进入分布式任务队列中,可以对域名进行优先级的调度: 域名解析:域名解析客户端向分布式任务队列请求任务,完成域名服务器解析,并将解析结果发送到消息结果队列中,让安全监测处理程序做进一步的处理。
2.按照权利要求1所述的一种域名的分布式智能解析方法,其特征在于:每一个域名解析客户端都配置了大量的域名服务器,形成域名服务器池,在发送域名解析请求过程中,对域名服务器池基于自我检测的优胜劣汰算法,选择一个最优的域名服务器发送请求。
3.按照权利要求2所述的一种域名的分布式智能解析方法,其特征在于,所述选择最优的域名服务器包括以下步骤: 步骤SlOl:初始化,将域名服务器列表中第一个域名服务器作为候选节点,并将比较节点位置设置为2 ; 步骤S102:比较节点位置是否大于域名列表的长度,如果否,则进入步骤S103 ;如果是,则进入步骤S108 ; 步骤S103:从域名服务器列表中取出比较位置中的元素作为比较节点,将比较位置加I ; 步骤S104:判断候选节点权重参数与比较节点是否相等,即判断候选节点的权重系数/请求次数的比值是否等于比较节点的权重系数/请求次数的比值,如果是,则进入步骤5106;如果否,则进入步骤S105 ; 步骤S105:判断候选节点权重参数是否小于比较节点,即判断候选节点的权重系数/请求次数的比值是否小于比较节点的权重系数/请求次数的比值,如果是,则进入步骤5107;如果否,则进入步骤SlOl ; 步骤S106:判断候选节点请求时间是否晚于比较节点,即判断候选节点的请求时间是否晚于比较节点请求时间,如果是,则进入步骤SlOl ;如果否,则进入步骤S107 ; 步骤S107:节点替换,将候选节点替换为比较节点,返回步骤SlOl ; 步骤S108:确定最优域名服务器,确定候选节点为最优域名服务器。
【专利摘要】本发明涉及域名解析技术领域,特别是一种域名的分布式智能解析方法,包括以下步骤,分布式架构建立:建立分布式架构,将域名解析客户端分布在多台机器节点上;域名调度:域名调度模块将待解析的域名调度到分布式任务队列中;域名解析:域名解析客户端向分布式任务队列请求任务,完成域名服务器解析,并将解析结果发送到消息结果队列中,让网络监测处理程序做进一步的处理。采用上述方法后,本发明通过将域名调度到分布式队列,并在此基础上对域名服务解析客户端进行横向扩展,解决了单个域名服务器计算能力有限的问题,解决了域名服务器的负载均衡以及恶意请求问题,不仅加快了域名解析的速度,而且大幅度提高域名解析请求的有效率。
【IPC分类】H04L29-12
【公开号】CN104853004
【申请号】CN201510273776
【发明人】谢朝辉, 罗俭
【申请人】湖南傻蛋科技有限公司
【公开日】2015年8月19日
【申请日】2015年5月26日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1