dns协议的一些整理----简单的名词解释

来源:互联网 发布:淘宝首图背景素材 编辑:程序博客网 时间:2024/04/28 02:07

DNS解析过程的总结

一.几个名词
1. 域名空间(domain name space):

每个域名实际上就是一棵很大的逆向树中的路径,这棵逆向树称为域名空间。


全球的根节点有13台服务器

2.域名(domain name):

从叶节点到根的路径上所有节点标号的顺序连接。

(DNS 要求兄弟节点要有不同的标号)(唯一性)

3. 域(domain):

就是域名空间中的一棵子树。

4. 名字服务器(nameserver):

       存储关于域名空间的信息的程序。通常含有域名空间中某一部分的完整信息,这一部分我们称为区(zone)

       (名字服务器要加载区而非域)

5. 区和域的区别:

       域:可能含有已经授权给其他名字服务器的数据,是一颗子树

区:是以授权来划分界限的,它决不会含有已被授权出去了的数据

6. primary master(主名字服务器)和 secondary master(辅名字服务器):

       一个区的主和辅名字服务器都是该区的权威。

       一旦创建了区数据并建立起了主名字服务器,要创建新的名字服务器时, 你只需建立辅名字服务器,它能从该区的主名字服务器获取数据。

主名字服务器从本机中加载数据的文件叫做区数据文件(zone data file)。我们也 常常称之为数据文件(datafile)或数据库文件(database file)。

辅名字服务器常常被配置成为:将主名字服务器传送过来的区数据备份到本机的数据文件当中。

7. 解析器:

       解析器是访问名字服务器的客户端程序。主机上运行的应用程序如果需要从域名空 间中获得信息,就要使用解析器。

二.解析过程简介

1. 大致过程

       本地名字服务器向根名字服务器查询 girigiri.gbrmpa.gov.au 的地址,根服务器告知它去联系 au 名字服务器。本地名字服务器问 au 名字服务器同样的问题,被告知 gov.au名字服务器的地址列表。本地名字服务器从列表中选择一个 gov.au名字服务 器并向其继续询问同样的题,gov.au 名字服务器就告诉本地名字服务器 gbrmpa. gov.au 名字服务器的地址。最终,本地名字服务器向 gbrmpa.gov.au名字服务器询 问并获得答案。


(对于递归查询:解析器向本地名字服务器查询,解析器直接查询的名字服务器(本地名字服务器)却要不断地依照指示(referral)进行查询,直到得到结果。)

2. 两种查询方式

递归查询:

       递归查询将大部分的解析负担置于一个名字服务器上。递归或递归解析(recursive resolution)指的是名字服务器在收到递归查询时所使用的解析过程。正如编程中的递归算法,名字服务器只重复一个简单的过程(向远程 名字服务器提出查询,再遵照指示)直到收到结果。

收到递归查询的名字服务器发送的查询总是与解析器发给它的一模一样。

反复解析:

名字服务器只用将它已知的最合适的答案返回给查询者。这个指示包括本地数据中列出的所有名字服务器,由查询者来选择下一个向谁提出查询。

3. 名字服务器的选择

       上面写到对于同一个区,可以有多个名字服务器,因此对于名字服务器的选择由RTT决定。

每次 BIND 名字服务器向远程名字服务器发送查询时,都启动一个内部计时器。当它收到响应时就停止计时,记录下该远程名字服务器过了多长时间才响应。当名字服务器要选择向哪个名字服务器发送查询时,它就选择具有最小RTT的名字服务器。

(比如说对于13个根目录名字服务器,一般选择最近的那个)

4.in-addr.arpa

in-addr.arpa域中的节点都是用数字来作标号的,这些数字就是以点分字节(dotted-octet)来表示的 IP 地址。

比如说,in-addr.arpa最多有 256 个子域,分别和 IP 地址中的第一个字节的每个可能值相对应。这些子域又可以有 256 个自己的子域,分别和第二个字节每个可能的值相对应。   (4层)


5. 缓存

处理递归查询的名字服务器可能需要发送好几个查询才能找到结果。 缓存这些名字服务器是哪些区的权威,也知道这些服务器的地址。

名字服务器甚至还进行否定缓存 (negative caching):当某个权威名字服务器返回结果,说所查询域名或数据不存在时,本地名字服务器也会暂时将该信息放入缓存。

数据的区的管理员要为数据设定一个生存期(time to live),简称TTL。 生存期就是名字服务器允许数据在缓存中存放的时间。生存期一过,名字服务器就必须丢弃缓存的数据,并从权威名字服务器上获取新的数据。对于否定缓存数据也是一样;每隔一段时间,名字服务器也要清除否定回答,以防权威名字服务器上已经增加了新的数据。

 

0 0
原创粉丝点击