一种DNS递归服务器抗DoS、DDoS攻击的方法

文档序号:7811509阅读:235来源:国知局
一种DNS递归服务器抗DoS、DDoS攻击的方法
【专利摘要】本发明涉及一种DNS递归服务器抗DoS、DDoS攻击的方法及装置,其中方法包括:实时监测递归服务器的当前并发递归请求量,当递归请求量在特定时间内持续大于当前递归服务器所能处理的最大并发递归查询总量的指定倍数时,特定时间计时结束则同时启动常用域名缓存预取、限制并发递归查询数量的响应机制。本发明通过实时监测递归服务器的当前并发递归请求量,在适当的时候启动响应机制来提高DNS查询的缓存命中率,抑制递归服务器向其他域名服务器发起的查询量,用以在受到DoS、DDoS攻击时降低攻击对服务器资源及网络带宽的占用,最大限度地保障合法用户的解析请求得到正常响应,维护DNS系统的安全运行。
【专利说明】-种DNS递归服务器抗DoS、DDoS攻击的方法

【技术领域】
[0001] 本发明属于互联网【技术领域】,更具体地说,是涉及一种DNS递归服务器抗DoS、 DDoS攻击的方法。

【背景技术】
[0002] 域名查询系统中,用户(解析器)向递归服务器发送某一个域名解析请求。递归服 务器首先从自身缓存(Cache)中查找是否有该域名的解析结果,如果有(即Cache命中), 则直接将此结果返回给用户;若没有,则向DNS权威服务器发起查询(即递归查询)以获得 应答,将应答保存到Cache中,再将最终查询结果返回给用户。
[0003] 如图1所示为域名查询流程图,Cache命中的情况下只需执行图中所示 的"Q1+Q2+A2+A1"过程,全程耗时不到lms ;需要递归的域名查询执行图中所示的 "Q1+Q2+A2+Q3+A3+A1"的完整过程,全程耗时约200ms。可见,Cache命中的解析速率大大 高于需要递归查询的情况,适当提高域名查询的Cache命中概率将有助于提升递归服务器 DNS解析服务的整体效率。
[0004] 为保证Cache中数据的准确性和限制Cache容量的无限扩大,Cache中缓存的记 录都有自己的生存期(Time to Live,简称TTL),生存期表示数据在Cache中存放的时间, 生存期一过,递归服务器就必须丢弃缓存的数据。可见,一种既能延长缓存记录的生存期, 又能保证缓存数据准确性的方法将提高域名查询的Cache命中率和解析效率。
[0005] DoS (Denial of Service,拒绝服务)攻击是指攻击者试图通过傀偏计算机向域名 服务器发送大量域名查询,使计算机或网络无法提供正常的域名服务。DoS攻击最早是由单 机来完成的,随着服务器系统性能与网络带宽的提高及安全防御设备(如防火墙、路由器 等)对同一攻击来源的DoS攻击的检测阻断能力的提升,DOS攻击变得容易被察觉和防御。
[0006] 如图2所示,DDoS(Distributed Denial of Service,分布式拒绝服务)攻击是在 传统的DoS攻击基础之上发展起来的一类攻击方式。DDoS利用更多的傀儡机向目标服务 器发起大量合法的服务请求来占用过多的服务器资源,从而使合法用户无法得到服务的响 应。相较DoS攻击而言,DDoS攻击成倍地提高了拒绝服务攻击的威力,且由于每个傀儡机 发起的DNS服务请求数量少量且合理,DDoS攻击方式的无规律性,导致DDoS攻击源很难被 确定,也就很难防御DDoS攻击。
[0007] 递归服务器在受到DoS、DDoS攻击时,收到的域名解析请求有以下两大特点:
[0008] 1)接收的查询请求陡增。正常情况下,递归服务器DNS系统稳定运行时每秒查询 数(Query Per Second,QPS)会长期稳定在一个合理范围之内,而在受到DoS、DDoS攻击时, 域名查询请求量可能达到几倍、几十倍或更高。
[0009] 2)查询的域名缓存命中率会大幅降低,大量域名解析请求需要递归完成。据统计, 正常应用环境下,递归服务器在DNS系统稳定运行时,10%不到的缓存记录可以命中超过 90%的DNS解析请求,只有少量解析请求需要递归。而在DoS、DDoS攻击情况下,由于攻击 者发起的大量查询域名都是人工伪造的,随机性强,导致这些域名中的绝大多数都不会在 递归服务器的Cache中命中,按照现有的递归查询机制,递归服务器不得不向其他域名服 务器发起域名查询,使得递归服务器并发递归请求量Μ大幅递增,消耗大量目标递归服务 器和网络资源,甚至造成更严重的破坏,达到攻击的目的。
[0010] 由此,DoS、DDoS攻击将造成网络拥堵和递归服务器资源被大量占用,被DoS、DDoS 攻击淹没的递归服务器将丢失数据包且不能回复所有的DNS请求,导致域名解析业务瘫 痪,影响合法用户的DNS解析查询。


