dns服务器

5.1 DNS服务器的概念和原理DNS 是域名系统的缩写, 它是嵌套在阶层式域结构中的主机名称解析和网络服务的系统。当用户提出利用计算机的主机名称查询相应的 IP 地址请求的时候, DNS 服务器从其

5.1 DNS

服务器的概念和原理

DNS 是域名系统的缩写, 它是嵌套在阶层式域结构中的主机名称解析和网络服务的系统。当用户提出利用计算机的主机名称查询相应的 IP 地址请求的时候, DNS 服务器从其数据库提供所需的数据。

§ DNS 域名称空间:指定了一个用于组织名称的结构化的阶层式域空间

§ 资源记录:当在域名空间中注册或解析名称时,它将 DNS 域名称与指定的资源信息对应起来

§ DNS 名称服务器: 用于保存和回答对资源记录的名称查询

§ DNS 客户:向服务器提出查询请求,要求服务器查找并将名称解析为查询中指定的资源记录类型

,

5.1.1 DNS 域名空间

DNS 域名空间是一种树状结构如图 5.1。

目前由InterNIC 管理全世界的 IP 地址,在 InterNIC 之下的 DNS 结构分为多个Domain, 如图 5.1中 root domain下的七个 top-level domain 都归 InterNIC 管理,上图中还显示了由 InterNIC 分配给微软的域名空间。Top-level domain 可以再细分为 second-level domain 如 "Microsoft" 为公司名称, 而 second-level domain 又可以分成多级的

subdomain 如 "example 、www" ,在最下面一层被称为 hostname(主机名称) 如 "host-a" ,一般用户使用完整的名称来表示 (FQDN),如

,

"host-a.example.Microsof

t.com" 。

DNS 域名

DNS 利用完整的名称方式来记录和说明 DNS 域名,就象用户在命令行显示一个文件或目

录的路径,如

"C:WinntSystem32DriversEtcServices.txt" 。同样在在一个完整的 DNS 域名中包含着多

级域名。

如 "host-a.example.microsoft.com." 其中 "host-a" 是最基本的信息(一台计算机的主机名称)"example" 表示主机名称为host-a 的计算机在这个子域中注册和使用它的主机名称 ,"microsoft" 是 "example" 的父域或相对的根域 (即 second-level domain),"com" 是用于表示商业机构的top-level domain ,最后的句点表

示域名空间的根 (root)。

,

区域(zone)

区域 (zone) 是一个用于存储单个 DNS 域名的数据库,它是域名称空间树状结构的一部分, DNS 服务器是以 zone 为单位来管理域名空间的,zone 中的数据保存在管理它的 DNS 服务器中。当在现有的域中添加子域时,该子域既可以包含在现有的 zone 中,也可以为它创建一个新 zone 或包含在其它的 zone 中。一个 DNS 服务器可以管理一个或多个 zone ,同时一个 zone 可以由多个 DNS 服务器来管理。 用户可以将一个

domain 划分成多个 zone 分别进行管理以减轻网络管理的负荷,如图 5.2

,

示,microsoft.com 是一

个域,用户可以将它划分

为两个 zone :

microsoft.com 和

example.Microsoft.com,

zone 的数据分别保存在

单独的 DNS 服务器中。因

zone"example.Microsoft

.com" 是从

"domain" 延伸而来,所以用户可以将 domain"microsoft.com" 称为

zone"example.Microsoft.com" 的 zone root domain。

5.1.2 DNS 查询的工作方式

当 DNS 客户机向 DNS 服务器提出查询请求时,每个查询信息都包括两部分信息: § 一个指定的 DNS 域名,要求使用完整名称

(FQDN)

§ 指定查询类型,既可以指定资源记录类型又

可以指定查询操作的类型

,

如指定的名称为一台计算机的完整主机名称"host-a.example.microsoft.com.", 指定的查询类型为名称的A (address) 资源记录。可以理解为客户机询问服务器" 你有关于计算机的主机名称为'hostname.example.microsoft.com.' 的地址记录吗?当客户机收到服务器的回答信息时,它解读该信息,从中获得查询名称的 IP

地址。

DNS 的查询解析可以通过多种方式实现。客户机利用缓存中记录的以前的查询信息直接回答查询请求, DNS 服务器利用缓存中的记录信息回答查询请求, DNS 服务器通过查询其它服务器获得查询信息并将它发送给客户机。这种查

询方式称为递归查询。

另外, 客户机通过 DNS 服务器提供的地址直接尝试向其它 DNS 服务器提出查询请求。这

种查询方式称为反复查询。

当 DNS 客户机利用 IP 地址查询其名称

时,被称为反向查询。

本地查询:

,

下图 5.3显示了 DNS 查询的完整过程:

当在客户机中 Web 浏览器中输入一个 DNS 域名,则客户机产生一个查询并将查询传给 DNS 客户服务利用本机的缓存信息进行解析,如果查

询信息可以被解析则完成了查询。

本机解析所用的缓存信息可以通过两种方

式获得:

§ 如果客户机配置了 host 文件,在客户机启动是 host 文件中的名称与地址映射将被加载

到缓存中。

§ 以前查询时 DNS 服务器的回答信息将在缓

存中保存一段时间

如果在本地无法获得查询信息,则将查询请求发送给 DNS 服务器。查询请求首先发送给主 DNS 服务器,当 DNS 服务器接到查询后,首选在服务器管理的区域的记录中查找,如果找到相应的记录,则利用此记录进行解析。如果没有区

,

域信息可以满足查询请求,服务器在本地的缓存中查找,如果找到相应的记录则查询过程结束。 如果在主 DNS 服务器中仍无法查找到答案,则利用递归查询进行名称的全面解析,这需要网络中的其它 DNS 服务器协助,默认情况下

服务器支持递归查询。

为了 DNS 服务器可以正常

的进行递归查询,首选需要

一些关于在 DNS 域名空间

中的其它 DNS 服务器的信

息以便通信。信息以 root

hints 的形式提供一个关于

其它 DNS 服务器的列表。

利用 root hints DNS 服务

器可以进行完整的递归查

询。

如图5.4显示了利用递

归查询来查询名称为

"host-b.example.microsof

t.com." 的计算机的过程:

首选,主DNS 服务器

,

析这个完整名称,以确定它

属于那个 top-level

domain, 即 "com" 。接着它

利用转寄查询的方式向

"com" DNS 服务器查询以获

得 "microsoft.com" 服务

器的地址,然后以同样的方

法它从 "microsoft.com"

服务器获得

"example.microsoft.com"

服务器的地址,最后它与名

"example.microsoft.com." 的DNS 服务器进行通信,由于用户所要查询的主机名称包含在该服务器管理的区域中,它向主 DNS 服务器方发送一个回答,主 DNS 服务器将这个回答转发给提出查询的客户机,到此递归查询过程结束。

返回多个查询响应

在前面所描述的查询都假设在查询过程结束时只一个肯定回答信息返回给客户机,然而在

,

实际查询时还可能返回其它回答信息: § 授权回答 (authoritative answer):在返回给客户机的肯定回答中加入了授权字节,指明

信息是从查询名称的授权服务器获得的 § 肯定回答 (positive answer):由被查询的RR (resource records)或一个RRs 列表组成,与查询的DNS 名称和查询信息中的记录类型相匹

配。

§ 提名回答 (referral answer ):包含未在查询中指定的附加资源记录,它返回给那些不支持递归查询的客户机,这些附加信息可以帮助客户

机继续进行转寄查询

§ 否定回答 (negative answer ):当遇到以

下情况之一时,服务器发送否定回答 § 授权服务器报告所查询的名称不在 DNS 域

名空间内

§ 授权服务器报告所查询的名称在 DNS 域名空间内,但没有记录与查询指定的名称想匹配

缓存与 TTL

当 DNS 服务器通过外界查询到 DNS 客户机所需的信息后,它会将此信息在缓存中保存一份,以便下次客户机再查询相同的记录时,利用

标签: