第 11 章 DNS 服务器

DNS(域名系统)是分布式数据库系统,可用于将主机名与其各自 IP 地址关联。对用户而言,这样可根据他们通常使用的名称指向网络中的机器,相比数字网络地址更方便记忆。对系统管理员而言,使用 DNS 服务器(也称名称服务器)可更改主机 IP 地址,而不会影响使用名称进行查询。DNS 数据库不仅可用于将 IP 地址解析为域名,还可在部署 DNSSEC 后得到更为广泛的应用。

11.1. DNS 简介

DNS 通常采用一个或多个为某些域认证的集中服务器部署。客户端主机请求来自名称服务器的信息时,通常会连接到端口 53。然后名称服务器会解析请求的名称。如果将名称服务器配置为递归名称服务器,并没有授权回答,或者没有为之前的查询缓存的回答,它会查询其他名称服务器(即 root 名称服务器),决定哪个是这个要查询名称的授权名称服务器,然后查询以获取请求的名称。仅作为授权配置的名称服务器若禁用递归功能,则不会代表客户端进行查询。

11.1.1. 名称服务器区域

DNS 服务器中,所有信息都保存在基本数据元素(即资源记录RR)中。RFC 1034 给出了资源记录定义。采用树状结构管理域名。每层均使用句号(.)分开。例如:在 root 域中,. 表示 DNS 的 root,即层 0。域名 com 指的是顶级域TLD),即 root 域(.)的下一层,也是层级结构的第一层。域名 example.com 是层级结构的第二层。

例 11.1. 简单资源记录

简单资源记录RR)示例:
example.com.      86400    IN         A           192.0.2.1
域名 example.com 是 RR 的所有者。值 86400生存时间TTL)。字母 IN 的含义是互联网系统,代表 RR 的分类。字母 A 代表 RR 的类型(在这个示例中是主机地址)。主机地址 192.0.2.1 是包含在这个 RR 最后一部分的数字。这个一行的示例是一个 RR。一组使用同一类型、拥有者和分类的 RR 构成资源记录集RRSet)。
区域是通过区域文件在授权名称服务器中定义,该文件包含每个区域中的资源记录定义。Zone 文件保存在主名称服务器(也称 主名称服务器,在此可更改这些文件)及辅名称服务器(也称 从属名称服务器,在此接受主名称服务器中的区域定义)。主、辅名称服务器都是这个区域的授权,并查看相同的客户端。根据具体配置,所有名称服务器都可作为主或辅服务器同时用于多个区域。
注:DNSDHCP 服务器的管理员及所有部署应用程序都应接受这个在机构中使用的名称服务器格式。有关名称服务器格式详情,请查看 第 3.1.1 节 “建议到命名方法”

11.1.2. 名称服务器类型

有两种名称服务器配置类型:
授权
授权名称服务器应答属于该区域的资源记录。这个类别包括主(master)和从属(slave)名称服务器。
递归
递归名称服务器提供解析服务,但不为任何区域授权。在固定时间段内应答所有者内存中缓存的解析,该时间段由查询的资源记录指定。
虽然名称服务器可同时既是授权,又是递归,但建议不要合并使用两种配置类型。要使其工作,所有客户端应随时都可以使用授权服务器。另一方面,因为递归服务器查询比授权响应所需时间要长得多,因此递归服务器仅应适用于有限的客户端,否则会容易受到分布式拒绝服务(DDoS)攻击。

11.1.3. BIND 作为名称服务器

BIND 包含一组与 DNS 相关的程序,其中包括名为 named 的名称服务器、管理程序 rndc 及 debug 工具 dig。有关如何在 Red Hat Enterprise Linux 中运行服务的详情,请查看《Red Hat Enterprise Linux 7 系统管理员指南》