【发明内容】

[0011] 为解决上述技术问题,本发明提供了一种DNS递归服务器抗D〇S、DD〇S攻击的方法 及装置,其中方法包括以下步骤:
[0012] 实时监测递归服务器的当前并发递归请求量;
[0013] 当递归请求量超过当前递归服务器所能处理的最大并发递归查询总量的指定倍 数时,启动计时器从零开始;
[0014] 若在特定时间内,递归请求量持续大于当前递归服务器所能处理的最大并发递归 查询总量的指定倍数时,则计时结束时同时启动常用域名缓存预取、限制并发递归查询数 量机制。
[0015] 进一步地,所述指定倍数为1. 5。
[0016] 进一步地,所述特定时间为10秒。
[0017] 进一步地,所述常用域名缓存预取包括以下步骤:
[0018] 统计递归服务器系统从开始运行以来缓存中所有域名被查询的次数,并按照次数 从多到少进行排名;
[0019] 对排名前指定数量条的域名,当域名记录生存期减少到指定大小时,递归服务器 主动向域名服务器发起该域名的查询,并在应答后更新递归缓存,从而保证这些域名一直 存在缓存中,并且,
[0020] 对于排名在指定数量条以后的域名,当域名记录生存期结束时,域名自动从缓存 清除,从而保证缓存中的容量不至无限扩大。
[0021] 进一步地,所述指定数量条的数量为100000条。
[0022] 进一步地,所述域名记录生存期减小到的指定大小为5秒。
[0023] 进一步地,所述限制并发递归查询数量机制包括以下步骤:
[0024] 从需要递归解析的域名查询请求中选择当前递归服务器所能处理的最大并发递 归查询数量的域名请求进行响应,没有被选中的域名查询请求将直接被丢弃。
[0025] 进一步地,持续上述机制,直至递归服务器并发递归请求量小于当前递归服务器 所能处理的最大并发递归查询总量时,启用正常递归查询机制。
[0026] 另外,本发明还公开一种一种DNS递归服务器抗DoS、DDoS攻击的装置,包括递归 服务器,其特征在于,所述递归服务器中包括:
[0027] 监测模块,实时监测递归服务器的当前并发递归请求量;
[0028] 计时器,当并发递归请求量超过当前递归服务器所能处理的最大并发递归查询总 量的指定倍数时,启动计时器从零开始;
[0029] 控制模块,若在特定时间内,并发递归请求量持续大于当前递归服务器所能处理 的最大并发递归查询总量的指定倍数时,则计时结束时同时启动常用域名缓存预取、限制 并发递归查询数量机制。
[0030] 本发明通过实时监测递归服务器的当前并发递归请求量,在适当的时候启动常用 域名的缓存预取、限制并发递归查询数量的方式提高DNS查询的缓存命中率,抑制向其他 域名服务器发起的查询量,用以在递归服务器受到DoS、DDoS攻击时降低攻击对服务器资 源及网络带宽的占用,最大限度地保障合法用户的解析请求得到正常响应,维护DNS系统 的安全运行。

【专利附图】

【附图说明】
[0031] 图1是现有技术递归查询流程图;
[0032] 图2是DDoS攻击示意图;
[0033] 图3是本发明一种递归服务器抗攻击方法其中一实施例流程图。

