DNS分流解析方法、DNS服务器及计算机可读存储介质与流程

文档序号:24717678发布日期:2021-04-16 14:35阅读:417来源:国知局
DNS分流解析方法、DNS服务器及计算机可读存储介质与流程
dns分流解析方法、dns服务器及计算机可读存储介质
技术领域
1.本发明涉及网络通信技术领域,具体涉及一种dns分流解析方法、dns服务器及计算机可读存储介质。


背景技术:

2.域名系统(domain name system,简称dns)是有着自身层次结构的命名系统,将域名和ip地址相互映射,形成一个分布式数据库系统。dns系统中dns服务器是按照层次安排的,每一个dns服务器都只对域名系统中的一部分进行管辖,根据dns服务器所起的作用,划分为根域名服务器、顶级域名服务器、权限域名服务器、本地域名服务器等。通常当dns服务器接收到用户访问域名而产生的域名解析请求时,会依次经过根域名服务器、顶级域名服务器、权限域名服务器、本地域名服务器等,进行多层迭代查询,dns服务器每一层的迭代查询都会产生大量的迭代流量。
3.当域名解析结果包含多层cname记录(别名记录)和地址记录(a记录)时,逐层转发多层cname记录始终会迭代第一层cname记录,从而产生了大量的迭代流量,更加加重了dns服务器的流量负担。若不逐层转发多层cname记录,而直接返回域名解析结果,虽然能够减少迭代流量,但域名解析结果的实时性和准确性不能得到保证。
4.因此,亟待提供一种技术方案,能够为指定域名提供精准的解析服务,为其他对实时性和准确性要求较低的域名提供无需逐层迭代查询的解析服务,从而在保证指定域名解析结果的准确性的同时,减少域名解析结果包含多层cname记录时产生的大量迭代流量。


技术实现要素:

