首页> 中国专利> 域名解析记录重构方法及域名解析方法

域名解析记录重构方法及域名解析方法

摘要

本申请提供一种域名解析记录重构方法及域名解析方法,方法包括根域名服务器获取本地顶级域权威数据;比较本地顶级域权威数据和现有根权威数据;若本地顶级域权威数据和现有根权威数据的域名记录相同而域名解析结果不同,将本地顶级域权威数据设为最高优先级数据;若本地顶级域权威数据和现有根权威数据的域名记录不同而域名解析结果相同,将本地顶级域权威数据和现有根权威数据共同设为最高优先级数据;若本地顶级域权威数据和现有根权威数据一致,则采用本地顶级域权威数据替换现有根权威数据。这样,递归服务器进行查询时,根域名服务器可直接返回相应的域名解析结果,优化了递归服务器的查询路径,提高了解析效率。

著录项

说明书

技术领域

本申请涉及通信技术领域,具体而言,涉及一种域名解析记录重构方法及域名解析方法。

背景技术

现有的DNS(Domain Name System,域名系统)服务器一般由运营商负责提供,终端在接入运营商网络时,DNS请求会发送到运营商指定的DNS服务器。

上网高峰时段,面对海量的请求,受限于服务器性能,会导致设备负载过高,对新的请求无法及时响应,造成用户体验不佳。

发明内容

本申请实施例的目的在于提供一种域名解析记录重构方法及域名解析方法,用以解决相关技术中域名解析效率较低的技术问题。

本申请实施例提供了一种域名解析记录重构方法,应用于根域名服务器上,包括:获取本地顶级域权威数据;所述本地顶级域权威数据为本地顶级域名服务器的域名解析记录;比较所述本地顶级域权威数据和现有根权威数据;所述现有根权威数据为从根权威服务器处获取到的域名解析记录;若所述本地顶级域权威数据和所述现有根权威数据的域名记录相同而域名解析结果不同,将所述本地顶级域权威数据设为最高优先级数据;若所述本地顶级域权威数据和所述现有根权威数据的域名记录不同而域名解析结果相同,将所述本地顶级域权威数据和所述现有根权威数据共同设为最高优先级数据;若所述本地顶级域权威数据和所述现有根权威数据一致,则采用所述本地顶级域权威数据替换所述现有根权威数据。

通过上述实现过程,在根域名服务器中重构好域名解析记录后,当递归服务器需要向根域名服务器进行查询时,由于根域名服务器中已重构好了包含本地顶级域名服务器和根权威服务器的域名解析记录的最新域名解析记录,因此根域名服务器可以直接返回相应的域名解析结果,从而使得递归服务器不必再向根权威服务器进行查询,优化了递归服务器的查询路径,从而提高了域名解析效率,能够有效改善用户体验。

此外,在本地顶级域权威数据和现有根权威数据一致时,采用所述本地顶级域权威数据替换所述现有根权威数据,可以使得根域名服务器中,替换位置处的数据的数据源变更为本地顶级域名服务器,从而使得后续服务器内的该数据发生改动时,同步到根域名服务器中后的数据也能更可信。

进一步地,所述方法还包括:在采用所述本地顶级域权威数据替换所述现有根权威数据后,重置所述本地顶级域权威数据的存活时间。

在上述实现过程中,通过重置该本地顶级域权威数据的存活时间,从而可以使得在本地顶级域权威数据的存活时间达到后重新进行数据比对,从而保证本地根域名服务器中数据的可靠性。

进一步地,所述方法还包括:若所述本地顶级域权威数据与所有的所述现有根权威数据的域名记录和域名解析结果均不相同,则获取第三方数据,采用所述第三方数据对所述本地顶级域权威数据进行校验;所述第三方数据为与所述根域名服务器地位对等的其他各根域名服务器的域名解析记录;若所述第三方数据中存在与所述本地顶级域权威数据一致的数据,保存所述本地顶级域权威数据,并将所述本地顶级域权威数据设为最高优先级数据;若所述第三方数据不存在与所述本地顶级域权威数据一致的数据,删除所述本地顶级域权威数据。

在上述实现过程中,通过采用第三方数据来验证与所有现有根权威数据的域名记录和域名解析结果均不相同的本地顶级域权威数据,并将与第三方数据不一致的本地顶级域权威数据删除,从而实现对于本地顶级域权威数据的可靠验证,有效防止被污染、篡改的域名解析记录作为根域名服务器中的有效域名解析记录。

进一步地,在获取完所有的所述本地顶级域权威数据之后,所述方法还包括:若所述现有根权威数据中,存在与所有的所述本地顶级域权威数据的域名记录和域名解析结果均不相同的待校验现有根权威数据,则获取第三方数据,采用所述第三方数据对所述待校验现有根权威数据进行校验;若所述第三方数据中存在与所述待校验现有根权威数据一致的目标第三方数据,则判断所述目标第三方数据是否存在修改记录;若存在,将所述待校验现有根权威数据设为最高优先级数据,将所述目标第三方数据设为次高优先级数据;若不存在,将所述目标第三方数据设为最高优先级数据,并将所述待校验现有根权威数据设为次高优先级数据。

在上述实现过程中,通过采用第三方数据来验证与所有本地顶级域权威数据的域名记录和域名解析结果均不相同的现有根权威数据,并基于目标第三方数据是否存在修改记录来实现对于数据优先级的确定,这就从而实现对于本地顶级域权威数据的可靠验证,保证了根域名服务器中数据的可靠性。

进一步地,所述第三方数据为与所述根域名服务器地位对等的其他各根域名服务器的域名解析记录。

在上述实现过程中,通过采用与所述根域名服务器地位对等的其他各根域名服务器的域名解析记录来作为第三方数据,而由于本申请的方案可以应用于各根域名服务器中,从而可以有效保障第三方数据的公正性和可靠性。

