一种防止DNS强解结果被污染的方法及系统与流程

文档序号:12600721阅读:538来源:国知局
一种防止DNS强解结果被污染的方法及系统与流程

本发明涉及计算机DNS解析和管理技术领域,具体地说,是涉及一种防止DNS强解结果被污染的方法及系统。



背景技术:

目前计算机域名服务器(Domain Name System,简称DNS)领域中,一些广电、运营商或其它接入商为了网站缓存等需求,需要对某些域名的指定类型查询进行强制解析,更改向外部查询返回的真正解析结果,其它类型的查询返回正常查询结果。因为内容分发网络(Content Delivery Network,简称CDN)等技术需要,大量的域名配置了多级的CNAME重定向,因此配置强制解析的域名通常为CNAME链上的某一级域名。

强解机制存在以下缺陷:因为通常只强解域名的指定类型查询结果,当DNS服务器处理强解域名或强解域名CNAME链上游某级域名的非强解类型查询时,可能引入强解域名的CNAME类型缓存。如果强解域名的CNAME类型记录进入缓存早于强解类型查询触发,或者CNAME类型缓存时间长于强解类型缓存,会导致DNS服务器处理强解类型查询时使用该CNAME缓存,不向外发出强解域名的强解类型查询,引起强解机制失效。



技术实现要素:

为解决上述技术问题,本发明提供了一种防止DNS强解结果被污染的方法,该方法包括:

DNS递归或缓存服务器缓存CNAME类型的资源记录并标注引入CNAME缓存的查询类型;

当处理查询请求时,检查所述CNAME缓存标注中的查询类型是否包含所述查询请求的查询类型,若是,则使用所述CNAME缓存继续查询,若否,则根据预先配置的查询规则向外发出查询请求。

优选地,所述检查所述CNAME缓存标注中的查询类型是否包含所述查询请求的查询类型包括:

若所述CNAME缓存为多级缓存,则检查每级CNAME缓存标注的查询类型是否包含所述查询请求的查询类型。

优选地,所述查询请求包括客户端发送的查询请求或者所述DNS递归或缓存服务器触发的查询请求。

优选地,在所述根据预先配置的查询规则向外发出查询请求之后,所述方法还包括:

接收所述查询请求的响应消息;

将所述响应消息中的资源记录存入缓存。

优选地,将所述响应消息中的资源记录存入缓存包括:

判断是否存在有效的同名CNAME缓存,若是,则更新CNAME缓存并将当前查询类型合并至所述CNAME缓存标注的查询类型集合;若否,则将所述CNAME记录存入缓存,并将查询类型存入所述缓存标注的查询类型集合。

本发明还提供了一种防止DNS强解结果被污染的系统,其特征在于,所述系统包括:

缓存模块,用于DNS递归或缓存服务器缓存CNAME类型的资源记录并标注引入CNAME缓存的查询类型;

查询模块,用于当处理查询请求时,检查所述CNAME缓存标注中的查询类型是否包含所述查询请求的查询类型,若是,则使用所述CNAME缓存继续查询,若否,则根据预先配置的查询规则向外发出查询请求。

优选地,所述查询模块还用于:

若所述CNAME缓存为多级缓存,则检查每级CNAME缓存标注的查询类型是否包含所述查询请求的查询类型。

优选地,所述查询请求包括客户端发送的查询请求或者所述DNS递归或缓存服务器触发的查询请求。

优选地,所述缓存模块还用于:

接收所述查询请求的响应消息;

将所述响应消息中的资源记录存入缓存。

优选地,所述缓存模块还用于:

判断是否存在有效的同名CNAME缓存,若是,则更新CNAME缓存并将当前查询类型合并至所述CNAME缓存标注的查询类型集合;若否,则将所述CNAME记录存入缓存,并将查询类型存入所述缓存标注的查询类型集合。

与现有技术相比,本发明提供一种防止DNS强解结果被污染的方法及系统,解决了广电、运营商或其他接入提供商因为网站镜像等需求,将某些域名的指定类型查询结果进行强解的时候,碰到缓存中存在的CNAME类型缓存记录干扰了强解结果的问题。

附图说明

图1为本发明一优选实施例中防止DNS强解缓存污染的方法流程示意图;

图2为本发明CNAME缓存流程示意图;

图3为本发明CNAME查询流程示意图;

