DNS域名系统分析

来源:互联网 发布:狸窝软件下载 编辑:程序博客网 时间:2024/05/16 19:50

定义

域名系统(D N S)是一种用于T C P / I P应用程序的分布式数据库,它提供主机名字和 I P地

址之间的转换及有关电子邮件的选路信息。


DNS 基础

每个结点(图1 4 - 1中的圆圈)有一个至多 6 3个字符长的标识。这颗树的树根是没有任何标识的特殊结点。命名标识中一律不区分大写和小写。




顶级域名被分为三个部分:
1) a r p a是一个用作地址到名字转换的特殊域(我们将在 1 4 . 5节介绍)。
2) 7个3字符长的普通域。有些书也将这些域称为组织域。
3) 所有2字符长的域均是基于I S O 3 1 6 6中定义的国家代码,这些域被称为国家域,或地理
域。

图1 4 - 2列出了7个普通域的正式划分。



DNS的报文格式

D N S定义了一个用于查询和响应的报文格式。图 1 4 - 3显示这个报文的总体格式。



这个报文由1 2字节长的首部和4个长度可变的字段组成。
标识字段由客户程序设置并由服务器返回结果。客户程序通过它来确定响应与查询是否
匹配。
16 bit的标志字段被划分为若干子字段,如图 1 4 - 4所示。



我们从最左位开始依次介绍各子字段:
• QR 是1 bit字段:0表示查询报文,1表示响应报文。
• o p c o d e是一个4 bit字段:通常值为0(标准查询),其他值为1(反向查询)和2(服务器
状态请求)。
• A A是1 bit标志,表示“授权回答 (authoritative answer)”。该名字服务器是授权于该域
的。
• T C是1 bit字段,表示“可截断的 ( t r u n c a t e d )”。使用U D P时,它表示当应答的总长度超
过5 1 2字节时,只返回前5 1 2个字节。
• R D是1 bit字段表示“期望递归( recursion desired)”。该比特能在一个查询中设置,并
在响应中返回。这个标志告诉名字服务器必须处理这个查询,也称为一个递归查询。如
果该位为0,且被请求的名字服务器没有一个授权回答,它就返回一个能解答该查询的
其他名字服务器列表,这称为迭代查询。在后面的例子中,我们将看到这两种类型查询
的例子。
• R A是1 bit字段,表示“可用递归”。如果名字服务器支持递归查询,则在响应中将该比
特设置为1。在后面的例子中可看到大多数名字服务器都提供递归查询,除了某些根服
务器。

• 随后的3 bit字段必须为0。
• r c o d e是一个4 bit的返回码字段。通常的值为 0(没有差错)和3(名字差错)。名字差错
只有从一个授权名字服务器上返回,它表示在查询中制定的域名不存在。
随后的 4个16 bit字段说明最后 4个变长字段中包含的条目数。对于查询报文,问题
( q u e s t i o n )数通常是1,而其他3项则均为0。类似地,对于应答报文,回答数至少是 1,剩下的
两项可以是0或非0。


DNS查询报文中的问题部分

问题部分中每个问题的格式如图1 4 - 5所示,通常只有一个问题。



查询名是要查找的名字,它是一个或多个标识符的序列。每个标识符以首字节的计数值
来说明随后标识符的字节长度,每个名字以最后字节为 0结束,长度为0的标识符是根标识符。
计数字节的值必须是 0 ~ 6 3的数,因为标识符的最大长度仅为 6 3(在本节的后面我们将看到计
数字节的最高两比特为1,即值1 9 2 ~ 2 5 5,将用于压缩格式)。不像我们已经看到的许多其他报
文格式,该字段无需以整32 bit边界结束,即无需填充字节。


图1 4 - 6显示了如何存储域名g e m i n i . t u c . n o a o . e d u。



每个问题有一个查询类型,而每个响应(也称一个资源记录,我们下面将谈到)也有一
个类型。大约有2 0个不同的类型值,其中的一些目前已经过时。图 1 4 - 7显示了其中的一些值。
查询类型是类型的一个超集( s u p e r s e t ):图中显示的类型值中只有两个能用于查询类型。



最常用的查询类型是A类型,表示期望获得查询名的 I P地址。一个P T R查询则请求获得一
个I P地址对应的域名。这是一个指针查询。

查询类通常是1,指互联网地址(某些站点也支持其他非 I P地址)。


DNS响应报文中的资源记录部分

D N S报文中最后的三个字段,回答字段、授权字段和附加信息字段,均采用一种称为资
源记录R R(Resource Record)的相同格式。图1 4 - 8显示了资源记录的格式。


域名是记录中资源数据对应的名字。它的格式和前面介绍的查询名字段格式(图 1 4 - 6)
相同。
类型说明 R R的类型码。它的值和前面介绍的查询类型值是一样的。类通常为 1,指
I n t e r n e t数据。
生存时间字段是客户程序保留该资源记录的秒数。资源记录通常的生存时间值为 2天。
资源数据长度说明资源数据的数量。该数据的格式依赖于类型字段的值。对于类型 1(A
记录)资源数据是4字节的I P地址。

以上就是D N S查询和响应的基本格式的大体介绍

0 0
原创粉丝点击