本发明涉及计算机技术,尤其涉及一种域名解析方法及虚拟DNS权威服务器。
背景技术:
当客户端需要访问网络时,在浏览器中输入域名后,需要先对域名进行解析,解析出该域名对应的网络协议(Internet Protocol;简称:IP)地址后,才能实现客户端对该IP地址所对应的服务器的访问。
现有技术中,域名系统(Domain Name System;简称:DNS)包括根服务器、DNS权威服务器、递归服务器和本地DNS服务器。其中,DNS权威服务器包括顶级域名权威服务器,例如,.com、.cn等域权威服务器,还包括baidu.com、sina.com等域权威服务器。域名解析过程为:客户端发起一个域名解析请求,该解析请求中包含域名,如果客户端缓存中没有所查询到该域名对应的IP地址,客户端会向本地DNS服务器发起DNS查询请求。本地DNS服务器接收到请求后,先查看自己的缓存中是否有所查询的域名对应的IP地址,若有,则本地DNS服务器会直接响应客户端,若缓存中没有,则本地DNS服务器会向递归服务器发起递归查询请求,递归服务器查看自己的缓存中是否有所查询的内容,若有,则直接响应本地DNS服务器,若缓存中没有,则由递归服务器向根服务器发起查询请求,根服务器向递归服务器发送该域名对应的顶级域名权威服务器的地址,递归服务器向该顶级域名权威服务器发起查询请求,直至权威服务器向递归服务器返回该域名对应的IP地址,递归服务器将该IP地址反馈给客户端,完成了一次域名解析的过程。
但是,上述域名解析过程中,DNS权威服务器的查询流量较大,域名重复查询情况也较多,所以DNS权威服务器的负担载荷较大,域名解析所需的时间会比较长,影响域名解析的性能。
技术实现要素:
本发明提供一种域名解析方法及虚拟DNS权威服务器,以提高域名解析的性能。
本发明提供一种域名解析方法,包括:
虚拟DNS权威服务器接收递归服务器发送的第一域名解析请求,其中,所述第一域名解析请求中包含需要解析的域名;
虚拟DNS权威服务器根据所述第一域名解析请求查询缓存中是否有所述域名的网络协议IP地址;
虚拟DNS权威服务器根据查询结果向所述递归服务器发送第一响应消息,所述第一响应消息中包含所述域名的IP地址。
进一步地,所述虚拟DNS权威服务器根据查询结果向所述递归服务器发送第一响应消息,包括:
若所述虚拟DNS权威服务器查询到所述虚拟DNS权威服务器缓存中有所述域名的IP地址,则所述虚拟DNS权威服务器向所述递归服务器发送所述第一响应消息;
若所述虚拟DNS权威服务器查询到所述虚拟DNS权威服务器缓存中没有所述域名的IP地址,则所述虚拟DNS权威服务器判断用户权威服务器是否正常工作,根据判断结果向所述递归服务器发送所述第一响应消息。
进一步地,所述虚拟DNS权威服务器判断用户权威服务器是否正常工作,根据判断结果向所述递归服务器发送所述第一响应消息,包括:
若所述虚拟DNS权威服务器判断所述用户权威服务器能正常工作,则:
所述虚拟DNS权威服务器将所述第一域名解析请求中的目的IP地址修改为所述用户权威服务器的IP地址,形成第二域名解析请求;
所述虚拟DNS权威服务器将所述第二域名解析请求发送给所述用户权威服务器,并接收所述用户权威服务器发送的第二响应消息,其中,所述第二响应消息中包含所述域名的IP地址;
所述虚拟DNS权威服务器将所述第二响应消息中的所述用户权威服务器的IP地址修改为所述虚拟DNS权威服务器的IP地址,并将所述第二响应消息中的权威标志位AA设置为1,形成所述第一响应消息;
所述虚拟DNS权威服务器向所述递归服务器发送所述第一响应消息。
进一步地,所述虚拟DNS权威服务器判断用户权威服务器是否正常工作,根据判断结果向所述递归服务器发送所述第一响应消息,包括:
若所述虚拟DNS权威服务器判断所述用户权威服务器不能正常工作,则:
所述虚拟DNS权威服务器将第一域名解析请求中的目的IP地址修改为灾备中心的IP地址,形成第三域名解析请求,其中,所述灾备中心为所述用户权威服务器的备份;
所述虚拟DNS权威服务器将所述第三域名解析请求发送给所述灾备中心,并接收所述灾备中心发送的第三响应信息,其中,所述第三响应消息中包含所述域名的IP地址;
所述虚拟DNS权威服务器将所述第三响应消息中的所述灾备中心的IP地址修改为所述虚拟DNS权威服务器的IP地址,并将所述第三响应消息中的权威标志位AA设置为1,形成所述第一响应消息;
所述虚拟DNS权威服务器向所述递归服务器发送所述第一响应消息。
本发明还提供一种虚拟DNS权威服务器,包括:
接收模块,用于接收递归服务器发送的第一域名解析请求,其中,所述第一域名解析请求中包含需要解析的域名;
查询模块,用于根据所述第一域名解析请求查询缓存中是否有所述域名的网络协议IP地址;
发送模块,用于根据查询结果向所述递归服务器发送第一响应消息,所述第一响应消息中包含所述域名的IP地址。
进一步地,若所述查询模块查询到缓存中有所述域名的IP地址,则发送模块用于向所述递归服务器发送所述第一响应消息;
若所述查询模块查询到缓存中没有所述域名的IP地址,则所述虚拟DNS权威服务器还包括判断模块,所述判断模块用于判断用户权威服务器是否正常工作,所述发送模块还用于根据所述判断模块的判断结果向所述递归服务器发送所述第一响应消息。
进一步地,若所述判断模块判断所述用户权威服务器能正常工作,则所述发送模块还包括:
第一修改单元,用于将所述第一域名解析请求中的目的IP地址修改为所述用户权威服务器的IP地址,形成第二域名解析请求;
第一发送接收单元,用于将所述第二域名解析请求发送给所述用户权威服务器,并接收所述用户权威服务器发送的第二响应消息,其中,所述第二响应消息中包含所述域名的IP地址;
第二修改单元,用于将所述第二响应消息中的所述用户权威服务器的IP地址修改为所述虚拟DNS权威服务器的IP地址,并将所述第二响应消息中的权威标志位AA设置为1,形成所述第一响应消息;
第一发送单元,用于向所述递归服务器发送所述第一响应消息。
进一步地,若所述判断模块判断所述用户权威服务器不能正常工作,则所述发送模块还包括:
第三修改单元,用于将第一域名解析请求中的目的IP地址修改为灾备中心的IP地址,形成第三域名解析请求,其中,所述灾备中心为所述用户权威服务器的备份;
第二发送接收单元,用于将所述第三域名解析请求发送给所述灾备中心,并接收所述灾备中心发送的第三响应信息,其中,所述第三响应消息中包含所述域名的IP地址;
第四修改单元,用于将所述第三响应消息中的所述灾备中心的IP地址修改为所述虚拟DNS权威服务器的IP地址,并将所述第三响应消息中的权威标识位AA设置为1,形成所述第一响应消息;
第二发送单元,用于向所述递归服务器发送所述第一响应消息。
本发明提供的域名解析方法及虚拟DNS权威服务器,通过虚拟域名系统DNS权威服务器接收递归服务器发送的第一域名解析请求,其中,所述第一域名解析请求中包含需要解析的域名,虚拟DNS权威服务器根据第一域名解析请求查询缓存中是否有与域名对应的网络协议IP地址,虚拟DNS权威服务器根据查询结果向递归服务器发送第一响应消息,第一响应消息中包含IP地址,通过虚拟DNS权威服务器接收递归服务器的第一域名解析请求,并根据缓存中是否存在与需要解析的域名对应的IP地址,向递归服务器发送第一响应消息,从而,虚拟DNS权威服务器分担了DNS权威服务器的查询流量,减小了其负担载荷,缩短了域名解析的时间,提高了域名解析性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明域名解析方法实施例一的流程图;
图2为本发明域名解析方法实施例二的流程图;
图3为本发明域名解析方法实施例二中S202的一种实现方式的流程图;
图4为本发明域名解析方法实施例二中S202的另一种实现方式的流程图;
图5为本发明虚拟DNS权威服务器实施例一的结构示意图;
图6为本发明虚拟DNS权威服务器实施例二的结构示意图;
图7为本发明虚拟DNS权威服务器实施例二中发送模块的一种实现方式的结构示意图;
图8为本发明虚拟DNS权威服务器实施例二中发送模块的另一种实现方式的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明域名解析方法实施例一的流程图。如图1所示,本实施例提供的域名解析方法包括:
S101:虚拟DNS权威服务器接收递归服务器发送的第一域名解析请求。
其中,第一域名解析请求中包含需要解析的域名。
具体地,虚拟DNS权威服务器设置在递归服务器和用户权威服务器之间。用户权威服务器指的是顶级域名服务器下属的baidu.com、sina.com或 AAA.com等域权威服务器,这里的用户指的就是baidu、sina或AAA等申请使用虚拟DNS权威服务器进行域名解析的公司或机构。客户端发送的域名解析请求到达递归服务器之后,递归服务器会发送第一域名解析请求给虚拟DNS权威服务器。第一域名解析请求中包括需要解析的域名,这里的需要解析的域名表示客户端发起访问的域名。客户端可以为电脑和手机等。第一域名解析请求中还可以包括:源IP地址即递归服务器的IP地址和目的IP地址即虚拟DNS权威服务器的IP地址。
需要说明的是,用户在使用本实施例提供的域名解析方法之前,需要告知域名注册商将用户权威服务器的IP地址修改为虚拟DNS权威服务器的IP地址,使虚拟DNS权威服务器位于DNS架构中。
S102:虚拟DNS权威服务器根据第一域名解析请求查询缓存中是否有域名的IP地址。
具体地,虚拟DNS权威服务器在其缓存中查询是否有与第一域名解析请求中包括的需要解析的域名对应的IP地址。可选的,如果客户端频繁发起包含某个域名的域名解析请求,则虚拟DNS权威服务器的缓存中可能会存储有与该域名对应的IP地址。
S103:虚拟DNS权威服务器根据查询结果向递归服务器发送第一响应消息,第一响应消息中包含域名的IP地址。
具体地,虚拟DNS权威服务器根据不同的查询结果向递归服务器发送第一响应消息。第一响应消息中包含有与第一域名解析请求中包含的域名对应IP地址。第一响应消息中还可以包括:目的地址即递归服务器的IP地址和源地址即虚拟DNS权威服务器的IP地址。
虚拟DNS权威服务器将第一响应消息发送给递归服务器,递归服务器对第一响应消息重新封装后发送给本地DNS服务器。本地DNS服务器再重新封装后发送给客户端,完成一次域名解析。
本实施例提供的域名解析方法,通过虚拟域名系统DNS权威服务器接收递归服务器发送的第一域名解析请求,其中,第一域名解析请求中包含需要解析的域名,虚拟DNS权威服务器根据第一域名解析请求查询缓存中是否有域名的IP地址,虚拟DNS权威服务器根据查询结果向递归服务器发送第一响应消息,第一响应消息中包含域名的IP地址,通过虚拟DNS权威服务器 接收递归服务器的第一域名解析请求,并根据缓存中是否存在与需要解析的域名对应的IP地址,向递归服务器发送第一响应消息,从而,虚拟DNS权威服务器分担了用户权威服务器的查询流量,减小了用户权威服务器的负担载荷,缩短了域名解析的时间,提高了域名解析性能。
图2为本发明域名解析方法实施例二的流程图。如图2所示,本实施例提供的域名解析方法在上述实施例一的基础上,S103具体包括:
S201:若虚拟DNS权威服务器查询到虚拟DNS权威服务器缓存中有域名的IP地址,则虚拟DNS权威服务器向递归服务器发送第一响应消息。
具体地,若虚拟DNS权威服务器的缓存中有域名的IP地址,则就将缓存中的IP地址封装在第一响应消息中,发送给递归服务器。
S202:若虚拟DNS权威服务器查询到虚拟DNS权威服务器缓存中没有域名的IP地址,则虚拟DNS权威服务器判断用户权威服务器是否正常工作,根据判断结果向递归服务器发送第一响应消息。
具体地,虚拟DNS权威服务器的缓存中如果没有域名的IP地址,则虚拟DNS权威服务器需要向用户权威服务器发送域名解析请求。但会存在用户权威服务器出现故障的情况,如果用户权威服务器出现故障,则其不能对虚拟DNS权威服务器发送的域名解析请求进行响应,此时,就需要虚拟DNS权威服务器判断用户权威服务器是否正常工作,并根据判断结果向递归服务器发送第一响应消息。
虚拟DNS权威服务器可以以一定频率探测用户权威服务器是否处于正常工作。例如,虚拟DNS权威服务器可以通过发送探测消息的方式,判断用户权威服务器是否处于正常工作,探测消息中可以包含探测域名。如果用户权威服务器可以正常解析探测消息中的探测域名并正确反馈给虚拟DNS权威服务器的话,则认为用户权威服务器处于正常工作,否则,认为用户权威服务器可能出现了故障,例如,断电或宕机等。当然,虚拟DNS权威服务器也可以通过其他方式判断用户权威服务器是否处于正常工作,本实施例并不以此为限。
本实施例提供的域名解析方法,若虚拟DNS权威服务器查询到虚拟DNS权威服务器缓存中有域名的IP地址,则虚拟DNS权威服务器向递归服务器发送第一响应消息,若虚拟DNS权威服务器查询到虚拟DNS权威服务器缓 存中没有域名的IP地址,则虚拟DNS权威服务器判断用户权威服务器是否正常工作,根据判断结果向递归服务器发送第一响应消息,从而,虚拟DNS权威服务器分担了用户权威服务器的查询流量,减小了用户权威服务器的负担载荷,缩短了域名解析的时间,提高了域名解析性能。
根据虚拟DNS权威服务器判断用户权威服务器是否处于正常工作状态的判断结果的不同,上述实施例二中S202有以下两种实现方式:
图3为本发明域名解析方法实施例二中S202的一种实现方式的流程图。如图3所示,本实现方式为若虚拟DNS权威服务器判断用户权威服务器能正常工作时,包括:
S301:虚拟DNS权威服务器将第一域名解析请求中的目的IP地址修改为用户权威服务器的IP地址,形成第二域名解析请求。
其中,第二域名解析请求中包含需要解析的域名。
S302:虚拟DNS权威服务器将第二域名解析请求发送给用户权威服务器,并接收用户权威服务器发送的第二响应消息。
其中,第二响应消息中包含域名的IP地址。
S303:虚拟DNS权威服务器将第二响应消息中的用户权威服务器的IP地址修改为虚拟DNS权威服务器的IP地址,并将第二响应消息中的权威标志位AA设置为1,形成第一响应消息。
具体地,可以将第二响应消息中的权威标志位AA设置为1,以表示第一响应消息为权威应答。将用户权威服务器的IP地址修改为虚拟DNS权威服务器的IP地址可以对客户端隐藏用户权威服务器,避免了用户权威服务器受到客户端的攻击。
可以理解的是,实施例一和本实施例中的第一响应消息中的权威标志位AA都为1,以表示虚拟DNS权威服务器的应答为权威应答。
S304:虚拟DNS权威服务器向递归服务器发送第一响应消息。
可选的,在S302之前,虚拟DNS权威服务器还可以对用户权威服务器的线路进行分析。
具体地,用户权威服务器可以有很多个,每一个的访问载荷是不同的,有可能存在载荷不均衡的情况,此时,虚拟DNS权威服务器对其与多个不同的用户权威服务器之间的线路进行智能解析,可以通过对用户权威服务器的 线路进行统计来进行智能解析,以判断哪条线路上的载荷较少,从而,将第二域名解析请求通过该线路发送给该线路对应的用户权威服务器,实现负载均衡的目的,进一步提高域名解析的速度。其中,虚拟DNS权威服务器中有不同的线路IP出口对应其与用户权威服务器之间的不同的线路。
本实现方式中,虚拟DNS权威服务器将用户权威服务器的IP地址修改为虚拟DNS权威服务器的IP地址可以实现对客户端隐藏用户权威服务器,相较于不设置虚拟DNS权威服务器的DNS,客户端不能得到用户权威服务器的地址,从而,避免了用户权威服务器受到客户端的攻击,进一步提高了域名解析的性能。
图4为本发明域名解析方法实施例二中S202另一种实现方式的流程图。如图4所示,本实现方式为若虚拟DNS权威服务器判断用户权威服务器不能正常工作时,包括:
S401:虚拟DNS权威服务器将第一域名解析请求中的目的IP地址修改为灾备中心的IP地址,形成第三域名解析请求。
其中,灾备中心为用户权威服务器的备份。
灾备中心可以定期查询其与用户权威服务器中的数据是否一致,如果不一致,则进行数据同步,以确保灾备中心的数据与用户权威服务器中的数据一致。例如,可以通过定期发起查询请求的方式查询其与用户权威服务器中的数据是否一致。
S402:虚拟DNS权威服务器将第三域名解析请求发送给灾备中心,并接收灾备中心发送的第三响应信息。
其中,第三响应消息中包含域名的IP地址。
S403:虚拟DNS权威服务器将第三响应消息中的灾备中心的IP地址修改为虚拟DNS权威服务器的IP地址,并将第三响应消息中的权威标志位AA设置为1,形成第一响应消息。
具体地,可以将第三响应消息中的权威标志位AA设置为1,以表示第一响应消息为权威应答。
S404:虚拟DNS权威服务器向递归服务器发送第一响应消息。
本实现方式在用户权威服务器不能正常工作时,虚拟DNS权威服务器向灾备中心发送解析请求,从而使客户端对用户权威服务器的故障无感知,保 证了域名解析的稳定性。
需要说明的是,在上述任意实施例中,用户可以对虚拟DNS权威服务器的缓存进行设置,例如,可以设置缓存数据的保存时长及缓存中数据的更新频率。
图5为本发明虚拟DNS权威服务器实施例一的结构示意图。如图5所示,本实施例提供的虚拟DNS权威服务器包括:
接收模块501,用于接收递归服务器发送的第一域名解析请求。
其中,第一域名解析请求中包含需要解析的域名。
查询模块502,用于根据第一域名解析请求查询缓存中是否有域名的IP地址。
发送模块503,用于根据查询结果向递归服务器发送第一响应消息,第一响应消息中包含域名的IP地址。
本实施例的虚拟DNS权威服务器可以对应执行图1所示方法实施例。其实现原理相同,此处不再赘述。
本实施例提供的虚拟DNS权威服务器,通过设置接收模块,用于接收递归服务器发送的第一域名解析请求,其中,第一域名解析请求中包含需要解析的域名。查询模块,用于根据第一域名解析请求查询缓存中是否有域名的IP地址。发送模块,用于根据查询结果向递归服务器发送第一响应消息,第一响应消息中包含域名的IP地址。通过虚拟DNS权威服务器接收递归服务器的第一域名解析请求,并根据缓存中是否存在与需要解析的域名对应的IP地址,发送模块向递归服务器发送第一响应消息,从而,虚拟DNS权威服务器分担了用户权威服务器的查询流量,减小了用户权威服务器的负担载荷,缩短了域名解析的时间,提高了域名解析性能。
图6为本发明虚拟DNS权威服务器实施例二的结构示意图。如图6所示,本实施例提供的虚拟DNS权威服务器在上述实施例的基础上,若查询模块502查询到缓存中有域名的IP地址,则发送模块503用于向递归服务器发送第一响应消息。若查询模块502查询到缓存中没有域名的IP地址,则虚拟DNS权威服务器还包括判断模块601,用于判断用户权威服务器是否正常工作,发送模块503还用于根据判断模块601的判断结果向递归服务器发送第一响应消息。
本实施例的虚拟DNS权威服务器可以对应执行图2所示方法实施例。其实现原理相同,此处不再赘述。
本实施例提供的虚拟DNS权威服务器,若查询模块查询到虚拟DNS权威服务器缓存中有域名的IP地址,则发送模块用于向递归服务器发送第一响应消息,若查询模块查询到虚拟DNS权威服务器缓存中没有域名的IP地址,则虚拟DNS权威服务器还包括判断模块,用于判断用户权威服务器是否正常工作,发送模块还用于根据判断模块的判断结果向递归服务器发送第一响应消息,从而,虚拟DNS权威服务器分担了用户权威服务器的查询流量,减小了用户权威服务器的负担载荷,缩短了域名解析的时间,提高了域名解析性能。
图7为本发明虚拟DNS权威服务器实施例二中发送模块的一种实现方式的结构示意图。如图7所示,若判断模块判断用户权威服务器能正常工作,则上述实施例二中发送模块还包括:
第一修改单元7001,用于将第一域名解析请求中的目的IP地址修改为用户权威服务器的IP地址,形成第二域名解析请求。
第一发送接收单元7002,用于将第二域名解析请求发送给用户权威服务器,并接收用户权威服务器发送的第二响应消息,其中,第二响应消息中包含域名的IP地址。
第二修改单元7003,用于将第二响应消息中的用户权威服务器的IP地址修改为虚拟DNS权威服务器的IP地址,并将第二响应消息中的权威标志位AA设置为1,形成第一响应消息。
第一发送单元7004,用于向递归服务器发送第一响应消息。
本实现方式可以对应执行图3所示方法实施例。其实现原理相同,此处不再赘述。
本实现方式中,第二修改单元将用户权威服务器的IP地址修改为虚拟DNS权威服务器的IP地址可以实现对客户端隐藏用户权威服务器,相较于不设置虚拟DNS权威服务器的DNS,客户端不能得到用户权威服务器的地址,从而,避免了用户权威服务器受到客户端的攻击,进一步提高了域名解析的性能。
图8为本发明虚拟DNS权威服务器实施例二中发送模块的另一种实现方 式的结构示意图。如图8所示,若判断模块判断用户权威服务器能正常工作,则上述实施例二中发送模块还包括:
第三修改单元8001,用于将第一域名解析请求中的目的IP地址修改为灾备中心的IP地址,形成第三域名解析请求,其中,灾备中心为用户权威服务器的备份;
第二发送接收单元8002,用于将第三域名解析请求发送给灾备中心,并接收灾备中心发送的第三响应信息,其中,第三响应消息中包含域名的IP地址;
第四修改单元8003,用于将第三响应消息中的灾备中心的IP地址修改为虚拟DNS权威服务器的IP地址,并将第三响应消息中的权威标志位AA设置为1,形成第一响应消息;
第二发送单元8004,用于向递归服务器发送第一响应消息。
本实现方式可以对应执行图4所示方法实施例。其实现原理相同,此处不再赘述。
本实现方式在用户权威服务器不能正常工作时,虚拟DNS权威服务器向灾备中心发送解析请求,从而使客户端对用户权威服务器的故障无感知,保证了域名解析的稳定性。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。