设置基本递归缓存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地址访问网络主机。

对于较大的网络或经常发生变化的网络,使用/etc/hosts文件来将域名解析为IP地址将不是一个可接受的解决方案。这就是专用服务的需求所在。

在幕后,DNS服务器会查询一个以树形式组织的大型数据库,该树从根区(“.”)开始。

下图将帮助我们进行说明:

DNS Name Resolution Diagram

在上图中,根区(.)包含comedunet域。这些域中的每一个都(或者可以)由不同的组织管理,以避免依赖一个庞大的中心化组织。这样可以以分层方式适当地分发请求。

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

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

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

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

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

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

Source:
https://www.tecmint.com/setup-recursive-caching-dns-server-and-configure-dns-zones/