一种校验DNS请求合法性的方法及装置制造方法及图纸

技术编号:19703484 阅读:24 留言:0更新日期:2018-12-08 14:33
本发明专利技术公开了一种校验DNS请求合法性的方法及装置,该方法包括:基于UDP接收客户端发送的第一DNS请求;确定所述第一DNS请求的源地址是否在合法名单中;当所述源地址不在所述合法名单中时,向所述客户端发送第一DNS响应报文,所述第一DNS响应报文中的TC标记位为1;当在第一预设时间内接收到所述客户端基于TCP发送的第二DNS请求时,向所述客户端发送第二DNS响应报文,并将该客户端的源地址保存在所述合法名单中。利用本发明专利技术不仅能够有效校验每个DNS请求的合法性,确保合法DNS请求得到答复,攻击请求得到拦截,并且可以得到合法名单,当再次接收到合法名单中的源地址发送的DNS请求时,可以直接确定该DNS请求为合法请求,不必使客户端重新基于TCP发送DNS请求。

【技术实现步骤摘要】
一种校验DNS请求合法性的方法及装置
本专利技术涉及网络安全
,特别涉及一种校验DNS请求合法性的方法及装置。
技术介绍
DNS(DomainNameSystem,域名系统)是可以将域名和IP地址进行相互映射的一个分布式数据库。在具体应用中,客户端向DNS服务器发送DNS请求,DNS服务器接收到DNS请求后,确定DNS请求的域名对应的IP地址,并将该IP地址发送给客户端,客户端就可以向此IP地址请求网络服务。客户端可以使用UDP(UserDatagramProtocol,用户数据报协议)或者TCP(TransmissionControlProtocol,传输控制协议)与DNS服务器进行通信。客户端通常采用UDP传输DNS请求,只有在UDP报文容量不足时,才使用TCP进行传输,并且基于UDP的应用协议很容易遭受DDOS(DistributedDenialofService,分布式拒绝服务)攻击。基于UDP的DDOS攻击通常通过向DNS服务器发送大量的DNS请求,DNS解析服务属于计算密集型的应用,在处理海量的DNS请求时,容易导致DNS服务器资源耗尽而导致无法服务,或者因网络拥塞而瘫痪。目前针对基于UDP的DDOS攻击的防护做法是,检测发往特定IP或特定域的DNS请求的速率,如果速率超过阈值则确定受到攻击,丢弃所有的DNS请求。这会导致被攻击请求淹没的合法DNS请求也无法得到处理,影响正常用户的服务请求。
技术实现思路
为了解决现有技术的问题,本专利技术实施例提供了一种校验DNS请求合法性的方法及装置。所述技术方案如下:第一方面,提供了一种校验DNS请求合法性的方法,所述方法应用于DNS服务器中,所述方法包括:基于UDP接收客户端发送的第一DNS请求;确定所述第一DNS请求的源地址是否在合法名单中;当所述源地址不在所述合法名单中时,向所述客户端发送第一DNS响应报文,所述第一DNS响应报文中的TC标记位为1;当在第一预设时间内接收到所述客户端基于TCP发送的第二DNS请求时,向所述客户端发送第二DNS响应报文,并将该客户端的源地址保存在所述合法名单中。可选的,当在第一预设时间内接收到所述客户端基于TCP发送的第二DNS请求时,向所述客户端发送第二DNS响应报文,并将该客户端的源地址保存在所述合法名单中,包括:当在预设时间内接收到所述客户端基于TCP发送的第二DNS请求,并且所述第二DNS请求的源地址和域名包含在所述第一DNS请求中时,将该客户端的源地址保存在所述合法名单中。可选的,所述方法还包括:当所述源地址包含在所述合法名单中时,使用UDP向所述客户端发送第三DNS响应报文,所述第三DNS响应报文中包括对所述第一DNS请求的域名解析结果,并且所述第三DNS响应报文中的TC标记位为0。可选的,所述方法还包括:基于UDP接收客户端发送的第三DNS请求;当所述合法名单所包含的源地址的数量在第二预设时间内保持固定,并且所述第三DNS请求的源地址不在所述合法名单中时,丢弃所述第三DNS请求。可选的,所述向所述客户端发送第二DNS响应报文,包括:使用TCP向所述客户端发送所述第二DNS响应报文,所述第二DNS响应报文中的TC标记位为0。可选的,所述方法还包括:当在第一预设时间内没有接收到所述客户端基于TCP发送的第二DNS请求时,将该客户端的源地址保存在非法名单中。第二方面,提供了一种校验DNS请求合法性的装置,所述装置包括:接收单元,用于基于UDP接收客户端发送的第一DNS请求;确定单元,用于确定所述第一DNS请求的源地址是否在合法名单中;发送单元,用于当所述源地址不在所述合法名单中时,向所述客户端发送第一DNS响应报文,所述第一DNS响应报文中的TC标记位为1;所述发送单元,还用于当所述接收单元在第一预设时间内接收到所述客户端基于TCP发送的第二DNS请求时,向所述客户端发送第二DNS响应报文;保存单元,用于将该客户端的源地址保存在所述合法名单中。可选的,所述保存单元具体用于:当所述接收单元在预设时间内接收到所述客户端基于TCP发送的第二DNS请求,并且所述第二DNS请求的源地址和域名包含在所述第一DNS请求中时,将该客户端的源地址保存在所述合法名单中。可选的,所述发送单元还用于:当所述源地址包含在所述合法名单中时,使用UDP向所述客户端发送第三DNS响应报文,所述第三DNS响应报文中包括对所述第一DNS请求的域名解析结果,并且所述第三DNS响应报文中的TC标记位为0。可选的,所述接收单元,还用于基于UDP接收客户端发送的第三DNS请求;所述确定单元,还用于当所述合法名单所包含的源地址的数量在第二预设时间内保持固定,并且所述第三DNS请求的源地址不在所述合法名单中时,丢弃所述第三DNS请求。可选的,所述发送单元具体用于:使用TCP向所述客户端发送所述第二DNS响应报文,所述第二DNS响应报文中的TC标记位为0。可选的,所述保存单元还用于:当所述接收单元在第一预设时间内没有接收到所述客户端基于TCP发送的第二DNS请求时,将该客户端的源地址保存在非法名单中。第三方面,提供了一种DNS服务器,所述DNS服务器包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现第一方面所述的校验DNS请求合法性的方法。利用本专利技术实施例提供的校验DNS请求合法性的方法及装置,不仅能够有效校验每个DNS请求的合法性,确保合法DNS请求得到答复,攻击请求得到拦截,并且可以得到合法名单,当再次接收到合法名单中的源地址发送的DNS请求时,可以直接确定该DNS请求为合法请求,不必使客户端重新基于TCP发送DNS请求,从而使DNS请求合法性的验证过程更加简单,缩短客户端获取域名解析服务的时间。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例提供的一种网络框架示意图;图2是本专利技术实施例提供的一种校验DNS请求合法性的方法流程图;图3是本专利技术实施例提供的一种校验DNS请求合法性的装置的结构框图;图4是本专利技术实施例提供的一种DNS服务器的结构示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施方式作进一步地详细描述。本专利技术实施例提供了一种校验DNS请求合法性的方法,该方法可以应用于图1所示的网络框架中。该网络框架包括客户端以及DNS服务器。该客户端包括合法客户端和攻击端。合法客户端向DNS服务器发送合法的DNS请求,攻击端能够和合法客户端一样,基于UDP伪造大量的DNS请求,即攻击请求,进而向DNS服务器发送大量的攻击请求。本专利技术实施例中的DNS服务器基于UDP接收到客户端发送的第一DNS请求后,确定所述第一DNS请求的源地址是否在合法名单中,当所述源地址不在所述合法名单中时,向所述客户端发送第一DNS响应报文,所述第一DNS响应报文中的TC标记位为1,当在第一预设时间内接收到所述客户端本文档来自技高网...

