29.7. 域名系统(DNS

域名系统(Domain Name System,DNS)是一种协定用来转换网域名称为 IP 位址,反之亦然。DNS会协调网际网络上有权的根节点(Authoritative root)、最上层网域(Top Level Domain,TLD)及其他小规模名称服务器来取得结果,而这些服务器可管理与缓存个自的网域信息。要在系统上做DNS查询并不需要架设一个名称服务器。

以下表格会说明一些与DNS有关的术语:

表 29.4. DNS术语
术语定义
正向DNS(Forward DNS将主机名称对应IP位址的动作。
源头(Origin)代表某个辖区档案中所涵盖的网域。
解析器(Resolver)主机向名称服务器查询辖区信息的系统程序。
反向DNS(Reverse DNSIP对应主机名称的动作。
根辖区(Root zone)网际网络辖区阶层的最开始,所有的辖区会在根辖区之下,类似在文件系统中所有的档案会在根目录底下。
辖区(Zone)独立的网域、子网域或或由相同授权(Authority)管理的部分DNS

辖区示例:

如您所见,更详细的主机名称会加在左方,例如example.org.org.更具体,如同org.比根辖区更具体,主机名称每一部份的构架很像文件系统:/dev目录在根目录底下,以此类推。

29.7.1. 要架设名称服务器的原因

名称服务器通常有两种形式:有权的(Authoritative)名称服务器与缓存(或称解析)名称服务器。

以下情况会需要一台有权的名称服务器:

  • 想要提供DNS信息给全世界,做为官方回复查询。

  • 已经注册了一个网域,例如example.org,且要将 IP 位址分配到主机名称下。

  • 一段 IP 位址范围需要反向DNS项目( IP 转主机名称)。

  • 要有一台备援或次要名称服务器用来回复查询。

以下情况会需要一台缓存名称服务器:

  • 比起查询外部的名称服务器本地DNS服务器可以缓存并更快的响应。

当查询www.FreeBSD.org时,解析程序通常会查询上游ISP的名称服务器然后接收其回复,使用本地、缓存DNS服务器,只需要由快取DNS服务器对外部做一次查询,其他的查询则不需要再向区域网路之外查询,因为这些信息已经在本地被缓存了。

29.7.2. NTP设定

Unbound由FreeBSD基础系统提供,预设只会提供本机的DNS解析,虽然基础系统的套件可被设定提供本机以外的解析服务,但要解决这样的需求仍建议安装FreeBSD Port套件集中的Unbound

要开启Unbound可加入下行到/etc/rc.conf

local_unbound_enable="YES"

任何已存在于/etc/resolv.conf中的名称服务器会在新的Unbound设定中被设为追随者(Forwarder)。

注意:

若任一个列在清单中的名称服务器不支持DNSSEC,则本地的DNS解析便会失败,请确认有测试每一台名称服务器并移除所有测试失败的项目。以下指令会显示出信认树或在192.168.1.1上执行失败的名称服务器:

% drill -S FreeBSD.org @192.168.1.1

确认完每一台名称服务器都支持DNSSEC后启动Unbound

# service local_unbound onestart

这将负责更新/etc/resolv.conf,以便DNSSEC安全域的查询现在将工作。例如,运行以下内容以验证FreeBSD.org DNSSEC信任树:

% drill -S FreeBSD.org
;; Number of trusted keys: 1
;; Chasing: freebsd.org. A

DNSSEC Trust tree:
freebsd.org. (A)
|---freebsd.org. (DNSKEY keytag: 36786 alg: 8 flags: 256)
    |---freebsd.org. (DNSKEY keytag: 32659 alg: 8 flags: 257)
    |---freebsd.org. (DS keytag: 32659 digest type: 2)
        |---org. (DNSKEY keytag: 49587 alg: 7 flags: 256)
            |---org. (DNSKEY keytag: 9795 alg: 7 flags: 257)
            |---org. (DNSKEY keytag: 21366 alg: 7 flags: 257)
            |---org. (DS keytag: 21366 digest type: 1)
            |   |---. (DNSKEY keytag: 40926 alg: 8 flags: 256)
            |       |---. (DNSKEY keytag: 19036 alg: 8 flags: 257)
            |---org. (DS keytag: 21366 digest type: 2)
                |---. (DNSKEY keytag: 40926 alg: 8 flags: 256)
                    |---. (DNSKEY keytag: 19036 alg: 8 flags: 257)
;; Chase successful

本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题,请先阅读 文档,如不能解决再联系 <questions@FreeBSD.org>.

关于本文档的问题请发信联系 <doc@FreeBSD.org>.