域名查询的实现方法和系统的制作方法

文档序号:7764292阅读:199来源:国知局
专利名称:域名查询的实现方法和系统的制作方法
技术领域
本发明涉及通信领域,尤其涉及一种域名查询的实现方法和系统。
背景技术
通常,互联网的网站都是以服务器的形式而存在的,如果要实现用户对这些网站的服务器的方位,就需要给每一台服务器分配IP地址,然而,互联网上网站的数量是非常多的,并且其数量仍旧在不断增加,所以,在用户登录网站服务器时,不可能记住每个网站的IP地址。为了方便记忆,就产生了域名管理系统(Domain Name System,简称为DNS),DNS 可以将用户输入的方便用户记忆的域名转换成为要访问的服务器的IP地址,例如,当用户在浏览器输入www. XXXX. com. yy的域名时,DNS会将该域名转换为相应的IP地址AA. BBB. CCC. DDD。通常,在进行DNS解析时,采用的流程如下一般用户在浏览器输入域名时,本地DNS系统会根据不同类型域名对应以下三种不同的解析策略(策略一)本域查询若是查询本地域名,DNS服务器会直接返回网站服务器的IP 地址,例如,运营商1在A城市下的接入用户访问运营商1在A城市的网站时,由于该网站归属于A城市本地DNS服务器解析,因此,该本地DNS服务器会将运营商1在城市A的网站 IP地址返回给用户;(策略二)缓存查询用户查询的域名为非本地域名,如果在DNS服务器的缓存中有相关域名的解析记录(例如,在最近一段时间内,DNS服务器解析过此域名的IP后,会将相关记录保存在缓存中,且该记录还没有被删除),则DNS服务器会到缓存中提取域名所对应的解析IP地址返回给用户;(策略三)迭代查询用户查询的域名为非本地域名,且需要查询的域名在DNS 的缓存中也没有相关记录,则需要通过迭代过程查询该域名对应的IP地址,以查询www. XXXX. com. yy为例,其迭代查询过程如下步骤1,用户主机将域名查询请求发给本地DNS服务器;步骤2,本地DNS服务器收到请求后在本地域名数据库及缓存中查找;步骤3,若DNS服务器在本地域名数据库及缓存中未查询到相关记录,本地DNS服务器向自己的根域服务器发出解析请求;步骤4,若根域DNS服务器无法解析,则返回管理yy域的DNS服务器的IP地址;步骤5,本地DNS服务器再将请求交给管理yy域的DNS服务器;步骤6,若管理yy域的DNS服务器无法解析,则返回管理com. yy域的DNS服务器的地址;步骤7,本地DNS服务器再次将请求交给管理com. yy域的DNS服务器,管理com. yy域的DNS服务器再返回XXXX. com. yy域名服务器的地址;步骤8,最终,本地DNS服务器从XXXX. com. yy域名服务器获得www. XXXX. com. yy网站服务器的IP地址结果,并将结果返回给接入用户;通过以上策略以及解析过程可以看出,在现有DNS技术体制中,用户发出DNS域名解析请求,运营商DNS接收用户的DNS请求后,首先会查看自己的缓存中是否存在所请求的解析记录,若存在则直接回复该解析记录,若不存在则需要通过迭代查询从互联网内容提供商(Internet Content Provider,简称为ICP)的DNS处获得解析结果,而在整个DNS的解析过程中,运营商的DNS完全是一个通道,不会对ICP DNS所答复的DNS响应中的TTL值做任何修改,仅仅是将DNS响应转发给用户。在上述处理过程中,迭代查询的过程有可能由多个服务器进行参与,这些服务器之间需要进行消息的交互,并且每个参与的服务器都需要进行本地的判断,因此,迭代查询的处理延迟较长,网络中的消息开销也较大。通常情况下,部分DNS解析报文到达用户本地DNS服务器后,其报文生命周期(该周期的长度可以通过报文中的TTL(Time To Live)值标识)较短,例如,DNS服务器可以将 TTL配置为17时,表示该报文只在该DNS服务器的缓存中保留17秒,一旦超过17秒后就将该报文删除,也就是说,在该DNS服务器保存该报文的17秒之内,如果有用户请求同一个域名解析时,就可以采用缓存查询;一旦17秒的生命周期超时后,DNS服务器就会将该报文删除,此时,如果有用户请求该域名的解析时,该DNS服务器就必须采用迭代查询;对于有些报文,其TTL值会被配置为0,也就是说,DNS服务器不会保存该报文,只要用户请求该报文对应域名的解析,就一定会触发迭代查询。另外,在传统的DNS解析流程中,缓存查询及迭代查询在一个物理系统中实现,其彼此之间的实现逻辑顺序是,当之前DNS解析结果的生命周期为0时,解析记录在缓存中删除,若再有用户请求该域名,运营商DNS发起迭代查询,迭代查询的用时通常会比较长(秒级),但是,如果在迭代查询过程中,出现了针对相同DNS域名的解析请求,则运营商DNS会发起同样的域名解析请求以进行迭代查询,也就是说,在此时间段内,相同的域名解析请求被发送多次,因此会同时挂起多个针对同一个域名的解析请求,浪费进程资源及系统资源, 并且每个查询流程都需要执行数秒才能完成。因此,通过以上描述可以看出,目前的DNS域名解析过程中,由于TTL值设置固定、 服务器不会修改器查询得到的域名解析结果中的TTL等原因,不论用户查询相同或不同的域名,都会导致迭代查询被频繁触发,甚至使得DNS系统在短期内重复迭代查询同一个域名的IP地址,降低整个DNS系统的解析效率,增加服务器的处理负担,并且会增加查询的延迟,影响用户体验。目前,针对相关技术中DNS系统的解析效率差、服务器的处理负担大、解析延迟高、用户体验低的问题,尚未提出有效的解决方案。

