DNS解析随笔

一、名词介绍

(1)域名,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识。

(2)DNS,全称Domain Name System,中文名为域名系统,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP数串。

(3)根域名服务器,这是最重要的服务器,因为只要本地域名服务器无法解析, 就首先要求助于根域名服务器。

(4)顶级域名服务器(即TLD服务器,或者说二级域名服务器),负责管理二级域名,当他收到DNS查询请求时, 就给出相应的回答(也可能是下一步应当找的域名服务器的IP地址)

(5)权限域名服务器(三级域名服务器),他是负责一个区的域名服务器。 当一个权限域名服务器还不能给出最后的查询回答时, 就会告诉客户, 下一步应当找哪一个权限域名服务器。

(6)本地域名服务器(local name server),本地域名服务器其实就是在你附近的域名服务器。当一台主机发岀DNS查询请求时, 这个查询请求报文就发送给本地域名服务器。 由此可看出本地域名服务器的重要性。 每一个互联网服务提供者,或一个大学, 都可以拥有一个本地域名服务器, 这种域名服务器有时也称为默认域名服务器。我们在电脑设置中就可以看见首选DNS服务器和备用DNS服务器的IP地址。 这里的DNS服务器指的就是本地域名服务器。

二、域名解析过程

(1)浏览器会首先查看自身的缓存,如果浏览器缓存中有对应的解析记录,直接返回结果;

(2)如果浏览器没有缓存,电脑会查看本地操作系统的缓存,如果有记录,直接返回结果;

(3)如果浏览器和本地缓存中都没有记录,会向递归解析服务器发起请求,递归服务器如果有记录直接返回,如果没记录会向全球发起递归查询,直到获得对应解析记录返回客户端并保存在本地。

a, 主机向本地域名服务器的查询一般都是采用递归查询(recursive query)。

  所谓递归查询就是: 如果主机所询问的本地域名服务器不知道被查询域名的IP地址, 那么本地域名服务器就以DNS客户的身份, 向其**根域名服务器(就是一级服务器)**继续发出查询, 而不是让该主机自己进行下一步的查询。 因此, 递归查询返回的查询结果或者是所要查询的IP地址, 或者是报错, 表示无法查询到所需的IP地址。

b, 本地域名服务器向根域名服务器的查询通常是釆用迭代查询。

  当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址, 要么告诉本地域名服务器: “你下一步应当向哪一个域名服务器进行查询” 。
  然后让本地域名服务器进行后续的查询(而不是替本地域名服务器进行后续的查询)。
  根域名服务器把自己知道的顶级域名服务器(二级域名服务器)的IP地址告诉本地域名服务器, 让本地域名服务器再向顶级域名服务器查询。
  顶级域名服务器在收到本地域名服务器的查询请求后, 要么给出所要查询的IP地址, 要么告诉本地域名服务器下一步应当向哪一个权限域名服务器(三级域名服务器)进行查询, 本地域名服务器就这样进行迭代查询。

 

 

posted @ 2022-08-10 17:11  TimeSay  阅读(114)  评论(0编辑  收藏  举报