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

介绍

DNS,即域名系统,是系统在互联网上进行通信时连接的一个重要部分。没有了DNS,计算机和使用它们的人将只能使用称为IP地址的数字地址进行连接。

除了需要记住大量复杂数字地址的明显问题外,通过IP地址进行通信还会引发一些额外的问题。将您的网站迁移到不同的托管提供商,或将服务器迁移到不同的位置,都需要您通知每个客户新的位置。

DNS服务器,即共同形成允许我们使用名称而不是地址的系统的计算机,可以执行许多不同的功能,每个功能都可以为您访问服务器提供帮助。

在之前的指南中,我们讨论了域名系统的一些基本术语和概念。我们将假设您对该文章中涵盖的概念有一定的了解。在本指南中,我们将讨论一些不同类型的DNS服务器设置以及每种设置的优势、用例和属性。

DNS查询的路径

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

一些应用程序,包括大多数网络浏览器,会维护最近查询的内部缓存。这是应用程序将首先检查的地方,如果有这个功能的话,以查找所询问域的IP地址。如果它在这里找不到问题的答案,它会请求系统解析器来找出域名的地址是什么。

解析器通常是指在DNS查询中充当客户端参与者的任何组件。系统解析器是您的操作系统用于寻找DNS查询答案的解析库。通常,系统解析器通常是我们认为的存根解析器,因为它们除了搜索系统上的一些静态文件(如/etc/hosts文件)并将请求转发给另一个解析器外,没有太多复杂性。

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

递归服务器通常也会维护缓存。它将首先检查此缓存,以查看是否已经有查询的答案。如果没有,它将查看是否具有控制上级域组件的任何服务器的地址。因此,如果请求是针对www.example.com,并且它在其缓存中找不到该主机地址,它将查看是否具有example.com的名称服务器的地址,必要时还有com的地址。然后,它将发送查询到它能找到的最具体域组件的名称服务器,以查询更多信息。

如果它找不到这些域组件的地址,它必须从层次结构的最顶层开始查询根名称服务器。根服务器知道所有控制.com.net.org等区域的TLD(顶级域)名称服务器的地址。它将询问根服务器是否知道www.example.com的地址。根服务器将把递归服务器引用到.com TLD的名称服务器。

然后,递归服务器跟随引荐的路径到每个负责域组件的连续名称服务器,直到它能够准确找到具有完整答案的特定名称服务器。它将这个答案放入其缓存以供以后查询,然后将其返回给客户端。

从这个例子中可以看出,有许多不同类型的服务器,它们各自扮演不同的角色。让我们详细了解不同类型的DNS服务器的具体情况。

功能差异

一些DNS服务器之间的差异纯粹是功能性的。大多数涉及实施DNS的服务器都专门用于特定功能。您选择的DNS服务器类型将在很大程度上取决于您的需求以及您希望解决的问题类型。

仅授权DNS服务器

仅授权DNS服务器是一个只关心回答其负责区域查询的服务器。由于它不帮助解析外部区域的查询,因此通常非常快速,并且可以高效处理许多请求。

仅授权服务器具有以下特性:

  • 对其控制的区域查询非常快速响应。 仅授权服务器将拥有有关其负责的域的所有信息,或者有关已委派给其他名称服务器的域内区域的引荐信息。
  • 不会响应递归查询。 仅授权服务器的定义是不处理递归请求。这使它成为一个仅仅是DNS系统中的服务器,而不是客户端。到达仅授权服务器的任何请求通常将来自已收到对其的引荐的解析器,这意味着仅授权服务器将具有完整答案,或者将能够向其委派责任的名称服务器传递新的引荐。
  • 不缓存查询结果。 由于仅授权服务器从不查询其他服务器以解析请求的信息,因此它永远没有机会缓存结果。它所知道的所有信息已经在其系统中。

缓存 DNS 服务器

缓存 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 软件专门设计用于执行特定角色,但像 Bind 这样的应用程序非常灵活,可以用作混合解决方案。虽然在某些情况下,尝试在单个服务器中提供过多的服务可能会导致性能下降,但在许多情况下,特别是在小型基础设施的情况下,保持单一的全能解决方案是最合理的选择。

关系差异

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

主服务器和辅助服务器

鉴于 DNS 在使服务和整个网络可访问方面的重要性,大多数负责区域的 DNS 服务器都具有内置的冗余性。这些服务器之间的关系有各种术语,但通常,服务器可以在其配置中是主服务器辅助服务器

