DNS服务器类型的比较:如何选择合适的DNS配置

介绍

DNS或域名系统是系统如何彼此连接以在互联网上通信的一个组成部分。 如果没有DNS,计算机和使用它们的人,将只需要使用称为IP地址的数字地址进行连接。

除了必须为简单任务记住大量复数的明显问题之外,通过IP地址通信也引起一些附加问题。 将您的网站移动到其他托管服务提供商,或将服务器移动到不同的位置,您需要通知每个客户新的位置。

DNS服务器,一起形成系统的计算机,允许我们使用名称而不是地址,可以服务器许多不同的功能,每个都可以有助于您的名称访问服务器的能力。

先前的指导 ,我们讨论了一些域名系统的基本术语和概念。 我们将假设某些人熟悉该文中所涵盖的概念。 在本指南中,我们将讨论一些不同类型的DNS服务器设置,以及它们各自的优点,用例和属性。

DNS查询的路径

当客户端程序想要通过其域名访问服务器时,它必须找出如何将域名转换为可用于通信的实际可路由地址。 它需要知道这些信息,以获取或发送信息到服务器。

某些应用程序(包括大多数Web浏览器)维护最近查询的内部缓存。 这是应用程序将检查的第一个位置,如果它具有此功能,以查找有问题的域的IP地址。 如果没有在这里找到答案的问题,然后会询问系统解析 ,找出域名的地址是什么。

通常,一个解析器是充当一个DNS查询客户端参与的任何组件。 系统解析器是操作系统用于查找DNS查询答案的解析库。 一般情况下,系统解析器通常都是我们考虑的存根解析程序 ,因为它们没有能力的复杂性超出了系统上搜索了一些静态文件(如/etc/hosts文件),将请求转发到另一个解析器。

因此,一般来说,查询从客户端应用程序到系统解析器,然后传递到具有地址的DNS服务器。 这台DNS服务器称为递归DNS服务器 递归服务器是一个DNS服务器,配置为查询其他DNS服务器,直到找到问题的答案。 它会将答案或错误消息返回给客户端(在这种情况下,系统解析器会将其传递给客户端应用程序)。

递归服务器通常也维护缓存。 它将首先检查此缓存,以查看它是否已经具有查询的答案。 如果没有,它将看到它是否具有控制上层域组件的任何服务器的地址。 因此,如果请求的是www.example.com并且它不能找到在它的高速缓存该主机地址,这将看到它是否具有Nameservers的地址example.com ,如有必要, com 然后它将向Nameservers发送查询以查询更多信息的最特定域组件。

如果没有找到该地址的任何这些域分量的,它具有通过查询根Nameservers从层次结构的最高层开始。 根服务器知道所有这些控制区域中的TLD(顶级域名)域名服务器的地址, .com.net.org ,等它会询问根服务器,如果它知道到地址www.example.com 根服务器将把递归服务器的Nameservers的.com顶级域名。

递归服务器然后跟随引用的路径到被委派对域组件负责的每个连续Nameservers,直到它可以在具有完全答案的特定Nameservers上归零。 它将此答案放入其缓存中以供稍后查询,然后将其返回给客户端。

从这个例子中可以看出,有许多不同种类的服务器,它们各自起着不同的作用。 让我们来看看不同类型的DNS服务器的细节。

功能差异

DNS服务器之间的一些区别是纯功能。 参与实现DNS的大多数服务器专用于某些功能。 您选择的DNS服务器类型将在很大程度上取决于您的需求和您希望解决什么类型的问题。

只有权威的DNS服务器

只有权威的DNS服务器是一个只关心自己应答其负责的区域的查询的服务器。 由于它不帮助解决外部区域的查询,它通常非常快,并且可以有效地处理许多请求。

