CN111711706B - Dns递归请求方法及系统 - Google Patents

Dns递归请求方法及系统 Download PDF

Info

Publication number
CN111711706B
CN111711706B CN202010360415.5A CN202010360415A CN111711706B CN 111711706 B CN111711706 B CN 111711706B CN 202010360415 A CN202010360415 A CN 202010360415A CN 111711706 B CN111711706 B CN 111711706B
Authority
CN
China
Prior art keywords
response
dns
sequencing
server
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010360415.5A
Other languages
English (en)
Other versions
CN111711706A (zh
Inventor
张鹏
乔湛浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Root Chain International Network Research Institute Co ltd
Original Assignee
Guangzhou Root Chain International Network Research Institute Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Root Chain International Network Research Institute Co ltd filed Critical Guangzhou Root Chain International Network Research Institute Co ltd
Priority to CN202010360415.5A priority Critical patent/CN111711706B/zh
Publication of CN111711706A publication Critical patent/CN111711706A/zh
Application granted granted Critical
Publication of CN111711706B publication Critical patent/CN111711706B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种DNS递归请求方法及系统,其中所述方法包括如下步骤:向指定权威DNS服务器发送第一请求报文,所述第一请求报文包括请求对应权威DNS服务器返回若干匹配结果及服务质量排序的特定格式;接收响应于所述第一请求报文的第一响应报文,对所述第一响应报文中的扩展标志进行判断,以确定从DNS报文标准格式段中或从排序结果协议段中获取响应匹配的内容。本发明可以保证DNS解析的服务质量,提高递归查询的性能。

Description

DNS递归请求方法及系统
技术领域
本发明涉及计算机网络通信技术领域,尤其涉及一种DNS递归请求方法及系统。
背景技术
DNS(Domain Name System,域名系统)提供了互联网上的一个重要服务,其本质是建立了人的名字世界和底层的二进制协议地址世界的桥梁。当查询对应域名而需要发起DNS解析时,在本地查询不到对应域名的匹配结果后,会通过递归向权威DNS服务器发起查询,具体是从根域名服务器、顶级域名服务器、二级域名服务器等逐级递归查询,直到查询到对应域名的IP地址。然而,IPv6(Internet Protocol Version 6,互联网协议第6版)作为IPv4的下一代IP协议,每一级权威DNS服务器都会提供IPv4和IPv6的双栈支持,但是在当前的网络中,由于IPv6网络的建设尚不完善,导致使用IPv6地址访问相关服务器,可能会比使用IPv4地址进行访问要慢,反之也存在可能。因此,采用什么样的方式递归查询来保证DNS解析的高效快速,成为IPv4向IPv6过渡阶段亟待解决的难题。
发明内容
本发明的目的在于提供一种DNS递归请求方法及系统,解决了现有技术中IPv6网络建设不完善导致的DNS解析服务质量不佳,递归查询性能不稳定的技术问题。
为了解决上述技术问题,本发明的一种DNS递归请求方法,包括如下步骤:
向指定权威DNS服务器发送第一请求报文,所述第一请求报文包括请求对应权威DNS服务器返回若干匹配结果及服务质量排序的特定格式;
接收响应于所述第一请求报文的第一响应报文,对所述第一响应报文中的扩展标志进行判断,以确定从DNS报文标准格式段中或从排序结果协议段中获取响应匹配的内容。
作为本发明上述DNS递归请求方法的进一步改进,指定权威DNS服务器根据上级权威DNS服务器响应匹配的内容或本地部署的根域名服务器、根镜像域名服务器确定。
作为本发明上述DNS递归请求方法的进一步改进,在查询所述第一响应报文的扩展标志失败时,从应答资源记录区、授权资源记录区、附加资源记录区对应的标准格式段中获取匹配结果。
作为本发明上述DNS递归请求方法的进一步改进,在所述第一响应报文的附加资源记录区确定到对应的扩展标志时,从附加资源记录区对应的排序结果协议段中获取服务质量排序编号,根据所述服务质量排序编号确定应答资源记录区、授权资源记录区、附加资源记录区中匹配结果的优先级。
作为本发明上述DNS递归请求方法的进一步改进,排序结果协议段对应的特定格式嵌入在附加资源记录区中,包括排序应答资源记录数、排序授权资源记录数、排序附加资源记录数及服务质量排序编号。
作为本发明上述DNS递归请求方法的进一步改进,在所述第一响应报文中响应匹配的内容为最终解析结果时,将匹配结果和/或服务质量排序反馈给发起DNS解析的用户。
为了解决上述技术问题,本发明的一种DNS递归请求系统,包括:
发送单元,用于向指定权威DNS服务器发送第一请求报文,所述第一请求报文包括请求对应权威DNS服务器返回若干匹配结果及服务质量排序的特定格式;
接收单元,用于接收响应于所述第一请求报文的第一响应报文,对所述第一响应报文中的扩展标志进行判断,以确定从DNS报文标准格式段中或从排序结果协议段中获取响应匹配的内容。
作为本发明上述DNS递归请求系统的进一步改进,所述发送单元对于指定权威DNS服务器根据上级权威DNS服务器响应匹配的内容或本地部署的根域名服务器、根镜像域名服务器确定。
作为本发明上述DNS递归请求系统的进一步改进,所述接收单元在查询所述第一响应报文的扩展标志失败时,从应答资源记录区、授权资源记录区、附加资源记录区对应的标准格式段中获取匹配结果。
作为本发明上述DNS递归请求系统的进一步改进,所述接收单元在所述第一响应报文的附加资源记录区确定到对应的扩展标志时,从附加资源记录区对应的排序结果协议段中获取服务质量排序编号,根据所述服务质量排序编号确定应答资源记录区、授权资源记录区、附加资源记录区中匹配结果的优先级。
与现有技术相比,本发明在DNS报文标准格式的基础上进行扩展,向前兼容原有的DNS报文通信,在递归服务器与权威DNS服务器之间实现扩展需求的信息交互,从而支持获得若干个最优的查询地址。本发明可以保证DNS解析的服务质量,提高递归查询的性能。
结合附图阅读本发明实施方式的详细描述后,本发明的其他特点和优点将变得更加清楚。
附图说明
为了更清楚地说明本发明实施方式或现有技术的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见,下面描述中的附图仅仅是本发明中记载的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施方式中DNS递归架构示意图。
图2为本发明一实施方式中DNS递归请求方法流程图。
图3为本发明一实施方式中DNS报文格式扩展示意图。
图4为本发明一实施方式中DNS递归最优查询架构示意图。
图5为本发明一实施方式中DNS递归查询方式示意图。
图6为本发明一实施方式中DNS递归请求系统示意图。
具体实施方式
以下将结合附图所示的各实施方式对本发明进行详细描述。但这些实施方式并不限定本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法或功能上的变化均包含在本发明的保护范围内。
需要说明的是,在不同的实施方式中,可能使用相同的标号或标记,但这些并不代表结构或功能上的绝对联系关系。并且,各实施方式中所提到的“第一”、“第二”也并不代表结构或功能上的绝对区分关系,这些仅仅是为了描述的方便。
对于用户而言,需要访问对应域名的网站时,首先需要根据对应域名查询出可以直接访问网站的IP地址,这个过程就是DNS解析。为了配合DNS解析,通常存在递归服务器和权威DNS服务器两种类型服务器,而权威DNS服务器自上而下进一步包括根域名服务器、顶级域名服务器、二级域名服务器等多级服务器。如图1所示,当发起DNS解析,比如向浏览器提供访问www.example.com网站的域名,一般会向本地域名服务器发送解析请求,如果本地域名服务器存在相应的解析结果,则直接反馈结果。如果本地域名服务器不存在相应的解析结果,则需要通过本地域名服务器的递归模块或特定的递归服务器向权威DNS服务器进行递归查询。具体先从根域名服务器开始查询.com的顶级域名服务器,获得后再向.com的顶级域名服务器查询域example.com的二级域名服务器,依此类推,可以通过域example.com的二级域名服务器查找到www.example.com相应的解析结果。在图1中,用户发起的是A记录查询,即最终获得的是访问对应网站服务器的IPv4地址。如上所述,通过根域名服务器可以查询到实现相应解析的顶级域名服务器,通过顶级域名服务器可以查询到实现相应解析的二级域名服务器,依此类推,任一级权威DNS服务器都存有相应的下一级权威DNS服务器,因此,每一级的权威DNS服务器反馈给递归服务器的下一级权威DNS服务器的服务质量,直接决定了递归的查询性能,特别是同时具有IPv4和IPv6两种服务地址集的情况。
如图2所示,本发明一实施方式中DNS递归请求方法流程图。对于递归服务器而言,可以理解为作为用户的DNS查询代理,向权威DNS服务器逐级查询最终获得相应的解析结果,并将最终解析结果反馈给用户。递归服务器在向权威DNS服务器发起查询时,为了保证查询的性能,应始终向服务质量最优的权威DNS服务器发起查询,因此如何确定服务质量最优的查询对象成为本发明的重点。在本发明实施方式中,DNS递归请求方法具体包括如下步骤:
步骤S1、向指定权威DNS服务器发送第一请求报文,所述第一请求报文包括请求对应权威DNS服务器返回若干匹配结果及服务质量排序的特定格式。如上所述,当接收到用户发起的DNS解析时,如果在本地没有查询到相应的解析记录时,就需要向一系列的权威DNS服务器发起请求,即指定的权威DNS服务器,具体地是从根域名服务器开始发起相应的请求报文。根域名服务器作为递归查询的起点,选择合适的根域名服务器非常重要,在本实施方式中,对于国内的递归场景,可以优先访问雪人计划中国内维护的IPv6根域名服务器或者国内部署的根镜像域名服务器,进一步还可以建立维护列表,对维护列表中的多个根域名服务器及根镜像域名服务器定期进行服务质量检测,每次查询时根据动态的服务质量检测结果确定服务质量最优的根域名服务器作为查询的对象。在向根域名服务器以下的权威DNS服务器发起查询时,是通过上级的权威DNS服务器返回的匹配结果确定对应的权威DNS服务器,比如对应的顶级域名服务器是通过根域名服务器返回的NS记录等确定的。进一步,上级权威DNS服务器在返回相应的匹配内容中,还包括若干个匹配结果及对应的权威DNS服务器的服务质量排序,指定的权威DNS服务器可以是根据服务质量排序确定的。
向指定的权威DNS服务器发送第一请求报文,其目的是向对应的权威DNS服务器发起查询请求,以期望权威DNS服务器响应相应的查询结果。如图3所示,第一请求报文仍然采用标准的DNS报文格式,这样才可以与现有的DNS设备兼容,标准的DNS报文格式分为头部和正文两部分,头部包括会话标识(2字节)、标志(2字节)、数量字段(查询问题数、应答资源记录数、授权资源记录数、附加资源记录数,8字节),正文包括查询问题区及资源记录区(应答资源记录区、授权资源记录区、附加资源记录区)。为了扩展对服务质量排序的查询需求,在标准DNS报文中携带相应的交互信息,如图3所示,在附加资源记录区嵌入了伪资源记录,它不是标准的DNS资源记录,其格式包括固定部分和可变部分,固定部分包括NAME字段(目前可以为空)、TYPE字段(伪资源记录的类型编号,可以分配为41,2字节)、CLASS字段(发送方的UDP有效负载大小,2字节)、TTL字段(扩展的DNS消息头部,对标准DNS报文头部的返回状态码标志扩展8比特,以表示更多的返回类型,还包括版本字段和Z标记,共4字节)、RDLEN字段(标记可变部分的长度,2字节)。可变部分则是RDATA字段(用于存放伪资源记录的具体内容),其内部的格式包括OPTION-CODE字段(扩展协议代码,用于区分不同的扩展协议,在本实施方式中可以采用18,共2字节)、OPTION-LENGTH字段(标记OPTION-DATA字段的长度,2字节)、OPTION-DATA字段(用于存放扩展查询交互的信息)。其中,OPTION-DATA中存放的信息是为了配合服务质量排序查询嵌入的具体交互内容,相应的格式包括OPTIMAL-ANSWER-COUNT字段(最优应答资源记录数或请求返回最优应答资源记录数,2字节)、OPTIMAL-AUTHORITY-COUNT字段(最优授权资源记录数或请求返回最优授权资源记录数,2字节)、OPTIMAL -ADDITIONAL-COUNT字段(最优附加资源记录数或请求返回最优附加资源记录数,2字节)及RRS-Number字段(用于存放应答资源记录、授权资源记录、附加资源记录编号根据服务质量的排序)。需要补充的是,在RRS-Number字段中,排序的应答资源记录、授权资源记录、附加资源记录是根据请求的数量决定的,具体可以通过OPTIMAL-ANSWER-COUNT字段、OPTIMAL-AUTHORITY-COUNT字段、OPTIMAL-ADDITIONAL-COUNT字段体现,相应存放的是应答资源记录、授权资源记录、附加资源记录对应的编号,由于理论上不会有哪个资源记录区的资源记录数量能够超过256个,所以针对RRS-Number中的每个编号仅只占用一个字节,因此相应的OPTION-DATA总长度就是6+N字节,其中N由OPTIMAL-ANSWER -COUNT字段、OPTIMAL-AUTHORITY-COUNT字段、OPTIMAL- ADDITIONAL-COUNT字段对应的数量总和确定,而通过对应编号的顺序就可以确定相应资源记录的优先级。
如上所述,通过在标准DNS报文的附加资源记录区中扩展排序结果协议段来嵌入扩展的请求及响应信息,由于并没有破坏原有的DNS报文结构,标准格式段仍然兼容保留,因此即使增加了扩展的消息传输给未支持的服务器时,后者依然可以依靠标准格式段的内容正确处理。进一步,对于UDP传输,当扩展信息导致DNS报文超过512字节时,可以结合标准DNS报文中的可截断标志,以重组大数据包,从而返回大包。对于嵌入到附加资源记录区的排序结果协议段而言,具体是通过一层一层的嵌套来实现的,每一层嵌套都具有定长部分和不定长部分,而在定长部分又定义了不定长部分的长度,从而可以实现相应的字段定位,从而完成相应的解码。具体地,排序结果协议段是以伪资源记录的形式嵌入在附加资源记录区内,可以通过TYPE字段等与附加资源记录区中的附加资源记录区别开,在伪资源记录中,可以在RDATA字段中嵌入多种扩展协议,而排序结果协议段就在其中,具体可以通过OPTION-CODE字段来判别,即通过扩展标志确定对应字段。
当向指定权威DNS服务器发送第一请求报文时,在附加资源记录区嵌入相应的排序结果协议段内容,即告诉指定权威DNS服务器需要获取对应要求的最优匹配结果,进一步在OPTIMAL-ANSWER-COUNT字段、OPTIMAL -AUTHORITY-COUNT字段、OPTIMAL- ADDITIONAL-COUNT字段中定义相应的数量,从而通知指定权威DNS服务器需要返回最优匹配结果的类型和数量。相应的第一请求报文发送给指定的权威DNS服务器后,就等待指定的权威DNS服务器的响应,以完成相应的递归查询。
步骤S2、接收响应于所述第一请求报文的第一响应报文,对所述第一响应报文中的扩展标志进行判断,以确定从DNS报文标准格式段中或从排序结果协议段中获取响应匹配的内容。对于接收到第一请求报文的权威DNS服务器而言,则需要根据自身的配置进行响应,比如返回相应的NS记录、A记录、AAAA记录等。进一步,还需要对第一请求报文中的排序结果协议段内容做出相应的响应,最终返回相应的第一响应报文,第一响应报文使用标准的DNS报文格式,具体参照第一请求报文,在第一响应报文中还嵌入相应的排序结果协议段格式内容。
对于接收到第一响应报文后,首先根据返回的第一响应报文判断对应设备是否支持相应的排序结果协议扩展,如上所述,可以通过确定TYPE字段、OPTION-CODE字段来判断。当在附加资源记录区中没有嵌入相应的伪资源记录时,查询所述第一响应报文的扩展标志失败,说明对应设备并不支持排序查询,此时返回的匹配结果是按照标准的DNS协议进行交互的,相应的匹配结果是体现在应答资源记录区、授权资源记录区、附加资源记录区的标准格式段中,因此从应答资源记录区、授权资源记录区、附加资源记录区对应的标准格式段中获取匹配结果。需要说明的是,匹配结果的数量是由响应的权威DNS服务器自身决定的,同时匹配结果之间不存在优先顺序关系,对获得的匹配结果由自身递归的需要进行优先级查询。
当通过TYPE字段、OPTION-CODE字段等确定到对应的排序结果协议段时,说明响应的权威DNS服务器支持服务质量排序并在排序结果协议段中返回了响应内容,因此从附加资源记录区对应的排序结果协议段中获取服务质量排序编号从而确定最优资源记录。如上所述,在RRS-Number字段存放的是相应资源记录的编号,而相应资源记录的实际内容还是存放在应答资源记录区、授权资源记录区、附加资源记录区中,通过编号在RRS-Number字段的顺序可以确定出对应的优先级,而资源记录编号是根据对应资源记录在应答资源记录区、授权资源记录区、附加资源记录区的顺序确定的。因此可以根据排序结果协议段中的编号到应答资源记录区、授权资源记录区、附加资源记录区中找到对应的资源记录,再根据排序结果协议段中的编号顺序来确定对应的资源记录优先级,进一步递归就可以根据资源记录的优先级进行处理。在更多的实施方式中,在RSS-Number字段里仅存放请求返回最优数量的编号排序,而应答资源记录区、授权资源记录区、附加资源记录区中的资源记录是根据权威DNS服务器的处理决定的,有可能资源记录的数量大于请求的数量。
这样无论是从应答资源记录区、授权资源记录区、附加资源记录区等标准格式段直接获取的匹配结果,还是根据排序结果协议段获取的具有优先级的匹配结果,都可以进一步完成DNS解析操作,比如如果是NS记录等中间解析结果,可以根据中间解析结果向下一级权威DNS服务器发起类似的查询过程,这里优选地可以选择最优的下级权威DNS服务器发起查询。如果第一响应报文中响应匹配的内容为最终解析结果时,将匹配结果和/或服务质量排序反馈给发起DNS解析的用户,用户则可以利用最终解析结果实现访问,优选地可以访问到服务质量最优的服务器地址。本发明通过兼容的方式,既支持现有的DNS解析架构,同时还可以在部分权威DNS服务器支持服务质量排序的情况下优化整个DNS解析的性能。优选地,如果自根域名服务器开始的每一级权威DNS服务器都可以支持服务质量排序,就可以保证整个递归查询链上都可以选择最优的权威DNS服务器实现解析,实现最优的递归查询链。需要补充的是,支持服务质量排序的权威DNS服务器会在接收查询前,对特定域名对应的资源记录进行定期的服务质量检测,比如对应NS记录指向多个下级权威DNS服务器,会定期与这些下级权威DNS服务器进行服务质量检测,确定出不同权威DNS服务器之间的服务质量优先级,当需要响应相应的请求报文时,会根据排序结果协议段的格式将其优先级反应到相应的字段中。
如图6所示,本发明一实施方式中DNS递归请求系统示意图。DNS递归请求系统具体包括发送单元U1及接收单元U2。发送单元U1是向指定的权威DNS服务器发送第一请求报文,而接收单元U2则是接收指定的权威DNS服务器返回的第一响应报文,这种交互过程可以根据递归架构的层级循环调用,指定权威DNS服务器可以是上级权威DNS服务器指向的下级权威DNS服务器或本地部署的根域名服务器、根镜像域名服务器。递归查询的触发通常是因为用户的请求未在本地找到匹配,亦或者是在预取的前提下,对重点域名的相关资源记录进行逐级查询。
发送单元U1,用于向指定权威DNS服务器发送第一请求报文,所述第一请求报文包括请求对应权威DNS服务器返回若干匹配结果及服务质量排序的特定格式。如图3所示,无论第一请求报文还是第一响应报文,都是在标准的DNS报文格式上进行扩展的,其在附加资源记录区中嵌入排序结果协议段,用于传递服务质量排序的请求及响应信息。指定权威DNS服务器在接收到响应的第一请求报文时,可以按照原有的DNS协议进行响应,对排序结果协议段的内容进行忽略,也可以在支持服务质量排序的情况下,针对排序结果协议段中的内容进行响应。具体地,排序结果协议段对应的特定格式嵌入在附加资源记录区中,包括排序应答资源记录数、排序授权资源记录数、排序附加资源记录数及服务质量排序编号,进一步可以参照DNS递归请求方法的具体实施方式。
接收单元U2,用于接收响应于所述第一请求报文的第一响应报文,对所述第一响应报文中的扩展标志进行判断,以确定从DNS报文标准格式段中或从排序结果协议段中获取响应匹配的内容。对于递归查询架构中的权威DNS服务器,由于改进的扩展协议具有一定的兼容性,因此所有的权威DNS服务器并不完全都支持服务质量排序,因此在兼容的环境下就需要对第一响应报文中的扩展标志进行分析,以确定指定的权威DNS服务器是否返回了相应的信息,从而做出不同的报文处理方式。具体地,接收单元U2在查询所述第一响应报文的扩展标志失败时,从应答资源记录区、授权资源记录区、附加资源记录区对应的标准格式段中获取匹配结果。接收单元U2在所述第一响应报文的附加资源记录区确定到对应的扩展标志时,从附加资源记录区对应的排序结果协议段中获取服务质量排序编号,根据所述服务质量排序编号确定应答资源记录区、授权资源记录区、附加资源记录区中匹配结果的优先级。对于在所述第一响应报文中响应匹配的内容为最终解析结果时,将匹配结果和/或服务质量排序反馈给发起DNS解析的用户。需要说明的是,DNS递归请求系统的具体实施方式可以参照DNS递归请求方法的具体实施方式。
以下围绕实施例1、实施例2对DNS递归请求方法及系统做进一步地阐述。
实施例1:
如图4所示,在各级权威DNS服务器都支持服务质量排序的情况下,当用户向递归服务器发起www.example.com的解析请求时,如果递归服务器不存在相应的匹配时,就需要向根域名服务器、顶级域名服务器、二级域名服务器分别展开查询。在本实施方式中,为了让每级的权威DNS服务器返回的记录都是最佳的,需要定期向下级权威DNS服务器发起服务质量检测,从而不断更新服务质量最优的权威DNS服务器。递归服务器在选择根域名服务器开始递归查询时,优选地确定国内部署的根镜像服务器,或者雪人计划中国内维护的IPv6根域名服务器,由于对于国内来说这些服务器相对链路状态更好。相应地,向镜像根发起查询后,根域名服务器会根据定期的服务质量检测返回最优的顶级域名服务器,上述的交互过程仍采用标准的DNS报文,会相应地在附加资源记录区扩展排序结果协议段。递归服务器获得响应后,会通过响应报文确定最优的顶级域名服务器,向最优的顶级域名服务器发起查询,同理对应的顶级域名服务器也会根据服务质量检测的结果返回最优的二级域名服务器。依此类推,递归服务器向最优的二级域名服务器发起查询,二级域名服务器也会对域名对应的服务器进行服务质量检测,也会返回最优的最终解析结果,递归获得最优的最终解析结果后,将其返回给用户,进一步也会在递归服务器本地进行缓存以便下次查询使用。因为整个过程中访问的服务器都是最优的,因此可以在最短的时间内完成递归解析,同时,由于是将域名解析地址中服务质量最优的返回给用户,因此用户访问域名对应网络服务的体验也很顺畅。
如图5所示,对具有兼容特性的DNS解析,在对应权威DNS服务器响应相关请求返回了响应报文后,首先会根据响应报文来判断是否支持扩展的排序结果协议,如上所述,支持排序结果协议的会在报文附加资源记录区内嵌入相应的字段。如果支持根据排序结果协议段内容进行处理,具体仅将排序结果协议段中最优匹配结果进行缓存,而不支持的则根据标准格式段的内容进行处理,即将标准格式段中返回的所有匹配结果进行缓存。下一步对于从报文中提取的匹配结果处理比较相似,分别判断是否为最终的解析结果,如果是直接返回给用户,如果不是再确定匹配结果中的资源记录是不是CNAME记录(别名记录)。如果是CNAME记录,则针对别名重新发起查询请求,即从根域名服务器开始查询别名对应的资源记录。如果匹配结果中的资源记录不是CNAME记录,根据匹配结果中确定的NS记录及A记录、AAAA记录向下一级权威 DNS服务器发起请求,下一级权威DNS服务器也会返回相应的响应,从而循环进行。
实施例2:
通过在各级权威DNS服务器上部署负载均衡服务和权威服务两个模块,负载均衡服务用于对下级权威DNS服务器进行服务质量检测及针对递归查询的请求进行响应,权威服务作为传统权威DNS服务器的模块,用于存储、更新相应的资源记录。
比如主机1作为递归服务器,其递归程序使用53端口实现通信,主机2作为一级权威DNS 服务器。在主机2上部署负载均衡程序和权威程序,分别使用53和10053作为接收DNS查询的服务端口。主机3作为主机2的下级权威DNS服务器,相应的负载均衡程序和权威程序部署在主机3上,也分别使用53和10053作为接收DNS查询的服务端口。
主机1上的递归程序开启最优查询功能开关,并要求返回最优的2个匹配结果,假设主机2是链路最优的国内根镜像域名服务器,在递归程序中指定主机2的地址为根域名服务器的查询对象。主机2中的负载均衡程序中配置了下级权威DNS服务器的最优结果监控,假设主机3是其中之一。在主机2中记录了com的13条NS记录以及上述13条NS记录的13条A记录和13条AAAA记录。假设其中有1个NS记录对应的地址在国内,比如主机3,12个NS记录对应的地址在国外,那么此时国内用户在访问主机3的响应速度就会快于其他12个。
依此类推,顶级域名服务器的负载均衡程序中配置了example.com域的最优结果监控,顶级域名服务器管理的example.com域名的资源记录信息如下:记录了example.com的NS记录(ns1.example.com、ns2.example.com、ns3.example.com、ns4.example.com)以及NS记录的两条A记录(121.17.50.1和121.17.50.2)和两条AAAA记录(240e:eb:8001::8c2e:9024:6510和240e:eb:8001::8c2e:9024:6511),具体配置文件如下:
example.com IN NS ns1.example.com
example.com IN NS ns2.example.com
example.com IN NS ns3.example.com
example.com IN NS ns4.example.com
ns1.example.com IN A 121.17.50.1
ns2.example.com IN A 121.17.50.2
ns3.example.com IN AAAA 240e:eb:8001::8c2e:9024:6510
ns4.example.com IN AAAA 240e:eb:8001::8c2e:9024:6511
并且其中的两个IPv6的地址,240e:eb:8001::8c2e:9024:6510能正常提供服务,240e:eb:8001::8c2e:9024:6511无法正常连接,两个IPv4的地址,121. 17.50.1和121.17.50.2都能够提供正常的访问。并且以121.17.50.1的服务质量最优,240e:eb:8001::8c2e:9024:6510次之,121.17.50.2最差。
因此,在实际的解析过程中,当主机1中的递归程序收到了用户的一条www.example.com域名的查询请求,并且当前的递归程序是刚启动,没有任何的缓存信息时,会向主机2发起递归查询,与此同时还会再向主机2发送NS记录的请求。由于主机2的负载均衡程序中配置了com域的监控,并且要求返回2个匹配结果,故在负载均衡程序收到来自主机1发送过来的www.example.com的DNS解析请求后,会将com的2个服务质量最优的权威DNS服务器的资源记录返回给主机1,主机1在收到返回的响应报文后,会将报文中的扩展信息解析出来,对其中com的最优NS记录以及对应的2条A记录或者AAAA记录的地址放入缓存后再去进行下一级的递归查询。
相应地,主机1会从上述的两个地址中选择一个最优的地址发起访问,假设选择的就是主机3这台顶级域名服务器,会将www.example.com的查询请求发送到主机3的负载均衡程序监听的53端口,从而被主机3的负载均衡程序获取,主机3在获取到该请求后,会先去匹配缓存,再去根据请求报文中携带的扩展信息匹配最优响应策略。由于主机3的负载均衡程序事先已经配置了example.com域的最优结果监控策略,故是能成功命中的。命中策略后,负载均衡程序会根据策略的要求返回2个匹配结果,即将服务质量最优的121.17.50.1和服务质量次优的240e:eb:8001::8c2e:9024:6510添加进响应报文附加资源记录区中,相应的服务质量优先级顺序可以反应在附加资源记录区的排序结果协议段中,而对应的NS记录为:
example.com IN NS ns1.example.com
example.com IN NS ns3.example.com
添加进响应报文的授权资源记录区中返回给主机1。依此类推,后续继续进行下一级的查询过程,直到找到www.example.com对应的解析结果后返回给用户。由于返回的响应报文中具有优先级的信息,因此可以始终保证选择最优的权威DNS服务器实现查询,DNS解析性能大大提高。
结合本申请所公开的技术方案,可以直接体现为硬件、由控制单元执行的软件模块或二者组合,即一个或多个步骤和/或一个或多个步骤组合,既可以对应于计算机程序流程的各个软件模块,亦可以对应于各个硬件模块,例如ASIC(Application SpecificIntegrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或其他可编程逻辑器件、分立门或晶体逻辑器件、分立硬件组件或者其任意适当组合。为了描述的方便,描述上述装置时以功能分为各种模块分别描述,当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
通过以上实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请也可以借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分也可以以软件产品的形式体现出来。该软件可以由微控制单元执行,依赖于所需要的配置,也可以包括任何类型的一个或多个微控制单元,包括但不限于微控制器、DSP(Digital Signal Processor,数字信号控制单元)或其任意组合。该软件存储在存储器,例如,易失性存储器(例如随机读取存储器等)、非易失性存储器(例如只读存储器、闪存等)或其任意组合。
综上所述,本发明在DNS报文标准格式的基础上进行扩展,向前兼容原有的DNS报文通信,在递归服务器与权威DNS服务器之间实现扩展需求的信息交互,从而支持获得若干个最优的查询地址。本发明可以保证DNS解析的服务质量,提高递归查询的性能。
应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为了清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。

Claims (6)

1.一种DNS递归请求方法,其特征在于,包括如下步骤:
向指定权威DNS服务器发送第一请求报文,所述第一请求报文包括请求对应权威DNS服务器返回若干匹配结果及服务质量排序的特定格式;所述特定格式是通过在标准DNS报文的附加资源记录区中扩展排序结果协议段来嵌入扩展的请求及响应信息;
接收响应于所述第一请求报文的第一响应报文,对所述第一响应报文中的扩展标志进行判断,以确定从DNS报文标准格式段中或从排序结果协议段中获取响应匹配的内容;
在所述第一响应报文的附加资源记录区确定到对应的扩展标志时,从附加资源记录区对应的排序结果协议段中获取服务质量排序编号,根据所述服务质量排序编号确定应答资源记录区、授权资源记录区、附加资源记录区中匹配结果的优先级;
排序结果协议段对应的特定格式嵌入在附加资源记录区中,包括排序应答资源记录数、排序授权资源记录数、排序附加资源记录数及服务质量排序编号;
在所述第一响应报文中响应匹配的内容为最终解析结果时,将匹配结果和/或服务质量排序反馈给发起DNS解析的用户。
2.根据权利要求1所述的DNS递归请求方法,其特征在于,指定权威DNS服务器根据上级权威DNS服务器响应匹配的内容或本地部署的根域名服务器、根镜像域名服务器确定。
3.根据权利要求1所述的DNS递归请求方法,其特征在于,在查询所述第一响应报文的扩展标志失败时,从应答资源记录区、授权资源记录区、附加资源记录区对应的标准格式段中获取匹配结果。
4.一种DNS递归请求系统,其特征在于,
发送单元,用于向指定权威DNS服务器发送第一请求报文,所述第一请求报文包括请求对应权威DNS服务器返回若干匹配结果及服务质量排序的特定格式;所述特定格式是通过在标准DNS报文的附加资源记录区中扩展排序结果协议段来嵌入扩展的请求及响应信息;
接收单元,用于接收响应于所述第一请求报文的第一响应报文,对所述第一响应报文中的扩展标志进行判断,以确定从DNS报文标准格式段中或从排序结果协议段中获取响应匹配的内容;
所述接收单元在所述第一响应报文的附加资源记录区确定到对应的扩展标志时,从附加资源记录区对应的排序结果协议段中获取服务质量排序编号,根据所述服务质量排序编号确定应答资源记录区、授权资源记录区、附加资源记录区中匹配结果的优先级;
排序结果协议段对应的特定格式嵌入在附加资源记录区中,包括排序应答资源记录数、排序授权资源记录数、排序附加资源记录数及服务质量排序编号;
在所述第一响应报文中响应匹配的内容为最终解析结果时,将匹配结果和/或服务质量排序反馈给发起DNS解析的用户。
5.根据权利要求4所述的DNS递归请求系统,其特征在于,所述发送单元对于指定权威DNS服务器根据上级权威DNS服务器响应匹配的内容或本地部署的根域名服务器、根镜像域名服务器确定。
6.根据权利要求4所述的DNS递归请求系统,其特征在于,所述接收单元在查询所述第一响应报文的扩展标志失败时,从应答资源记录区、授权资源记录区、附加资源记录区对应的标准格式段中获取匹配结果。
CN202010360415.5A 2020-04-30 2020-04-30 Dns递归请求方法及系统 Active CN111711706B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010360415.5A CN111711706B (zh) 2020-04-30 2020-04-30 Dns递归请求方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010360415.5A CN111711706B (zh) 2020-04-30 2020-04-30 Dns递归请求方法及系统

Publications (2)

Publication Number Publication Date
CN111711706A CN111711706A (zh) 2020-09-25
CN111711706B true CN111711706B (zh) 2023-04-07

Family

ID=72536734

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010360415.5A Active CN111711706B (zh) 2020-04-30 2020-04-30 Dns递归请求方法及系统

Country Status (1)

Country Link
CN (1) CN111711706B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112468474A (zh) * 2020-11-19 2021-03-09 哈尔滨工业大学(威海) 一种递归域名服务器解析异常的主动检测方法
CN113596194B (zh) * 2021-08-02 2023-07-21 牙木科技股份有限公司 一种用于dns流量分类标定的方法和dns服务器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012092765A1 (zh) * 2011-01-04 2012-07-12 中兴通讯股份有限公司 一种域名系统及其提供负荷均衡的方法
FR3023098A1 (fr) * 2014-06-30 2016-01-01 Orange Procede et systeme de traitement d'une demande de resolution d'un nom d'un serveur, emise par une application cliente sur un reseau de communication.

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7343399B2 (en) * 2001-06-25 2008-03-11 Nortel Networks Limited Apparatus and method for managing internet resource requests
US9998321B2 (en) * 2002-03-19 2018-06-12 Apple Inc. Method and apparatus for supporting duplicate suppression when issuing multicast queries using DNS-format message packets
CN106331216B (zh) * 2016-09-13 2020-11-03 腾讯科技(深圳)有限公司 域名的解析方法和装置
CN106790762B (zh) * 2017-01-11 2022-05-24 腾讯科技(深圳)有限公司 域名解析方法和装置
US10728206B2 (en) * 2017-03-22 2020-07-28 Citrix Systems, Inc. Method for DNS response reordering based on path quality and connection priority for better QOS
CN108011994B (zh) * 2017-12-15 2022-03-01 网宿科技股份有限公司 一种查询dns记录的方法和系统
CN110602264B (zh) * 2019-09-02 2022-05-10 中国移动通信集团江苏有限公司 传递域名解析地址权重信息的方法、装置、设备和介质
CN111698341B (zh) * 2020-04-30 2023-04-07 广州根链国际网络研究院有限公司 Dns权威响应方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012092765A1 (zh) * 2011-01-04 2012-07-12 中兴通讯股份有限公司 一种域名系统及其提供负荷均衡的方法
FR3023098A1 (fr) * 2014-06-30 2016-01-01 Orange Procede et systeme de traitement d'une demande de resolution d'un nom d'un serveur, emise par une application cliente sur un reseau de communication.

Also Published As

Publication number Publication date
CN111711706A (zh) 2020-09-25

Similar Documents

Publication Publication Date Title
US10148612B2 (en) Method and system for increasing speed of domain name system resolution within a computing device
US7558880B2 (en) Dynamic DNS registration method, domain name solution method, DNS proxy server, and address translation device
CN1143488C (zh) 在基于ip的基站系统中自动配置新节点的方法和系统
US7415536B2 (en) Address query response method, program, and apparatus, and address notification method, program, and apparatus
JP5404766B2 (ja) ルーティングをリクエストするための方法とシステム
JP4159337B2 (ja) 仮想ネットワーク名の解決方法
US20060095585A1 (en) System and method for establishing communication between a client and a server in a heterogenous ip network
US20030187882A1 (en) Identifier query method, communication terminal, and network system
JP2011527043A (ja) ネットワークコンピューティングコンポーネントを使用するルーティングリクエスト
CN111711706B (zh) Dns递归请求方法及系统
US20080162724A1 (en) Direct domain name service query
CN101150600A (zh) 选择通信中使用的地址的装置和方法
CN112073545B (zh) 使用dns来传送服务器设备的mp-tcp能力
CN111698341B (zh) Dns权威响应方法及系统
CN111988441B (zh) 基于IPv6的组网接入方法及系统
US20040153502A1 (en) Enhanced DNS server
JPH09282259A (ja) ネットワークシステム
CN111970179B (zh) 基于IPv6的组网接入方法及系统
JP2008206081A (ja) マルチホーミング通信システムに用いられるデータ中継装置およびデータ中継方法
CN111787132A (zh) Dns查询解析方法及系统
CN117135140A (zh) 反向地址解析方法、地址分配方法及分层域名服务系统
CN118075229A (zh) 一种IPv6网络地址转换网关信息列表维护更新方法
JP3801115B2 (ja) 論理アドレスサービス起動方法及びシステム及び論理アドレスサービス起動プログラム及び論理アドレスサービス起動プログラムを格納した記憶媒体
STANDARD Media Device Control Discovery (MDCD)
Dutta MIGRATION FROM IPV4 TO IPV6

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant