网站搜索

设置基本递归缓存 DNS 服务器并为域配置区域


想象一下,如果我们必须记住我们每天使用的所有网站的 IP 地址,那会是什么样子。即使我们有惊人的记忆力,浏览网站的过程也会非常缓慢且耗时。

如果我们需要访问多个网站或使用驻留在同一台计算机或虚拟主机中的多个应用程序怎么办?这将是我能想到的最令人头痛的问题之一,更不用说与网站或应用程序关联的 IP 地址可能会在不事先通知的情况下更改的可能性。

只要想到这一点就足以成为在一段时间后停止使用互联网或内部网络的理由。

这正是没有域名系统(也称为DNS)的世界。幸运的是,这项服务解决了上述所有问题——即使 IP 地址和名称之间的关系发生了变化。

因此,在本文中,我们将学习如何配置和使用简单的 DNS 服务器,该服务允许将域名转换为 IP 地址,反之亦然。

DNS 名称解析简介

对于不经常更改的小型网络,/etc/hosts 文件可以用作域名到 IP 地址解析的基本方法。

通过非常简单的语法,该文件允许我们将名称(和/或别名)与 IP 地址关联起来,如下所示:

[IP address] [name] [alias(es)]

例如,

192.168.0.1 gateway gateway.mydomain.com
192.168.0.2 web web.mydomain.com

因此,您可以通过名称、web.mydomain.com 别名或其 IP 地址来访问 Web 计算机。

对于较大的网络或经常更改的网络,使用 /etc/hosts 文件将域名解析为 IP 地址并不是可接受的解决方案。这就是需要专门服务的地方。

在底层,DNS 服务器以树的形式查询大型数据库,该数据库从根(“.”) 区域开始。

下图将帮助我们说明:

在上图中,根 (.) 区域包含 comedunet 域。这些域中的每一个都由(或可以)由不同的组织管理,以避免依赖于一个大的、集中的域。这允许以分层方式正确分发请求。

让我们看看幕后发生了什么:

1. 当客户端向 DNS 服务器查询 web1.sales.me.com 时,服务器会将查询发送到顶级(根)DNS 服务器,将查询指向 .com 区域中的名称服务器。

反过来,这会将查询发送到下一级名称服务器(在 me.com 区域中),然后发送到 sales.me.com。此过程根据需要重复多次,直到 FQDN(本例中为完全限定域名web1.sales.me.com)由其所属区域的名称服务器返回。

2. 在此示例中,sales.me.com. 中的名称服务器响应地址 web1.sales.me.com 并返回所需的域名-IP 关联以及其他信息(如果配置为这样做)。

所有这些信息都会发送到原始 DNS 服务器,然后该服务器将其传回最初请求它的客户端。为了避免将来相同的查询重复相同的步骤,查询的结果存储在 DNS 服务器中。

这就是为什么这种设置通常被称为递归缓存 DNS 服务器的原因。