第 15 章 DNS 服务器
DNS
(Domain Name System)是一种分布式数据库系统,用于将主机名与对应的 IP 地址关联
。对于用户,其优势在于他们可以通过名称来指代网络上的计算机,这些名称通常比数字网络地址更容易记忆。对于系统管理员而言,使用 DNS
服务器(也称为名称服务器)可以更改主机的 IP 地址
,而不会影响基于名称的查询。DNS
数据库的使用不仅仅是用于将 IP 地址解析为域名
,随着 DNSSEC 部署,它们的使用越来越广泛。
15.1. DNS 简介
通常使用对特定域具有权威的一个或多个集中式服务器来实施
DNS
。当客户端主机请求名称服务器的信息时,它通常连接到端口 53。然后,名称服务器尝试解析请求的名称。如果名称服务器已配置为递归名称服务器并且没有权威答案,或者尚未从之前的查询中缓存答案,它将查询其他名称服务器(称为 root 名称服务器),以确定哪些名称服务器对于该名称具有权威,然后查询它们以获取请求的名称。配置为完全权威的名称服务器(禁用递归)不会代表客户端进行查找。
15.1.1. 名称服务器区域
在
DNS
服务器中,所有信息都存储在称为资源记录 (RR)的基本数据元素中。资源记录在 RFC 1034 中定义。域名组织为树结构。层次结构的每个级别都以句点(.)分隔。
例如:由 .
表示的根域是 DNS
树的根域,其级别为零。称为 顶级域(TLD )的域名 com
是根域(.
)的子级,因此它是层次结构的第一层。域名 example.com
处于层次结构的第二个级别。
例 15.1. 简单资源记录
一个简单的资源记录示例 (RR):
example.com. 86400 IN A 192.0.2.1
域名
example.com
是 RR 的所有者。值 86400
是 生存时间 (TTL)。字母 IN
表示 “Internet 系统”,表示 RR 的类。字母 A
表示 RR 的类型 (在本例中为主机地址)。主机地址 192.0.2.1
是此 RR 最后一个部分中的数据。这一行示例为 RR。组具有相同类型、所有者和类的 RR 称为资源记录集(RRSet )。
区域通过使用区域文件在权威名称服务器上定义,该文件包含各个区域中资源记录的定义。区域文件存储在主名称服务器 (也称为主名称服务器 )中,对文件进行了更改,以及从主名称服务器接收区域定义的次要名称服务器 (也称为从属名称服务器 )。主名称服务器和次要名称服务器对区域具有权威,并且对客户端而言看起来相同。根据配置,任何名称服务器也可以同时充当多个区域的主或次要服务器。
15.1.2. 名称服务器类型
有两种名称服务器配置类型:
虽然名称服务器可以同时具有权威和递归性,但建议不要组合配置类型。要能够执行其工作,权威服务器应始终对所有客户端可用。另一方面,由于递归查找的时间比权威响应的时间要多得多,因此递归服务器只能供受限数量客户端使用,否则它们容易出现分布式拒绝服务(DDoS)攻击。
15.1.3. BIND 作为名称服务器
BIND 由一组与 DNS 相关的程序组成。它包含名为
的名称服务器、名为 rndc
的管理实用程序,以及一个名为 dig 的调试工具。有关如何在 Red Hat Enterprise Linux 中运行服务的更多信息,请参阅 Red Hat Enterprise Linux 系统管理员指南。