主服务器和辅助服务器都对它们处理的区域具有权威性。主服务器对区域的控制权并不比辅助服务器更大。主服务器和辅助服务器之间唯一的区别在于它们从何处读取其区域文件。

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

辅助服务器通过从区域的一个主服务器进行区域传输来接收它负责的区域。一旦它拥有这些区域,它会将它们放入缓存中。如果它需要重新启动,它首先检查其缓存,以查看其中的区域是否是最新的。如果不是,它会从主服务器请求更新的信息。

服务器不仅限于对其处理的所有区域都是主服务器或辅助服务器。主服务器或辅助服务器的状态是基于区域的基础分配的,因此服务器可以对一些区域是主服务器,对其他区域是辅助服务器。

DNS 区域通常至少有两个名称服务器。负责互联网可路由区域的任何区域 必须 至少有两个名称服务器。通常情况下,会维护许多更多的名称服务器,以便分担负载并增加冗余性。

公共服务器与私有服务器

通常,组织在外部和内部都使用 DNS。然而,应该在这两个领域中公开的信息通常大不相同。

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

虽然我们在上面提到了一个单一服务器处理所有这些任务的能力,在分割工作负载方面确实有明显的优势。事实上,维护完全分开的服务器(内部与外部),它们彼此不知道对方的情况通常是可取的。从安全的角度来看,公共服务器没有私有服务器的记录尤为重要。这意味着不要在公共区域文件中使用 NS 记录列出您的私有名称服务器。

还有一些额外的考虑要牢记。虽然在传统的主-辅关系中,让公共和私有服务器共享它们共有的区域数据可能更容易,但这可能会泄露有关您的私有基础设施的信息。

除了让私有服务器不出现在区域文件中(基本上是一个公开可搜索的实体)之外,通常还应该删除公共服务器配置文件中对私有服务器的任何引用。这意味着删除传输、通知和主配置详细信息,以便公共服务器的妥协不会意味着您的内部名称服务器突然暴露。

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

结论

到这个阶段,您可能已经意识到在选择 DNS 配置方面有相当大的灵活性。

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/664020.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql 锁知识汇总

目录 一、锁1.1 什么是锁?1.2 全局锁1.2.1 定义1.2.2 应用场景1.2.3 会出现的问题1.2.4 解决方法 1.3 表级锁1.3.1 表锁1.3.2 元数据锁(MDL)1.3.3 意向锁1.3.4 AUTO-INC锁 1.4 行级锁1.4.1 记录锁(Record Lock)1.4.2 间隙锁(Gap Lock)1.4.3 N…

【C++11】包装器

包装器 一、function包装器1、function包装器介绍2、包装示例3、function包装器统一类型4、function包装器简化代码5、function包装器的意义 二、bind包装器1、bind包装器介绍(1)bind包装器(2)调用bind的一般形式 2、bind包装器绑…

vite和vue-cli实现原理和优化及区别

Vite: 1. 实现原理: Vite 是一个基于 ESModule 的构建工具。它利用原生 ESModule 的特性,将每个文件作为一个模块,通过浏览器去解析和执行,而不需要提前将文件打包成一个单独的 bundle。Vite 利用浏览器的原生 ESMod…

LeetCode 热题 100 | 链表(中上)

目录 1 141. 环形链表 1.1 哈希表 1.2 快慢指针 2 142. 环形链表 II 2.1 哈希表 2.2 快慢指针 3 21. 合并两个有序链表 4 2. 两数相加 菜鸟做题第三周,语言是 C 1 141. 环形链表 1.1 哈希表 解题思路:遍历链表,在哈希表中…

Linux下grep命令详解

grep #文件内容过滤显示 #在指定的普通文件中查找并显示含有指定字符串的行,也可与管道符一起使用格式: grep-参数 查找条件 文件名 参数: 示例: [rootnode1 ~]# grep -n "root" /etc/passwd # -n&a…

Flink 添加 / 部署 Jar 包的若干注意事项

Flink 添加 / 部署 Jar 包可根据 Jar 包的声明周期、作用范围选择不同的附属方式,从实际应用上来看,可以分成以下几种场景: 普遍使用的框架或基础设施级别的 Jar 包,例如 Kafka、Hive、Hudi 等 Connector 的Jar 包,应…

Vue3学习记录(一)--- 组合式API之基础概念和变量声明

一、组合式API基础 1、简介 ​ 组合式 API (Composition API) 是Vue3和Vue2的v2.7之后版本中的全新特性,是一系列API的的集合(响应式API、生命周期钩子、依赖注入等等),其风格是基于函数的组合,以一种更直观、更灵活…