【具体实施方式】
[0034] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述。显然,所描述的实施例为实施本发明的较佳实施方式,所述描述是以说明本发明 的一般原则为目的,并非用以限定本发明的范围。本发明的保护范围应当以权利要求所界 定者为准,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下 所获得的所有其他实施例,都属于本发明保护的范围。
[0035] 如图3所示为本发明实施例一 DNS递归服务器抗D〇S、DD〇S攻击的方法的流程图, 如图3所示,该方法包括以下步骤:
[0036] 步骤S101,实时监测递归服务器的当前并发递归请求量(即:当前DNS请求总 数-Cache命中数)。
[0037] 步骤S102,当并发递归请求量超过当前递归服务器所能处理的最大并发递归查询 总量的指定倍数时,启动计时器从零开始计时。
[0038] 步骤S103 :若在特定时间内,并发递归请求量持续大于当前递归服务器所能处理 的最大并发递归查询总量的指定倍数时,则计时结束时启动响应机制。
[0039] 具体地,实时监测递归服务器的当前并发递归请求量M。当Μ超过递归服务器所能 处理的最大并发递归查询数量Ν(如:10000)的1. 5倍(如:15000)时,启动计时器从零开 始计时。若在10秒时间内,Μ持续大于1. 5N,10秒计时一到立刻同时启用响应机制。这里 指定倍数的取值为1.5,特定时间取值为10秒,本行业技术人员也可以取其他数值,这里不 作具体的限制。
[0040] 具体的,此响应机制有两个实施例,具体响应时两个实施例同时启动、同时关闭。
[0041] 其中实施例一为常用域名的缓存预取,具体包括以下步骤:
[0042] 统计递归服务器系统从开始运行以来缓存中所有域名被查询的次数,并按照次数 从多到少进行排名。
[0043] 对排名前指定数量条的域名,当域名记录生存期TTL减少到特定大小时,递归服 务器主动向域名服务器发起该域名的查询,并在应答后更新递归缓存,从而保证这些域名 一直存在缓存中,并且,
[0044] 对于排名在指定数量条以后的域名,当域名记录生存期结束时,域名自动从缓存 清除,从而保证缓存中的容量不至无限扩大。
[0045] 具体的,统计从递归服务器系统开始运行时刻到该时刻为止的时间段内,递归服 务器缓存中的各域名被解析查询的次数,并按照查询次数从大到小的顺序进行排序,排名 前100000条的域名(即经常使用的域名)执行以下操作:域名记录TTL减少到5秒时,由 递归服务器主动向域名服务器发起该域名的递归查询,收到应答后,更新递归缓存,从而保 证这些常用域名在Cache中一直有缓存。对排名在100000以后的域名,不执行上述机制, 艮P TTL时间一到,域名自动从缓存清除,从而保证Cache不致无限扩大。
[0046] 其中,这里指定数量条的数量为100000条,域名记录生存期减少到的特定大小为 5秒,本行业技术人员也可以取其他数值,这里不作具体的限制。
[0047] 实施例二为限制并发递归查询数量,具体包括以下步骤:
[0048] 从需要递归解析的域名请求中选择当前递归服务器所能处理的最大并发递归查 询数量的域名请求进行响应,没有被选中的域名查询请求将直接被丢弃。
[0049] 具体的,对于没有Cache命中的请求,递归服务器将会发起递归查询,来获得这 些查询的结果。统计当前递归服务器正在处理的需要发起的递归查询域名解析请求数量 M( S卩:当前DNS请求总数-Cache命中数),当Μ大于N时,递归服务器从这些需要递归的 域名解析请求中每C = Μ/Ν(向上取整)个请求中选择1个进行响应,没被选中执行的域名 查询请求将被直接丢弃。(如:监测到某递归服务器某时刻需要递归的域名查询数为Μ = 400000,而递归服务器的处理能力为Ν = 100000,4个递归请求中只有一个会向外发出递归 查询,其余3个直接丢弃)。
[0050] 持续上述常用域名缓存预取、限制并发递归查询数量机制,直至递归服务器并发 递归请求量Μ小于当前递归服务器所能处理的最大并发递归查询总量Ν时,启用正常递归 查询机制。
[0051] 另外,本发明还公开了一种DNS递归服务器抗攻击装置,包括递归服务器,递归服 务器中包括:
[0052] 监测模块,实时监测递归服务器的当前并发递归请求量;
[0053] 计时器,当递归请求量超过当前递归服务器所能处理的最大并发递归查询总量的 指定倍数时,启动计时器从零开始;
[0054] 控制模块,若在特定时间内,并发递归请求量持续大于当前递归服务器所能处理 的最大并发递归查询总量的指定倍数时,则计时时间结束启动响应机制。
[0055] 此响应机制如上述方法中所述实施例一的常用域名缓存预取和实施例二的限制 并发递归查询数量,具体在响应时两种实施例同时启动,同时关闭。
[0056] 本发明通过实时监测递归服务器的当前并发递归请求量,能及时发现DNS查询 异常(如:DoS、DDoS攻击),采用"常用域名的缓存预取"机制,使查询尽可能多地能够在 Cache中命中,提高了查询效率,降低了递归服务器和网络资源的消耗;采用"限制并发递 归查询数量",保证了当前递归服务器的发起的递归查询与它的处理能力相当,既在不致引 起递归服务器瘫痪的前提下充分利用服务器资源最大限度地响应查询请求,同时也抑制了 向其他域名服务器发起的查询请求数量,大大降低了网络带宽和其他域名服务器资源的占 用,减少网络拥堵,维护了 DNS解析系统的正常运行。综上所述,本发明对于防御域名服务 系统遭遇DoS、DDoS攻击有显著效果。
[0057] 上述说明示出并描述了本发明的若干优选实施例,但如前所述,应当理解本发明 并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、 修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识 进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发 明所附权利要求的保护范围内。
【权利要求】
1. 一种DNS递归服务器抗DoS、DDoS攻击的方法,包括以下步骤: 实时监测递归服务器的当前并发递归请求量; 当并发递归请求量超过当前递归服务器所能处理的最大并发递归查询总量的指定倍 数时,启动计时器从零开始; 若在特定时间内,递归请求量持续大于当前递归服务器所能处理的最大并发递归查询 总量的指定倍数时,则计时结束时同时启动常用域名缓存预取、限制并发递归查询数量机 制。
2. 如权利要求1所属一种DNS递归服务器抗D〇S、DD〇S攻击的方法,其特征在于,所述 指定倍数为1. 5。
3. 如权利要求1所属一种DNS递归服务器抗D〇S、DD〇S攻击的方法,其特征在于,所述 特定时间为10秒。
4. 如权利要求1所述一种DNS递归服务器抗D〇S、DD〇S攻击的方法,其特征在于,所述 常用域名缓存预取包括以下步骤: 统计递归服务器系统从开始运行以来缓存中所有域名被查询的次数,并按照次数从多 到少进行排名; 对排名前指定数量条的域名,当域名记录生存期减少到指定大小时,递归服务器主动 向域名服务器发起该域名的查询,并在应答后更新递归缓存,从而保证这些域名一直存在 缓存中,并且, 对于排名在指定数量条以后的域名,当域名记录生存期结束时,域名自动从缓存清除, 从而保证缓存中的容量不至无限扩大。
5. 如权利要求4所述一种DNS递归服务器抗D〇S、DD〇S攻击的方法,其特征在于,所述 指定数量条的数量为100000条。
6. 如权利要求4所述一种DNS递归服务器抗D〇S、DD〇S攻击的方法,其特征在于,所述 域名记录生存期减小到的指定大小为5秒。
7. 如权利要求1所述一种DNS递归服务器抗D〇S、DD〇S攻击的方法,其特征在于,所述 限制并发递归查询数量机制包括以下步骤: 从需要递归解析的域名查询请求中选择当前递归服务器所能处理的最大并发递归查 询数量的域名请求进行响应,没有被选中的域名查询请求将直接被丢弃。
8. 如权利要求1-7所述任--种DNS递归服务器抗DoS、DDoS攻击的方法,其特征在 于,持续上述机制,直至递归服务器并发递归请求量小于当前递归服务器所能处理的最大 并发递归查询总量时,启用正常递归查询机制。
9. 一种DNS递归服务器抗DoS、DDoS攻击的装置,包括递归服务器,其特征在于,所述 递归服务器中包括: 监测模块,实时监测递归服务器的当前并发递归请求量; 计时器,当并发递归请求量超过当前递归服务器所能处理的最大并发递归查询总量的 指定倍数时,启动计时器从零开始; 控制模块,若在特定时间内,并发递归请求量持续大于当前递归服务器所能处理的最 大并发递归查询总量的指定倍数时,则计时结束时同时启动常用域名缓存预取、限制并发 递归查询数量机制。
【文档编号】H04L29/06GK104125238SQ201410400556
【公开日】2014年10月29日 申请日期:2014年8月14日 优先权日:2014年8月14日
【发明者】蒋超, 韩枫, 吴愁 申请人:互联网域名系统北京市工程研究中心有限公司, 北龙中网(北京)科技有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1