5.针对以上问题,本发明提供了一种dns分流解析方法,能够为指定域名提供精准的解析服务,为其他对实时性和准确性要求较低的域名提供无需逐层迭代查询的解析服务,以减少转发多层cname记录时产生的大量迭代流量。
6.在本发明的技术方案中,提出了一种dns分流解析方法,包括以下步骤:
7.步骤s1,接收用户的解析请求;
8.步骤s2,若解析请求中的目标域名与预先设置的域/域名匹配,则执行步骤s3,若不匹配,则执行步骤s4;
9.步骤s3,根据针对该域/域名选定的处理方式,择一执行s31或者s32:
10.步骤s31,将目标域名转发至专属服务器,以获得专属服务器针对目标域名的解析结果,
11.步骤s32,对目标域名进行第一迭代查询,以获得第一迭代查询针对目标域名的解析结果;
12.步骤s4,将目标域名转发至公共服务器,以获得公共服务器针对目标域名的解析结果。
13.在本发明的技术方案中,dns分流解析方法通过上述步骤实现了对目标域名的分
级,即不同的域名匹配不同的解析路径和解析方式,初步实现了对dns域名解析的流量分配。并且根据用户的需求,配置域/域名及专属服务器、第一迭代查询方式及公共服务器,能够为匹配域/域名的目标域名提供专属转发/迭代服务,从而保证匹配域/域名的目标域名解析结果的准确性。
14.在本发明的技术方案中的dns分流解析方法,若针对目标域名的解析结果中包含cname记录,则执行:
15.步骤s5,若cname记录中的别名与预先设置的域/域名匹配,则执行步骤s3,若不匹配,则执行步骤s32。
16.通过步骤s5,当目标域名的解析cname记录中的别名与预先设置的域名匹配时,能够为cname记录中的别名提供专属转发/迭代服务,从而使得,当解析请求的域名非指定域名,但别名为指定域名时,也可以将解析请求转发至专属服务器进行解析。
17.在本发明的技术方案中的dns分流解析方法,在执行步骤s4时,若公共服务器对目标域名的解析结果中包含cname记录和a记录,则执行:
18.步骤s6,若cname记录中的别名与预先设置的域名匹配,则执行步骤s3,若不匹配,则根据转发信任开关,将cname记录和a记录返回给用户。
19.通过步骤s6,在保证与预先设置的域名匹配的别名解析结果的准确性的同时,通过转发信任开关,直接将cname记录和a记录返回用户,从而减少了向公共服务器转发多层cname记录产生的大量迭代流量。进一步地,在本发明的技术方案中的dns分流解析方法,在步骤s6中,若解析结果中具有多层cname记录,并且多层cname记录中的别名均与预先设置的域名不匹配,
20.当转发信任开关开启时,将cname记录和a记录直接返回给用户;
21.当转发信任开关关闭时,则逐层转发多层cname记录,并将逐层转发获得的解析结果整理后返回给用户。
22.在上述步骤s6中,转发信任开关能够自行选择开启和关闭。转发信任开关开启时,能够减少解析与预先设置的域名不匹配的别名时转发多层cname记录产生的大量迭代流量;转发信任开关关闭时,能够提供较为准确的解析结果。服务器管理者能够自行选择转发信任开关的开启/关闭,以适应不同需求。
23.在本发明的技术方案中的提供的dns分流解析方法的步骤s5或步骤s6中,若解析结果中具有多层cname记录,并且多层cname记录中的任一别名与预先设置的域名匹配,则根据与预先设置的域名匹配的别名,执行步骤s3。由此,既能够减少转发多层cname记录产生的大量迭代流量,又能够进一步地针对与预先设置的域名匹配的别名进行准确精细的解析。
24.在本发明的技术方案中的dns分流解析方法,若针对目标域名或其别名的解析结果中不包含cname记录并且包含a记录,则将a记录返回给用户。由此,用户能够直接获得域名解析结果。
25.在本发明的技术方案中的dns分流解析方法,目标域名包括:目标域名、目标域名对应的cname记录中的别名、别名对应的cname记录中的别名。域名解析过程中的每一层域名和别名都会经过判断,是否与预先设置的域名匹配,不会受到多层cname记录迭代的影响,只要其与预先设置的域名匹配,即转发至专属服务器,从而最大程度上保证了与预先设
置的域名匹配的域名得到更精细更准确的解析结果。
26.在本发明的技术方案中的dns分流解析方法,在步骤s4中,若目标域名转发至公共服务器得到的解析结果中无cname记录也无a记录,则转至步骤s32进行第一迭代查询并上报为异常结果。以上步骤能够防止公共服务器的缓存中缺少该目标域名或其别名的相应条目而导致得到的解析结果不够完整准确,进行进一步的第一迭代查询还能够防止错过对转发至公共服务器的域名迭代过程中的别名是否与预先设置的域名匹配的判断。
27.在本发明的技术方案中的dns分流解析方法,在步骤s31中,若解析结果中无cname记录也无a记录,则进行第二迭代查询,在第二迭代查询过程中,持续进行迭代查询直至查询到a记录为止。在步骤s31中,目标域名与预先设置的域名匹配,在专属服务器针对目标域名的解析结果中无cname记录也无a记录,则需进行第二迭代查询,即其迭代过程中的别名无需判断是否与预先设置的域名匹配,一直进行迭代查询直至获得准确的解析结果,以保证与预先设置的域名匹配的目标域名解析结果的准确性。
28.本发明还提供了一种dns服务器,包括:
29.处理器;
30.存储器,存储器与处理器通信连接,存储器中存储有计算机程序,经由读取和运行计算机程序,dns服务器能够执行以下步骤:
31.步骤s1,接收用户的解析请求;
32.步骤s2,若解析请求中的目标域名与预先设置的域/域名匹配,则执行步骤s3,若不匹配,则执行步骤s4;
33.步骤s3,根据针对该域/域名选定的处理方式,择一执行s31或者s32:
34.步骤s31,将目标域名转发至专属服务器,以获得专属服务器针对目标域名的解析结果,
35.步骤s32,对目标域名进行第一迭代查询,以获得第一迭代查询针对目标域名的解析结果;
36.步骤s4,将目标域名转发至公共服务器,以获得公共服务器针对目标域名的解析结果。
37.本发明提供的dns服务器,能够将目标域名进行分级,并根据目标域名的分级,分配目标域名的解析路径和方式。dns服务器对目标域名的分级,通过判断域名是否与预先设置的域名匹配来实现,并且对域名的分级,能够根据不同的需求自行定义。
38.本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现能够实现上述dns分流解析方法的步骤,从而提供域名分级服务,并且减少转发多层cname记录时产生的大量迭代流量。
附图说明
39.图1是本发明一个实施方式中提供的dns分流解析方法的流程示意图;
40.图2是图1实施方式中转发信任开关关闭时多层cname迭代流程图;
41.图3是图1实施方式中转发信任开关开启时多层cname迭代流程图;
42.图4是本发明另一个实施方式中提供的dns服务器结构示意图。
43.附图标记:1