进一步地,在将所述待校验现有根权威数据设为最高优先级数据,将所述目标第三方数据设为次高优先级数据时,所述方法还包括:设置所述待校验现有根权威数据和所述目标第三方数据的存活时间;所述待校验现有根权威数据的存活时间小于所述目标第三方数据的存活时间;在所述待校验现有根权威数据的存活时间达到时,重新获取所述第三方数据,采用所述第三方数据重新对所述待校验现有根权威数据进行校验;

在将所述目标第三方数据设为最高优先级数据,并将所述待校验现有根权威数据设为次高优先级数据时,所述方法还包括:设置所述待校验现有根权威数据和所述目标第三方数据的存活时间;所述目标第三方数据的存活时间小于所述待校验现有根权威数据的存活时间;在所述目标第三方数据的存活时间达到时,重新获取所述第三方数据,采用所述第三方数据重新对所述待校验现有根权威数据进行校验。

在上述实现过程中,通过设定存活时间,且设定最高优先级数据的存活时间小于次高优先级数据的存活时间,从而可以保证在次高优先级数据失效前,可以重新对最高优先级数据进行校验,从而保证本地根域名服务器中数据优先级的可靠性。

进一步地,所述方法还包括:若所述第三方数据中不存在与所述待校验现有根权威数据一致的目标第三方数据,则将所述待校验现有根权威数据移入黑名单中;所述黑名单中的待校验现有根权威数据不用于进行域名解析。

在上述实现过程中,通过设置黑名单机制,将第三方数据中不存在目标第三方数据的待校验现有根权威数据移入黑名单中,从而有效防止被污染、篡改的域名解析记录作为根域名服务器中的有效域名解析记录。

本申请实施例还提供了一种域名解析方法,应用于递归服务器上,包括:在接收到域名解析请求时,在本地缓存内查找是否存在与所述域名解析请求对应的有效域名解析记录;若存在,根据所述有效域名解析记录进行域名解析;若不存在,向本地根域名服务器发送所述域名解析请求;所述本地根域名服务器中存在采用前述任一种的域名解析记录重构方法得到的域名解析记录;接收所述本地根域名服务器返回的域名解析结果。

通过上述实现过程,大部分情况下,可以在本地递归服务器或本地根域名服务器处就实现域名解析,从而可以实现对于域名的快速解析,提高域名解析效率,有效改善用户体验。

进一步地,在向本地根域名服务器发送所述域名解析请求之后,所述方法还包括:在所述本地根域名服务器返回表征无法进行解析的消息时,向与所述递归服务器最近的根权威服务器发送所述域名解析请求;接收所述根权威服务器返回的域名解析结果;或,在所述本地根域名服务器返回表征无法进行解析的消息时,向与所述本地根域名服务器对等的其他根域名服务器发送所述域名解析请求;接收所述其他根域名服务器返回的域名解析结果。

通过上述实现过程,在本地根域名服务器无法解析时,可以快速实现对于域名解析请求的解析,从而保证域名可被快速解析,从而提高域名解析效率。

进一步地,所述本地缓存内与所述域名解析请求对应的域名解析记录的存活时间,小于所述本地根域名服务器中与所述域名解析请求对应的最高优先级数据的存活时间。

进一步地,所述本地缓存内与所述域名解析请求对应的域名解析记录的存活时间,大于所述本地根域名服务器中与所述域名解析请求对应的优先级最低的数据的存活时间。

在上述实现过程中,通过设置本地递归服务器中域名解析记录的存活时间小于本地根域名服务器中对应的最高优先级数据的存活时间,并大于本地根域名服务器中对应的优先级最低的数据的存活时间,从而可以兼顾域名解析记录的解析效率和安全性。

本申请实施例还提供了一种域名解析方法,应用于根域名服务器上,包括:在接收到本地递归服务器发来的域名解析请求时,在本地根区文件查找与所述域名解析请求对应的有效域名解析记录;所述根域名服务器中存在采用上述任一种的域名解析记录重构方法得到的域名解析记录;根据所述有效域名解析记录进行域名解析,并向所述本地递归服务器返回域名解析结果。

在上述实现过程中,在根域名服务器处即可实现域名解析,从而可以有效降低递归服务器进一步向其他服务器查询的概率,从而提高域名解析效率,改善用户体验。

进一步地,在所述域名解析请求对应的有效域名解析记录为多个时,根据所述有效域名解析记录进行域名解析,并向所述本地递归服务器返回域名解析结果,包括:采用最高优先级的有效域名解析记录进行域名解析,并向所述本地递归服务器返回域名解析结果;或,采用各所述有效域名解析记录分别进行域名解析,并向所述本地递归服务器返回各所述有效域名解析记录的域名解析结果,以及各域名解析结果对应的优先级;其中,各域名解析结果对应的优先级为各域名解析结果对应的有效域名解析记录的优先级。

进一步地,所述方法还包括:在本地根区文件不存在与所述域名解析请求对应的有效域名解析记录时,向所述本地递归服务器返回表征无法进行解析的消息,并获取根权威服务器和与所述根域名服务器对等的其他根域名服务器中,与所述域名解析请求对应的域名解析记录;比对获取到的所述根权威服务器和所述其他根域名服务器的域名解析记录;若一致,将所述根权威服务器的域名解析记录设为最高优先级数据,写入所述本地根区文件;若不一致,将所述其他根域名服务器的域名解析记录设为最高优先级数据,将所述根权威服务器的域名解析记录设为次高优先级数据,写入所述本地根区文件。

进一步地,在将所述其他根域名服务器的域名解析记录设为最高优先级数据,将所述根权威服务器的域名解析记录设为次高优先级数据时,所述方法还包括:设置所述其他根域名服务器的域名解析记录和所述根权威服务器的域名解析记录的存活时间;所述其他根域名服务器的域名解析记录的存活时间小于所述根权威服务器的域名解析记录的存活时间;在所述其他根域名服务器的域名解析记录的存活时间达到时,重新获取所述根权威服务器和所述其他根域名服务器中与所述域名解析请求对应的域名解析记录,并重新比对获取到的所述根权威服务器和所述其他根域名服务器的域名解析记录。

