一种DNS预缓存防止错误缓存的系统及方法与流程

文档序号:36938011发布日期:2024-02-02 22:06阅读:27来源:国知局
一种DNS预缓存防止错误缓存的系统及方法与流程

本发明涉及云计算域名解析,具体而言,涉及一种dns预缓存防止错误缓存的系统及方法。


背景技术:

1、域名系统(domain name system,dns)是一种组织成域层次结构的计算机和网络服务命名系统,它用于tcp/ip网络,提供将主机名和域名转换为ip地址的服务。rfc1035是域名系统的核心标准,规范了命名规则、数据格式、通信协议(数据单位)、部署机制等技术要素。

2、然而,随着互联网技术的飞速发展及各种业务场景的复杂化、多样化,rfc1035中定义的dns消息格式、消息内容,已经不足以支撑当前dns系统的复杂化、多样化。因此,在rfc2671中提出了一种扩展dns机制edns(extension mechanisms for dns),以此适应dns系统的多样化,这也为edns-client-subnet(ecs)协议提供了支持。

3、ecs协议支持localdns(local name server,本地dns)传递用户的实际ip地址给权威域名服务器,该过程也称为localdns携带ecs向权威服务器发起请求。权威服务器的智能dns解析也运用ecs协议,权威服务器根据请求用户ip地址(ecs)来对同一域名作出不同解析。

4、localdns用于递归解析域名请求,并提供缓存服务。目前localdns为了降低用户等待递归查询的时间,提供了localdns缓存及预取功能;其中,localdns缓存分为普通缓存和智能缓存(也称为ecs缓存),普通缓存是全局缓存,智能缓存是按照客户端ip地址段分段缓存;预取功能是在启动域名服务器的时候配置一个预取时间,当某个缓存时间小于等于预取时间时,localdns在后台发起预取递归查询,在此预取时间期间所有查询都会使用旧缓存响应,直到预取递归查询结束再更新缓存。

5、当前localdns在预取普通缓存和智能缓存时,仅能预取同种类型的缓存,不能交替预取,如localdns的ecs不使能,然后查询“www.ab.cn”域名,获取解析响应(此时获取的是普通缓存)后,在线修改ecs使能,在等待一段时间后(确保“www.ab.cn”缓存发生预取),然后开始第二次查询“www.ab.cn”,此时获取的响应依然是普通缓存(理论上应该获取ecs缓存)。这是由于当前localdns中某域名缓存,触发预取时,localdns会直接去预取普通缓存,不检测当前域名查询是否符合ecs配置,因此不预取智能ecs缓存,这样造成该域名查询一直获取的是普通缓存,无法获取智能缓存,影响到某些功能的正常使用,降低了用户体验。


技术实现思路

1、鉴于此,本发明的目的在于设计一种dns预缓存防止错误缓存的方法,当某客户端域名查询处在缓存预取期间时,直接把缓存返回给客户端,localdns等待预取查询返回后,更新缓存;同时在localdns中增加ecs检测模块,在预取递归查询时首先经过该ecs检测模块,如果预取递归查询符合ecs配置,则会在该ecs检测模块中加入相应的ecs,再发起预取递归查询;如果预取递归查询不符合ecs配置,则会在该ecs检测模块中删除ecs,再发起预取递归查询,以此达到普通缓存和智能缓存交替预取的目的,避免预取错误缓存,从而保障相关功能的正常使用,提升用户体验感。

2、本发明提供一种dns预缓存防止错误缓存的系统,包括:客户端、localdns服务器、权威dns服务器;所述客户端与所述localdns服务器之间信号连接,所述localdns服务器与所述权威dns服务器之间信号连接;

3、所述客户端发起域名查询预取请求;

4、所述localdns服务器在收到客户端的用户解析请求时,向客户端返回一个准确的查询结果,如localdns服务器缓存没有对应的解析记录,则需要询问其他权威dns服务器,直到将最终的查询结果响应给客户端用户;

5、localdns服务器(local name server,本地dns)比如:电脑、手机等终端配置的上网用的dns,提供dns缓存和递归的服务。

6、所述权威dns服务器是域名注册商处所设置的dns服务器,用于特定域名本身的管理,包括:增加、删除、修改。

7、例如:负责www.ab.cn解析的域名服务器。若支持智能解析,权威dns服务器会根据用户ip返回离他最优的解析结果(一般是最近的地址)。

8、进一步地,所述localdns服务器包括:ecs检测模块,所述ecs检测模块包括:

9、ecs配置子模块:用于获取localdns的最新ecs配置,进而及时获取在线使能的配置;

10、检测当前预取请求子模块:用于检测当前预取请求是否符合ecs配置,根据最新的ecs配置处理预取请求;

11、添加删除ecs子模块:根据所述检测当前预取请求子模块的检测结果,做出添加或者删除ecs的处理动作。

12、本发明还提供一种dns预缓存防止错误缓存的方法,应用于如上述所述的dns预缓存防止错误缓存的系统,包括以下步骤;

13、s1、由客户端发起域名查询预取请求;

14、s2、在localdns服务器增设ecs检测模块,进行使能或不使能的ecs配置,检测当前预取请求是否符合所述ecs配置,根据最新的ecs配置处理预取请求;

15、ecs(edns client subnet)是edns客户端子网。localdns服务器在递归请求时若携带ecs,支持智能解析的权威dns服务器根据ecs地址(而不是localdns的出口ip)响应离该地址最近的解析结果。

16、ecs使能(或不使能)是在不关闭重启localdns的情况下,在线开启(或不开启)ecs配置。

17、s3、根据实际的ecs配置交替预取普通缓存和智能ecs缓存,包括:

18、从普通缓存预取ecs缓存;

19、从智能缓存(ecs缓存)预取普通缓存;

20、普通缓存是localdns全局缓存,对所有客户缓存一样的解析结果。普通缓存优先于智能缓存,即若普通缓存有请求域名的解析数据,则直接响应,而不会再查看智能缓存。

21、智能缓存(ecs缓存)是localdns按请求地址段为索引的分区缓存。权威dns服务器根据请求用户子网来对同一域名作出不同解析响应(通常是离用户子网地址最近的ip),localdns根据域名和子网段存储域名解析结果。

22、缓存预取(prefetch)是localdns在缓存过期前主动去权威dns查询最新的解析并更新缓存。通常普通缓存预取时不携带ecs地址,而智能ecs缓存预取时会携带ecs。

23、s4、针对localdns的ecs使能、权威dns的ecs使能偶尔出错现象,做出添加或者删除ecs的处理,避免预取错误缓存。

24、递归:localdns服务器在收到用户解析请求时,如果dns服务器缓存没有对应的解析记录,或者在预取缓存时,需要询问其他权威dns服务器,这个过程叫递归。

25、进一步地,所述s3步骤的根据实际的ecs配置交替预取普通缓存和智能ecs缓存的方法包括:

26、由localdns服务器检查本地缓存是否可以响应请求,如果缓存存在,则直接用缓存响应客户端。

27、进一步地,所述s3步骤的根据实际的ecs配置交替预取普通缓存和智能ecs缓存的方法包括:

28、由localdns服务器检查本地缓存是否满足预取条件,如果本地缓存满足预取条件,则ecs检测模块检测是否需要添加删除ecs;

29、如果需要添加ecs,则根据客户端请求添加ecs,然后由客户端发起预取递归查询;

30、如果需要删除ecs,则直接删除ecs,然后由客户端发起预取递归查询;等待预取递归查询结束,更新本地缓存。

31、进一步地,所述s3步骤的从普通缓存预取ecs缓存的方法包括以下步骤:

32、s311、初始化配置localdns服务器不使能ecs;

33、s312、由客户端发起第一次查询;

34、s313、从localdns服务器响应普通缓存;

35、s314、配置localdns服务器使能ecs,localdns服务器发生预取查询时携带ecs;

36、s315、从权威dns服务器响应ecs缓存;

37、s316、由客户端发起第二次查询;

38、s317、从localdns服务器响应ecs缓存。

39、进一步地,所述s3步骤的从智能缓存预取普通缓存的方法包括以下步骤:

40、s321、初始化配置localdns服务器使能ecs;

41、s322、由客户端发起第一次查询;

42、s323、从localdns服务器响应ecs缓存;

43、s324、配置localdns服务器不使能ecs,localdns服务器发生预取查询时不携带ecs;

44、s325、从权威dns服务器响应普通缓存;

45、s326、由客户端发起第二次查询;

46、s327、从localdns服务器响应普通缓存。

47、进一步地,所述s4步骤的针对localdns的ecs使能、权威dns的ecs使能偶尔出错现象,做出添加或者删除ecs的处理的方法包括以下步骤:

48、s41、初始化配置localdns服务器和权威dns服务器都使能ecs;

49、s42、由客户端发起第一次查询;

50、s43、由localdns服务器响应从权威dns服务器递归查询到的ecs结果,并存入本地;

51、s44、由localdns服务器响应客户端ecs缓存;

52、s45、配置权威dns服务器不使能ecs(模拟权威dns响应偶尔出错场景),localdns服务器预取缓存时携带ecs;权威dns服务器响应普通缓存;

53、s46、由客户端发起第二次查询;

54、s47、由localdns服务器响应普通缓存;

55、s48、从权威dns服务器使能ecs(模拟权威dns恢复场景),localdns预取缓存时携带ecs;权威dns服务器响应ecs缓存3.3.3.3;

56、s49、由客户端发起第三次查询;

57、s410、从localdns服务器响应ecs缓存。

58、本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述所述的dns预缓存防止错误缓存的方法的步骤。

59、本发明还提供一种计算机设备,所述计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述所述的dns预缓存防止错误缓存的方法的步骤。

60、与现有技术相比,本发明的有益效果在于:

61、本发明dns预缓存防止错误缓存的方法通过当localdns中缓存快过期时预先递归获取新的缓存,增设ecs检测模块,检测当前预取递归查询是否需添加或删除ecs,再发起预取递归查询,以获取普通缓存或者智能缓存;根据实际localdns配置可交替预取普通缓存和智能ecs缓存,有效提高了缓存的精准性,保障了相关功能的正常使用;同时提高了localdns响应用户查询的速度,提升了用户体验感。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1