【Unity3D小技巧】Unity3D中UI控制解决方案

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 在开发中总是会控制UI界面,如何优雅的控制UI界面是…

02-Java抽象工厂模式 ( Abstract Factory Pattern )

抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂 该超级工厂又称为其他工厂的工厂 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类 每个生成的工厂都能按照工厂模式提供对象 …

CDS view与替代对象

一,简介 替代对象是指用一个CDS view指派给一个透明表或常规数据库视图,使得透明表或常规数据库视图的访问重定向到该CDS view。 替代有诸多要求: 字段数量一致且同名对应,顺序可以不一致对应的字段数据类型长度等必须一致CDS v…

在Linux下搭建自己的私有maven库并部署和发布自定义jar依赖和自定义maven插件(三)开发和发布自己开发的maven插件

系列文章目录 在Linux下搭建自己的私有maven库并部署和发布自定义jar依赖和自定义maven插件(二)发布自己开发的jar包 文章目录 系列文章目录在Linux下搭建自己的私有maven库并部署和发布自定义jar依赖和自定义maven插件(二)发布自己开发的jar包 前言一、插件需求二、maven自定…

H5调用安卓原生相机API案例

1、在activity_main.xml文件里添加webview标签 <WebViewandroid:id="@+id/webview"android:layout_width="match_parent"android:layout_height="match_parent"> </WebView> 2、AndroidManifest.xml(权限和活动声明) 开启访问…

如何准备明年游戏行业春招

大学校园招聘一般分春招和秋招。对于很多即将毕业的同学来说&#xff0c;如果秋招时没有收获合适的offer&#xff0c;那么春招就是最后的求职机会。此时更应珍惜&#xff0c;全力以赴。 许多游戏大厂通常会在校招开放基础岗位&#xff0c;这是进入游戏公司的捷径。校招时你的主…

前端JavaScript篇之对 rest 参数的理解、ES6中模板语法与字符串处理

目录 对 rest 参数的理解ES6中模板语法与字符串处理 对 rest 参数的理解 rest参数是一种在函数定义中使用的特殊语法&#xff0c;它允许函数接受任意数量的参数&#xff0c;并将它们收集到一个数组中。通俗地说&#xff0c;rest参数就像是一个容器&#xff0c;用来存放函数接收…

2024/2/2

第一章 命名空间 一&#xff0e;选择题 1、编写C程序一般需经过的几个步骤依次是&#xff08; B &#xff09; A. 编辑、调试、编译、连接 B. 编辑、编译、连接、运行 C. 编译、调试、编辑、连接 D. 编译、编辑、连接、运行 2、所谓数据封装就是将一组数据和与这组数据有关操…

【Oracle 集群】RAC知识图文详细教程(三)--RAC工作原理和相关组件

RAC 工作原理和相关组件 OracleRAC 是多个单实例在配置意义上的扩展&#xff0c;实现由两个或者多个节点&#xff08;实例&#xff09;使用一个共同的共享数据库&#xff08;例如&#xff0c;一个数据库同时安装多个实例并打开&#xff09;。在这种情况下&#xff0c;每一个单独…

什么是ISO21434网络安全中的信息安全?-亚远景

在ISO 21434标准中&#xff0c;信息安全指的是保护汽车网络、汽车电子系统和与汽车相关的信息免受未经授权的访问、修改、破坏、泄露和干扰的能力。信息安全的目标是确保车辆的电子和通信系统在数字化和互联环境中具备足够的防护&#xff0c;以防范潜在的威胁和攻击。 以下是IS…

帮管客CRM SQL注入漏洞

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

2024年美赛B题:寻找潜水器 Searching for Submersibles 思路模型代码解析

2024年美赛B题&#xff1a;寻找潜水器 Searching for Submersibles 思路模型代码解析 【点击最下方群名片&#xff0c;加入群聊&#xff0c;获取更多思路与代码哦~】 问题翻译 海上游轮迷你潜艇&#xff08;MCMS&#xff09;是一家位于希腊的公司&#xff0c;专门制造能够将人…

基于单片机的直流伺服电机调速系统设计

摘要:直流伺服电机通常在机器手、自动化生产线等数字控制系统中作为执行驱动机构。本文介绍一种基于单片机的直流伺服电机调速系统。其中C8051F020 单片机作为控制核心,通过数码管显示驱动和键盘扫描控制芯片CH452 接收按键输入和显示输出。C8051F020 单片机内部自带的PCA 计…