本申请实施例还提供了一种域名解析记录重构装置,应用于本地根域名服务器上,包括:获取模块、比较模块和第一处理模块;所述获取模块,用于获取本地顶级域权威数据;所述本地顶级域权威数据为本地顶级域名服务器的域名解析记录;所述比较模块,用于比较所述本地顶级域权威数据和现有根权威数据;所述现有根权威数据为从根权威服务器处获取到的域名解析记录;所述第一处理模块,用于若所述本地顶级域权威数据和所述现有根权威数据的域名记录相同而域名解析结果不同,将所述本地顶级域权威数据设为最高优先级数据;若所述本地顶级域权威数据和所述现有根权威数据的域名记录不同而域名解析结果相同,将所述本地顶级域权威数据和所述现有根权威数据共同设为最高优先级数据。

本申请实施例还提供了一种域名解析装置,应用于递归服务器上,包括:第一查找模块和第二处理模块;所述第一查找模块,用于在接收到域名解析请求时,在本地缓存内查找是否存在与所述域名解析请求对应的有效域名解析记录;所述第二处理模块,用于若存在,根据所述有效域名解析记录进行域名解析;若不存在,向本地根域名服务器发送所述域名解析请求,并接收所述本地根域名服务器返回的域名解析结果;其中,所述本地根域名服务器中存在采用上述任一种的域名解析记录重构方法得到的域名解析记录。

本申请实施例还提供了一种域名解析装置,应用于本地根域名服务器上,包括:第二查找模块和第三处理模块;所述第二查找模块,用于在接收到本地递归服务器发来的域名解析请求时,在本地根区文件查找与所述域名解析请求对应的有效域名解析记录;所述根域名服务器中存在采用上述任一种的域名解析记录重构方法得到的域名解析记录;所述第三处理模块,用于根据所述有效域名解析记录进行域名解析,并向所述本地递归服务器返回域名解析结果。

本申请实施例还提供了一种DNS服务器,包括处理器、存储器及通信总线;所述通信总线用于实现处理器和存储器之间的连接通信;所述处理器用于执行存储器中存储的一个或者多个程序,以实现上述任一种的域名解析记录重构方法,或实现上述任一种的域名解析方法。

本申请实施例中还提供了一种可读存储介质,所述可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述任一种的域名解析记录重构方法,或实现上述任一种的域名解析方法。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的一种简单的域名解析系统的结构示意图;

图2为本申请实施例提供的一种域名解析记录重构方法的流程示意图;

图3为本申请实施例提供的一种域名解析方法的流程示意图;

图4为本申请实施例提供的一种域名解析记录重构装置的结构示意图;

图5为本申请实施例提供的一种应用于递归服务器上的域名解析装置的结构示意图;

图6为本申请实施例提供的一种应用于根域名服务器上的域名解析装置的结构示意图;

图7为本申请实施例提供的一种DNS服务器的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

实施例一:

为便于理解本申请的方案,下面首先对一些相关知识进行介绍:

域名是为了方便记忆而专门建立的一套地址转换系统。在实际应用中,若要访问一台互联网上的设备,必须通过IP(Internet Protocol,网际协议)地址来实现,域名解析就是将域名重新转换为IP地址的过程。通常,一个域名对应一个IP地址,但是一个IP地址可以对应多个域名,所以多个域名可以同时被解析到一个IP地址。而域名解析需要由专门的DNS(Domain Name System,域名系统)服务器来完成。本申请实施例中的方案即应用于DNS服务器中。

在实际应用过程中,可以参见图1所示,整个域名解析系统往往具有递归服务器、根域名服务器、顶级域名服务器、根权威服务器(即日常使用的现有的国际上的根服务器)等DNS服务器。

主机在请求域名解析时,首先会向本地的递归服务器(本申请实施例中称之为本地递归服务器,即与发送请求的主机处于同一通信域内的递归服务器)发送域名解析请求,本地递归服务器首先在本地进行查询。

若本地递归服务缓存有与该域名解析请求相应的域名解析记录,则直接依据该域名解析记录进行域名解析,向主机返回域名解析结果。若本地递归服务器不存在该域名解析请求相应的域名解析记录,则向本地根域名服务器(即与该本地递归服务器处于同一通信域内的根域名服务器,为主机所属域名解析系统内的根服务器)进行查询。

若本地根域名服务器内也不存在该域名解析请求相应的域名解析记录,则本地递归服务器会继续向其他对等的根域名服务器(即本地根域名服务器以外的各根域名服务器)或者根权威服务器进行查询,直至得到该域名解析请求对应的域名解析结果,从而返回给主机。

需要说明的是,本申请实施例中,将与本地根域名服务器连接的顶级域名服务器,称之为本地顶级域名服务器,为本地根域名服务器所属域名解析系统内提供顶级域名解析服务的服务器。

图1所示的整个域名解析系统可以包括多个不同本地根域名服务器所属的不同域名解析系统,这多个不同本地根域名服务器关系对等。而根权威服务器为独立于各本地根域名服务器所属的不同域名解析系统外,可供各本地根域名服务器共用的现有的国际上的根服务器。

显然,在面对海量的域名解析请求时,受限于服务器性能,会导致本地递归服务器设备负载过高,导致对新的域名解析请求无法及时响应,造成用户网络体验不佳等情况。而为了提高域名解析效率,本申请实施例中提供了一种域名解析记录重构方法以及相应的域名解析方法。

可以参见图2所示,图2为本申请实施例中提供的一种域名解析记录重构方法的流程示意图,包括:

S201:获取本地顶级域权威数据。

需要说明的是,本申请实施例中的域名解析记录重构方法可以应用于各根域名服务器上。

还需要说明的是,在本申请实施例中,本地顶级域权威数据是指本地顶级域名服务器的域名解析记录。根域名服务器可以通过请求,从本地顶级域名服务器处获取到本地顶级域权威数据。

S202:比较本地顶级域权威数据和现有根权威数据。若本地顶级域权威数据和现有根权威数据的域名记录相同而域名解析结果不同,则转至步骤S203;若本地顶级域权威数据和现有根权威数据的域名记录不同而域名解析结果相同,则转至步骤S204;若本地顶级域权威数据和现有根权威数据一致,则转至步骤S205。

