一种分布式域名存储和解析方法及系统与流程

文档序号:12495085阅读:513来源:国知局
一种分布式域名存储和解析方法及系统与流程

本发明属于计算机通信技术领域,具体涉及一种分布式域名存储和解析方法及系统。



背景技术:

网络访问过程中的域名主要是实现域名到IP对应关系的解析。DNS是网络中作为域名和IP地址相互映射的一个分布式数据库,能够使网络使用者更方便的访问网络中的应用服务,而不用去记忆复杂的IP地址内容。由于域名可以由字母、数字、以及各国语言文字组合而成,域名更利于记忆和使用。通过域名,最终访问者得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。

现有技术中的DNS域名解析采用逐级查询,分布式存储的树形结构。图1为域名逐级查询过程的举例,假定网络中的A设备需要查询example.dns.com的域名所对应得IP地址,其向网络中的递归服务器B发起解析请求。递归角色的服务器在初始状态时不会存储任何字域名的解析结果,只会存储根域名的IP(图中的服务器C为权威根服务器)。根服务器记录各顶级域名的权威服务器名字服务器地址,如com的解析服务器为D,D则存储dns.com的解析服务器E的IP地址。解析服务器E存储着example.dns.com所对应的IP。

当前的域名查询和解析过程存在如下隐患:B、C、D、E作为网络中的域名解析服务器,虽然相同角色服务器可以部署多台,但仍存在相同级别(环节)的服务器全部故障的可能,因为攻击或者是网络故障出现时,相同角色服务器更容易被同步影响。一旦出现相同级别服务器全部故障,则整个查询过程出现断点,并最终导致设备A无法获取example.dns.com的IP地址。



技术实现要素:

本发明提供一种分布式域名存储和解析方法及系统,其可以实时提供正常的域名解析服务。

为实现上述目的,本发明提供一种分布式域名存储和解析方法,该方法包括:

域名服务器响应请求方发送的域名解析请求,并将其自身的备份服务器列表发送至所述请求方,其中,所述备份服务器列表包括备份服务器IP、优先级、TTL和对应的域名;

所述请求方接收所述备份服务器列表并存储在本地,当所述域名服务器无法响应所述请求方的域名解析请求时,所述请求方查找所述备份服务器列表,并向对应的备份服务器发送域名解析请求。

优选地,所述备份服务器响应所述请求方发送的域名解析请求时,向所述请求方发送自身的备份服务器列表;

所述请求方存储在本地时,修改所述备份服务器列表中的优先级。

优选地,修改所述备份服务器列表中的优先级包括:

将所述优先级加1,所述优先级的数字越小对应服务器的优先级越高。

优选地,所述方法还包括:

检测优先级最高的域名服务器是否恢复正常响应,若是,则所述请求方向所述优先级最高的域名服务器发送域名解析请求。

优选地,所述方法还包括按照预先设定的规则维护备份服务器列表,具体如下:

将TTL按照对应的单位时间递减排列,当TTL为0时,对应的域名解析服务器信息从本地列表中删除,当一个域名的最后一个域名解析服务器信息删除时,该域名也被删除。

优选地,若所述一个域名的备份服务器列表中的备份服务器数量少于预设阈值,则向所述域名的优先级最高的域名服务器发送请求,获取备份服务器列表。

优选地,所述方法同样适用于转发过程,其中,请求方不进行逐级递归,直接向任意DNS服务器一次查询最终结果。

本发明还提供了一种分布式域名存储和解析系统,包括请求方服务器和域名服务器,具体涉及如下:

域名请求响应单元,用于所述域名服务器响应请求方发送的域名解析请求,并将其自身的备份服务器列表发送至所述请求方,其中,所述备份服务器列表包括备份服务器IP、优先级、TTL和对应的域名;

服务器请求单元,用于所述请求方接收所述备份服务器列表并存储在本地,当所述域名服务器无法响应所述请求方的域名解析请求时,所述请求方查找所述备份服务器列表,并向对应的备份服务器发送域名解析请求。

优选地,所述备份服务器包括递归服务器、根服务器、顶级域名服务器、所属域名解析服务器及所述请求方服务器中的任意一个或多个。