【技术保护点】
1.一种校验DNS请求合法性的方法,其特征在于,所述方法应用于DNS服务器中,所述方法包括:基于UDP接收客户端发送的第一DNS请求;确定所述第一DNS请求的源地址是否在合法名单中;当所述源地址不在所述合法名单中时,向所述客户端发送第一DNS响应报文,所述第一DNS响应报文中的TC标记位为1;当在第一预设时间内接收到所述客户端基于TCP发送的第二DNS请求时,向所述客户端发送第二DNS响应报文,并将该客户端的源地址保存在所述合法名单中。

【技术特征摘要】
1.一种校验DNS请求合法性的方法,其特征在于,所述方法应用于DNS服务器中,所述方法包括:基于UDP接收客户端发送的第一DNS请求;确定所述第一DNS请求的源地址是否在合法名单中;当所述源地址不在所述合法名单中时,向所述客户端发送第一DNS响应报文,所述第一DNS响应报文中的TC标记位为1;当在第一预设时间内接收到所述客户端基于TCP发送的第二DNS请求时,向所述客户端发送第二DNS响应报文,并将该客户端的源地址保存在所述合法名单中。2.根据权利要求1所述的方法,其特征在于,当在第一预设时间内接收到所述客户端基于TCP发送的第二DNS请求时,向所述客户端发送第二DNS响应报文,并将该客户端的源地址保存在所述合法名单中,包括:当在预设时间内接收到所述客户端基于TCP发送的第二DNS请求,并且所述第二DNS请求的源地址和域名包含在所述第一DNS请求中时,将该客户端的源地址保存在所述合法名单中。3.根据权利要求1所述的方法,其特征在于,还包括:当所述源地址包含在所述合法名单中时,使用UDP向所述客户端发送第三DNS响应报文,所述第三DNS响应报文中包括对所述第一DNS请求的域名解析结果,并且所述第三DNS响应报文中的TC标记位为0。4.根据权利要求1所述的方法,其特征在于,还包括:基于UDP接收客户端发送的第三DNS请求;当所述合法名单所包含的源地址的数量在第二预设时间内保持固定,并且所述第三DNS请求的源地址不在所述合法名单中时,丢弃所述第三DNS请求。5.根据权利要求1所述的方法,其特征在于,所述向所述客户端发送第二DNS响应报文,包括:使用TCP向所述客户端发送所述第二DNS响应报文,所述第二DNS响应报文中的TC标记位为0。6.根据权利要求1所述的方法,其特征在于,还包括:当在第一预设时间内没有接收到所述客户端基于TCP发送的第二DNS请求时,将该客户端的源地址保存在非法名单中。7.一种校验DNS请求合法性的装置,其特征在于,所述装置包括:接收单元,用于基于UDP接收客户端发送的第一DNS请求;确定单元,...

【专利技术属性】
技术研发人员:张杰朱维亮
申请(专利权)人:网宿科技股份有限公司
类型:发明
国别省市:上海,31

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

1