需要注意的是,在本申请实施例中,现有根权威数据是指从根权威服务器处获取到的域名解析记录。

在本申请实施例中,可以设定根权威服务器为默认数据源,从而在建立本地根域名服务器时,从根权威服务器处获取到的域名解析记录,从而构建出本地根域名服务器中的初始域名解析记录。

在本申请实施例中,在获取到现有根权威数据后,可以再向本地顶级域名服务器请求域名解析记录,从而得到本地顶级域权威数据,将获取到的本地顶级域权威数据和现有根权威数据进行比较。

S203:将本地顶级域权威数据设为最高优先级数据。

在实际应用中,本地顶级域名服务器可以由相关企业或单位构建,因此本地顶级域名服务器相对于根权威服务器而言,更受控,且对外公开程度也更低,从而其内的数据相对于根权威服务器而言,也更可信。

因此,在本申请实施例中,若本地顶级域权威数据和现有根权威数据的域名记录相同而域名解析结果不同(即相同域名解析得到的IP地址、NS(Name Server,域名服务器)记录、CNAME(规范名字)记录等中的至少一种不同),则可以将本地顶级域权威数据设为最高优先级数据,从而保证用于解析时,能得到更可信的域名解析结果,从而保证域名解析的可靠性。

需要注意的是,本地顶级域名服务器的数据相对于根权威服务器的数据而言更可信,但并不代表本地顶级域名服务器的数据一定是正确的,而根权威服务器的数据一定是错误的。因此,在本申请实施例的一种可行实施方式中,可以保留与该本地顶级域权威数据域名记录相同而域名解析结果不同的现有根权威数据,并将其设置为次高优先级数据,从而为后期稽核保留相应的数据源。

当然,在本申请实施的另一种可行实施方式中,也可以删除与该本地顶级域权威数据域名记录相同而域名解析结果不同的现有根权威数据。

S204:将该本地顶级域权威数据和现有根权威数据共同设为最高优先级数据。

应当理解的是,当本地顶级域权威数据和现有根权威数据的域名记录不同而域名解析结果相同,即表明两者可以通过不同域名解析到相同的域名解析结果,本地顶级域权威数据和现有根权威数据并不存在冲突。因此,为了保证域名解析的完整性,可以将该本地顶级域权威数据和现有根权威数据均保留,并共同设为最高优先级数据,从而保证进行域名解析时的可靠性。

S205:采用本地顶级域权威数据替换现有根权威数据。

应理解,由于本地顶级域名服务器相对于根权威服务器而言更受控,数据也更可信。因此,在本申请实施例中,在本地顶级域权威数据和现有根权威数据一致时,可以使用本地顶级域权威数据替换现有根权威数据,从而使得根域名服务器中,该数据的数据源变更为本地顶级域名服务器,从而使得后续服务器内的该数据发生改动时,同步到根域名服务器中后的数据也能更可信。

此外,在本申请实施例中,在使用本地顶级域权威数据替换现有根权威数据后,可以设置本地顶级域权威数据的存活时间。

在本申请实施例中,当本地顶级域权威数据的存活时间达到后,即可重新获取本地顶级域权威数据和现有根权威数据进行比对,从而重新执行本申请实施例所提供的域名解析记录重构方法,以保证根域名服务器中数据的可靠性。

还需要理解的是,在实际应用过程中,还可能出现获取到的某一本地顶级域权威数据,所有的现有根权威数据与之相比,域名记录和域名解析结果均不相同的情况。

对于与所有的所述现有根权威数据的域名记录和域名解析结果均不相同的本地顶级域权威数据,在本申请实施例中可以采用第三方数据校验的方式实现处理。

示例性的,可以获取第三方数据,采用第三方数据对本地顶级域权威数据进行校验。

若第三方数据中存在与本地顶级域权威数据一致的数据,保存本地顶级域权威数据,并将本地顶级域权威数据设为最高优先级数据;若第三方数据不存在与本地顶级域权威数据一致的数据,删除本地顶级域权威数据。从而实现对于本地顶级域权威数据的可靠验证,有效防止被污染、篡改的域名解析记录作为根域名服务器中的有效域名解析记录。

需要注意的是,在本申请实施例中,若第三方数据不存在与本地顶级域权威数据一致的数据,则可以认为该本地顶级域权威数据存在已被污染或篡改的风险,因此根域名服务器在删除该本地顶级域权威数据时,还可以通知对应的本地顶级域名服务器删除该本地顶级域权威数据。

上述示例中,根域名服务器在将本地顶级域权威数据设为最高优先级数据后,可以设置该本地顶级域权威数据的存活时间,从而在存活时间达到时,重新获取第三方数据对该本地顶级域权威数据进行校验。

需要说明的是,在本申请实施例中,第三方数据可以为来自于与执行本方案的根域名服务器地位对等的其他根域名服务器的域名解析记录,但不作为限制。比如,工程师可以根据实际需要,预先构建一个数据库,该数据库中的数据可以来源于各顶级域名服务器、根权威服务器等,也可以由工程师自己采集校对,从而作为第三方数据的来源。

应理解,以上方式仅为本申请实施例中所示例的可选实现方式,并不代表本申请实施例中的第三方数据仅可通过上述方式得到。事实上,只要第三方设备中的域名解析记录可信,其均可被本申请实施例所采用,作为本申请实施例中的第三方数据。

还需要理解的是,在实际应用过程中,当从本地顶级域名服务器中,获取完所有的本地顶级域权威数据后,可能会出现存在某一或某些现有根权威数据与获取到的所有的本地顶级域权威数据的域名记录和域名解析结果均不相同的情况。

在本申请实施例中,记现有根权威数据中,与获取到的所有本地顶级域权威数据的域名记录和域名解析结果均不相同的现有根权威数据为待校验现有根权威数据。

类似的,可以采用第三方数据实现对于待校验现有根权威数据的校验。

示例性的,若第三方数据中存在与待校验现有根权威数据一致的目标第三方数据,则可以判断目标第三方数据是否存在修改记录。