优选地,所述系统还包括优先级修改单元,用于所述备份服务器响应所述请求方发送的域名解析请求时,向所述请求方发送自身的备份服务器列表;

所述请求方存储在本地时,修改所述备份服务器列表中的优先级。

优选地,所述系统还包括维护单元,用于按照预先设定的规则维护备份服务器列表,具体如下:

将TTL按照对应的单位时间递减排列,当TTL为0时,对应的域名解析服务器信息从本地列表中删除,当一个域名的最后一个域名解析服务器信息删除时,该域名也被删除。

本发明提供的分布式域名存储和解析方法及系统,与现有技术相比,通过多点分布式存储域名信息,域名备份解析服务器信息的方式提供域名解析目的服务器的多点存储。并基于二级服务器、三级服务器…N级服务器的优先规则优选备份服务器,基于TTL保证对应域名更新的时效,提高了解析系统的高可用性,解析系统的多点分布式抗攻击能力,并增强了对同一请求方的可用服务器有限暴露,多角度提高了DNS解析高可靠保障,减少了攻击和正常故障导致的服务器失效而产生的无法正常提供域名解析情况的发生。

附图说明

图1为现有技术中域名查询过程示意图;

图2为本发明一优选实施例提供的分布式域名存储和解析方法流程示意图;

图3为本发明一优选实施例提供的域名查询过程示意图;

图4为本发明一优选实施例提供的备份服务器的关键信息结构示意图;

图5为本发明另一优选实施例提供的分布式域名存储和解析系统结构示意图。

具体实施方式

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

如图1所示,在现有技术中域名查询步骤包括如下:

1、A设备先向递归服务器B进行域名example.dns.com的解析查询。

2、递归服务器B采用迭代查询。它先向一个根域名解析服务器C查询。

3、根权威域名服务器C告诉递归服务器B,下一次应查询的顶级域名服务器D,并告知D的IP地址。

4、递归域名服务器B向顶级域名服务器D进行example.dns.com查询。

5、顶级域名服务器D告诉递归域名服务器B,下一步应查询的权威服务器E,并告知E的IP地址。

6、递归域名服务器B向权威域名服务器E进行example.dns.com查询。

7、权威域名服务器E存储了example.dns.com所对应的IP,可以直接解析回应,即权威域名服务器E向递归域名服务器B响应example.dns.com对应的IP地址。

8、递归域名服务器B经过几轮的迭代查询,获得了example.dns.com的IP结果,最后把查询结果响应给最初的查询方设备A。

在整个查询过程中设备A的角色为查询的最初发起方,其查询的目标为获取域名example.dns.com所对应的IP地址,以便对该IP进行网络访问。B为递归服务器,其本身之存储根服务器的IP,原则上不存储域名example.dns.com的IP对应关系,但其负责整个的查询过程,将example.dns.com对应的IP结果查询到,返回给设备A。C、D、E为不同角色的权威服务器,他们只负责本地存储的某域名的查询线索,即该域名的哪一个服务器知道其解析结果线索,并依据线索最终查询到该域名example.dns.com所对应的IP数据。实际上B、C、D、E服务器在部署中不止一台,会有多台同时提供相同角色的服务。

如图2所示,本发明一优选实施例提供了一种分布式域名存储和解析方法流程示意图,该方法包括:

S210、域名服务器响应请求方发送的域名解析请求,并将其自身的备份服务器列表发送至请求方,其中,备份服务器列表包括备份服务器IP、优先级、TTL和对应的域名。

如图4所示,“.”表示根域名。“*”表示所有域名,其它表示具体域名。“服务器IP:N:TTL”表示服务器IP、级别和该服务器对应的TTL。级别指的是服该服务器是几级备份服务器,如数字“2”代表二级服务器、“3”代表三级服务器。

由于上述服务器是正常解析服务器的备份服务器,故称这些服务器为二级服务器,而这些正常状态优先提供解析的服务器为一级服务器。图1中的服务器B、服务器C、服务器D、服务器E就是一级服务器。

