使用DNS进行故障转移,使用多个A记录

Dan*_*iel 24 dns

最近我注意到,为主机名设置多个A记录不仅可以用于循环负载平衡,还可以用于自动故障转移.

所以我尝试了测试它:

  1. 我从我们的域名加载了一个页面
  2. 注意到我们的哪些服务器已经为页面服务
  3. 关闭该主机上的Web服务器
  4. 重新加载页面

实际上,浏览器会自动尝试使用其他服务器来加载页面.这适用于Opera,Safari,IE和Firefox.只有Chrome无法尝试其他服务器.

但是,在离开该服务器几分钟并查看访问日志后,我发现对其他服务器的请求数量没有显着增加.由于3台服务器中有1台处于脱机状态,我原本预计其余2台服务器的访问量将大致增加50%,但我只看到了7-10%.这只能意味着基于DNS的故障转移对大多数浏览器/访问者不起作用,这与我刚测试过的内容完全相反.

有没有人知道基于DNS的Web浏览器故障转移是什么?可能的原因是什么原因导致自动故障转移对我有用但对大多数访问者不起作用?

Pet*_*ter 16

发生的事情是浏览器没有进行自动DNS故障转移.

如果您在域上有多个A记录,那么当您的名称服务器请求您键入浏览器的域的IP时,它将从SOA请求一个.它可以是任何A记录.然后它传递它.

一些名称服务器"聪明"足以请求新的A记录,如果它获得的那个不起作用而一些不起作用.因此,如果您设置多个A记录,那么您将设置伪冗余故障转移,但仅适用于具有"智能"名称服务器的人员.剩下的就是他们获得IP的骰子,如果它工作那么好,如果不是那么它将无法像在Chrome中那样加载.

如果你想专门测试这个,那么你可以C:\Windows\system32\drivers\etc\hosts在Windows和/etc/hostsLinux中使用你的主机文件来指定你想要使用哪个域来查看你想要获得真正的故障转移的内容 - 正如你在实际中遇到的那样是网络上的DNS服务器将根据其TTL缓存您的域名解析.因此,如果/当您遇到真正的故障时,该IP仍然需要解决,否则将被移植到另一个名称服务器.

  • 我知道这不是真正的问题。但是没有 DNS 故障转移:您如何避免负载均衡器成为单点故障? (2认同)
  • 根据您与哪家公司合作或您拥有什么设备,如果您在上游有设备,您可以检测到负载均衡器已失效并动态地将流量切换到其他地方。本质上,您正在对负载平衡器进行负载平衡。否则,如果只有 IP 和它代表的一个框,那么您就有一个故障点。 (2认同)

Fr *_*ieg 5

另一个可能的解释是,对于大多数公共网站来说,大部分流量来自机器人而不是浏览器。根据机器人的不同,在处理域的多个 A 记录时,它们可能不如浏览器那么智能。

此外,一些机器人使用保持活动来保持 TCP 连接打开并通过同一连接发出多个 HTTP 请求。鉴于 DNS 查找仅在建立连接时完成,因此至少只要连接保持打开状态,它们就会继续向旧 IP 地址发出请求。

如果上述解释有任何重要性,您应该能够通过检查用户代理字符串在日志中看到它。