若存在,则可以将待校验现有根权威数据设为最高优先级数据,将目标第三方数据设为次高优先级数据。若不存在,则可以将目标第三方数据设为最高优先级数据,并将待校验现有根权威数据设为次高优先级数据。

应当理解,由于第三方数据来源于其他根域名服务器,而其他根域名服务器同样会执行本申请的方案,因此第三方数据可信度是高于现有根权威数据的。而通过对于目标第三方数据是否存在修改记录的判断,可以有效判断出目标第三方数据的可信情况,从而确定将待校验现有根权威数据设为最高优先级数据,还是将目标第三方数据设为最高优先级数据。

应理解,上述方式仅为本申请可行的一种方式,并不作为限制。例如,本申请实施例中还可以通过“在第三方数据中存在与待校验现有根权威数据一致的目标第三方数据时,直接将该待校验现有根权威数据作为最高优先级数据”等方式实现。

在上述示例方式中,在将目标第三方数据设为最高优先级数据,并将待校验现有根权威数据设为次高优先级数据时,还可以设置待校验现有根权威数据和所述目标第三方数据的存活时间,且目标第三方数据的存活时间小于待校验现有根权威数据的存活时间。

这样,作为最高优先级数据的待校验现有根权威数据的存活时间会先于目标第三方数据的存活时间到达,从而在目标第三方数据的存活时间达到时,重新获取第三方数据,采用第三方数据重新对待校验现有根权威数据进行校验(即重新获取第三方数据,然后按照前述介绍的方式进行校验,确定出最高优先级数据和次高优先级数据,并重新设定待校验现有根权威数据和目标第三方数据的存活时间),从而确保根域名服务器中的数据准确性和优先级准确性。

类似的,在本申请实施例中,在将目标第三方数据设为最高优先级数据,并将待校验现有根权威数据设为次高优先级数据时,还可以设置现有根权威数据和本地顶级域权威数据的存活时间,且目标第三方数据的存活时间小于待校验现有根权威数据的存活时间。

这样,作为最高优先级数据的目标第三方数据的存活时间会先于待校验现有根权威数据的存活时间到达,从而在目标第三方数据的存活时间达到时,重新获取第三方数据,并采用第三方数据重新对待校验现有根权威数据进行校验,从而确保根域名服务器中的数据准确性和优先级准确性。

需要说明的是,在本申请实施例中,可以设置黑名单机制,限制录入黑名单中的数据不用于进行域名解析。在第三方数据中不存在与待校验现有根权威数据一致的目标第三方数据时,则将待校验现有根权威数据移入黑名单中,从而有效防止被污染、篡改的域名解析记录作为本地根域名服务器中的有效域名解析记录。

还需要说明的是,前文是以先获取现有根权威数据,再获取本地顶级域权威数据进行比对的过程,介绍的本申请实施例所提供的域名解析记录重构方法。事实上,也可以是先获取本地顶级域权威数据构成初始的域名解析记录,再获取现有根权威数据进行比对,实现域名解析记录重构,其过程与前述过程基本一致,两者为等同方案,故在此不再展开说明。

通过本申请实施例所提供的域名解析记录重构方法,在根域名服务器中重构好域名解析记录后,当递归服务器需要向根域名服务器进行查询时,由于根域名服务器中已重构好了包含本地顶级域名服务器和根权威服务器的域名解析记录的最新域名解析记录,因此根域名服务器可以直接返回相应的域名解析结果,从而使得递归服务器不必再向根权威服务器进行查询,优化了递归服务器的查询路径,从而提高了域名解析效率,能够有效改善用户体验。

此外,由于根域名服务器中并非全部保留所有的本地顶级域名服务器和根权威服务器的域名解析记录,因此相比于简单的将本地顶级域名服务器和根权威服务器的域名解析记录堆叠至根域名服务器中的情况而言,可以有效减少根域名服务器的数据存储成本和维护成本。

此外,本申请实施例中通过采用第三方数据校验的方式,减小了因域名解析记录被污染、篡改导致的根域名服务器中数据失效的风险,保证了根域名服务器中域名解析记录的真实性。

在本申请实施例中,还提供了一种与前述域名解析记录重构方法相适应的域名解析方法。可以参见图3所示,包括:

S301:本地递归服务器在接收到主机发来的域名解析请求时,在本地缓存内查找是否存在与该域名解析请求对应的有效域名解析记录。若存在,转至步骤S302;若不存在,转至步骤S303。

在本申请实施例中,本地递归服务器是指与主机发处于同一通信域内的递归服务器。

S302:根据有效域名解析记录进行域名解析。

在本申请实施例中,本地递归服务器在根据有效域名解析记录进行域名解析后,即可将域名解析结果返回给该主机。

需要说明的是,在本申请实施例中,递归服务器内会缓存域名解析记录,并为各域名解析记录设定存活时间。在存活时间达到后,该存活时间对应的域名解析记录即会失效,以降低域名解析记录被污染、篡改的风险。

所谓有效域名解析记录即是指存活时间未达到的域名解析记录。

显然,存活时间设置的越长,那么递归服务器中的域名解析记录的存在时间就越长,从而域名解析效率就会越高,网络开销会越小(即更多的域名解析请求可以直接在递归服务器内被解析,而不用请求本地根域名服务器),但是域名解析记录被污染、篡改的风险就会越大。相反,存活时间设置的越短,那么递归服务器中的域名解析记录的存在时间就越短,从而域名解析记录被污染、篡改的风险就会越小,但是域名解析效率就会越低,网络开销会越大。

为此,在本申请实施例中,考虑到域名解析记录的安全性,可以设定递归服务器中本地缓存内与域名解析请求对应的域名解析记录的存活时间,小于本地根域名服务器中与域名解析请求对应的最高优先级数据的存活时间。

此外,考虑到需要平衡域名解析效率,适当降低网络开销,在本申请实施例中,还可以设定递归服务器中本地缓存内与域名解析请求对应的域名解析记录的存活时间,大于本地根域名服务器中与域名解析请求对应的优先级最低的数据的存活时间。

