本发明涉及互联网技术领域,具体而言,涉及一种dns缓存的解析加速方法和一种dns缓存的解析加速装置。
背景技术
目前,dns服务作为互联网上的一个基础的服务,在我国多运营商,多cdn的模式下,显得更为重要。目前主流的dns服务主要是软件实现,包括isc的bind软件和windowsserver带的dns服务器软件,但这两个软件都相对比较简单,比较适合做授权域的解析,对于非授权域,cache的优化、加速、动态解析方面,显得尤为不足。
技术实现要素:
本发明正是基于上述技术问题至少之一,提出了一种新的dns缓存的解析加速方案,大幅提升了dns解析的速度,扩展dns解析的功能,弥补了传统dns服务器软件的不足。
有鉴于此,根据本发明提出了一种dns缓存的解析加速方法,适用于嵌入式linux系统,包括:在接收到dns报文时,判断所述dns报文是否存在需要进行缓存加速的域名;在确定所述dns报文存在需要进行缓存加速的域名时,控制内核态的dns缓存服务器对dns缓存进行解析;在确定所述dns报文不存在需要进行缓存加速的域名时,控制内核态的dns缓存服务器对dns缓存进行解析,控制bind服务器对dns缓存进行解析。
在该技术方案中,在内核态收到一手报文后,先进行判断分析,对于需要进行缓存加速的域名,直接交给内核态的dns缓存服务器进行处理,而不需要进行cache加速的域名,依然可以交给传统的bind服务器进行处理,保持能兼容bind这一互联网标准dns系统,另外对于内核态直接处理的缓存域名,由于在内存中已经缓存过了,并且不经过整个os的协议栈,所以处理效率大幅提升,其可以具备处理百万级的qps的dns请求,而传统的bind只能处理数万左右的qps请求,相对大幅提升了dns解析的速度,扩展dns解析的功能,弥补了传统dns服务器软件的不足。
在上述技术方案中,优选地,在所述判断所述dns报文是否存在需要进行缓存加速的域名的步骤之前,还包括:预先向内核内存中存储域名与ip地址之间的对应关系。
在上述任一项技术方案中,优选地,还包括:统计内核内存中存储所述域名与ip地址之间的对应关系的时长;将存储时间达到预定时长、且无活动报文的域名与ip地址之间的对应关系进行清理。
根据本发明的第二方面,提出了一种dns缓存的解析加速装置,适用于嵌入式linux系统,包括:判断单元,用于在接收到dns报文时,判断所述dns报文是否存在需要进行缓存加速的域名;第一处理单元,用于在确定所述dns报文存在需要进行缓存加速的域名时,控制内核态的dns缓存服务器对dns缓存进行解析;第二处理单元,用于在确定所述dns报文不存在需要进行缓存加速的域名时,控制内核态的dns缓存服务器对dns缓存进行解析,控制bind服务器对dns缓存进行解析。
在该技术方案中,在内核态收到一手报文后,先进行判断分析,对于需要进行缓存加速的域名,直接交给内核态的dns缓存服务器进行处理,而不需要进行cache加速的域名,依然可以交给传统的bind服务器进行处理,保持能兼容bind这一互联网标准dns系统,另外对于内核态直接处理的缓存域名,由于在内存中已经缓存过了,并且不经过整个os的协议栈,所以处理效率大幅提升,其可以具备处理百万级的qps的dns请求,而传统的bind只能处理数万左右的qps请求,相对大幅提升了dns解析的速度,扩展dns解析的功能,弥补了传统dns服务器软件的不足。
在上述技术方案中,优选地,还包括:存储单元,用于预先向内核内存中存储域名与ip地址之间的对应关系。
在上述任一项技术方案中,优选地,还包括:统计单元,用于统计内核内存中存储所述域名与ip地址之间的对应关系的时长;清理单元,用于将存储时间达到预定时长、且无活动报文的域名与ip地址之间的对应关系进行清理。
通过以上技术方案,大幅提升了dns解析的速度,扩展dns解析的功能,弥补了传统dns服务器软件的不足。
附图说明
图1示出了根据本发明的实施例的dns缓存的解析加速方法的流程示意图;
图2示出了根据本发明的实施例的dns缓存的解析加速装置的示意框图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附
是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
图1示出了根据本发明的实施例的dns缓存的解析加速方法的流程示意图。
如图1所示,根据本发明的实施例的dns缓存的解析加速方法,适用于嵌入式linux系统,包括以下步骤:
步骤102,在接收到dns报文时,判断所述dns报文是否存在需要进行缓存加速的域名。
步骤104,在确定所述dns报文存在需要进行缓存加速的域名时,控制内核态的dns缓存服务器对dns缓存进行解析。
步骤106,在确定所述dns报文不存在需要进行缓存加速的域名时,控制内核态的dns缓存服务器对dns缓存进行解析,控制bind服务器对dns缓存进行解析。
进一步地,在所述步骤102之前,还包括:预先向内核内存中存储域名与ip地址之间的对应关系。
进一步地,还包括:统计内核内存中存储所述域名与ip地址之间的对应关系的时长;将存储时间达到预定时长、且无活动报文的域名与ip地址之间的对应关系进行清理。
在该技术方案中,在内核态收到一手报文后,先进行判断分析,对于需要进行缓存加速的域名,直接交给内核态的dns缓存服务器进行处理,而不需要进行cache加速的域名,依然可以交给传统的bind服务器进行处理,保持能兼容bind这一互联网标准dns系统,另外对于内核态直接处理的缓存域名,由于在内存中已经缓存过了,并且不经过整个os的协议栈,所以处理效率大幅提升,其可以具备处理百万级的qps的dns请求,而传统的bind只能处理数万左右的qps请求,相对大幅提升了dns解析的速度,扩展dns解析的功能,弥补了传统dns服务器软件的不足。
图2示出了根据本发明的实施例的dns缓存的解析加速装置的示意框图。
如图2所示,根据本发明的实施例的dns缓存的解析加速装置200,适用于嵌入式linux系统,包括:判断单元202、第一处理单元204和第二处理单元206、统计单元208和清理单元210。
其中,判断单元202用于在接收到dns报文时,判断所述dns报文是否存在需要进行缓存加速的域名;第一处理单元204用于在确定所述dns报文存在需要进行缓存加速的域名时,控制内核态的dns缓存服务器对dns缓存进行解析;第二处理单元206用于在确定所述dns报文不存在需要进行缓存加速的域名时,控制内核态的dns缓存服务器对dns缓存进行解析,控制bind服务器对dns缓存进行解析。
在该技术方案中,在内核态收到一手报文后,先进行判断分析,对于需要进行缓存加速的域名,直接交给内核态的dns缓存服务器进行处理,而不需要进行cache加速的域名,依然可以交给传统的bind服务器进行处理,保持能兼容bind这一互联网标准dns系统,另外对于内核态直接处理的缓存域名,由于在内存中已经缓存过了,并且不经过整个os的协议栈,所以处理效率大幅提升,其可以具备处理百万级的qps的dns请求,而传统的bind只能处理数万左右的qps请求,相对大幅提升了dns解析的速度,扩展dns解析的功能,弥补了传统dns服务器软件的不足。
在上述技术方案中,优选地,还包括:存储单元,用于预先向内核内存中存储域名与ip地址之间的对应关系。
进一步地,还包括:统计单元208,用于统计内核内存中存储所述域名与ip地址之间的对应关系的时长;清理单元210,用于将存储时间达到预定时长、且无活动报文的域名与ip地址之间的对应关系进行清理。
以上结合附图详细说明了本发明的技术方案,本发明的技术方案提出了一种新的dns缓存的解析加速方案,大幅提升了dns解析的速度,扩展dns解析的功能,弥补了传统dns服务器软件的不足。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于
本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。