发明内容
针对相关技术中的问题,本发明提出一种域名查询的实现方法和系统,能够有效避免频繁触发迭代查询,提高查询效率,降低网络负担,提高用户体验。本发明的技术方案是这样实现的根据本发明的一个方面,提供了一种域名查询的实现方法,该方法用于借助逻辑上先后排列的多个缓存处理装置实现域名解析结果的查询,其中,直接从用户侧接收域名解析请求的缓存处理装置为最前一级缓存处理装置。具体地,根据本发明的域名查询的实现方法包括多个缓存处理装置中的每一个接收到域名解析请求后,在各自的缓存区中查找与域名解析请求对应的域名解析结果;如果一个缓存处理装置查到域名解析结果,则将查找到的域名解析结果发送给前一个缓存处理装置,如果一个缓存处理装置未查到域名解析结果,则将域名解析请求发送给下一个缓存处理装置,其中,如果多个缓存处理装置中的第一个缓存处理装置接收或查找到域名解析结果,则发送给域名解析请求的请求方;其中,多个缓存处理装置中除第一个缓存处理装置之外的每个缓存处理装置查找或接收到域名解析结果后,将查找或接收的域名解析结果的生命周期设置为预定的时间长度值后发送给前一个缓存处理装置;并且,多个缓存处理装置中除最后一个缓存处理装置之外的每个缓存处理装置在接收到来自其后的缓存处理装置的域名解析结果后,根据该域名解析结果的生命周期缓存该域名解析结果。其中,如果多个缓存处理装置中的最后一个缓存处理装置未查找到域名解析结果,则方法还包括最后一个缓存处理装置通过根据域名解析请求发起迭代查询,来获取与域名解析请求对应的域名解析结果。该方法还可以包括如果最后一个缓存处理装置中缓存的域名解析结果的生命周期结束,则最后一个缓存处理装置通过触发迭代查询来获取域名解析结果;在最后一个缓存处理装置接收到通过迭代查询的域名解析结果后,将域名解析结果的生命周期设置为预定的时间长度值。并且,最后一个缓存处理装置通过迭代查询得到域名解析结果后,将域名解析结果的生命周期设置为一时间长度值,且该时间长度值不等于最后一个缓存处理装置将域名解析结果发送给其前一个缓存处理装置时对该域名解析结果设置的预定时间长度值。可选地,多个缓存处理装置的数量为两个,其中,一个为前端缓存处理装置,另一个为后端缓存处理装置,且前端缓存处理装置在逻辑上位于后端缓存处理装置之前。在后端缓存处理装置通过迭代查询查找到域名解析结果后,从第三门限值与第四门限值之间选择一随机值作为后端缓存处理装置缓存的域名解析结果的生命周期;在后端缓存处理装置将域名解析结果发送给前端缓存处理装置时,从第一门限值与第二门限值之间选择一随机值作为发送的解析结果的生命周期,其中,第二门限值大于第一门限值,第四门限值大于第三门限值。优选地,第一门限值大于第四门限值,第二门限值小于二倍的第三门限值。此外,其特征在于,每个缓存处理装置通过修改域名解析结果的生存时间值来设置域名解析结果的生命周期。根据本发明的另一方面,提供了一种域名查询的实现系统,包括逻辑上先后排列的多个缓存处理装置,其中,直接从用户侧接收域名解析请求的缓存处理装置为最前一级缓存处理装置。具体地,多个缓存处理装置中的每个缓存处理装置包括缓存区;处理模块,用于在该缓存处理装置中的每一个接收到域名解析请求后,在各自的缓存区中查找与域名解析请求对应的域名解析结果;发送模块,用于在所在缓存处理装置查到域名解析结果的情况下,将查找到的域名解析结果发送给前一个缓存处理装置;以及,用于在所在的缓存处理装置未查到域名解析结果的情况下,将域名解析请求发送给下一个缓存处理装置,并且,如果发送模块所在的缓存处理装置为第一个缓存处理装置,则发送模块还用于将第一个缓存处理装置接收或查找到的域名解析结果发送给域名解析请求的请求方;设置模块,设置于第一个缓存处理装置之外的每个缓存处理装置中,用于在所在的缓存处理装置查找或接收到缓存处理结果后,将查找或接收的域名解析结果的生命周期设置为预定的时间长度值后发送给前一个缓存处理装置,以便接收到该域名解析结果的缓存处理装置根据该域名解析结果的生命周期缓存该域名解析结果。该系统中还可以包括迭代查询模块,设置在最后一个缓存处理装置中,用于在最后一个缓存处理装置的处理模块未查找到域名解析结果的情况下,通过根据域名解析请求发起迭代查询,来获取与域名解析结果。该系统还可以包括控制模块,用于在判断最后一个缓存处理装置中缓存的域名解析结果的生命周期是否结束,并在判断结果为是的情况下控制迭代查询模块根据域名解析请求发起迭代查询。本发明通过多级缓存处理进行域名解析结果的保存,能够有效避免相关技术中单级缓存情况下频繁触发迭代查询的问题,尽可能通过毫秒级的本地缓存查询得到所需的解析结果,并且,通过对TTL值的修改,能够合理配置域名解析结果的生命周期,达到提高解析效率、降低服务器的处理负担、减少解析延迟、提升用户体验低的目的。