一级服务器选择二级服务器按照一定规则生成,即二级服务器须严格按照不小于TTL存储对应域名解析信息、不篡改对应信息的规则保存对应域名和IP的对应关系,具备该条件的服务器均可作为二级服务器。二级服务器可以是同级角色的服务器,也可以是获取对应一级服务器应答结果的请求方服务器。

S220、请求方接收备份服务器列表并存储在本地,当域名服务器无法响应请求方的域名解析请求时,请求方查找备份服务器列表,并向对应的备份服务器发送域名解析请求。

当二级服务器启用后,二级服务器正常过程的解析报文交互的基础上,也可以提供其它服务器列表作为本服务器的备份服务器。当请求方存储上述服务器列表时,会修改备份服务器列表中的优先级。优选地,将优先级加1,优先级的数字越小对应服务器的优先级越高。

为了保证在攻击发生时,尽可能的不完全暴露二级服务器,不使二级服务器被攻击,每次应答二级服务器列表时,一级服务器按照负载算法只对特定查询方返回部分二级服务器,即使是多次返回,也不会返回全部二级服务器IP给同一查询方。

进一步地,一个一级服务器可能是其他服务器的二级服务器,也可能是另外服务器的三级服务器,服务器级别完全取决于请求方优先配置的域名服务器顺序。

可选的,检测优先级最高的域名服务器是否恢复正常响应,若是,则请求方向所述优先级最高的域名服务器发送域名解析请求。可以设置一定的时间间隔,在前述时间间隔内检测优先级最高的域名服务器是否恢复正常响应,一旦检测到恢复正常,则请求方后续的域名解析请求向该优先级最高的域名服务器发送。

可选的,请求方本地服务器会对接收和存储的备份服务器列表按照一定的规则维护。具体地,将TTL按照对应的单位时间递减排列,当TTL为0时,对应的域名解析服务器信息(服务器IP:N:TTL)从本地列表中删除,当一个域名的最后一个域名解析服务器信息删除时,该域名也被删除。若一个域名的备份服务器列表中的备份服务器数量少于预设阈值,则向域名的优先级最高的域名服务器发送请求,获取备份服务器列表,以此来保证该域名备份服务器的持续存在。

如图3所示,运用本发明提供的分布式域名存储和解析方法进行域名查询过程具体步骤如下所示:

步骤1、设备A发起域名请求到域名服务器B。

具体地,请求包括需要解析的域名、解析的类型,随着DNS协议的不断发展,DNS解析的类型也不断丰富,A类型代表需要解析域名对应的IPv4地址。AAAA类型代表需要解析域名对应的IPv6地址。另外还有CNAME、DNAME、MX等多种类型。这里仅已解析类型为IPv4为例,其他类型采用仍遵循本发明的过程。

步骤2、域名服务器B首次收到该域名的查询,由于本地没有存储,所以需要逐级向权威服务器查询,故首先向根服务器C进行查询。

具体地,域名服务器B一般存储着13个根服务器的IP,根服务器是递归服务器查询本地未存储域名的首个查询目标。服务器B表明的是在整个查询流程中的角色,并不限定为单台服务器,实际使用过程中,该角色服务器可以是多台。

步骤3、根服务器C没有该域名对应类型的结果,但根服务器C存储着该域名所属顶级域名服务器D的IP,于是将该域名所属顶级域名服务器D的IP返回给域名服务器B。

具体地,服务器C表明的是在整个查询流程中的角色,并不限定为单台服务器,实际使用过程中,该角色服务器可以是多台。

步骤3’、根服务器C还会返回本服务器的备份服务器列表信息给服务器B。

具体地,信息至少包括如下部分:可以解析的域名,对应的服务器IP,n级服务器以及该服务器提供该域名解析的有效生存时间(TTL)。TTL按照对应的单位时间递减,直到TTL为0,该“服务器IP:N:TTL”信息从本地删除,当一个域名的最后一个服务器IP删除时,该域名也被删除。

服务器C的备份服务器列表为C1、C2……。

步骤4、递归服务器B向顶级域名服务器D发起该域名对应类型的请求。

步骤5、顶级域名服务器D没有该域名对应类型的结果,但顶级域名服务器D存储着该域名所属域名服务器E的IP,于是将该服务器E的IP返回给域名服务器B。