仅权威服务器具有以下属性:

  • 非常快速地应对它所控制区域的查询。一个仅权威服务器将所有关于它负责域,或已被委派给其他Nameservers域内区转诊信息的信息。
  • 会不会递归查询。一个权威的,唯一的服务器的定义本身是一个不处理递归请求。 这使它成为一个服务器,而不是DNS系统中的客户端。 到达只有权威的服务器的任何请求通常将来自已经接收到对其的引用的解析器,这意味着只有权威的服务器将具有完全的答案,或者能够将新的引用传递给Nameservers它已将责任委托给。
  • 不缓存查询结果。由于一个仅权威服务器从不查询其他服务器的信息来解析请求时,它永远不会有机会的缓存结果。 它知道的所有信息已经在其系统中。

缓存DNS服务器

缓存DNS服务器是处理来自客户端的递归请求的服务器。 操作系统的存根解析器将联系的几乎每个DNS服务器都将是缓存DNS服务器。

缓存服务器具有应答来自客户端的递归请求的优点。 虽然只有权威的服务器可能是理想的服务特定区域信息,缓存DNS服务器从客户的角度更广泛有用。 它们使得世界的DNS系统可以被相当愚蠢的客户端接口访问。

为了避免在每次接收到递归请求时不得不向其他DNS服务器发出多个迭代请求的性能命中,服务器缓存其结果。 这使得它可以访问广泛的DNS信息(整个世界的可公开访问的DNS),同时处理最近的请求很快。

缓存DNS服务器具有以下属性:

  • 进入公共DNS数据的整个范围。通过挂接到全球的代表团树公开访问的DNS服务器供应的所有区域数据可以通过缓存DNS服务器访问。 它知道根DNS服务器,并且可以智能地跟随引用,因为它接收数据。
  • 能够填鸭式数据哑客户,几乎所有的现代操作系统通过使用存根解析程序的卸载DNS解析到专用服务器递归。 这些解析库只是发出一个递归请求,并期望回传一个完整的答案。 缓存DNS服务器具有为这些客户端提供服务的确切能力。 通过接受递归查询,这些服务器承诺返回一个答案或DNS错误消息。
  • 保持最近请求的数据的缓存。通过缓存的结果,因为它从用于它的客户机请求其他DNS服务器收集它们,一个缓冲DNS服务器构建为最近DNS数据的高速缓存。 根据多少客户端使用服务器,缓存大小以及TTL数据在DNS记录本身上的时间长短,这在大多数情况下可以大大加快DNS解析速度。

转发DNS服务器

为客户端机器开发缓存的另一种方法是通过使用转发DNS服务器。 这种方法通过实现转发服务器来在DNS解析链中添加额外的链接,该服务器简单地将所有请求传递给具有递归功能的另一DNS服务器(例如缓存DNS服务器)。

这个系统的优点是它可以给你一个本地可访问缓存的优势,而不必进行递归工作(这可能导致额外的网络流量,并可能占用大流量服务器上的大量资源)。 这也可以导致一些有趣的灵活性,通过转发到不同的服务器来分离您的私有和公共流量。

转发DNS服务器具有以下属性:

  • 处理而不执行递归本身递归请求的能力。转发DNS服务器的最根本的特性是,它传递给另一个代理解析请求。 转发服务器可以具有最少的资源,并且通过利用其高速缓存仍然提供巨大的价值。
  • 在更近的网络位置提供了一个本地缓存中。特别是如果你不觉得到构建,维护和确保一个全面的递归DNS解决方案,转发服务器可以使用公共递归DNS服务器。 它可以利用这些服务器,同时将主缓存位置移动到非常靠近客户端机器。 这可以减少回答时间。
  • 增加在确定地域空间的灵活性。通过传递请求到不同的服务器有条件,转发服务器可以保证内部请求是由私人服务器提供服务的同时,外部请求使用公共DNS。

组合解决方案

虽然上述解决方案是以非常具体的目的构建的,但通常希望设置DNS服务器以组合每个的优点。

DNS服务器可以被配置为用作针对选择数量的本地客户端的递归缓存服务器,同时仅回答来自其他客户端的迭代的权威请求。 这是一种常见配置,因为它允许您回答域的全局请求,同时还允许本地客户端利用服务器进行递归解析。

虽然某些DNS软件是专门为满足一个特定的角色而设计的,但像Bind这样的应用程序是非常灵活的,可以用作混合解决方案。 虽然在某些情况下,尝试在单个服务器中提供太多服务可能导致性能下降,但在许多情况下,特别是在小型基础设施的情况下,维护单一的一体化解决方案是最有意义的。

关系差异

虽然DNS服务器配置之间最明显的区别可能是功能,但关系差异也非常重要。

主服务器和从服务器

鉴于DNS在使服务和整个网络可访问的重要性,大多数对区域具有权威性的DNS服务器将具有内置冗余。 有这些服务器之间的关系的各种条件,但一般地,服务器可以是一个主站或在其配置的从站

主服务器和从服务器都对它们处理的区域具有权威性。 主机在区域上没有比从机更多的功率。 主服务器和从服务器之间唯一的区别因素是他们从哪里读取其区域文件。

主服务器从系统磁盘上的文件读取其区域文件。 这些通常是区域管理员添加,编辑或传输原始区域文件的地方。

从服务器通过从区域的主服务器之一的区域传输接收它所授权的区域。 一旦它有这些区域,它将它们放在缓存中。 如果它必须重新启动,它首先检查其缓存,以查看内部的区域是否是最新的。 如果不是,它从主服务器请求更新的信息。

服务器不会被降级为它们处理的所有区域的主机或从机。 主站或从站状态是按区域分配的,因此服务器可以是某些区域的主站,也可以是其他区域的从站。

DNS区域通常至少有两个Nameservers。 负责互联网路由区域中的任何区域必须至少有两个Nameservers。 通常,维护更多的Nameservers以便传播负载并增加冗余。

公共与私人服务器

通常,组织在外部和内部使用DNS。 然而,应该在这两个领域中提供的信息通常是完全不同的。

组织可能维护一个外部可用的仅授权的DNS服务器来处理其处理的域和区域的公开DNS查询。 对于其内部用户,组织可能使用一个单独的DNS服务器,其中包含公共DNS提供的权威信息,以及有关内部主机和服务的其他信息。 它还可以提供其他功能,例如其内部客户端的递归和缓存。

虽然我们提到了使用单个服务器处理上述“组合”服务器中的所有这些任务的能力,但是分割工作负载有一定的优势。 事实上,保持彼此不知道的完全分离的服务器(内部的和外部的)通常是期望的。 从安全的角度来看,公共服务器没有私人对方的记录是特别重要的。 这意味着不要在公共区域文件中列出带有NS记录的私有Nameservers。

还有一些额外的注意事项。 尽管让公共和私有服务器共享传统的主从关系中共同的区域数据可能更容易,但这可能会将关于您的私有基础设施的信息泄露到野外。

除了只保留您的私有服务器不在区域文件本身(本质上是一个公开的可搜索的实体),通常是一个好主意,也删除对公共服务器的配置文件中的私人服务器的任何引用。 这意味着删除传输,通知和主配置详细信息,以便公共服务器的妥协不意味着您的内部Nameservers突然暴露。

这意味着为每个文件维护单独的区域文件,这可以是额外的工作。 然而,这对于绝对分离和安全可能是必要的。

结论

您可能已经知道,在这个阶段,在选择您的DNS配置有相当多的灵活性。

您的选择在很大程度上取决于您的组织的需求,您的主要优先级是为选择的客户端(缓存或转发)提供更快的DNS解析,还是将您的域和区域提供给互联网(授权服务器)。 组合方法是常见的,最终,解决过程的双方都需要考虑。

在接下来的指南中,我们将演示如何开始使用这些配置。 我们将教开始如何建立一个缓冲或转发服务器 稍后,我们将介绍如何通过提供给您的域设置一对仅权威DNS服务器

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