基于嵌套视图的DNS解析方法及其系统
技术领域
本发明属于通信技术领域,具体涉及一种基于嵌套视图的DNS解析方法及其系统。
背景技术
域名系统(Domain Name System,简称DNS)主要用于完成从域名到互联网协议(Internet Protocol,简称IP)地址的映射及其他互联网资源的解析,是当今互联网中重要的基础设施。
DNS包括递归服务器和权威服务器。目前,主流的DNS服务器均支持视图功能,DNS服务器根据不同的网络用户而返回不同的查询结果。视图的原理是:权威服务器管理员配置多个视图,每个视图对应一个IP地址的集合和区数据,如果DNS客户端查询IP被第一个视图的包含时,就会使用第一个视图中配置的区数据来进行解析,否则就判断一下视图,然后再进行解析。如果所有的视图都不包含用户的查询IP时,权威服务器将返回请求拒绝的消息。
例如:中国存在南电信和北网通,二者之间互访延迟很大,为了提高访问速度,可在电信和网通线路上各架设一台服务器,其中一台接入电信专线,一台接入网通专线。如果要让用户透明的访问此网站,不需要用户进行人工的网站选择,对此可以采用DNS服务器中的视图功能,让不同的IP指向不同的网络上的主机,当电信的用户和网通的用户发起相同的域名解析请求时,通过使用视图使不同的用户访问不同视图里的资源记录,DNS服务器根据来自不同的网络用户的访问请求,将相同的域名解析成不同的IP,实现网通用户访问返回解析结果为网通的IP,电信用户访问返回解析结果为电信的IP,使用户可以访问离他最近的那台服务器,以增加用户的访问速度。因此,视图分得越细,客户越能获得更好的上网体验。
多视图存在如下问题:许多应用服务提供商不能像大型网络公司那样在每个视图中均架设一台服务器,而各个视图之间相互独立,没有共享,导致在各个划分的视图里存在大量相同的资源记录,造成严重冗余和资源浪费;每划分一个视图,将导致视图中冗余的资源记录成倍的增长,大量的数据存取操作降低DNS服务器的运行速度。当对多个视图中冗余的资源记录进行修改时,须在各个视图中对该资源记录进行同步更新,造成重复繁琐操作,出现修改前后资源记录不一致,导致解析错误。
发明内容
本发明提供一种基于嵌套视图的DNS解析方法及其系统,其可以降低资源记录的冗余和数据量,实现资源共享,提高DNS服务器的运行速度。
为实现上述目的,本发明提供一种基于嵌套视图的DNS解析方法,该基于嵌套视图的DNS解析方法包括:
划分多个视图,形成嵌套视图的区;
设置多级父视图,形成各级父视图;
判断客户端IP所属的子视图;
判断在所述所属的子视图中是否存在用户所需的资源记录,若不存在,则判断在所述各级父视图中是否存在用户所需的资源记录,若存在,则用所述资源记录进行解析。
进一步地,所述划分多个视图,形成子视图之前包括:
预先配置多个视图,每个视图对应一个IP地址的集合和区数据。
进一步地,所述划分多个视图,形成嵌套视图的区:
根据视图配置的规则:按行政区域划分,一个省或者一个市下细分了多个视图,则由此规则逆向上建立嵌套视图:将一个省或市中的各视图划归为一个区。
进一步地,所述设置多级父视图,形成各级父视图包括:
在所述一个区中设置一级父视图,以存储所述子视图中相同的资源记录,所述子视图中不再存储所述相同的资源记录;
在所述一级父视图中设置二级父视图,以存储所述一级父视图中相同的资源记录,所述一级父视图中不再存储所述相同的资源记录,依次设置直至顶级视图。
进一步地,还包括:
若判断出在所属的子视图中存在用户所需的资源记录时,则用所述资源记录进行解析。
为实现上述目的,本发明提供一种基于嵌套视图的DNS解析系统,该基于嵌套视图的DNS解析系统包括:
划分单元,用于划分多个视图,形成子视图;
设置单元,用于设置多级父视图,形成各级父视图;
第一判断单元,用于判断客户端IP所属的子视图;
第二判断单元,用于判断在所述所属的子视图中是否存在用户所需的资源记录,若不存在,则判断在所述各级父视图中是否存在用户所需的资源记录,若存在,则用所述资源记录进行解析。
进一步地,所述设置单元包括:
第一设置子单元,用于在所述一个区中设置一级父视图,以存储所述子视图中相同的资源记录,所述子视图中不再存储所述相同的资源记录;
第二设置子单元,用于在所述一级父视图中设置二级父视图,以存储所述一级父视图中相同的资源记录,所述一级父视图中不再存储所述相同的资源记录,依次设置直至顶级视图。
进一步地,还包括:
预设单元,用于预先配置多个视图,每个视图对应一个IP地址的集合和区数据。
进一步地,所述划分单元,用于划分多个视图,形成嵌套视图的区具体包括:
根据视图配置的规则:按行政区域划分,一个省或者一个市下细分了多个视图,则由此规则逆向上建立嵌套视图:将一个省或市中的各视图划归为一个区。
进一步地,第二判断单元,用于判断在所述所属的子视图中是否存在用户所需的资源记录还包括:
若判断出在所属的子视图中存在用户所需的资源记录时,则用所述资源记录进行解析。
本发明提供的基于嵌套视图的DNS解析方法及其系统中,对具有大量相同资源记录的视图,将其划分到一个区域,并在该区域中增设父视图,父视图存储各子视图中相同的资源记录,子视图中将不再存储该资源记录,可以依此将视图一级一级地嵌套建立起来,形成一个结构树,最大限度的实现资源记录的共享,同时又可以不断的细分视图,带给用户更好的上网体验,进一步降低资源记录的冗余和数据量,实现资源共享,提高DNS服务器的运行速度。
附图说明
图1为本发明实施例一提供的一种基于嵌套视图的DNS解析方法的流程示意图;
图2为本发明实施例二提供的一种基于嵌套视图的DNS解析系统的结构示意图。
具体实施方式
为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。
图1为本发明实施例一提供的一种基于嵌套视图的DNS解析方法的流程示意图,如图1所示,该基于嵌套视图的DNS解析方法包括:
步骤S101、划分多个视图,形成子视图。
具体地,按照视图原理,可预先在权威服务器中配置多个视图,每个视图对应一个IP地址的资源记录,根据每个视图中具有的资源记录。将具有相同资源记录的视图划分至一个区域,从而形成子视图。
步骤S102、设置多级父视图,形成嵌套视图的区。
进一步地,设置多级父视图包括:
步骤S1021、在划分出来的一个区域中设置一级父视图,以存储子视图中相同的资源记录,子视图中不再存储该相同的资源记录。
步骤S1022、在一级父视图中设置二级父视图,以存储一级父视图中相同的资源记录,一级父视图中不再存储该相同的资源记录,依次设置直至顶级视图。
步骤S103、判断客户端IP所属的子视图。
具体地,DNS服务器接收用户发起的解析请求,判断该解析请求属于哪一个子视图。
步骤S104、判断在所述所属的子视图中是否存在用户所需的资源记录,若不存在,则判断在所述各级父视图中是否存在用户所需的资源记录,若存在,则用所述资源记录进行解析。
具体地,在所属的子视图中查找用户所需的与解析请求对应的解析响应,即资源记录,若在所属子视图中存在所需的资源记录,则用该资源记录进行解析操作,若在所属子视图中不存在所需的资源记录,则向一级父视图中查找所需的资源记录,若一级父视图中存在所需的资源记录,则用该资源记录进行解析操作,若一级父视图中不存在所需的资源记录,则向二级父视图中查找所需的资源记录,依次逻辑直至顶级视图,由此建立起不断收缩的嵌套视图,分级管理各个区域的资源记录,实现达到最大限度的资源共享。
本发明提供的基于嵌套视图的DNS解析方法中,对具有相同资源记录的视图,将其划分到一个区域,并在该区域中增设父视图,父视图存储各子视图中相同的资源记录,子视图中将不再存储该资源记录,可以依此将视图一级一级地嵌套建立起来,形成一个结构树,最大限度的实现资源记录的共享,同时又可以不断的细分视图,带给用户更好的上网体验,进一步降低资源记录的冗余和数据量,实现资源共享,提高DNS服务器的运行速度。
图2为本发明实施例二提供的一种基于嵌套视图的DNS解析系统的结构示意图,如图2所示,该基于嵌套视图的DNS解析系统包括:划分单元21、设置单元22、第一判断单元23和第二判断单元24,其中,划分单元21用于划分多个视图,形成子视图,设置单元22用于设置多级父视图,形成各级父视图,第一判断单元23用于判断客户端IP所属的子视图,第二判断单元24用于判断在所述所属的子视图中是否存在用户所需的资源记录,若不存在,则判断在所述各级父视图中是否存在用户所需的资源记录,若存在,则用所述资源记录进行解析。
优选地,设置单元22包括第一设置子单元221和第二设置子单元222。第一设置子单元221用于在一个区域中设置一级父视图,以存储子视图中相同的资源记录,子视图中不再存储相同的资源记录;第二设置子单元222用于在一级父视图中设置二级父视图,以存储一级父视图中相同的资源记录,一级父视图中不再存储相同的资源记录,依次设置直至顶级视图。
进一步地,该基于嵌套视图的DNS解析系统还包括:预设单元25。预设单元25用于预先设置多个视图,每个视图中具有相应的资源记录。划分单元21划分多个视图,形成子视图具体包括:将具有相同资源记录的视图划分至一个区域,形成子视图。若第二判断单元24判断出在所属的子视图中存在用户所需的资源记录时,则用所述资源记录进行解析。
具体地,按照视图原理,可预先在权威服务器中配置多个视图,每个视图对应一个IP地址的资源记录,根据每个视图中具有的资源记录,划分单元21将具有相同资源记录的视图划分至一个区域,从而形成子视图。第一设置子单元221和在划分出来的一个区域中设置一级父视图,以存储子视图中相同的资源记录,子视图中不再存储该相同的资源记录。第二设置子单元222在一级父视图中设置二级父视图,以存储一级父视图中相同的资源记录,一级父视图中不再存储该相同的资源记录,依次设置直至顶级视图。DNS服务器接收用户发起的解析请求,第一判断单元23判断该解析请求属于哪一个子视图,第二判断单元24判断在所属的子视图中是否存在用户所需的资源记录,若在所属子视图中存在所需的资源记录,则用该资源记录进行解析操作,若在所属子视图中不存在所需的资源记录,则向一级父视图中查找所需的资源记录,若一级父视图中存在所需的资源记录,则用该资源记录进行解析操作,若一级父视图中不存在所需的资源记录,则向二级父视图中查找所需的资源记录,依次逻辑直至顶级视图,由此建立起不断收缩的嵌套视图,分级管理各个区域的资源记录,实现达到最大限度的资源共享。
本发明提供的基于嵌套视图的DNS解析系统中,对具有相同资源记录的视图,将其划分到一个区域,并在该区域中增设父视图,父视图存储各子视图中相同的资源记录,子视图中将不再存储该资源记录,可以依此将视图一级一级地嵌套建立起来,形成一个结构树,最大限度的实现资源记录的共享,同时又可以不断的细分视图,带给用户更好的上网体验,进一步降低资源记录的冗余和数据量,实现资源共享,提高DNS服务器的运行速度。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。