原文链接:https://www.cnblogs.com/qingdaofu/p/7399670.html

DNS递归查询与迭代查询

基础知识

1.域名系统

2.域名服务器

域名解析过程

1.在浏览器中输入www.qq.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。

2.如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。

3.如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/IP参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,

此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。

4.如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。

5.如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,

如果未用转发模式,本地DNS就把请求发至 “根DNS服务器”,“根DNS服务器”收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。

本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,

它就会找一个管理.com域的下一级DNS服务器地址(qq.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面的动作,进行查询,直至找到www.qq.com主机。

6.如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。

不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。

递归查询与迭代查询

一、主机向本地域名服务器的查询一般都是采用递归查询。

所谓递归查询就是:如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,

向其它根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。

因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是报错,表示无法查询到所需的IP地址。

二、本地域名服务器向根域名服务器的查询的迭代查询。

迭代查询的特点:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地服务器:“你下一步应当向哪一个域名服务器进行查询”。

然后让本地服务器进行后续的查询。根域名服务器通常是把自己知道的顶级域名服务器的IP地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。

顶级域名服务器在收到本地域名服务器的查询请求后,要么给出所要查询的IP地址,要么告诉本地服务器下一步应当向哪一个权限域名服务器进行查询。

最后,知道了所要解析的IP地址或报错,然后把这个结果返回给发起查询的主机

递归:客户端只发一次请求,要求对方给出最终结果。

迭代:客户端发出一次请求,对方如果没有授权回答,它就会返回一个能解答这个查询的其它名称服务器列表,

客户端会再向返回的列表中发出请求,直到找到最终负责所查域名的名称服务器,从它得到最终结果。

授权回答:向dns服务器查询一个域名,刚好这个域名是本服务器负责,返回的结果就是授权回答。

从递归和迭代查询可以看出:

客户端-本地dns服务端:这部分属于递归查询。

本地dns服务端---外网:这部分属于迭代查询。

递归查询时,返回的结果只有两种:查询成功或查询失败.

迭代查询,又称作重指引,返回的是最佳的查询点或者主机地址.

转载于:https://www.cnblogs.com/qy-blogs/p/10049754.html

DNS递归查询与迭代查询相关推荐

  1. 详解DNS递归查询与迭代查询

    关于01月23日全国范围内DNS污染,域名解析故障的根源,资深的IT人士都知道原因是什么,并非国家 互联网应急中心发出的遭受***一说. 因此这里介绍一下DNS服务器的查询原理,也就是递归查询和迭代查 ...

  2. DNS递归查询以及迭代查询

    递归查询 当客户端向本地DNS服务器发起查询请求时,DNS先查询自己有没有缓存记录,如果没有,则向根DNS发起查询请求,但是根DNS也不知道域名对应的IP地址,所以告诉它去下一级DNS服务器查询,直至 ...

  3. DNS递归和迭代查询

    转自:https://www.jianshu.com/p/6b502d0f2ede 一.DNS解析分类 DNS解析流程分为递归查询和迭代查询,递归查询是以本地名称服务器为中心查询,递归查询是默认方式, ...

  4. 【运维面试】递归查询和迭代查询

    关于递归查询和迭代查询: 主机向本地域名服务器的查询一般都是采用递归查询. 所谓递归查询就是:如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份, 向其 ...

  5. 一起学DNS系列(十)图、例详解DNS递归和迭代查询原理及过程 (1)

    上节中提到了一些有关递归查询的内容,但说的很少,也很笼统,本节将会从原理和实例两方面入手分析DNS的递归以及迭代查询. 在此之前,我们需要了解一些背景知识,以便于更好的理解今天的主题内容. 在互联网中 ...

  6. 什么是递归查询,迭代查询?

    主机向本地域名服务器的查询一般都是采用递归查询.所谓递归查询就是:如果主机所询问的本地域名服务器不知道被查询的域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向根域名服务器继续发出查询 ...

  7. 递归查询和迭代查询的区别

    (1)递归查询 如果主机所询问的本地DNS服务器不知道被查询的域名对应的IP地址,那么该服务器会询问其他服务器(即替主机继续查询,而不是让主机自己进行下一步查询),并将返回的查询结果提交给客户机. ( ...

  8. DNS迭代查询,递归查询

    相信很多人都对DNS协议有所了解,你肯定会说,不就是根据域名转换成IP地址再访问吗.那你知道它是如何查询的吗? 第一,主机向本地域名服务器的查询一般为递归查询,所谓递归查询就是如果本地域名服务器不知道 ...

  9. 软考--DNS迭代查询与递归查询

    目录 1.根.顶级.权限采用迭代方式[由本地DNS去查并接受返回结果] 2.根.顶级.权限都采用递归方式[根去查顶级并接受结果,顶级去查权限并接受结果] 3.例题 1.根.顶级.权限采用迭代方式[由本 ...

最新文章

  1. SQL 2005 中的数据约束
  2. 服务机器人---充电桩
  3. 八皇后问题的Java递归算法
  4. ASP 代码当前记录集不支持更新问题的解决办法。
  5. mysql 两个数相加_LeetCode 01两数之和02两数相加
  6. 开源方案搭建可离线的精美矢量切片地图服务-5.Mapbox离线项目实现
  7. 史上最全的MSSQL复习笔记
  8. 这本 Python 入门畅销书《“笨办法”学 Python 3》,不仅仅是一本书!
  9. Linux软件万花筒
  10. python的对象和方法_python--类方法、对象方法、静态方法
  11. linux使用shell脚本利用expect工具实现SCP传输文件到多台服务器
  12. C++学习笔记(二)——构造函数和析构函数
  13. python字符串_Python的字符串和编码
  14. SpringBoot中发送QQ邮件
  15. 【亲自动手试验过的】硬盘免光驱安装Fedora5
  16. java win7 管理员权限_Win7系统如何一键取得管理员权限
  17. php生成随机姓名,PHP随机生成中国人姓名的类
  18. java如何获取storage_本地化存储Storage
  19. sequoia的架构
  20. eft and spin

热门文章

  1. windows7修改双系统启动项名称、先后顺序、等待时间
  2. Windbg简明教程(转)
  3. Ubuntu 13.04设置root用户登录图形界面
  4. SqlServer中使用Mysql中的limit分页功能
  5. 解决int和Integer不能互转
  6. mdadm中文man帮助
  7. 跨平台Unicode编程的一点问题
  8. 什么是A记录,子域名,CNAME别名,MX记录,TXT记录,SRV 记录,泛域名(泛解析),域名转向,域名绑定...
  9. 原生js-Ajax jq-Ajax集结
  10. 安全测试之session,cookie