AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 130913
Accepted
BarsMonster
BarsMonster
Asked: 2010-04-10 05:00:59 +0800 CST2010-04-10 05:00:59 +0800 CST 2010-04-10 05:00:59 +0800 CST

DNS 性能:拥有多个辅助 NS 服务器会提高性能吗?

  • 772

当某个域有主 NS 和多个辅助 NS 时,客户端会随机要求它们降低负载,还是只打主 NS,只有在主失败时才继续辅助?

domain-name-system load-balancing nameserver
  • 8 8 个回答
  • 6861 Views

8 个回答

  • Voted
  1. Best Answer
    pehrs
    2010-04-10T07:14:30+08:002010-04-10T07:14:30+08:00

    我将重用这里的示例https://serverfault.com/questions/130608/when-is-a-secondary-nameserver-hit/130625#130625

    基本上它取决于解析器的实现。一些解析器会命中第一台服务器,其他解析器会从可用的服务器中随机选择一个服务器。为了解决这个问题,大多数 DNS 服务器随机化回复的顺序。

    如果您询问 google.com,您会得到以下答案:

    #dig NS google.com 
    ;; QUESTION SECTION:
    ;google.com.            IN  NS
    
    ;; ANSWER SECTION:
    google.com.     297286  IN  NS  ns3.google.com.
    google.com.     297286  IN  NS  ns2.google.com.
    google.com.     297286  IN  NS  ns4.google.com.
    google.com.     297286  IN  NS  ns1.google.com.
    
    ;; ADDITIONAL SECTION:
    ns1.google.com.     297067  IN  A   216.239.32.10
    ns2.google.com.     297074  IN  A   216.239.34.10
    ns3.google.com.     297074  IN  A   216.239.36.10
    ns4.google.com.     297067  IN  A   216.239.38.10
    

    然后我们再做一次:

    #dig NS google.com
    ;; QUESTION SECTION:
    ;google.com.            IN  NS
    
    ;; ANSWER SECTION:
    google.com.     297249  IN  NS  ns3.google.com.
    google.com.     297249  IN  NS  ns2.google.com.
    google.com.     297249  IN  NS  ns1.google.com.
    google.com.     297249  IN  NS  ns4.google.com.
    
    ;; ADDITIONAL SECTION:
    ns1.google.com.     297030  IN  A   216.239.32.10
    ns2.google.com.     297037  IN  A   216.239.34.10
    ns3.google.com.     297037  IN  A   216.239.36.10
    ns4.google.com.     297030  IN  A   216.239.38.10
    

    请注意这里他们如何更改回复中名称服务器的顺序以分散负载。

    • 12
  2. Teddy
    2010-04-10T07:33:35+08:002010-04-10T07:33:35+08:00

    IPv4 解析器通常会按照它们在数据包中获取服务器的顺序使用服务器,第一个解析器通常会成功。该顺序通常由 DNS 服务器随机化以分散负载。IPv6 将改变这一点,因为它要求具有最常见最高位的 IP 是最先联系的 IP。这将使 DNS 回复的随机化变得毫无意义。

    • 2
  3. Alnitak
    2010-04-24T05:11:13+08:002010-04-24T05:11:13+08:00

    就 DNS 递归服务器而言,“主要”和“次要”名称服务器之间没有区别——从技术上讲,它们都只是“权威”服务器。

    对负载平衡的有效性产生任何影响的唯一因素是:

    1. NS服务器自己返回记录列表的顺序
    2. 客户是否会随机选择一个
    3. 客户端是否使用其他启发式方法(即往返时间 - RTT)来选择“最快”的服务器

    在这些因素中,第一个是最不重要的。随机挑选和使用 RTT 更为常见。

    • 2
  4. gekkz
    2010-04-10T05:05:17+08:002010-04-10T05:05:17+08:00

    他们将首先访问主要的 NS,然后继续访问辅助 NS,因此拥有多个名称服务器只会增加冗余。

    为了提高性能,您将需要任播名称服务器,尽管您自己实现这一点将花费大量现金,并且不会提供足够实质性的改进来保证成本。

    • 0
  5. Richard Salts
    2010-04-10T05:11:32+08:002010-04-10T05:11:32+08:00

    如果您谈论的是 dns 服务器,而不是 dns 缓存,那么它会随机询问服务器。主服务器仅仅是对域具有权威性的其他服务器的 dns 记录的来源。这也可能是正确的,只有当您使用 axfr 作为复制 dns 的方法时,当使用其他形式的复制咨询后端(例如数据库或 ldap 目录)时,对于哪个记录进入更没有意义SOA。有一个例外,那就是如果您使用动态 dns 更新,那么 dhcp 客户端将联系该服务器并提供有关其 ips 的更新信息。

    • 0
  6. Dan Andreatta
    2010-04-10T07:00:28+08:002010-04-10T07:00:28+08:00

    根据我们 DNS 服务器上的经验数据,似乎主服务器和辅助服务器受到了大致相同的数量或请求,即解析器将通过随机选择、循环或其他方式使用两者。

    添加更多服务器肯定会提高性能。

    • 0
  7. chris
    2010-04-10T07:26:23+08:002010-04-10T07:26:23+08:00

    在整个互联网上提高 DNS 性能的唯一真正方法是使用任播地址。

    如果您只是添加一堆地址,您仍然无法控制某个远程用户实际上将使用哪个地址,因为客户端的操作系统决定如何处理它获得的 DNS 服务器列表。聪明的客户端会尝试找出最快的,但这不是 DNS 管理员可以控制的。

    • 0
  8. DrZaiusApeLord
    2010-04-10T06:32:44+08:002010-04-10T06:32:44+08:00

    Windows 客户端将使用主 DNS,除非无法联系到主 DNS,否则它将切换到辅助 DNS。我认为没有办法改变这种行为。

    • -1

相关问题

  • 如何在 Ubuntu 中设置搜索域(和其他 resolv.conf 参数)?

  • Solaris DNS

  • resolv.conf 在经过一段时间后被更改

  • 为什么有些网站的网址中没有“www”就无法显示?[关闭]

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve