DNS并发递归数调度的控制方法技术

技术编号:33244961 阅读:17 留言:0更新日期:2022-04-27 17:54
本申请涉及一种DNS并发递归数调度的控制方法,该方法包括:设定DNS服务器的整体最大并发递归数;将整体最大并发递归数分为一级调度时的第一最大并发递归数和二级调度时的第二最大并发递归数;递归查询先经一级调度,在当前的并发递归数达到第一最大并发递归数时,进入二级调度;将第二最大并发递归数再划分为多个slot数;计算落入的slot ID号,若落入的slot ID号对应slot的当前并发递归数小于每个slot的最大并发递归数,则发出递归查询。本申请在满足正常DNS递归查询的前提下,针对异常的DNS递归查询或攻击,也能将它的影响限制在一定范围,减少对正常流量的影响。减少对正常流量的影响。减少对正常流量的影响。

【技术实现步骤摘要】
DNS并发递归数调度的控制方法


[0001]本申请涉及计算机域名解析
,特别是涉及一种DNS并发递归数调度的控制方法、计算机设备和存储介质。

技术介绍

[0002]DNS递归查询需要向外部DNS服务器发起DNS查询,以获得所需的DNS记录。但是由于每个DNS递归查询链接都需要占用一定的资源(本机的IP端口,每个链接的内存数据结构等),所以基本上所有的DNS服务器软件都有对最大并发递归数的限制。如果当前有大量的递归外出查询,当外出递归查询的链接数达到设置的最大值,则不再产生新的递归查询链接,而是直接返回servfail状态给查询客户端,从而保证系统资源不会被过分消耗。
[0003]目前主流的DNS服务器软件(以BIND为例),最大并发递归数是一个全局参数,即意味着所有的外出查询都会消耗这个值。在通常情况下,由于DNS cache的存在,DNS递归查询会比较随机,所以这种全局共享机制并没有什么问题。但是在一些攻击等极端情况下,这种机制就会产生比较严重的问题。比如说,某类攻击源就只攻击attack.com这个域:为了消耗系统资源,攻击者发起大量的attack.com的随机域名,这些域名因为是随机的,所以不会命中cache,这样就会触发递归查询,当触发到最大并发递归数后,这样正常的的递归查询就不会被服务,从而导致正常查询无法应答。

技术实现思路

[0004]基于此,有必要针对上述技术问题,提供一种DNS并发递归数调度的控制方法、装置、计算机设备和存储介质,从而在满足正常DNS递归查询的前提下,针对异常的DNS递归查询或攻击,也能将它的影响限制在一定范围,减少对正常流量的影响。
[0005]本专利技术的第一方面,提供了一种DNS并发递归数调度的控制方法,包括:
[0006]设定DNS服务器的整体最大并发递归数;
[0007]将所述整体最大并发递归数分为一级调度时的第一最大并发递归数和二级调度时的第二最大并发递归数;
[0008]所有的递归查询先经过一级调度,在当前的并发递归数达到设定的第一最大并发递归数时,进入二级调度;
[0009]将所述第二最大并发递归数再划分为多个slot数,形成每个slot的最大并发递归数;
[0010]计算落入的slot ID号,如若落入的slot ID号对应slot的当前并发递归数小于每个slot的最大并发递归数,则向外发出递归查询的请求。
[0011]进一步地,计算落入的slot ID号包括:
[0012]查询域名获得计算所需的域;
[0013]通过域计算对应域的哈希值;
[0014]对哈希值和slot数量求余,得到所述slot ID号。
[0015]进一步地,在一级调度时,若当前的并发递归数未达到设定的第一最大并发递归数时,将当前的并发递归数加一,同时保存状态;若递归查询应答后或查询超时后,若检测到所述递归查询来一级调度时,则将一级调度时的当前并发递归数减一。
[0016]进一步地,在二级调度时,发出递归查询后,对指定slot的当前并发递归数加一,同时保存slot ID号;当递归查询应答后或超时后,若检测到该递归查询来自二级调度,则将所述slot的当前并发递归数减一。
[0017]优选地,所述第一最大并发递归数和第二最大并发递归数均设置为所述整体最大并发递归数的一半。
[0018]可选地,所述的域为二级域或三级域。
[0019]优选地,所述slot数的个数为2的冥次方。
[0020]优选地,所述slot数为128个。
[0021]本专利技术的第二方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本专利技术第一方面所述的方法之一。
[0022]本专利技术的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如本专利技术第一方面所述的方法之一。
[0023]本专利技术所提供的DNS并发递归数调度的控制方法、计算机设备和存储介质,通过将DNS域名系统整体最大并发递归数分成两级,第一级兼容现有的递归数逻辑,满足正常流量下的DNS递归查询,第二级使用分域哈希逻辑,以实现将某类攻击流量的影响控制在小范围内,不影响其他正常流量的递归查询。
附图说明
[0024]图1为本专利技术实施例中的DNS递归发送的流程示意图;
[0025]图2为本专利技术实施例中的DNS递归释放的流程示意图;
[0026]图3是本专利技术实施例中的计算机设备的结构原理图。
具体实施方式
[0027]为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。此外,为了清楚和简洁,省略对公知功能和结构的描述。
[0028]本文使用的术语仅用于描述本专利技术的各种实施例,而不旨在限制本专利技术。除非上下文另有明确指示,否则单数形式旨在包括复数形式。在本专利技术中,应理解,术语“包括”或“具有”指示特征、数字、步骤、操作、元件、部件或其组合的存在,并且不排除一个或更多个其它特征、数字、步骤、操作、元件、部件或其组合的存在,或添加一个或更多个其它特征、数字、步骤、操作、元件、部件或其组合的可能性。
[0029]为了方便描述,本实施例中对使用到的一些术语定义如下:
[0030]C:系统整体的最大并发递归数。
[0031]C1:第一级的最大并发递归数。
[0032]N1:第一级当前并发递归数。
[0033]C2:第二级的最大并发递归数。
[0034]N2:第二级当前并发递归数。
[0035]S:第二级的slot数。
[0036]SC:每个slot的最大并发递归数。
[0037]SN:指定slot的当前并发递归数。
[0038]Qname:查询的域名。
[0039]Qdomain:查询域名对应的域。
[0040]Qhash:查询域名对应域的哈希值。
[0041]Qslot:查询落入的slot ID号。
[0042]图1为根据本申请的示例性的实施例提供的DNS并发递归数调度的控制方法的流程图。
[0043]本专利技术首先将DNS系统的整体最大并发递归数C划分为两级调度,即第一级调度和第二级调度,两级调度的并发递归数加起来为整体的最大并发递归数,每一级调度的最大并发递归数为整体最大并发递归数的一半。
[0044]其中,第一级为全局并发递归调度层,该层的逻辑和现有最大并发递归数逻辑一致,但容量变成现有的一半,即一级最大并发递归数C1=C/2。第二级为散列递归调度层,其容量为整体容量的一半,即二级最大并发递归数C2=C/2,该层的作用是精细调度。先进行一级调度,并在满足一定条件时进入到二级调度处理过程。当然,本领域技术人员应当能够理解的是,一级最大最大并发本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种DNS并发递归数调度的控制方法,其特征在于,包括:设定DNS服务器的整体最大并发递归数;将所述整体最大并发递归数分为一级调度时的第一最大并发递归数和二级调度时的第二最大并发递归数;所有的递归查询先经过一级调度,在当前的并发递归数达到设定的第一最大并发递归数时,进入二级调度;将所述第二最大并发递归数再划分为多个slot数,形成每个slot的最大并发递归数;计算落入的slot的ID号,如若落入的slot ID号对应slot的当前并发递归数小于每个slot的最大并发递归数,则向外发出递归查询的请求。2.如权利要求1所述的方法,其特征在于,计算落入的slot ID号包括:查询域名获得计算所需的域;通过域计算对应域的哈希值;对哈希值和slot数量求余,得到所述slotID号。3.如权利要求2所述的方法,其特征在于,在一级调度时,若当前的并发递归数未达到设定的第一最大并发递归数时,将当前的并发递归数加一,同时保存状态;若递归查询应答后或查询超时后,若检测到所述递归查询来自一级调度时,则将一级...

【专利技术属性】
技术研发人员:蒋超陈政璋吴琦邢志杰毛伟
申请(专利权)人:互联网域名系统北京市工程研究中心有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1