精华内容
下载资源
问答
  • 技术交流,添加企鹅:167748928...dns解析的过程是这样 第一步:输入域名后,电脑首先看自己有没有对应域名缓存,有缓存就直接用缓存里ip访问。 在windows命令行下可以看到现有的dns缓存 C:\Users\hubaixi.

    点击了解更多技术资料和免费学习视频,加入讨论群:662736393

    技术交流,添加企鹅:167748928

     

    什么是DNS?

    DNS(Domain Name System)域名系统,简单点来说,就是当我们在浏览器输入一个网址,需要有一台DNS服务器帮我们解析成IP地址,我们才能打开这个网站。

    dns解析的过程是这样的

    第一步:输入域名后,电脑首先看自己有没有对应域名的缓存,有缓存就直接用缓存里的ip访问。

    在windows的命令行下可以看到现有的dns缓存

    C:\Users\hubaixin>ipconfig /displaydns

    其中1条缓存

    第二步,如果缓存中没有,则去查询hosts文件,hosts文件在这里

    c:\windows\system32\drivers\etc\hosts

    如图,现在这台电脑的hosts文件里有两个记录,那么这两个域名可以直接从hosts文件里读取

     

    第三步,如果hosts文件里也没找到想解析的域名,则将域名发往自己配置的dns服务器,也叫本地dns服务器

    在windows命令行ipconfig/all可以看到自己的本地dns服务器,如图

     

    第四步,如果本地dns服务器有相应域名的记录,则返回记录。

    电脑的dns服务器一般是各大运营商如电信联通提供的,或者像180.76.76.76,223.5.5.5,4个114等知名dns服务商提供的,本身缓存了大量的常见域名的ip,所以常见的网站,都是有记录的。不需要找根服务器。

     

    第五步,如果电脑自己的服务器没有记录,会去找根服务器。根服务器全球只要13台,回去找其中之一。

    找了根服务器后,根服务器会根据请求的域名,返回对应的“顶级域名服务器”,如:

    如果请求的域名是http://xxx.com,则返回负责com域的服务器

    如果是http://xxx.cn,则发给负责cn域的服务器

    如果是http://xxx.ca,则发给负责ca域的服务器

    常见的顶级域有

    抓包分析

    客户端是192.168.1.34,本地dns服务器是192.168.1.221,当客户端向服务器请求http://www.hunau.edu.cn

    本地服务器向根服务器199.7.91.13转发,这是其中一台根服务器

    在iana上可看到所有的根服务器地址和管理者

    第六步,顶级域服务器收到请求,会返回二级域服务器的地址。

    比如一个网址是http://www.xxx.edu.cn,则顶级域名服务器再转发给负责.http://edu.cn域的二级服务器

    抓包分析

     

    这是由根服务器返回的结果,负责cn域的服务器有这么多,接下来将选择其中一台

    然后负责cn的服务器,返回负责http://edu.cn

    。。。

     

    第七步,以此类推,最终会发到负责锁查询域名的,最精确的那台dns,可以得到查询结果。

    抓包分析,这是http://www.hunau.edu.cn的解析结果

     

    最后一步,本地dns服务器,把最终的解析结果,返回给客户端,对客户端来讲,只是一去一回的事,客户端并不知道本地dns服务器经过了千山万水。

     

    迭代解析:本地服务器,一步步,经过多个步骤得到域名结果的过程

    递归解析:客户端和本地服务器之间,一去一回得到域名结果的过程

    展开全文
  • DNS递归和迭代过程详解

    万次阅读 2018-04-17 11:51:57
    目录 DNS原理解析 DNS进化史 DNS结构 DNS查询流程 DNS服务搭建 DNS相关软件安装 ...手把手教你搭建基本DNS服务器 搭建主DNS服务器 ...起初域名和ip地址之间的解析都是完全存放在一个名为hosts文件当中...

    目录

    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变大时,从配置文件会自动更新收到主配置文件的变化并努力保持一致。

    参考文献

    展开全文
  • 域名解析过程 1.在浏览器中输入www.qq.com域名,操作系统会先检查自己本地hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。 2.如果hosts里没有这个域名映射,则查找本地DNS...

    基础知识

    1.域名系统
    在这里插入图片描述
    在这里插入图片描述
    2.域名服务器
    在这里插入图片描述

    域名解析过程

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

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

    3.如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/IP参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性
    如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性

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

    如果未用转发模式,本地DNS就把请求发至 “根DNS服务器”,“根DNS服务器”收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(qq.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面的动作,进行查询,直至找到www.qq.com主机。

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

    不管是本地DNS服务器是否启用转发模式,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。

    在这里插入图片描述
    在这里插入图片描述

    递归和迭代的区别

    递归:客户端只发一次请求,要求对方给出最终结果。返回的结果只有两种:查询成功或查询失败。
    迭代:又称为“重指引”。客户端发出一次请求,对方如果没有授权回答(向dns服务器查询一个域名,刚好这个域名是本服务器负责,返回的结果就是授权回答),它就会返回一个能解答这个查询的其它名称服务器列表,客户端会再向返回的列表中发出请求,直到找到最终负责所查域名的名称服务器,从它得到最终结果。
    客户端-本地dns服务端:这部分属于递归查询。
    本地dns服务端-外网:这部分属于迭代查询。(不启用转发模式)

    dig命令

    dig @server name type
    
    @server: 指定域名服务器
    name:指定查询请求资源的域名
    type:指定查询类型,如A、CNAME、SRV、MX、SIG等,如果不指定type,默认为A
    
    查询某个域名解析的全过程:(此时为迭代查询)
    $ dig @8.8.8.8  163.com +trace
    

    DNS缓存机制

    简单来说,一条域名的DNS记录会在本地有两种缓存:浏览器缓存和操作系统缓存。在浏览器中访问的时候,会优先访问浏览器缓存,如果未命中则访问OS缓存,最后再访问DNS服务器。

    DNS记录会有一个TTL(Time To Live),单位是秒,意思是这个记录最大有效期是多长时间。OS缓存会参考但不完全等于TTL值,而浏览器DNS缓存的时间跟TTL值无关,每种浏览器都使用一个固定值

    展开全文
  • 1.递归查询: 一般客户机和服务器之间属递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不...迭代查询(反复查询): 一般DNS服务器之间属迭代查询,如:若DNS2不能响应DNS1请求,则它会将DNS3IP给D...

    http://zhangbin.blog.51cto.com/666869/286257

     

    1.递归查询:
    一般客户机和服务器之间属递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到结果后转交给客户机;
    2.迭代查询(反复查询):
    一般DNS服务器之间属迭代查询,如:若DNS2不能响应DNS1的请求,则它会将DNS3的IP给DNS2,以便其再向DNS3发出请求;

    举例:比如学生问老师一个问题,王老师告诉他答案这之间的叫递归查询。这期间也许王老师也不会,这时王老师问张老师,这之间的查询叫迭代查询!

    转载于:https://www.cnblogs.com/google4y/archive/2012/06/05/2536469.html

    展开全文
  • DNS解析过程

    2020-06-08 11:30:57
    DNS解析过程 ...DNS解析查询方式有两种:递归解析查询和迭代解析查询,通常来说,客户端和本地域名服务器是递归查询,而本地域名服务器和其他域名服务器之间是迭代查询。 递归解析 假如我们本地客户端是A
  • 浅析DNS解析过程

    2019-05-03 01:37:53
    前言 为了了解DNS解析的整个过程,但是我查看了...首先我先说一下我对DNS递归查询以及迭代查询的理解:DNS的解析过程默认是采用递归查询,也就是一层一层的传递下去,但是如果遇到某个服务器的RA字段(表示是否支持...
  • DNS域名解析过程

    2020-07-31 11:18:54
    域名的解析过程递归查询和迭代查询 为什么会有域名呢? 这是因为点分十进制ip不容易记忆 域名的解析过程 域名解析总体可分为一下过程: (1) 输入域名后, 先查找自己主机对应域名服务器,域名服务器先查找自己...
  •  域名系统DNS(Domain Name System)是因特网使用命名系统,用来把便于人们使用机器名字转换成为IP地址。域名系统其实就是名字系统。为什么不叫“名字”而叫“域名”呢?这是因为在这种因特网命名系统中使用了...
  • DNS解析过程DNS挟持

    2021-02-20 19:39:09
    1. DNS解析过程 1). 在浏览器中输入一个域名,操作系统会先检查自己本地host文件里是否有对应域名映射关系,有话调用完成域名解析。 2). 如果host中没有,就需要查找本地DNS解析缓存,如果有直接返回完成域名...
  • DNS简介 2016-12-29 域名系统  DNS(Domain Name System,域名系统),...通过主机名,最终得到该主机名对应IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。在RFC文对DNS
  • DNS 解析过程

    千次阅读 2018-03-22 00:38:40
    第一张图:DNS是什么,全称Domain Name System,即域名解析系统。DNS帮助用户在互联网上寻找路径,你告诉我主机名称,我告诉你对应IP地址。第二张图:形象告诉你DNS系统是如何工作,按步骤去读,就能比较清晰...
  • DNS原理及其过程解析

    2018-03-16 23:24:28
    看到一篇不错的关于DNS解析的文章,仔细阅读了一遍还不错,先Mark着,以后还可以... 上篇文章对DNS解析过程的迭代查询和递归查询说的不是很清楚,不理解的可以看下面这篇文章:  例解DNS递归/迭代名称解析原理...
  • DNS解析过程

    2017-06-05 11:05:00
    浏览器输入一个网址。...DNS解析过程整体上来说是先查缓存。缓存没有命中然后迭代查询本地(ISP)DNSserver,由本地DNSserver递归查询过程。 总体步骤例如以下图所看到: 我们以訪问www.e...
  • 域名解析过程 (1)递归查询方式 (2) 常用递归与迭代相结合查询方式 1.DNS系统 域名系统(Domain Name System, DNS)是因特网使用命名系统,用来把便于人们记忆具有特定含义主机名(如...
  • 1.DNS解析的具体过程 前置知识 主机向本地域名服务器一般采用递归查询(如果主机询问本地域名服务器不知道被查询域名IP地址,那么本地域名服务器代替该主机向其他根域名服务器继续查询,而不是让主机自己进行下...
  • 域名解析过程的递归查询和迭代查询

    万次阅读 多人点赞 2018-05-02 19:54:19
    树状结构的DNS域名服务器:   互联网域名空间:   一、递归查询  主机向本地域名服务器查询一般都是采用递归查询。所谓递归查询就是:如果主机所询问本地域名服务器不知道被查询域名IP地址...
  • DNS递归与迭代

    2020-03-02 18:40:59
    客户机向本地DNS服务器发送请求,等待肯定或者否定回复过程为递归过程 迭代是本地服务器向根DNS服务器发出请求,而根DNS...DNS解析过程:host文件-本地DNS-根域名服务器-顶级域名服务器-二级域名服务器-...... ...

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 225
精华内容 90
关键字:

dns的迭代解析过程