图4为本发明另一优选实施例中防止DNS强解缓存污染的系统结构示意图。

具体实施方式

为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。

网络服务提供商为了实现访问加速的效果,对某些网站做了本地镜像,通过在DNS服务器上配置强制解析策略,当接收到客户端对这些网站域名的解析请求,直接返回强解策略中指定的镜像服务器IP地址,不返回真正的解析结果。本发明中的强解结果指的是DNS服务器对指定域名不返回正常解析流程的查询结果,直接返回设定的解析结果。

参照图1所示,本发明一优选实施例中提供了一种防止DNS强解结果被污染的方法,该方法包括:

S110、DNS递归或缓存服务器缓存CNAME类型的资源记录并标注引入CNAME缓存的查询类型。

标注引入CNAME缓存的查询类型可以方便根据该查询类型判断是否可以在本地进行缓存的查找。

参照图2所示,为CNAME缓存流程,包括:

DNS递归或缓存服务器接收到客户端请求或者自身机制触发向外查询后,接收反馈的DNS响应消息,在将得到的DNS响应消息中资源记录存入缓存时,对于CNAME类型的缓存进行特殊处理。

如果该缓存不是CNAME缓存,则将其存入到缓存中,如果是CNAME缓存,则查询缓存中是否存在同名的CNAME缓存,且该缓存仍然有效,如果存在有效的CNAME缓存,更新CNAME缓存,然后将当前查询类型合并至CNAME缓存标注的查询类型集合;否则将CNAME记录存入缓存,同时将查询类型存入该缓存标注的查询类型集合。

S120、当处理查询请求时,检查CNAME缓存标注中的查询类型是否包含查询请求的查询类型,若是,则使用CNAME缓存继续查询,若否,则根据预先配置的查询规则向外发出查询请求。

参照图3所示,为CNAME缓存查询的处理流程,其中,查询请求包括客户端发送的查询请求或者DNS递归或缓存服务器自身触发的查询请求。

具体地,当DNS递归与缓存服务器接收到客户端查询请求或者自身机制触发查询时,会首先查询本服务器缓存,如果查询中碰到CNAME缓存,检查该CNAME缓存中标注的查询类型,如果标注中的查询类型包含当前的查询类型,则使用该缓存进行下一步查询,否则忽略该CNAME缓存,根据配置的规则向外发出查询请求。

可选的,如果查询中碰到多级缓存,对于每一级CNAME缓存都先检查标注的查询类型,如果包含当前查询类型,则使用该缓存进行下一步查询,否则忽略该CNAME缓存,根据配置规则查询该级域名。

本发明实施例提供了一种防止DNS强解结果被污染的方法,解决了广电、运营商或其他接入提供商因为网站镜像等需求,通过对CNAME缓存的查询类型标注和查询,可以避免在强制解析中引入不必要的CNAME类型缓存,造成对强制解析的干扰。

参照图4所示,在本发明另一优选实施例中提供了一种防止DNS强解结果被污染的系统,该系统包括:

缓存模块410,用于DNS递归或缓存服务器缓存CNAME类型的资源记录并标注引入CNAME缓存的查询类型;

查询模块420,用于当处理查询请求时,检查CNAME缓存标注中的查询类型是否包含查询请求的查询类型,若是,则使用CNAME缓存继续查询,若否,则根据预先配置的查询规则向外发出查询请求。

其中,查询请求包括客户端发送的查询请求或者DNS递归或缓存服务器触发的查询请求。

具体地,查询模块420还用于:

若CNAME缓存为多级缓存,则检查每级CNAME缓存标注的查询类型是否包含查询请求的查询类型。

具体地,缓存模块410还用于:

接收查询请求的响应消息;

将响应消息中的资源记录存入缓存;

判断是否存在有效的同名CNAME缓存,若是,则更新CNAME缓存并将当前查询类型合并至CNAME缓存标注的查询类型集合;若否,则将CNAME记录存入缓存,并将查询类型存入缓存标注的查询类型集合。

本发明实施例提供了一种防止DNS强解结果被污染的系统,缓存模块410对CNAME进行缓存和类型标记,查询模块420可根据CNAME缓存在本地进行查询,解决了广电、运营商或其他接入提供商因为网站镜像等需求,将某些域名的指定类型查询结果进行强解的时候,碰到缓存中存在的CNAME类型缓存记录干扰了强解结果的问题。

可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

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