具体地,服务器D表明的是在整个查询流程中的角色,并不限定为单台服务器,实际使用过程中,该角色服务器可以是多台。

步骤5’、顶级域名服务器D还会返回本服务器的备份服务器列表信息给服务器B。

具体地,信息至少包括如下部分:可以解析的域名,对应的服务器IP,n级服务器以及该服务器提供该域名解析的有效生存时间(TTL)。TTL按照对应的单位时间递减,直到TTL为0,该“服务器IP:N:TTL”信息从本地删除,当一个域名的最后一个服务器IP删除时,该域名也被删除。

服务器D的备份服务器列表为D1、D2……。

步骤6、递归服务器B向域名服务器E发起该域名对应类型的请求。

步骤7、域名服务器E中存储该域名对应类型的解析结果,将该结果返回给服务器B。

具体地,服务器E表明的是在整个查询流程中的角色,并不限定为单台服务器,实际使用过程中,该角色服务器可以是多台。

步骤7’、域名服务器E还会返回本服务器的备份服务器列表信息给服务器B。

具体地,信息至少包括如下部分:可以解析的域名,对应的服务器IP,n级服务器以及该服务器提供该域名解析的有效生存时间(TTL)。TTL按照对应的单位时间递减,直到TTL为0,该“服务器IP:N:TTL”信息从本地删除,当一个域名的最后一个服务器IP删除时,该域名也被删除。

服务器E的备份服务器列表为E1、E2……。

步骤8、递归服务器B经过步骤2至步骤7的多次查询获得了设备A所要查询域名及其类型的结果,将该结果返回给请求方设备A。

步骤8’、域名服务器B还会返回本服务器的备份服务器列表信息给请求方设备A。

具体地,信息至少包括如下部分:可以解析的域名,对应的服务器IP,n级服务器以及该服务器提供该域名解析的有效生存时间(TTL)。TTL按照对应的单位时间递减,直到TTL为0,该“服务器IP:N:TTL”信息从本地删除,当一个域名的最后一个服务器IP删除时,该域名也被删除。

服务器B的备份服务器列表为B1、B2……。

上述过程为所有服务器角色均无故障正常,可以正常服务使得实施流程。当上述服务器B、C、D、E任一方出现故障或请求方到对应目的服务器网络故障时(当服务器B、C、D、E同一角色多台设备均出现影响),本发明执行步骤如下。

以服务器B故障或无法联通为例:

步骤1、设备A发起域名请求到域名服务器B。服务器B没有回应。

步骤1”、设备A查询服务器B的备份服务器列表,并选择优先级较高的备份服务器B1发起请求;

具体的,服务器B1表明的是在整个查询流程中的角色,并不限定为单台服务器,实际使用过程中,该角色服务器可以是多台。

步骤8”、由于服务器B1是可用的服务器,B1返回解析结果给设备A。

具体的,如果B1故障或无法联通,设备A查询服务器B的备份服务器列表,并选择优先级较高的备份服务器B2发起请求;依次类推。

步骤8”’、以备份服务器B1可以成功应答设备A为例,域名服务器B1还会返回本服务器的备份服务器列表信息给请求方设备A。请求方收到该信息后,会修改信息中的服务器级别,将级别数字加1后存储,其余信息不变。

以服务器C故障或无法联通为例:

步骤9、设备A发起域名请求到域名服务器B。

步骤2、服务器B没有该域名对应类型结果,但有顶级域名服务器C的IP,于是向顶级域名服务器C发起解析查询,服务器C没有回应。

步骤2’、服务器B查询服务器C的备份服务器列表,并选择优先级较高的备份服务器C1发起请求;

具体的,服务器C1表明的是在整个查询流程中的角色,并不限定为单台服务器,实际使用过程中,该角色服务器可以是多台。

步骤10’、由于服务器C1是可用的服务器,C1返回解析结果给服务器B。

具体的,如果C1故障或无法联通,服务器B查询服务器C的备份服务器列表,并选择优先级较高的备份服务器C2发起请求;依次类推。

