精华内容
下载资源
问答
  • DNS递归查询与迭代查询

    千次阅读 2016-10-26 09:43:03
    DNS递归查询与迭代查询summary一直以来对于DNS查询的“递归”与“迭代”方式感到困惑。一般人就直接跟你说“DNS客户端向DNS服务器请求叫递归查询”,“DNS服务器之间的查询请求是迭代查询”,听了之后根本不知所谓。...

    DNS递归查询与迭代查询


    summary

    一直以来对于DNS查询的“递归”与“迭代”方式感到困惑。一般人就直接跟你说“DNS客户端向DNS服务器请求叫递归查询”,“DNS服务器之间的查询请求是迭代查询”,听了之后根本不知所谓。。。直到我看了《网络操作系统——windows server 2003配置与管理》(陈景亮主编)一书,明白了具体情况。以下主要是“摘抄”,包括附图。不自己整理,主要是因为它写得确实好,而且组织起来有一定的麻烦性。

    递归查询

    递归查询要求DNS服务器在任何情况下都要返回结果。一般DNS客户端向DNS服务器提出的查询请求属于递归查询。标准递归查询过程如下图:

    递归查询

    假设域名为test1.abc.com的主机要查询域名为www.info.xyz.com的服务器的IP。

        第一步:向本地DNS服务器abc.com查询;
        第二步:本地DNS服务器查询不到,则通过根提示文件向负责.com顶级域的根DNS服务器查询;
        第三第:根DNS服务器根据所查询域名中的“xyz.com”再向xyz.com DNS服务器查询;
        第四步:xyz.com DNS服务器直接解析域名www.info.xyz.com,将查询结果按照原路返回给请求查询客户端test1.abc.com

    递归与迭代相结合的查询

    采用上边的递归查询方法,根DNS服务器需要经过逐层查询才能获得查询结果,效率很低,而且还会增加根DNS服务器的负担。为了解决这个问题,实际上采用递归与迭代相结合的查询方式,如图:

    递归+迭代查询

    查询过程如下:

        第一步:向本地DNS服务器abc.com查询;
        第二步:本地DNS服务器查询不到,则通过根提示文件向负责.com顶级域的根DNS服务器查询;
        第三步:根DNS服务器直接将下属的DNS服务器IP地址返回给本地DNS服务器;
        第四步:本地DNS服务器直接向xyz.com DNS服务器查询。

    这其中,迭代查询将对DNS服务器进行查询的任务交给DNS客户端,DNS服务器只是给客户端返回一个提示,告诉它到另一台DNS服务器继续查询,直到查到所需结果为止。如果最后一台DNS服务器也不能提供所需答案,则宣告查询失败。所以说“一般服务器之间的查询请求属于迭代查询”。

    个人理解

    单独地讲什么是递归查询什么是迭代查询是没有意义的,递归和迭代本身就是在一个群体(不是1也不是2的数量)中的行为方式,直接说“DNS客户端向DNS服务器请求叫递归查询”,“DNS服务器之间的查询请求是迭代查询”,从概念上来说就是错的。

    那现在我们可以来讲讲,为什么叫它“递归查询”?“迭代查询”?

    从第一个例子中,我们站在test1.abc.com的角度看,发出了查询请求后,这个请求通过一层一层递交,直到最后得到了一个明确的解析结果才把它返回给test1.abc.com。这过程就看出来它是递归的。

    从第二个例子中,我们站在abc.com服务器的角度看,发出了查询请求后,查询结果直接返回来了,如果没有解析出来,那么我们就进行下一次查询(根据返回的指引),这样是一次次重复同样的操作的,这个叫做迭代。而我们上边说到的的“递归结合迭代”,这里的递归在于进行操作的并不直接是我们的test1.abc.com主机,而是abc.com,查询主机test1.abc.com也是在最后才收到一个最终的查询结果哦,就像递归例子讲的那样。

    展开全文
  • DNS递归查询

    2015-07-08 14:36:42
    递归递归解析指的是名字服务器在收到递归查询时所使用的解析过程. 解析器向本地名字服务器发送一个关于某个域名信息的递归查询.被查询的名字服务器必须返回所请求的数据或者是出错说明,出错可能包括所请求的...
    递归查询:将大部分的解析负担置于一个名字服务器上.递归或递归解析指的是名字服务器在收到递归查询时所使用的解析过程.

    解析器向本地名字服务器发送一个关于某个域名信息的递归查询.被查询的名字服务器必须返回所请求的数据或者是出错说明,出错可能包括所请求的类型数据不存在或所给域名不存在.本地名字服务器不能只将查询者指向另一个名字服务器,因为该查询是递归的

    如果被查询的名字服务器不是所请求的数据的权威,它将不得不向其他名字服务器发出查询以获得答案.它可以向其他名字服务器发送递归查询
    展开全文
  • DNS递归和迭代过程详解

    万次阅读 2018-04-17 11:51:57
    DNS查询流程 DNS服务搭建 DNS相关软件的安装 服务器搭建规划 手把手教你搭建基本DNS服务器 搭建主DNS服务器 搭建从DNS服务器 参考文献 DNS原理解析 DNS进化史 etc/hosts –> NIS –>...

    目录

    DNS原理解析

    DNS进化史

    etc/hosts –> NIS –>DNS
    起初域名和ip地址之间的解析都是完全存放在一个名为hosts的文件当中,在这个文件当中我们建立了ip和域名的一一对应的关系,在互联网初期,这样做完全是没有问题的,但是随着网络的发展,网络内的主机越来越多,这个文件会变得越来越大,而且为了保证每台主机都能有这样的解析功能,我们不得不让每台主机都有同样的文件,那么每次我们更新文件的时候,互联网每台主机都需要更新自己的hosts文件,这是一件工作量极其大的事情。

    后期,人们采用了一种名为NIS的解决方式,实现的方法是把所有ip地址和网络域名之间的对应存放在一个服务器上,每次有主机需要进行域名解析的时候,我们就让该台主机去访问这台名为NIS的服务器,后来随着网络的扩展,互联网上的主机上百亿,这样对NIS服务器的负载极大,NIS不得不退出了历史舞台。

    现在,我们使用DNS协议,来实现分布式、阶层式的系统来管理ip地址和域名之间的对应关系。

    DNS结构

    这里写图片描述
    从上图中,我们可以知道,DNS利用类似树状目录的架构,将主机名的管理分配在不同层级的DNS服务器当中,经由分层管理,所以每一部DNS服务器记忆的信息就不会很多,而且若有IP 异动时也相当容易修改!因为你如果已经申请到主机名解析的授权,那么在你自己的DNS服务器中,就能够修改全世界都可以查询到的主机名了!

    DNS是以树状目录分阶层的方式来处理主机名,我们知道树状结构的好处就是,父节点只关注他的子节点的内容,而不关注他的孙子节点的内容,这样就在很大程度上实现了分治,根节点只需要管理它的子节点.com .cn .edu等域名和ip地址之间的关系即可,再往下的baidu.com,qq.com域名就完全和他无关了。

    DNS查询流程

    我们以客户端第一次查询百度为例子解释DNS的查询流程
    这里写图片描述
    递归和迭代的区别?
    所谓 递归查询过程 就是 “查询的递交者” 更替, 而 迭代查询过程 则是 “查询的递交者”不变。

    在需要DNS解析的客户端,比如说笔记本,当我们解析www.baidu.con时我们会先进行下面的操作:
    操作系统会先检查自己本地的hosts文件—>查找本地DNS解析器缓存(笔记本的缓存)
    如果以上两步都没有找到会执行上图所示的步骤:

    1.如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/IP参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,进入windows下的命令行窗口输入ipconfig/all,即可查到你当前的DNSsever.如图
    这里写图片描述
    箭头一是DHCP服务器,箭头二是DNS服务器。
    此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。

    2.如果本地DNS没有该条记录,那么本地DNS就把请求发至 “根DNS服务器”,“根DNS服务器”收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。基于本例子,根服务器会发送.com服务器ip地址。(对应图中的2、3条信息记录)。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(baidu.com)给本地DNS服务器。(对应途中4、5条信息记录),以此类推下去,直至最后本地DNS得到了www.baidu.com服务器的IP地址

    3.最后一步,本地DNS把查询到的记录进行缓存并且将该条记录返回给客户端。对应图中的第10步。

    我们把该过程画成流程图则如下所示:
    这里写图片描述

    DNS服务搭建

    DNS相关软件的安装

    我们使用主流的提供DNS服务的软件,bind.下面我们先查询一下该软件的相关信息
    这里写图片描述
    安装方法:[root@CentOs7 /etc/named]# yum -y install bind

    服务器搭建规划

    规划自己搭建的局域网的域名为xiaomi.com。由于我们搭建的DNS是不接上互联网的,所以此处域名是可以随意取得,我就使用xiaomi的域名了。

    • 两台安装了CentOs7.4的虚拟机,利用这两台主机搭建Master/Slave结构的DNS服务
    • 涉及到的配置文件:
      • named.conf(主要配置文件)
      • named.xiaomi.com(涉及到xiaomi.com这个域的正解配置文件)
      • named.ca (bind软件提供的能够解析根服务器的正解配置文件)

    手把手教你搭建基本DNS服务器

    搭建主DNS服务器

    第一步:安装bind软件包,修改/etc/named.conf文件,对全局配置options修改如下:
    这里写图片描述
    第二步:在/etc/named.conf配置文件中加入一段有关xiaomi.com的zone文件。具体配置如下:
    这里写图片描述
    第三步:新建文件/var/named/xiaomi.com.zone,编辑正向解析区域文件,配置内容如下:
    这里写图片描述
    第四步:重启服务,并设置为开机自启动服务。

    搭建从DNS服务器

    步骤较为简单,连正解zone文件都不需要写,你只需要写个zone文件的类似于声明一样的东西,写在主配置文件/etc/named.conf尾部。如下所示
    这里写图片描述
    当你主配置文件的SOA记录的serial变大时,从配置文件会自动更新收到主配置文件的变化并努力保持一致。

    参考文献

    展开全文
  • DNS递归和迭代查询

    千次阅读 2019-09-18 21:10:41
    一、DNS解析分类 DNS解析流程分为递归查询和迭代查询,递归查询是以本地名称服务器为中心查询,递归查询是默认方式,迭代查询是以DNS客户端,也...二、DNS递归解析原理 递归解析(或叫递归查询)是最常见,也是默...

    转自:https://www.jianshu.com/p/6b502d0f2ede

    一、DNS解析分类

    DNS解析流程分为递归查询迭代查询,递归查询是以本地名称服务器为中心查询,递归查询是默认方式,迭代查询是以DNS客户端,也就是客户机器为中心查询。其实DNS客户端和本地名称服务器是递归,而本地名称服务器和其他名称服务器之间是迭代

    二、DNS递归解析原理

    递归解析(或叫递归查询)是最常见,也是默认的解析方式。在这种解析方式中,如果客户端配置的本地名称服务器(又称Local DNS,可以是默认的运营商提供的Local DNS或者自己设置的DNS) 不能解析的话,则后面的查询全由本地名称服务器代替DNS客户端进行查询,直到本地名称服务器从权威名称服务器得到了正确的解析结果,然后由本地名称服务器告诉DNS客户端查询的结果

    DNS递归解析基本流程:

    在这个查询过程中,一直是以本地名称服务器(Local DNS)为中心的,DNS客户端只是发出原始的域名查询请求报文,然后就一直处于等待状态的,直到本地名称服务器发来了最终的查询结果。此时的本地名称服务器就相当于中介代理的作用。如果考虑了本地名称服务器的缓存技术(也就是在DNS服务器上对一定数量的以前查询记录保存一定时间,这样后面查询同样的域名信息时就可直接从缓存中调出来,以加速查询效率)的话,则递归解析的基本流程如下:

    1)、客户端向本机配置的本地名称服务器(在此仅以首选DNS服务器为例进行介绍,所配置其它备用DNS服务器的解析流程完全一样)发出DNS域名查询请求

    2)、本地名称服务器收到请求后,先查询本地的缓存,如果有该域名的记录项,则本地名称服务器就直接把查询的结果返回给客户端;如果本地缓存中没有该域名的记录,则本地名称服务器再以DNS客户端的角色发送与前面一样的DNS域名查询请求发给根名称服务器

    3)、根名称服务器收到DNS请求后,把所查询得到的所请求的DNS域名中顶级域名所对应的顶级名称服务器地址返回给本地名称服务器

    4)、本地名称服务器根据根名称服务器所返回的顶级名称服务器地址,向对应的顶级名称服务器发送与前面一样的DNS域名查询请求

    5)、对应的顶级名称服务器在收到DNS查询请求后,也是先查询自己的缓存,如果有所请求的DNS域名的记录项,则相接把对应的记录项返回给本地名称服务器,然后再由本地名称服务器返回给DNS客户端,否则向本地名称服务器返回所请求的DNS域名中的二级域名所对应的二级名称服务器地址

    然后本地名称服务器继续按照前面介绍的方法一次次地向三级、四级名称服务器查询,直到最终的对应域名所在区域的权威名称服务器返回到最终的记录给本地名称服务器。然后再由本地名称服务器返回给DNS客户,同时本地名称服务器会缓存本次查询得到的记录项

    三、递归查询和迭代查询的区别

    DNS客户端和本地名称服务器是递归,而本地名称服务器和其他名称服务器之间是迭代

    DNS递归名称解析:在DNS递归名称解析中,当所配置的本地名称服务器解析不了时,后面的查询工作是由本地名称服务器替代DNS客户端进行的(以本地名称服务器为中心),只需要本地名称服务器向DNS客户端返回最终的查询结果即可

    DNS迭代名称解析:(或者叫迭代查询)的所有查询工作全部是DNS客户端自己进行(以DNS客户端自己为中心)。在条件之一满足时就会采用迭代名称解析方式:

    • 在查询本地名称服务器时,如果客户端的请求报文中没有申请使用递归查询,即在DNS请求报头部的RD字段没有置1。相当于说”你都没有主动要求我为你进行递归查询,我当然不会为你工作了”
    • 客户端在DNS请求报文中申请使用的是递归查询(也就是RD字段置1了),但在所配置的本地名称服务器上是禁用递归查询(DNS服务器一般默认支持递归查询的),即在应答DNS报文头部的RA字段置0

    1)、递归
    在这里插入图片描述
    2)、迭代
    在这里插入图片描述

    展开全文
  • 递归查询是一种DNS 服务器的查询模式,在该模式下DNS 服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果DNS 服务器本地没有存储查询DNS 信息,那么该服务器会询问其他服务器,并将返回的查询结果...
  • ... 递归查询和迭代查询的...递归查询是一种DNS server的查询模式,在该模式下DNS server接收到客户机请求。必须使用一个准确的查询结果回复客户机。假设DNS server本地没有存储查询DNS 信息,那么该server会询问...
  • DNS递归迭代查询原理

    2011-08-25 10:11:52
    DNS工作原理以及DNS架设说明,详细并举例说明了DNS工作原理和整个递归查询过程。详细的图解说明架设DNS的步骤和注意事项。
  • DNS递归查询IP

    千次阅读 2014-01-22 11:01:23
    dig +trace 域名 进行递归DNS查询,从根到权威DNS一次性查出。 2.nslookup,手动指定服务器来解析域名。 进行>界面后,1.set type=a,设置查询的类型为主机地址。然后输入域名,nslookup 会显示当前DNS ...
  • 详解DNS递归查询与迭代查询

    千次阅读 2014-01-23 13:01:38
    因此这里介绍一下DNS服务器的查询原理,也就是递归查询和迭代查询。下图比较简明的描述了DNS服务器为客户端解析主机www.163.com的全过程.根域名服务器:是互联网域名解析系统(DNS)中最高级别的域名服务器,全球有...
  • 递归查询递归查询递归查询是一种DNS 服务器的查询模式,在该模式下DNS 服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果DNS 服务器本地没有存储查询DNS 信息,那么该服务器会询问其他服务器,...
  • DNS递归解析过程

    2014-04-07 18:43:02
    DNS的解析过程是这样的,首先我们请求自己填写的DNS服务器,服务器先查自己的缓存,没有,直接去问顶级域名,然后顶级域名呢,不直接告诉你答案,也返回一个IP,让你去访问这个IP,这个IP不是真实的你要去请求的...
  • DNS迭代查询递归查询

    千次阅读 2012-08-31 18:39:30
    只要发出递归查询,服务器必需回答目标IP与域名的...如图所示:从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间就是的交互查询就是迭代查询。   DNS查询模式  1.递归查询:  一般客户
  • DNS递归与迭代查询次数计算

    千次阅读 2016-11-26 16:06:38
    DNS递归与迭代查询次数计算@(计算机网络)设计缘由 理论上说,整个因特网可以只用一个域名服务器。使它装入因特网上所有的主机域名,并回答所有对IP地址的查询。 但是这么做,这个服务器肯定扛不住,因为因特网太大...
  • 递归查询和迭代查询 属于两种 查询模式 ... DNS递归查询和迭代查询  百度运维部二面,直接懵逼的节奏 ... 递归查询是一种DNS 服务器的查询模式,在该模式下DNS 服务器接收到客户机请求,  必须使用一...
  • DNS 迭代查询递归查询

    千次阅读 2012-09-20 18:37:17
    DNS 查询以各种不同的方式进行解析。有时,客户端也可使用从先前的查询获得的...这个过程称为递归。 另外,客户端自己也可尝试联系其他的 DNS 服务器来解析名称。当客户端这么做的时候,它会根据来自服务器的参考答
  • http://jeffyyko.blog.51cto.com/28563/215293本节将会从原理和实例两方面入手分析DNS递归以及迭代查询。在此之前,我们需要了解一些背景知识,以便于更好的理解今天的主题内容。在互联网中,一个域名的顺利解析离...
  • 迭代DNS查询递归DNS查询的区别 作者:Sarath Pillai 日期:2013月1月12日 原文:https://www.slashroot.in/difference-between-iterative-and-recursive-dns-query 翻译:tommwq 译文:...
  • DNS查询过程中有两种查询类型:递归查询和迭代查询:1、递归查询DNS客户端按照它的DNS服务器列表向DNS服务器发出查询请求的时候,接受查询请求的DNS服务器和客户端之间的查询关系一般都是递归查询。...
  • 只要发出递归查询,服务器必需回答目标IP与域名的映射...如图所示:从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间就是的交互查询就是迭代查询DNS查询模式 1.递归查询: 一般客户机和服务...
  • DNS递归查询与迭代查询的区别

    千次阅读 2018-12-27 21:27:46
    1、递归查询 王老师问宋校长(即根域DNS), 宋校长他不会,于是去问数学教学组的张教授(即一级DNS)。 张教授他没有直接回答,而是去问他下属的一位教几何的李老师(即二级DNS) 正巧,你问的题目李老...
  • 1.递归查询: 一般客户机和服务器之间属递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到结果后转交给客户机; 2.迭代查询(反复查询):是dns服务之间的...
  • 上节中提到了一些有关递归查询的内容,但说的很少,也很笼统,本节将会从原理和实例两方面入手分析DNS递归以及迭代查询。  在此之前,我们需要了解一些背景知识,以便于更好的理解今天的主题内容。  在互联网...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,065
精华内容 10,026
关键字:

dns递归查询工作过程