dns服务器,2

处理器,3

存储器。
具体实施方式
44.下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本发明的保护范围。
45.dns域名解析就是域名到ip地址的转换过程。ip地址是互联网标识站点的数字地址,为了便于记忆,采用域名来代替ip地址标识站点地址。域名的解析工作由dns服务器完成,dns服务器能够缓存和解析多种dns资源记录,其中包括a记录和cname记录。a记录也称为主机记录,是使用最广泛的dns记录,a记录的基本作用就是说明一个域名对应的ip地址是多少,表示域名和ip地址的对应关系,具体表现形式为www.test.com a 1.1.1.1。cname记录即别名记录,能够将域名解析到另外一个域名(别名),表示域名和别名的对应关系,具体表现形式为www1.test.com cname www2.test.com。进行dns域名解析时,可以直接由a记录得到域名对应的ip地址,也可以由cname记录得到域名对应的别名,再由别名的a记录得到别名对应的ip地址。
46.本实施方式中,提供了一种dns分流解析方法,其具体流程如图1所示:
47.步骤s1,接收用户的解析请求;
48.步骤s2,判断是否命中域名策略的步骤,具体而言,若解析请求中的目标域名与预先设置的域/域名匹配,则执行步骤s3,若不匹配,则执行步骤s4;
49.以预先设置的域名为test.com为例进行说明,在本实施方式提供的dns分流解析方法的步骤s2中,判断目标域名中是否包含test.com。若目标域名中包含test.com,则与预先设置的域名匹配,执行步骤s3;若目标域名中不包含test.com,则与预先设置的域名不匹配,执行步骤s4。其中,预先设置的域/域名的匹配方式包括但并不限于匹配域名中的部分字段,服务器使用者可以根据自身的需求,采用域定义等其他方式,在此并不作限制。
50.步骤s3,根据针对该域/域名选定的处理方式,择一执行s31或者s32:
51.步骤s31,将目标域名转发至专属服务器,以获得专属服务器针对目标域名的解析结果,
52.步骤s32,对目标域名进行第一迭代查询,以获得针对目标域名的解析结果;
53.在本实施方式提供的dns分流解析方法的步骤s3中,与预先设置的域/域名匹配的目标域名有两种解析方式,具体地可以根据预先设置的转发/迭代规则,选择对目标域名进行转发或迭代。其中,转发至的专属服务器可以是一个或多个不同的服务器,均可自行设置,而进行第一迭代查询的服务器可以是本地服务器本身也可以是其他的外部服务器。通过将包含指定域名的解析请求转发至设定的专属服务器或者进行第一迭代查询,可以为与预先设置的域/域名匹配的目标域名提供更加精细准确的解析结果。
54.步骤s4,兜底转发步骤,即将目标域名转发至公共服务器,以获得公共服务器针对目标域名的解析结果。
55.在本实施方式提供的dns分流解析方法的步骤s4中,与预先设置的域/域名不匹配的目标域名被转发至公共服务器,公共服务器可以是由用户自行设置的一个或多个服务器。被转发至公共服务器的目标域名,由于与指定域名执行不同的处理流程,可以省略部分迭代查询步骤,以提高域名解析的效率,减少迭代流量。
56.通过以上步骤s1

