系统管理:迈向 BIND 的又一步
域名服务有多重要?考虑一下这种情况,假设您想建立自己的网站,您去商业注册商那里尝试获取一个域名。除非您能为您的域名输入两个已存在的、已注册的 DNS 服务器的 IP 地址或互联网名称,否则购买过程将无法进行。
对于大多数让别人设置和托管其网站的人来说,这可能不会起作用。但是对于复杂的站点,您可能想要运行大型电子邮件服务器或目录服务,您需要控制自己的 DNS。
正如我们之前所说,Linux 发行版都带有 BIND,这是一个运行绝大多数 DNS 服务器的应用程序。BIND 运行一个名为 named 的服务或守护进程。它的主要配置文件名为 named.conf。(我们假设您知道 Linux 服务或守护进程都有与之关联的配置文件。)
BIND 的配置文件基本上是托管在该特定服务器上的所有域的目录。例如,如果您与 ISP 签约托管网站,您可能会使用他们的服务在互联网上列出您的域名。您的域名可能是 ISP 服务器上列出的数百或数千个域名之一。
不幸的是,ISP 不会给您访问他们的 DNS 服务器的权限。因此,如果您需要更改您的域名,您必须请求他们为您执行。这通常需要向您的 ISP 提交故障单,然后等待 ISP 进行更改。
使用第三方托管您的域名服务通常意味着您会感到不便。如果 ISP 犯了错误,您必须让他们修复它。他们也很少提供网站需求所需的所有服务。因此,许多网站所有者和开发人员选择运营自己的 DNS 服务器,而不是使用 ISP 或其他第三方提供商。
BIND 使用 named.conf 来指向一个文件,该文件包含其他人需要了解的关于您域名的所有信息。我们称之为域名的数据库。托管在 DNS 服务器上的每个域名都必须有自己唯一的区域文件。
实际上,即使您的域名是 DNS 服务器上列出的唯一域名,BIND 也需要区域文件才能正常运行。我们稍后会详细介绍,但现在我们需要关注您的域名数据库或区域文件。
DNS 服务器配置
到目前为止,我们一直在描述 DNS 服务器,就好像它们唯一的角色是解析您的域名。当系统管理员设置 DNS 服务器时,他或她可以根据所需的服务在三种配置中进行选择。
编写 named.conf 的方式决定了服务器的行为方式。有时您只需要 DNS 服务器为您的用户执行其他域的查找。有时您需要让互联网上的其他服务器获取有关您托管的域的信息。如果您拥有域的权威服务器,那么在 BIND 下,您还需要一个服务器来执行备份职责,以防您的主服务器发生故障。
让我们更仔细地看看我们的选择
缓存服务器
人们经常使用缓存服务器来减少主名称服务器的负载。您设置的用于托管域的服务器通常忙于响应来自互联网上其他 DNS 服务器的查询。任何大量的查询都可能给其资源带来压力。因此,管理员使用缓存服务器在本地存储信息以供用户查找。
您会看到 ISP 使用缓存服务器,例如,仅用于服务他们的零售客户。然后,他们将使用另一个服务器来服务使用 ISP 托管其网站的客户。
缓存服务器没有权威性;它只是通过存储从权威服务器获取的域名并将其提供给其客户端来加速 DNS 的工作。当您执行查询时,服务器将结果保存在缓存中。下次您尝试查找网站时,您不必再次经历整个搜索过程。您将从缓存中获取主机到 IP 地址的信息。当您安装 BIND 时,它默认设置一个缓存服务器。
主服务器
主服务器包含关于它托管的域的信息,并回答来自互联网上其他计算机的查询。这就是当我们深入研究我们的第一个区域文件时将要配置的服务器。
从服务器或辅助服务器
如果您注册了一个域名,您需要提供两个域名服务器的名称。您列出的第二个服务器实际上备份了主服务器,以防它发生故障。辅助服务器的数据库由 BIND 中的备份过程填充。
从服务器是一个权威服务器,并且会回答查询,这与缓存服务器不同。每个公共互联网域名都需要一个主服务器和至少一个从服务器或辅助服务器。从服务器以特定间隔查询主服务器,如果发生更改,则通过从主服务器下载文件来更新其文件。
回到 named
当 named 接收到请求时,它会查阅自己的小目录,即它的配置文件 named.conf。named 进程默认监听 Linux 系统的 53 端口。当它收到地址查询时,它会在其目录中查找信息,从 named.conf 快捷到区域文件。
以下文本描述了一个简单的 named.conf 文件。如果您现在还不能理解它,只需熟悉它的外观、格式以及注意使用的术语。
请记住,此文件通常默认已安装在您的 Linux 服务器上。根据发行版,named.conf 可能位于不同的目录中,并且配置文件可能看起来略有不同。例如,有时该文件带有大量注释。
现在是文件内容。此文件中的注释使用双斜杠标记“//”