S303:向本地根域名服务器发送域名解析请求。

S304:本地根域名服务器在本地根区文件中查找与该域名解析请求对应的有效域名解析记录。

在本申请实施例中,本地根域名服务器会采用前述域名解析记录重构方法进行域名解析记录重构,从而在重构的域名解析记录中,查找出与该域名解析请求对应的有效域名解析记录。

S305:根据有效域名解析记录进行域名解析。

S306:向本地递归服务器返回域名解析结果。

在本申请实施例中,本地递归服务器在接收到本地根域名服务器返回的域名解析结果后,即可将域名解析结果返回给该主机。

需要说明的是,在本申请实施例中,本地根域名服务器采用前述域名解析记录重构方法进行域名解析记录重构后,可能存在查找到该域名解析请求对应有多个不同优先级的域名解析记录的情况。

此时,一种可行的实施方式是,本地根域名服务器可以采用最高优先级的有效域名解析记录进行域名解析,并向本地递归服务器返回域名解析结果。

此时由于仅返回一个域名解析结果,因此本地递归服务器可以直接将域名解析结果返回给该主机。

此外,在本申请实施例的另一种可行实施方式中,本地根域名服务器也可以采用各有效域名解析记录分别进行域名解析,并向本地递归服务器返回各有效域名解析记录的域名解析结果,以及各域名解析结果对应的优先级。

需要说明的是,各域名解析结果对应的优先级为各域名解析结果对应的有效域名解析记录的优先级。

此时,本地递归服务器会接收到多个域名解析结果,因此,在本申请实施例的一种可行实施方式中,本地递归服务器可以将优先级最高的域名解析结果返回给该主机。

还需要说明的是,在本申请实施例中,可能存在本地根域名服务器还没有进行域名解析记录重构的情况,或尚未重构完毕的情况,或已重构完毕,但重构过程中存在数据缺失的情况。

那么,若在此时本地递归服务器将域名解析请求发送给本地根域名服务器,本地根域名服务器内就无法查找到与该域名解析请求对应的有效域名解析记录。

此时,本地根域名服务器可以向本地递归服务器返回表征无法进行解析的消息,并获取根权威服务器和与本地根域名服务器对等的其他根域名服务器中,与该域名解析请求对应的域名解析记录。

然后,本地根域名服务器可以比对获取到的根权威服务器和其他根域名服务器的域名解析记录。

若一致,将根权威服务器的域名解析记录设为最高优先级数据,写入所述本地根区文件;

若不一致,将其他根域名服务器的域名解析记录设为最高优先级数据,将根权威服务器的域名解析记录设为次高优先级数据,写入本地根区文件。

这样,当本地根域名服务器还没有进行域名解析记录重构,或尚未重构完毕时,本地根域名服务器即可以预先将相关域名解析记录录入到本地根区文件中,节约后续域名解析记录重构的时间。

当本地根域名服务器存在已重构完毕,但重构过程中存在数据缺失的情况时,即可以实现对于缺失数据的有效补充。

在本申请实施例中,在将其他根域名服务器的域名解析记录设为最高优先级数据,将根权威服务器的域名解析记录设为次高优先级数据时,还可以设置其他根域名服务器的域名解析记录和根权威服务器的域名解析记录的存活时间,且其他根域名服务器的域名解析记录的存活时间小于根权威服务器的域名解析记录的存活时间。

这样,在作为最高优先级的其他根域名服务器的域名解析记录的存活时间达到时,即可重新获取根权威服务器和其他根域名服务器中与域名解析请求对应的域名解析记录,并重新比对获取到的根权威服务器和其他根域名服务器的域名解析记录,从而重新进行优先级设定,从而保证根域名服务器中数据的可靠性和优先级的准确性。

而在本申请实施例中,当本地递归服务器接收到本地根域名服务器返回的表征无法进行解析的消息时,此时一种可行的实施方式是,可以向与该本地递归服务器最近的根权威服务器发送该域名解析请求,从而接收根权威服务器返回的域名解析结果。

此外,本申请实施例中,也可以向与本地根域名服务器对等的其他根域名服务器发送该域名解析请求,从而接收其他根域名服务器返回的域名解析结果。

需要说明的是,在本申请实施例中,本地根域名服务器在接收到本地递归服务器发来的域名解析请求时,若本地根域名服务器还没有进行域名解析记录重构,或尚未重构完毕,则也可以直接按照前述域名解析记录重构方法的步骤,从本地顶级域名服务器和根权威服务器获取该域名解析请求对应的本地顶级域权威数据和现有根权威数据进行重构,然后进行解析,从而返回域名解析结果给该本地递归服务器。

本申请实施例所提供的域名解析方法,大部分情况下,可以在本地递归服务器或本地根域名服务器处,就实现域名解析,从而可以实现对于域名的快速解析,提高域名解析效率,有效改善用户体验。

此外,本申请实施例中可以通过设置本地递归服务器中域名解析记录的存活时间小于本地根域名服务器中对应的最高优先级数据的存活时间,并大于本地根域名服务器中对应的优先级最低的数据的存活时间,从而可以兼顾域名解析记录的解析效率和安全性。

实施例二:

本实施例在实施例一的基础上,以三种示例情况为例,对本申请做进一步示例说明。

示例1:

以本地递归服务器A向本地根域名服务器B发出域名解析请求C为例(预设服务器A中没有缓存,本地根域名服务器B中采用实施例一所示的域名解析记录重构方法,保存有域名解析请求C的域名解析记录):

1)本地递归服务器A从主机接收到域名解析请求C,执行步骤2)。

2)本地递归服务器A查找本机缓存(预设为无),执行步骤3)。

3)本地递归服务器A向本地根域名服务器B发出域名解析请求C,服务器B检查本地根区文件是否有该域名解析请求C对应的域名解析记录(预设为有),执行步骤4)。

4)本地根域名服务器B采用该域名解析请求C对应的最高优先级的域名解析记录进行域名解析,向本地递归服务器A返回域名解析结果。

示例2:

以本地递归服务器A向本地根域名服务器B发出域名解析请求C为例(预设服务器A中没有缓存,本地根域名服务器B还未采用实施例一所示的域名解析记录重构方法,暂未保存有域名解析请求C的域名解析记录):

1)本地递归服务器A从主机接收到域名解析请求C,执行步骤2)。

2)本地递归服务器A查找本机缓存(预设为无),执行步骤3)。

3)本地递归服务器A向本地根域名服务器B发出域名解析请求C,本地根域名服务器B检查本地根区文件是否有该域名解析请求C对应的域名解析记录(预设为无),执行步骤4)。

4)本地根域名服务器B告知本地递归服务器A无法解析域名解析请求C,且本地根域名服务器B请求其他对等的本地根域名服务器以及根权威服务器中,该域名解析请求C对应的域名解析记录,执行步骤5)。

同时,本地递归服务器A调用路由策略,访问最近的根权威服务器,请求该根权威服务器进行域名解析请求C的解析。

5)本地根域名服务器B判断其他对等的本地根域名服务器返回的解析记录,与根权威服务器返回的解析记录是否一致。若一致,将根权威服务器的域名解析记录设为最高优先级数据,写入本地根区文件。若不一致执行步骤6)。

6)将其他根域名服务器的域名解析记录设为最高优先级数据,将根权威服务器的域名解析记录设为次高优先级数据,写入本地根区文件。

示例3:

以本地递归服务器A向本地根域名服务器B发出域名解析请求C为例(预设服务器A中存在域名解析请求C的解析记录缓存):

1)本地递归服务器A从主机接收到域名解析请求C,执行步骤2)。

2)本地递归服务器A查找本机缓存中的域名解析请求C对应的域名解析记录(预设为有),判断其是否在有效存活时间内。若是,则根据该域名解析记录进行解析,否则执行步骤3)。

3)本地递归服务器A向本地根域名服务器B发出域名解析请求C,若本地根域名服务器B中存在域名解析请求C对应的域名解析记录,则本地根域名服务器B根据该域名解析记录完成解析,否则执行步骤4)。

4)本地根域名服务器B通知本地递归服务器A无法解析域名解析请求C,本地递归服务器A调用路由策略,访问最近的根权威服务器,请求该根权威服务器进行域名解析请求C的解析。

实施例三:

基于同一发明构思,本申请实施例中还提供域名解析记录重构装置100、域名解析装置200和300。请参阅图4至图6所示,图4示出了采用图2所示的方法的域名解析记录重构装置,图5和图6分别示出了实现图3所示的方法中递归服务器和根域名服务器所执行的操作的域名解析装置。应理解,装置100、装置200和装置300具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。装置100、装置200和装置300包括至少一个能以软件或固件的形式存储于存储器中或固化在装置100、装置200和装置300的操作系统中的软件功能模块。具体地:

参见图4所示,装置100应用于根域名服务器上,包括:获取模块101、比较模块102和第一处理模块103。其中:

所述获取模块101,用于获取本地顶级域权威数据;所述本地顶级域权威数据为本地顶级域名服务器的域名解析记录;

所述比较模块102,用于比较所述本地顶级域权威数据和现有根权威数据;所述现有根权威数据为从根权威服务器处获取到的域名解析记录;

所述第一处理模块103,用于若所述本地顶级域权威数据和所述现有根权威数据的域名记录相同而域名解析结果不同,将所述本地顶级域权威数据设为最高优先级数据;若所述本地顶级域权威数据和所述现有根权威数据的域名记录不同而域名解析结果相同,将所述本地顶级域权威数据和所述现有根权威数据共同设为最高优先级数据;若所述本地顶级域权威数据和所述现有根权威数据一致,则采用所述本地顶级域权威数据替换所述现有根权威数据。

需要说明的是,在本申请实施例中,所述获取模块101还可以用于预先获取所述现有根权威数据,以保证所述比较模块102可以比较所述本地顶级域权威数据和现有根权威数据。

在本申请实施例中,所述第一处理模块103,还用于在采用所述本地顶级域权威数据替换所述现有根权威数据后,重置所述本地顶级域权威数据的存活时间。

在本申请实施例的一种可行实施方式中,所述第一处理模块103,还用于:若所述本地顶级域权威数据与所有的所述现有根权威数据的域名记录和域名解析结果均不相同,则获取第三方数据,采用所述第三方数据对所述本地顶级域权威数据进行校验;若所述第三方数据中存在与所述本地顶级域权威数据一致的数据,保存所述本地顶级域权威数据,并将所述本地顶级域权威数据设为最高优先级数据;若所述第三方数据不存在与所述本地顶级域权威数据一致的数据,删除所述本地顶级域权威数据。

在本申请实施例的一种可行实施方式中,所述第一处理模块103,还用于:在所述获取模块101获取完所有的所述本地顶级域权威数据之后,若所述现有根权威数据中,存在与所有的所述本地顶级域权威数据的域名记录和域名解析结果均不相同的待校验现有根权威数据,则获取第三方数据,采用所述第三方数据对所述待校验现有根权威数据进行校验;若所述第三方数据中存在与所述待校验现有根权威数据一致的目标第三方数据,则判断所述目标第三方数据是否存在修改记录;若存在,将所述待校验现有根权威数据设为最高优先级数据,将所述目标第三方数据设为次高优先级数据;若不存在,将所述目标第三方数据设为最高优先级数据,并将所述待校验现有根权威数据设为次高优先级数据。

在上述可行实施方式中,所述第一处理模块103,还用于:在将所述待校验现有根权威数据设为最高优先级数据,将所述目标第三方数据设为次高优先级数据时,设置所述待校验现有根权威数据和所述目标第三方数据的存活时间,且所述待校验现有根权威数据的存活时间小于所述目标第三方数据的存活时间;在所述待校验现有根权威数据的存活时间达到时,重新获取所述第三方数据,采用所述第三方数据重新对所述待校验现有根权威数据进行校验。