s4,本实施方式提供的dns分流解析方法完成了对域名的分级,并对不同分级的域名设定了不同的解析路径和解析方法,由此初步实现了对dns域名解析的流量分配。
57.在本实施方式提供的dns分流解析方法中,若针对目标域名的解析结果中包含cname记录,则执行:
58.步骤s5,若cname记录中的别名与预先设置的域名匹配,则执行步骤s3,若不匹配,则执行步骤s32。
59.在本实施方式提供的dns分流解析方法的步骤s5中,无论其目标域名是否与预先设置的域/域名匹配以及目标域名与预先设置的域/域名匹配后选定了转发或第一迭代查询的解析路径,只要在返回的目标域名的解析结果中包含cname记录,就需要进一步判断上述cname记录中的别名是否与预先设置的域名匹配。通过以上方式,可以防止错过与预先设置的域/域名匹配的别名,而确保能够为预先设置的域/域名提供详细精准的解析结果。
60.在本实施方式提供的dns分流解析方法中,在执行步骤s4时,若公共服务器对目标域名的解析结果中包含cname记录和a记录,则执行:
61.步骤s6,若cname记录中的别名与预先设置的域名匹配,则执行步骤s3,若不匹配,则根据转发信任开关,将cname记录和a记录返回给用户。
62.现有技术中,在转发的解析结果中有cname记录和a记录时,服务器默认不信任该a记录,而去迭代查询cname记录,直到解析结果中不包含cname记录。而在本实施方式提供的dns分流解析方法的步骤s6中,可以选择将与预先设置的域名不匹配的目标域名对应的解析结果中包含的cname记录和a记录直接返回给用户。以此,选择性地省略部分域名的cname记录迭代步骤,从而减少服务器的迭代流量。进一步地,在本实施方式提供的dns分流解析方法的步骤s6中,若解析结果中具有多层cname记录,并且多层cname记录中的别名均与预先设置的域名不匹配,
63.当转发信任开关开启时,将cname记录和a记录直接返回给用户;
64.当转发信任开关关闭时,则逐层转发多层cname记录,并将逐层转发获得的解析结果整理后返回给用户。
65.在本实施方式提供的dns分流解析方法的步骤s6中,在解析结果中具有多层cname记录,并且多层cname记录中的别名均与预先设置的域名不匹配时,配置有转发信任开关,转发信任开关可以根据用户的需求选择开启或关闭。当转发信任开关关闭时,其解析流程如图2所示。用户请求解析目标域名www.1.com,解析www.1.com的结果包含三层cname记录和a记录,默认不信任该a记录。服务器继续逐层转发三层cname记录,转发第一层cname记录www.1.com cname www.2.com中的别名www.2.com至外部递归服务器二,解析www.2.com的结果包含两层cname记录和a记录,默认不信任该a记录。服务器继续转发第二层cname记录www.2.com cname www.3.com中的别名www.3.com至外部递归服务器三,解析www.3.com的结果包含一层cname记录和a记录,默认不信任该a记录。服务器继续转发第三层cname记录www.3.com cname www.4.com中的别名www.4.com,解析www.4.com的结果不包含cname记录并且包含a记录,由a记录得到域名www.4.com对应的ip地址1.1.1.1。最终将逐层迭代查询的结果整合后,返回给用户。
66.以上步骤,逐层迭代查询的过程繁琐,查询时间较长,但最终得到的解析结果较为
精细准确,适用于对解析结果的准确性要求较高的情况。当转发信任开关开启时,其流程如图3所示。用户请求解析目标域名www.1.com,解析www.1.com的结果包含三层cname记录和a记录,通过转发信任开关,直接选择信任该a记录,得到域名www.4.com对应的ip地址1.1.1.1,将三层cname记录和a记录一并返回给用户。以上步骤,无需进行多层cname记录的逐层迭代查询,大大地简化了查询步骤,减少了大量的迭代流量。但是同时也会对解析结果的准确性产生一定的影响,在对解析结果的准确性要求不是太高的情况下,能够大幅地提高整体查询解析效率。用户可以根据实际情况,将以上两种解析方法结合使用,在兼顾解析结果准确性的同时,有效地减少服务器的迭代流量。
67.进一步地,在本实施方式提供的dns分流解析方法的步骤s5或步骤s6中,若解析结果中具有多层cname记录,并且多层cname记录中的任一别名与预先设置的域名匹配,则根据与预先设置的域名匹配的别名,执行步骤s3。
68.如图2所示,在现有技术中,解析结果具有多层cname记录时,需要执行上述的逐层转发每一层cname记录的步骤。而当多层cname记录中的任一别名与预先设置的域名匹配时,例如www.3.com与预先设置的域名相匹配,则可以跳过逐层转发的步骤,直接对与预先设置的域名相匹配的别名即www.3.com,执行步骤s3。通过以上步骤,减少了逐层转发多层cname记录产生的大量迭代流量,并且保证了与预先设置的域名相匹配的别名解析结果的准确性。
69.在本实施方式提供的dns分流解析方法中,无论目标域名是否与预先设置的域/域名匹配以及目标域名与预先设置的域/域名匹配后选定了转发或第一迭代查询的解析路径,若针对目标域名的解析结果中不包含cname记录并且包含a记录,则将a记录返回给用户。以上步骤中,解析结果中不包含cname记录,即没有需要判断是否与预先设置的域/域名匹配的别名,而包含a记录,即已知目标域名对应的ip地址。因此,可以直接将a记录返回给用户。
70.在本实施方式提供的dns分流解析方法中,目标域名包括:目标域名、目标域名对应的cname记录中的别名、别名对应的cname记录中的别名。而目标域名需要被判断是否与预先设置的域/域名匹配,即在目标域名的解析过程中,包含的所有域名和别名都会被判断是否与预先设置的域/域名匹配,防止错过与预先设置的域/域名匹配的别名,省略了该别名的解析步骤而影响其解析结果的准确性。
71.在本实施方式提供的dns分流解析方法的步骤s4中,若解析结果中无cname记录也无a记录,则转至步骤s32并上报为异常结果。步骤s4中,转发至公共服务器的目标域名未能得到相应的解析结果,则需进行第一迭代查询,以给公共服务器的查询作补充。
72.另外,解析结果中无cname记录也无a记录为异常的解析结果,在整个域名解析过程中,若收到上述异常解析结果,在进行下一步动作的同时,要上报异常警告,以便服务器缓存并记录异常信息。
73.在本实施方式提供的dns分流解析方法的步骤s31中,若解析结果中无cname记录也无a记录,则进行第二迭代查询,在第二迭代查询过程中,持续进行迭代查询直至查询到a记录为止。在步骤s31中,转发的目标域名均与预先设置的域/域名匹配,说明专属服务器中缺少该目标域名或其别名的相应条目,因此持续进行迭代查询即可。
74.如图4所示,在本发明的实施方式中还提供了一种dns服务器,包括:
75.处理器;
76.存储器,存储器与处理器通信连接,存储器中存储有计算机程序,经由读取和运行计算机程序,所述dns服务器能够执行以下步骤:
77.步骤s1,接收用户的解析请求;
78.步骤s2,若解析请求中的目标域名与预先设置的域/域名匹配,则执行步骤s3,若不匹配,则执行步骤s4;
79.步骤s3,根据针对该域/域名选定的处理方式,择一执行s31或者s32:
80.步骤s31,将目标域名转发至专属服务器,以获得专属服务器针对目标域名的解析结果,
81.步骤s32,对目标域名进行第一迭代查询,以获得第一迭代查询针对目标域名的解析结果;
82.步骤s4,将目标域名转发至公共服务器,以获得公共服务器针对目标域名的解析结果。
83.上述dns服务器通过步骤s1

s4实现了对域名的分级,并对不同分级的域名设定了不同的解析路径和解析方法,由此实现了对dns域名解析的路径和解析流量分配。对于转发至专属服务器的解析请求,可以利用专属服务器与域名之间的良好匹配,集中处理,提高处理效率;对于转发至公共服务器的内容,可以通过信任a记录的方式,减少迭代流量,提高解析效率等目标。并且,本实施方式中,通过以上对于cname记录的处理方式,可以在处理过程中识别出别名中带有指定域名的解析请求,并将其转发至专属服务器上集中处理,提高处理效率。
84.在本发明的实施方式中还提供了一种计算机可读存储介质,计算机可读存储介质上存储有执行上述dns分流解析方法的计算机程序。
85.本发明的dns分流解析方法可以应用于各个层级或者类型的dns服务器,例如是本地dns服务器,根域名服务器、顶级域名服务器、权限域名服务器、缓存域名服务器等。其中,优选应用于本地dns服务器。
86.至此,已经结合附图描述了本发明的技术方案。但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于上述具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1