步骤10”、以备份服务器C1可以成功应答服务器B为例,域名服务器C1还会返回本服务器的备份服务器列表信息给请求方服务器B。请求方收到该信息后,会修改信息中的服务器级别,将级别数字加1后存储,其余信息不变。

步骤11、递归服务器B经过多次查询获得了设备A所要查询域名及其类型的结果,将该结果返回给请求方设备A。

步骤11’、域名服务器B还会返回本服务器的备份服务器列表信息给请求方设备A。

具体地,信息至少包括如下部分:可以解析的域名,对应的服务器IP,n级服务器以及该服务器提供该域名解析的有效生存时间(TTL)。TTL按照对应的单位时间递减,直到TTL为0,该“服务器IP:N:TTL”信息从本地删除,当一个域名的最后一个服务器IP删除时,该域名也被删除。

服务器B的备份服务器列表为B1、B2……。

具体的,服务器D故障或无法联通、服务器E故障或无法联通的处理过程同服务器C故障。

可选的,上述方法同样适用于转发过程,即请求方不进行逐级递归,直接向任意DNS服务器查询最终结果的一次完成查询过程。

本发明一优选实施例提供了一种分布式域名存储和解析方法,通过多点分布式存储域名信息,域名备份解析服务器信息的方式提供域名解析目的服务器的多点存储。并基于二级服务器、三级服务器…N级服务器的优先规则优选备份服务器,基于TTL保证对应域名更新的时效,提高了解析系统的高可用性,解析系统的多点分布式抗攻击能力,并增强了对同一请求方的可用服务器有限暴露,多角度提高了DNS解析高可靠保障,减少了攻击和正常故障导致的服务器失效而产生的无法正常提供域名解析情况的发生。

如图5所示,在本发明的另一优选实施例中,提供了一种分布式域名存储和解析系统,包括请求方服务器和域名服务器,具体涉及如下:

域名请求响应单元510,用于域名服务器响应请求方发送的域名解析请求,并将其自身的备份服务器列表发送至请求方,其中,备份服务器列表包括备份服务器IP、优先级、TTL和对应的域名。

服务器请求单元520,用于请求方接收备份服务器列表并存储在本地,当域名服务器无法响应请求方的域名解析请求时,请求方查找备份服务器列表,并向对应的备份服务器发送域名解析请求。

其中,备份服务器包括递归服务器、根服务器、顶级域名服务器、所属域名解析服务器及请求方服务器中的任意一个或多个。即备份服务器须严格按照不小于TTL存储对应域名解析信息、不篡改对应信息的规则保存对应域名和IP的对应关系,具备该条件的服务器均可作为备份服务器。

可选的,该系统还包括优先级修改单元530,用于备份服务器响应请求方发送的域名解析请求时,向请求方发送自身的备份服务器列表;请求方存储在本地时,修改备份服务器列表中的优先级。具体地,将优先级加1,优先级的数字越小对应服务器的优先级越高。

可选的,该系统还包括维护单元540,用于按照预先设定的规则维护备份服务器列表,具体如下:将TTL按照对应的单位时间递减排列,当TTL为0时,对应的域名解析服务器信息从本地列表中删除,当一个域名的最后一个域名解析服务器信息删除时,该域名也被删除。对应的,若一个域名的备份服务器列表中的备份服务器数量少于预设阈值,则向域名的优先级最高的域名服务器发送请求,获取备份服务器列表。

可选的,该系统还包括检测单元550,用于检测优先级最高的域名服务器是否恢复正常响应,若是,则请求方向优先级最高的域名服务器发送域名解析请求。

本发明另一优选实施例提供的分布式域名存储和解析系统,通过服务器请求单元520多点分布式存储域名信息,域名备份解析服务器信息的方式提供域名解析目的服务器的多点存储。通过优先级修改单元530,并基于二级服务器、三级服务器…N级服务器的优先规则优选备份服务器。通过维护单元540基于TTL保证对应域名更新的时效,提高了解析系统的高可用性,解析系统的多点分布式抗攻击能力,并增强了对同一请求方的可用服务器有限暴露,多角度提高了DNS解析高可靠保障,减少了攻击和正常故障导致的服务器失效而产生的无法正常提供域名解析情况的发生。

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

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