图1是根据本发明实施例的域名查询的实现方法的流程图;图2是根据本发明实施例的域名查询的实现系统的框图。
具体实施例方式针对相关技术中DNS系统的解析效率差、服务器的处理负担大、解析延迟高、用户体验低的问题,本发明提出,利用逻辑上排序的多级缓存查询的方式来缓存域名解析结果, 并且,在多级缓存处理装置中,每个缓存处理装置均能够在本地进行域名解析结果的查询, 排序靠后的缓存处理装置可以将其查询到或接收到或通过其他方式得到的域名解析结果发送给前一个缓存处理装置,每个缓存处理装置对其通过非本地查询方式得到的域名解析结果进行保存,并修改该结果中的生命周期(TTL值)。通过本发明的技术方案,借助多级缓存处理进行域名解析结果的保存,能够有效避免相关技术中单级缓存情况下频繁触发迭代查询的问题,提高解析效率、降低服务器的处理负担、减少解析延迟、提升用户体验低。下面将结合附图,详细描述本发明的实施例。根据本发明的实施例,提供了一种域名查询的实现方法,用于借助逻辑上先后排列的多个缓存处理装置实现域名解析结果的查询,其中,逻辑上排序是指多个缓存处理装置经过排序的,并且在查询时,需要根据该排序进行一一查询。如图1所示,根据本发明实施例的域名查询的实现方法包括步骤S101,多个缓存处理装置中的每一个接收到域名解析请求后,在各自的缓存区中查找与域名解析请求对应的域名解析结果;步骤S102,如果一个缓存处理装置查到域名解析结果,则将查找到的域名解析结果发送给前一个缓存处理装置,如果一个缓存处理装置(第一个和最后一个缓存处理装置之外的缓存处理装置)未查到域名解析结果,则将域名解析请求发送给下一个缓存处理装置,其中,如果多个缓存处理装置中的第一个缓存处理装置接收或查找到域名解析结果,则发送给域名解析请求的发送方;其中,多个缓存处理装置中除第一个缓存处理装置之外的每个缓存处理装置查找或接收到域名解析结果后,将查找或接收的域名解析结果的生命周期设置为预定的时间长度值后发送给前一个缓存处理装置;并且,多个缓存处理装置中除最后一个缓存处理装置之外的每个缓存处理装置在接收到来自其后的缓存处理装置的域名解析结果后,根据该域名解析结果的生命周期缓存该域名解析结果。也就是说,对于一个缓存处理装置,其保存的域名解析结果的生命周期长度的设置工作,可以由其下一级缓存处理装置来进行,也可以自行决定,例如,缓存处理装置M可以将缓存的域名解析结果的生命周期设置为1小时,且缓存处理装置M将该域名解析结果发送给缓存处理装置N(缓存处理装置M的前一个缓存处理装置)时,可以将发送的域名解析结果的生命周期设置为45分钟,缓存处理装置N接收到该域名解析结果后,可以根据缓存处理装置M设置的生命周期进行缓存(即,将缓存处理装置M配置的45分钟作为缓存处理装置N缓存的域名解析结果的生命周期);或者,也可以不采用45分钟,而选择其他时间长度(例如,40分钟)作为缓存处理装置缓存的域名解析结果的生命周期,而在缓存处理装置N将该域名解析结果发送给其前一个缓存处理装置、以及前一个缓存处理装置收到缓存处理装置N发送的域名解析结果后,同样可以采用类似的方式,优选地,不论一个缓存处理装置自行设置其缓存的结果的生命周期,还是接受前一个缓存处理装置的设置,多个缓存处理装置保存的域名解析结果的生命周期都应当满足以下条件在多个缓存处理装置在某一时刻保存的某个解析结果不会在之后的同一时刻到期。也就是说,假设存在第一、第二、第三、第四缓存处理装置(即,上述的多个缓存处理装置),这些缓存处理装置均设置在同一地域范围内(例如,这四个缓存处理装置可以设置在同一DNS服务器中,也可以设置在同一区域中的四台DNS服务器中),也就是说,这四个缓存处理装置在进行本地缓存的查询以及在彼此间传输域名解析结果的过程属于本地缓存查询而不是迭代查询,每个缓存处理装置都具有缓存和在缓存中进行查找的功能。具体地,这四个缓存装置在进行查询时的逻辑顺序如下域名解析请求会首先发送至第一缓存处理装置(即,第一个缓存处理装置),如果第一缓存处理装置在其本地的缓存中没有查找到相应的域名解析结果,则第一缓存处理装置会将该域名解析请求发送给第二缓存处理装置;如果第二缓存处理装置在其本地的缓存中没有查找到相应的域名解析结果,则第二缓存处理装置会将该域名解析请求发送给第三缓存处理装置;如果第三缓存处理装置在其本地的缓存中没有查找到相应的域名解析结果,则第三缓存处理装置会将该域名解析请求发送给第四缓存处理装置(即,最后一个缓存处理装置);如果第四缓存处理装置在其本地的缓存中没有查找到相应的域名解析结果,则第四缓存处理装置会根据该域名解析请求触发迭代查询。如果第三缓存处理装置查询到所需的域名解析结果,则第三缓存处理装置将该域名解析结果发送给第二缓存处理装置,之后,第二缓存处理装置将该域名解析结果发送给第一缓存处理装置;最后,第一缓存处理装置将该域名解析结果发送给用户。如果在一次查询当中,第一至第四缓存处理装置均没有查找到所需的域名解析结果,则第四缓存处理装置需要触发迭代查询,在查找到域名解析结果后,第四缓存处理装置需要将该域名解析结果依次经由第三、第二、第一缓存处理装置发送给用户,此时,第四缓存处理装置需要在本地的缓存区中缓存该域名解析结果,如果第四缓存处理装置通过迭代查询得到该域名解析结果,还需要对缓存的域名解析结果的生命周期(TTL值)进行设置; 另外,在将该域名解析结果发送给第三缓存处理装置时,还需要将发送的域名解析结果修改为另一时间长度,而第三缓存处理装置则可以选择根据第四缓存处理装置在发送的域名解析结果中设置的生命周期缓存该域名解析结果,并在将域名解析结果发送给第二缓存处理装置时对发送的域名解析结果的生命周期进行修改。借助于上述处理,能够通过多级缓存处理进行域名解析结果的保存,有效避免相关技术中单级缓存情况下频繁触发迭代查询的问题,并且,通过对TTL值的修改,能够合理配置域名解析结果的生命周期,达到提高解析效率、降低服务器的处理负担、减少解析延迟、提升用户体验低的目的。此外,对于很多较为常用的域名,需要网络对其域名解析结果一直进行保存,因此,在上述的第一至第四缓存处理装置中,一旦第四缓存处理装置(即,最后一个缓存处理装置)发现其本地保存的该域名解析结果的生命周期结束,则可以自动触发迭代查询,之后缓存迭代查询得到的域名解析结果,并将该域名解析结果的TTL值修改为预定值。在相关技术中,部分域名解析结果到达用户本地DNS服务器后,其报文生命周期 (通过报文中的TTL值表示)会很长,例如,TTL = 1年等,也就是说,在1年的时间里,只要有针对同一域名的DNS解析请求,运营商DNS系统都不会再进行迭代查询而直接回复缓存结果,但是,由于ICP自身的调整,其提供服务的服务器IP地址必然会发生变化,也就是说, 此时其DNS解析结果中的应用层信息A记录发生了变化,若将之前的DNS结果返回给用户将导致用户无法进行业务访问及应用,出现DNS中毒的情况。然而,通过最后一个缓存处理装置在其保存的域名解析结果生命结束时自动触发迭代查询,即使之前的缓存处理装置保存的域名解析结果无法有效使用,在这些域名解析结果到期后,也能够通过本发明的上述机制从最后一个缓存处理装置获取正确的域名解析结果,从而避免DNS中毒的问题。另外,为了进一步克服该问题,还可以将每个缓存处理装置的修改TTL值设置为较小的值,这样不仅能够实现正确解析结果的及时更新,还能够通过多级缓存处理装置的配合,保证至少一个缓存处理装置中保存了该域名解析结果,从而不免进行迭代查询。另外,一旦某个缓存处理装置被恶意攻击,也可以将该缓存处理装置直接断开,而维持其他缓存处理装置正常工作,增加整个系统的可靠性。通常,考虑到部署的成本,可以通过设置两个缓存处理装置(即,前端缓存处理装置和后端缓存处理装置,也可以称为运营商的前端DNS服务器和后端DNS服务器,还可以称为运营商DNS系统的前端模块和后端模块)来进行上述处理,并且同样能够达到避免迭代查询、提高系统可靠性的目的。在前端和后端缓存处理装置的部署情况下,其具体的查询实现过程如下
步骤1 用户发送DNS Request请求(即,域名解析请求)给前端缓存处理装置;步骤2 前端缓存处理装置在收到DNS域名解析请求后,查询自己缓存中是否有相应的域名解析结果;步骤3 若有,则不对缓存中的域名解析结果做任何修改,而直接将域名解析结果返回给用户;步骤4 若没有,将该DNS域名解析请求转发给后端缓存处理装置;步骤5 后端缓存处理装置在收到域名解析请求后,查询自己缓存中是否有相应的域名解析结果;步骤6 若有,则从后端缓存处理装置中提取该域名解析结果,并将其中的TTL值改写为[tl,t2]之间的一个随机值,报文重新封装后返回给前端缓存处理装置;步骤7 =DNS前端模块对该报文(域名解析结果)进行缓存;步骤8 =DNS前端模块将该报文(域名解析结果)返回给用户;步骤9 若DNS后端模块没有缓存记录,则DNS后端服务器进行迭代查询,直至ICP 的DNS域名解析服务器将域名解析结果返回给运营商DNS后端模块;步骤10 :DNS后端模块将收到的解析记录进行改写,将其中的TTL值给写为[t3, t4]之间的一个随机值;步骤11 =DNS后端模块将该改写后的解析结果进行本地缓存;步骤12 后端DNS模块将该解析结果进行进一步改写,将解析记录的TTL值改写为[tl,t2]之间的一个随机值,报文重新封装后返回给DNS前端模块;步骤13 =DNS前端模块收到解析记录后,将解析记录缓存在本地;步骤14 前端DNS模块将解析结果返回给用户;类似地,对于四个缓存处理装置的情况,同样能够采用类似的在某一范围内随机选择生命周期值的方式来配置TTL值。优选地,在上述过程中,可以进一步配置如下tl > t4,且t2 < 2*t3,从而保证前端和后端缓存处理装置的解析结果不会同时到期。在具体的设置过程中,例如,假设前端对应的解析结果的生命周期为16小时,后端对应的解析结果的生命周期为9小时;在前端和后端同时保存一个解析结果的情况下, 如果保存后经过9小时,此时,前端缓存的该结果的剩余生命周期长度为7小时,后端自动触发迭代查询后,该解析结果的TTL依然为9小时,再过7小时后,前端查询后端后TTL变更为16小时,后端为2小时,再过2小时后,前端为14小时,后端为9小时,如此反复能够保证在任何时候,用户进行DNS请求时,都最大程度规避在该时刻执行迭代查询,降低查询的延迟和网络负担。通过上述前端和后端的部署方式,能够智能修改并将二级缓存的TTL值设置一定的时间差值,以保证能对ICP返回的不合理TTL值进行智能修改,并且,由于时间差的存在, 完全规避了在用户发起DNS请求时进行DNS迭代查询的可行性,大大提高DNS解析效率、设备性能及安全性。另外,该系统在硬件实现方式上灵活多样,可通过对传统DNS服务器的修改使得传统DNS服务器具备前端DNS服务模块和后端DNS服务模块的功能;可以通过两台硬件服务器分别实现前端DNS服务模块和后端DNS服务模块功能;也可以通过多台前端DNS服务器(每台服务器服务一个区域),一台后端DNS服务器为多台前端DNS服务器服务的硬件架构,有助于进行网络部署。根据本发明的另一实施例,提供了一种域名查询的实现系统。如图2所示,根据本发明实施例的域名查询的实现系统包括逻辑上先后排列的多个缓存处理装置21至2η。其中,多个缓存处理装置中的每个缓存处理装置包括缓存区201 ;处理模块202,用于在该缓存处理装置中的每一个接收到域名解析请求后,在各自的缓存区中查找与域名解析请求对应的域名解析结果;发送模块203,用于在所在缓存处理装置查到域名解析结果的情况下,将查找到的域名解析结果发送给前一个缓存处理装置;以及,用于在所在的缓存处理装置未查到域名解析结果的情况下,将域名解析请求发送给下一个缓存处理装置,并且,如果发送模块所在的缓存处理装置为第一个缓存处理装置,则发送模块还用于将第一个缓存处理装置接收或查找到的域名解析结果发送给域名解析请求的请求方;设置模块204,可以设置于第一个缓存处理装置之外的每个缓存处理装置中,用于在所在的缓存处理装置查找或接收到缓存处理结果后,将查找或接收的域名解析结果的生命周期设置为预定的时间长度值后发送给前一个缓存处理装置,以便接收到该域名解析结果的缓存处理装置根据该域名解析结果的生命周期缓存该域名解析结果。另外,如图所示,设置模块204同样可以设置在第一个缓存处理装置21中,此时, 第一个缓存处理装置21可以不接受其后的缓存处理装置发送的域名解析结果中的生命周期,而由设置模块进行设置。该系统中还可以包括迭代查询模块(未示出),设置在最后一个缓存处理装置中,用于在最后一个缓存处理装置的处理模块未查找到域名解析结果的情况下,通过根据域名解析请求发起迭代查询,来获取与域名解析结果。该系统还可以包括控制模块(未示出),用于在判断最后一个缓存处理装置中保存的域名解析结果的生命周期是否结束,并在判断结果为是的情况下控制迭代查询模块根据域名解析请求发起迭代查询。该系统同样能够执行方法实施例中所描述的处理,且该系统及其中每个缓存处理装置的处理细节也可以参照方法实施例中相应地方的所给出的方式,这里不再重复。综上所述,借助于本发明的上述技术方案,能够通过多级缓存处理进行域名解析结果的保存,有效避免相关技术中单级缓存情况下频繁触发迭代查询的问题,并且,通过对 TTL值的修改,能够合理配置域名解析结果的生命周期,达到提高解析效率、降低服务器的处理负担、减少解析延迟、提升用户体验低的目的;同时,还能够借助多级缓存的架构提高整个系统的可靠性和安全性,通过最后一个缓存处理装置及时进行解析结果的更新,还能够有效避免相关技术中DNS中毒的问题。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种域名查询的实现方法,用于借助逻辑上先后排列的多个缓存处理装置实现域名解析结果的查询,其中,直接从用户侧接收域名解析请求的缓存处理装置为最前一级缓存处理装置,其特征在于,所述方法包括所述多个缓存处理装置中的每一个接收到域名解析请求后,在各自的缓存区中查找与所述域名解析请求对应的域名解析结果;如果一个缓存处理装置查到所述域名解析结果,则将查找到的所述域名解析结果发送给前一个缓存处理装置,如果一个缓存处理装置未查到所述域名解析结果,则将所述域名解析请求发送给下一个缓存处理装置,其中,如果所述多个缓存处理装置中的第一个缓存处理装置接收或查找到所述域名解析结果,则发送给所述域名解析请求的请求方;其中,所述多个缓存处理装置中除第一个缓存处理装置之外的每个缓存处理装置查找或接收到所述域名解析结果后,将查找或接收的所述域名解析结果的生命周期设置为预定的时间长度值后发送给前一个缓存处理装置;并且,所述多个缓存处理装置中除最后一个缓存处理装置之外的每个缓存处理装置在接收到来自其后的缓存处理装置的域名解析结果后,根据该域名解析结果的生命周期缓存该域名解析结果。
2.根据权利要求1所述的实现方法,其特征在于,如果所述多个缓存处理装置中的最后一个缓存处理装置未查找到所述域名解析结果,则所述方法还包括所述最后一个缓存处理装置通过根据所述域名解析请求发起迭代查询,来获取与所述域名解析请求对应的域名解析结果。
3.根据权利要求1所述的实现方法,其特征在于,还包括如果所述最后一个缓存处理装置中缓存的域名解析结果的生命周期结束,则所述最后一个缓存处理装置通过触发迭代查询来获取所述域名解析结果;在所述最后一个缓存处理装置接收到通过迭代查询的所述域名解析结果后,将所述域名解析结果的生命周期设置为预定的时间长度值。
4.根据权利要求1所述的实现方法,其特征在于,所述最后一个缓存处理装置通过迭代查询得到域名解析结果后,将所述域名解析结果的生命周期设置为一时间长度值,且该时间长度值不等于所述最后一个缓存处理装置将所述域名解析结果发送给其前一个缓存处理装置时对该域名解析结果设置的预定时间长度值。
5.根据权利要求1至4中任一项所述的实现方法,其特征在于,所述多个缓存处理装置的数量为两个,其中,一个为前端缓存处理装置,另一个为后端缓存处理装置,且所述前端缓存处理装置在逻辑上位于所述后端缓存处理装置之前。
6.根据权利要求5所述的实现方法,其特征在于,在所述后端缓存处理装置通过迭代查询查找到域名解析结果后,从第三门限值与第四门限值之间选择一随机值作为所述后端缓存处理装置缓存的域名解析结果的生命周期;在所述后端缓存处理装置将域名解析结果发送给所述前端缓存处理装置时,从第一门限值与第二门限值之间选择一随机值作为发送的解析结果的生命周期,其中,所述第二门限值大于所述第一门限值,所述第四门限值大于所述第三门限值。
7.根据权利要求6所述的实现方法,其特征在于,所述第一门限值大于所述第四门限值,所述第二门限值小于二倍的所述第三门限值。
8.根据权利要求1至4中任一项所述的实现方法,其特征在于,每个缓存处理装置通过修改所述域名解析结果的生存时间值来设置所述域名解析结果的生命周期。
9.一种域名查询的实现系统,包括逻辑上先后排列的多个缓存处理装置,其中,直接从用户侧接收域名解析请求的缓存处理装置为最前一级缓存处理装置,其特征在于,所述多个缓存处理装置中的每个缓存处理装置包括缓存区;处理模块,用于在该缓存处理装置中的每一个接收到域名解析请求后,在各自的缓存区中查找与所述域名解析请求对应的域名解析结果;发送模块,用于在所在缓存处理装置查到所述域名解析结果的情况下,将查找到的所述域名解析结果发送给前一个缓存处理装置;以及,用于在所在的缓存处理装置未查到所述域名解析结果的情况下,将所述域名解析请求发送给下一个缓存处理装置,并且,如果发送模块所在的缓存处理装置为第一个缓存处理装置,则所述发送模块还用于将所述第一个缓存处理装置接收或查找到的域名解析结果发送给所述域名解析请求的请求方;所述第一个缓存处理装置之外的每个缓存处理装置中进一步包括设置模块,用于在所在的缓存处理装置查找或接收到缓存处理结果后,将查找或接收的所述域名解析结果的生命周期设置为预定的时间长度值后发送给前一个缓存处理装置, 以便接收到该域名解析结果的缓存处理装置根据该域名解析结果的生命周期缓存该域名解析结果。
10.根据权利要求9所述的实现系统,其特征在于,还包括迭代查询模块,设置在所述最后一个缓存处理装置中,用于在所述最后一个缓存处理装置的处理模块未查找到所述域名解析结果的情况下,通过根据所述域名解析请求发起迭代查询,来获取与所述域名解析结果。
11.根据权利要求9所述的实现系统,其特征在于,还包括控制模块,用于在判断所述最后一个缓存处理装置中缓存的所述域名解析结果的生命周期是否结束,并在判断结果为是的情况下控制所述迭代查询模块根据所述域名解析请求发起迭代查询。
全文摘要
一种域名查询的实现方法和系统,该方法包括每个缓存处理装置接收到域名解析请求后,在各自的缓存区中查找对应的域名解析结果;如果一缓存处理装置查到域名解析结果,则将该结果发送给前一缓存处理装置,如果一缓存处理装置未查到域名解析结果,则将域名解析请求发送给下一缓存处理装置,其中,如果第一个缓存处理装置接收或查找到结果,则发送给域名解析请求的请求方;第一个缓存处理装置之外的其他装置查找或接收到解析结果后,将查找或接收的结果的生命周期设置为预定的时间长度值后发送给前一缓存处理装置;且最后一个缓存处理装置之外的其他装置在接收到来自其后的缓存处理装置的域名解析结果后,根据该域名解析结果的生命周期进行缓存。
文档编号H04L29/12GK102469167SQ20101053278
公开日2012年5月23日 申请日期2010年11月1日 优先权日2010年11月1日
发明者姜欣, 杜建凤, 白爱军 申请人:中国移动通信集团北京有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1