- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我们的路由器上,我们将主 DNS 设置为本地 IP,该 IP 运行 Windows Server 2008 和内置 DNS 服务器。我们使用它来将域解析到本地服务器,如果在本地找不到域,我们将设置转发器来查询外部名称服务器。
路由器上的辅助 DNS 设置为我们 ISP 的主 DNS,以防本地 DNS 服务器出现故障。
我们办公室的 Mac 客户端可以从路由器正确获取 DNS 服务器,但它使用的 DNS 服务器似乎非常随机。例如,本地站点会加载,但某些图像不会加载。如果我将我的 DNS 地址硬编码为本地 DNS 服务器,一切都会正常工作。
所以我的问题是,Mac 客户端何时会使用辅助 DNS 服务器?我认为只有在主 DNS 不可用时才会使用它?
谢谢!
最佳答案
辅助 DNS 服务器的总体思路是,如果主 DNS 服务器没有回复(例如,它离线、无法访问、重新启动等),系统可以回退到辅助 DNS 服务器,因此它会赢在此期间无法解析 DNS 名称。不回复的意思是“根本不回复”,当主设备说名字未知时,它不会询问副设备。回答姓名未知是回复。
这里的问题是 DNS 使用 UDP,而 UDP 是无连接的。因此,如果 DNS 服务器离线,系统不会因未收到其他服务器的回复而注意到该服务器。由于UDP数据包也可能丢失并且往返时间(RTT)未知,因此它必须重新发送请求几次,每次都要等待几秒钟,然后才能最终得出此服务器的结论:死了。这意味着如果第一个 DNS 服务器挂掉,解析 DNS 名称可能需要长达一分钟或更长时间。
由于这似乎 Not Acceptable ,不同的操作系统开发了不同的策略来更好地处理这个问题。由于两个 DNS 服务器都应该为同一域提供相同的结果(如果不是,则您的设置实际上有缺陷,因为辅助 DNS 服务器应该是主 DNS 服务器的 1 对 1 替换),所以哪一个都没有关系正在使用。某些系统可能会向主要系统发送请求,但如果几秒钟内没有回复,它们不会重新发送给它,而是首先尝试辅助系统(然后重新发送给主要系统,依此类推)。有些人也可能同时查询两者,让更快的一个获胜,然后继续使用该一个一段时间(直到他们开始另一场比赛,看看它是否仍然是更快的)。有些人可能也更喜欢主查询,但会进行某种负载平衡,如果主查询当前待处理的查询数量超过一定数量,则切换到辅助查询。有些只是在它们之间交替,作为穷人的负载平衡。所有这一切实际上都是允许的。
但就您而言,我担心您的主服务器出现问题,如 by default, macOS will only use the primary one 。如果它不断地回退到次要的,它可能会认为主要的速度太慢。每次发生这种情况时,辅助服务器都会成为主服务器,see this older knowlebase article 。 This cnet article解释了如何禁用此功能,但我不确定这在当前系统中是否仍然可能。我找不到任何关于此的引用资料,但 IIRC 从我的脑海深处,苹果曾经在 WWDC 上提到,他们现在在 DNS 查询方面更加积极,甚至可能尝试以最快的速度同时联系多个 DNS 服务器在某些情况下会获胜,但我可能是错的(也许这只是 iOS 左右)。
关于macos - 何时使用辅助 DNS 服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10207640/
我需要为一系列 Linux 容器运行本地 BIND DNS 服务器。假设区域是 example.com 我的基础架构中已经有一个 example.com 域,我想使用我的本地 DNS 服务器覆盖一些记
当“Google Public DNS”免费时,为什么要使用“Google Cloud DNS”? 如何设置 DNS/名称服务器以指向计算引擎: 1. 将您的域注册器(在我的情况下为 GoDaddy.
我有一些主机在 EC2 中按需出现,当它们执行启动它们的服务时,它们会在现有区域下的 Route53 中创建一条 A 记录。 A 记录的格式为:randomid.example.com。所以它不是现有
我目前拥有自己的域名和专用服务器,并且为我的客户提供不同的软件包。我希望能够做的是让他们在我的网站上注册并自动创建一个包,他们可以通过他们的用户名作为子域进行访问,例如 http://youruser
我想知道如何只为一级子域设置通配符 DNS,示例: user.example.com // valid www.user.example.com // invalid 我的 BIND 区域域配
我正在努力将我的域的名称服务器切换到新的 DNS 服务。 将新设置与现有 DNS 设置进行比较的最佳工具是什么。 我尝试使用带有和不带有 @nameserver 的 dig 来确保 DNS 记录在新旧
我是一名长期开发人员,但对 DNS 的经验并不丰富。这是我的问题: 我们的应用程序在 Amazon EC2 上为客户启动服务器。一个客户希望为每台启动的服务器使用自定义 DNS,而不是 AWS 提供的
Closed. This question is off-topic。它当前不接受答案。 想改善这个问题吗? Update the question,所以它是用于堆栈溢出的on-topic。 9年前关
我看到几个提到 DNS 名称(域名)的最大字符串长度为 253 个字符。维基百科似乎指的是这篇旧博文: https://en.wikipedia.org/wiki/Hostname http://bl
这可能是完全不可能实现的,但在我尝试之前,我想我可能会从一位极客那里得到一些建议。 Squid 也会代理 DNS 查询吗?我想转发DNS查询以通过squid并使用squid的DNS错误页面,当然是通过
在我的 Rails 应用程序中,我使用 ruby 库 resolv 进行 nslookup。如果输入像 dgdfgdfgdfg.com 这样的网站,则说明时间太长而无法解决。在某些情况下,例如 2
我正在研究一个带有每 5 秒刷新一次(轮询)的实时仪表板(Angular Web 应用程序)的场景。 API 位于 Azure 流量管理器之后,如果主要区域发生故障,它将故障转移到第二个区域。请记住,
我正在使用 fortify,它显示了攻击者可以在我尝试在 java 应用程序中获取主机名时进行 DNS 欺骗的漏洞。我有一个解决方案,通过匹配正向 DNS 和反向 DNS 条目可以避免这种情况。但它有
我正在尝试使用 cert-manager 为我的 istio-ingress-gateway 订购证书。为此,我在 AKS 上的 kubernetes 集群 (1.13.7) 上安装了 istio (
我正在尝试创建一个家庭自动化系统,它可以在我工作的白天照看我的狗。我在这个项目中的目标是学习一些关于 DNS、文件服务和 RaspberryPi 的知识。 我的硬件设置是这样的: 1 个 Raspbe
我想在一台服务器上创建一个 Web 界面,以管理另一台服务器上的几个 dns 服务器。 如何以编程方式远程管理绑定(bind) dns 服务器? 我想添加/编辑/删除区域。 我看到有 rndc,但它只
我对 TTL 和传播时间的概念有点困惑,我想澄清一些我没有设法在网上找到具体答案的事情。 AFAIK,TTL(生存时间)表示世界各地的服务器更新特定 DNS 的缓存值所需的(最高)时间。 所以...
我正在尝试学习 kubernetes,并且我已成功在裸机上设置集群(1 节点)、部署服务并通过入口公开它。 我尝试实现 traefik,以获取 Lets 加密证书,但我无法使其工作,并且在调试时我注意
我想以编程方式自动更新我的 DNS 多个域。我在 GoDaddy 上运行 BIND 服务器(在 FreeBSD 上)以及主机域和 DNS。我找不到供 GoDaddy 访问和更新他们托管的 DNS 的
我正在尝试记录 DNS“泄漏”,换句话说,我网站的访问者使用的 DNS 服务器。 如何确定网络请求来自哪个 DNS 服务器到我的服务器(即获取 DNS 泄漏)。本站 dnsleaktest.com是吗
我是一名优秀的程序员,十分优秀!