在上述可行实施方式中,所述第一处理模块103,还用于:在将所述目标第三方数据设为最高优先级数据,并将所述待校验现有根权威数据设为次高优先级数据时,设置所述待校验现有根权威数据和所述目标第三方数据的存活时间,且所述目标第三方数据的存活时间小于所述待校验现有根权威数据的存活时间;在所述目标第三方数据的存活时间达到时,重新获取所述第三方数据,采用所述第三方数据重新对所述待校验现有根权威数据进行校验。若所述第三方数据中不存在与所述待校验现有根权威数据一致的目标第三方数据,则将所述待校验现有根权威数据移入黑名单中;所述黑名单中的待校验现有根权威数据不用于进行域名解析。

在上述两种可行实施方式中,所述第三方数据可以为与所述根域名服务器地位对等的其他各根域名服务器的域名解析记录。

参见图5所示,装置200应用于递归服务器上,包括:第一查找模块201和第二处理模块202。其中:

所述第一查找模块201,用于在接收到域名解析请求时,在本地缓存内查找是否存在与所述域名解析请求对应的有效域名解析记录;

所述第二处理模块202,用于若存在,根据所述有效域名解析记录进行域名解析;若不存在,向本地根域名服务器发送所述域名解析请求,并接收所述本地根域名服务器返回的域名解析结果;

其中,所述本地根域名服务器中存在采用上述实施例一种所述的域名解析记录重构方法得到的域名解析记录。

在本申请实施例中,所述第二处理模块202,还用于在向本地根域名服务器发送所述域名解析请求之后:

在所述本地根域名服务器返回表征无法进行解析的消息时,向与所述递归服务器最近的根权威服务器发送所述域名解析请求,并接收所述根权威服务器返回的域名解析结果;

或,

在所述本地根域名服务器返回表征无法进行解析的消息时,向与所述本地根域名服务器对等的其他根域名服务器发送所述域名解析请求;接收所述其他根域名服务器返回的域名解析结果。

在本申请实施例的一种可行实施方式中,所述本地缓存内与所述域名解析请求对应的域名解析记录的存活时间,小于所述本地根域名服务器中与所述域名解析请求对应的最高优先级数据的存活时间。

在上述可行实施方式中,所述本地缓存内与所述域名解析请求对应的域名解析记录的存活时间,大于所述本地根域名服务器中与所述域名解析请求对应的优先级最低的数据的存活时间。

参见图6所示,装置300应用于根域名服务器上,包括:第二查找模块301和第三处理模块302。其中:

所述第二查找模块301,用于在接收到本地递归服务器发来的域名解析请求时,在本地根区文件查找与所述域名解析请求对应的有效域名解析记录;

所述第三处理模块302,用于根据所述有效域名解析记录进行域名解析,并向所述本地递归服务器返回域名解析结果。

其中,所述根域名服务器中存在采用上述实施例一种所述的域名解析记录重构方法得到的域名解析记录。

在本申请实施例中,在所述域名解析请求对应的有效域名解析记录为多个时,所述第三处理模块302具体用于:

采用最高优先级的有效域名解析记录进行域名解析,并向所述本地递归服务器返回域名解析结果;

或,

采用各所述有效域名解析记录分别进行域名解析,并向所述本地递归服务器返回各所述有效域名解析记录的域名解析结果,以及各域名解析结果对应的优先级;其中,各域名解析结果对应的优先级为各域名解析结果对应的有效域名解析记录的优先级。

在本申请实施例的一种可行实施方式中,所述第三处理模块302还用于:

在本地根区文件不存在与所述域名解析请求对应的有效域名解析记录时,向所述本地递归服务器返回表征无法进行解析的消息,并获取根权威服务器和与所述根域名服务器对等的其他根域名服务器中,与所述域名解析请求对应的域名解析记录;

比对获取到的所述根权威服务器和所述其他根域名服务器的域名解析记录;

若一致,将所述根权威服务器的域名解析记录设为最高优先级数据,写入所述本地根区文件;

若不一致,将所述其他根域名服务器的域名解析记录设为最高优先级数据,将所述根权威服务器的域名解析记录设为次高优先级数据,写入所述本地根区文件。

在上述可行实施方式中,所述第三处理模块302还用于:

在将所述其他根域名服务器的域名解析记录设为最高优先级数据,将所述根权威服务器的域名解析记录设为次高优先级数据时,设置所述其他根域名服务器的域名解析记录和所述根权威服务器的域名解析记录的存活时间;所述其他根域名服务器的域名解析记录的存活时间小于所述根权威服务器的域名解析记录的存活时间;

在所述其他根域名服务器的域名解析记录的存活时间达到时,重新获取所述根权威服务器和所述其他根域名服务器中与所述域名解析请求对应的域名解析记录,并重新比对获取到的所述根权威服务器和所述其他根域名服务器的域名解析记录。

需要理解的是,出于描述简洁的考量,部分实施例一中描述过的内容在本实施例中不再赘述。

实施例四:

本实施例提供了一种DNS服务器,参见图7所示,其包括处理器701、存储器702以及通信总线703。其中:

通信总线703用于实现处理器701和存储器702之间的连接通信。

处理器701用于执行存储器702中存储的一个或多个程序,以实现上述实施例一中的域名解析记录重构方法,或实现上述实施例一中的域名解析方法中,递归服务器或本地根域名服务器所执行的步骤。

可以理解,图7所示的结构仅为示意,DNS服务器还可包括比图7中所示更多或者更少的组件,或者具有与图7所示不同的配置。比如,DNS服务器还可包括无线通信模块等组件。

本实施例还提供了一种可读存储介质,如软盘、光盘、硬盘、闪存、U盘、SD(SecureDigital Memory Card,安全数码卡)卡、MMC(Multimedia Card,多媒体卡)卡等,在该可读存储介质中存储有实现上述各个步骤的一个或者多个程序,这一个或者多个程序可被一个或者多个处理器执行,以实现上述实施例一中的域名解析记录重构方法,或实现上述实施例一中的域名解析方法中,递归服务器或本地根域名服务器所执行的步骤。在此不再赘述。

在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。

在本文中,多个是指两个或两个以上。

以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号