一种针对DNS服务防DDoS攻击的方法及装置
技术领域
本发明属于互联网技术领域,更具体地说,是涉及一种针对DNS服务防DDoS攻击的方法及装置。
背景技术
域名解析服务(DNS)是用来把便于人们记忆的主机域名和电子邮件地址映射为计算机易于识别的IP地址的一种服务,由专门的DNS服务器来自动完成域名到IP地址的转换工作。域名解析是用户上网获取资源的第一步,DNS的解析质量、效率直接影响用户快速、准确地获取网络资源和上网体验。
现有的DNS服务器,除域名解析的主要功能外,为了解域名服务器运行状态,通常还附加有日志功能,如记录DNS查询日志。DNS查询日志主要用于记录域名查询请求的相关信息,其内容包括:查询日期与时间、域名请求源地址、查询域名及类型等信息,如:“29-Jul-201410:16:20.816client 202.173.9.9448245:view default:www336.1.com IN A NXDOMAIN+NS NE NT ND NC”,域名服务器一旦收到用户的DNS查询请求,都会记录该域名查询请求的上述信息数据。
然而,DNS查询日志也会降低DNS解析效率,严重时甚至妨碍用户正常上网。通常情况下,DNS查询日志需要被写入到服务器磁盘文件中。由于磁盘的数据读写速度缓慢(通常不及随机存储器RAM速度的1/100),导致记录DNS查询日志成为DNS服务器性能提升的瓶颈。实验表明,当服务器同时收到大量DNS查询时,由于DNS服务器日志功能的瓶颈所在,导致服务器很快达到性能极限,影响DNS服务器提供域名解析服务,致使部分用户无法上网,甚至造成服务器崩溃。DNS查询日志功能在DNS服务器收到大量DNS查询请求时,已经严重妨碍到DNS服务器的主要功能—域名解析服务,表现出的弊端远远大于它带来的益处。
DoS(Denial of Service,拒绝服务)攻击是指攻击者试图通过傀儡计算机向域名服务器发送大量域名查询,使计算机或网络无法提供正常的域名服务。DoS攻击最早是由单机来完成的,随着服务器系统性能与网络带宽的提高及安全防御设备(如防火墙、路由器等)对同一攻击来源的DoS攻击的检测阻断能力的提升,DOS攻击变得容易被察觉和防御。
如图1所示,DDoS(Distributed Denial of Service,分布式拒绝服务)攻击是在传统的DoS攻击基础之上发展起来的一类攻击方式。DDoS利用更多的傀儡机向目标服务器发起大量合法的服务请求来占用过多的服务器资源,从而使合法用户无法得到服务的响应。相较DoS攻击而言,DDoS攻击成倍地提高了拒绝服务攻击的威力,且由于每个傀儡机发起的DNS服务请求数量少量且合理,DDoS攻击方式的无规律性,导致DDoS攻击源很难被确定,也就很难防御DDoS攻击。
正常情况下,DNS系统稳定运行时DNS服务器每秒域名查询数(Query PerSecond,QPS)会长期稳定在一个合理范围之内(不排除正常情况下域名查询请求量也会出现激增的情况,但会很快回落到正常范围),而在受到DoS、DDoS攻击时,域名查询请求量可能达到几倍、几十倍或更高,并持续较长时间,此时服务器需要记录的DNS查询日志也会成倍增加,从而导致DNS服务器性能由于日志的瓶颈而不能最大化,即仍有大量cpu空闲,但是用户已经无法得到解析结果,无法上网。被DoS、DDoS攻击淹没的递归服务器将丢失数据包且不能回复所有的DNS请求,导致域名解析业务瘫痪,影响合法用户的DNS解析查询。
综上所述,DNS服务器在需要处理大量域名查询请求时,其DNS查询日志功能成为了提高DNS服务器处理能力极大障碍。特别是在DNS服务器受到DoS、DDoS攻击时,如果能合理并自动地根据查询量调整DNS服务器的记录日志功能将大大增强DNS服务器对攻击的防御能力,降低DoS、DDoS攻击造成的灾害与影响。
发明内容
为解决上述技术问题,本发明提供了一种针对DNS服务防DDoS攻击的方法及装置,其中方法包括以下步骤:
实时监测DNS服务器的每秒域名查询量;
根据对比正常情况与异常情况下的每秒域名查询量的变化情况,在满足第一设定条件下自动关闭DNS查询日志功能。
优选地,还包括以下步骤:
在满足第二设定条件下,自动恢复DNS查询日志的记录功能。
优选地,所述第一设定条件为:
当每秒域名查询量大于一设定阈值时,自动启动计时器,从零开始计时,在指定时间内每秒域名查询量持续大于此设定阈值。
优选地,所述设定阈值为DNS服务器开启日志功能所能处理的最大每秒查询量。
优选地,所述指定时间默认为10秒。
优选地,所述第二设定条件为:
当每秒域名查询量小于一设定阈值时,自动启动计时器,从零开始计时,在指定时间内每秒域名查询量持续小于此设定阈值。
优选地,所述设定阈值为DNS服务器开启日志功能所能处理的最大每秒查询量。
优选地,所述指定时间默认为10秒。
本发明的另一方面还同时提供了一种针对DNS服务防DDoS攻击的装置,包括递归服务器,所述递归服务器中包括:
检测模块,实时监测DNS服务器的每秒域名查询量;
控制模块,根据对比正常情况与异常情况下的每秒域名查询量的变化情况,在满足第一设定条件下自动关闭DNS查询日志功能。
本发明通过实时监测递归服务器的当前并发递归请求量,在适当的时候启动关闭DNS查询日志功能,消除在DNS服务器受到DOS,DDOS攻击时DNS查询日志的瓶颈,或者在满足设定的条件下自动恢复DNS查询日志的记录功能,保证正常的DNS日志的存储。通过合理并灵活的自动策略,可以提高DNS服务器处理域名请求的能力,最大限度地保障合法用户的解析请求得到正常响应,既能有效抵抗DoS,DDoS攻击,又能满足正常的业务量下的所有解析功能。
附图说明
图1是DDoS攻击示意图;
图2是本发明的一个实施例中针对DNS服务防DDoS攻击的方法流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例为实施本发明的较佳实施方式,所述描述是以说明本发明的一般原则为目的,并非用以限定本发明的范围。本发明的保护范围应当以权利要求所界定者为准,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图2所示为本发明实施例一针对DNS服务防DDoS攻击的方法流程图,如图2所示,该方法包括以下步骤:
步骤S101,实时监测DNS服务器的每秒域名查询量。
步骤S102,根据对比正常情况与异常情况下的每秒域名查询量的变化情况,在满足第一设定条件下自动关闭DNS查询日志功能。
步骤S103:在满足第二设定条件下,自动恢复DNS查询日志的记录功能。
具体地,第一设定条件为:
当每秒域名查询量大于一设定阈值时,自动启动计时器,从零开始计时,在指定时间内每秒域名查询量持续大于此设定阈值。
其中,设定阈值一般为DNS服务器开启日志功能所能处理的最大每秒查询量,阈值也可以根据本行业技术人员的需要去设定,这里不作具体的限制。
指定时间为10秒,也可以为其他时间。
第二设定条件为:
当每秒域名查询量小于一设定阈值时,自动启动计时器,从零开始计时,在指定时间内每秒域名查询量持续小于此设定阈值。
其中,设定阈值一般为DNS服务器开启日志功能所能处理的最大每秒查询量,阈值也可以根据本行业技术人员的需要去设定,这里不作具体的限制。
指定时间为10秒,也可以为其他时间。
具体实施方式为:
1)实时监测DNS服务器的QPS值M。
2)当M大于某一设定阈值N(N通常可以设置为DNS服务器开启日志功能时所能处理的最大QPS)时,自动启动计时器,从零开始计时。
3)若在时间T(如:T=10秒)时间内,M持续大于N,时间T计时一到立刻关闭DNS查询日志功能,停止计时。
4)当M小于阈值N时,自动启动计时器,从零开始计时。
5)若在时间T内,M持续小于N,计时一到立刻开启DNS查询日志功能,停止计时。重回步骤2)。
另外,本发明还公开了一种针对DNS服务防DDoS攻击的装置,包括递归服务器,其中递归服务器包括:
检测模块,实时监测DNS服务器的每秒域名查询量;
控制模块,根据对比正常情况与异常情况下的每秒域名查询量的变化情况,在满足第一设定条件下自动关闭DNS查询日志功能。
本发明通过实时监测DNS服务器的每秒域名查询量QPS,根据DNS服务器的正常流量值以及记录文件日志时的最大QPS值等参数,对比正常情况和异常情况下的QPS变化情况,在满足设定的条件下自动关闭DNS查询日志功能,消除在DNS服务器受到DoS,DDoS攻击时DNS查询日志的瓶颈,或者在满足设定的条件下自动恢复DNS查询日志的记录功能,保证正常的DNS日志的存储。通过合理并灵活的自动策略,可以提高DNS服务器处理域名请求的能力,最大限度地保障合法用户的解析请求得到正常响应,既能有效抵抗DoS,DDoS攻击,又能满足正常的业务量下的所有解析功能。
上述说明示出并描述了本发明的若干优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。