名称服务器能否根据某种策略动态解析 IP 地址?

yif*_*fan 11 networking domain-name-system

我们已经为部署在多个数据中心的网站注册了一些用于 DNS 解析的名称服务器。

我们目前的 DNS 解析策略是根据不同的客户端 IP 地址,名称服务器会为同一个域返回不同的 IP 地址。例如,如果客户端 IP 地址来自北美,名称服务器将返回一个 IP 地址,即我们北美数据中心的 IP 地址。

但是客户端IP地址有时并不是用户的真实IP地址。它可能是属于 ISP 或代理服务器的 DNS 的 IP 地址。另一方面,如果我们的一个数据中心出现故障,我们希望我们的名称服务器排除属于崩溃数据中心的那个 IP 地址。所以我们希望我们可以为我们的 DNS 解析获得一个更动态的策略。有解决办法吗?

Ron*_*pin 16

听起来你想要任播。这就是像谷歌这样的网站使用的类型。您的所有网站都有一个地址(由 DNS 解析),并且您让 Internet 路由协议 (BGP) 将用户引导到最近的(通过路由协议)站点。如果某个站点出现故障,BGP 会自动将下一个最近的站点放入 Internet 路由表中。

典型的例子是8.8.8.8DNS。它解析到全球不同的位置,如果一个位置发生故障,则它会转到下一个最近的位置。

答案不是 DNS,而是路由。

  • @PaŭloEbermann,这是一种误解。来自一台主机的所有流量都将流向一台服务器,除非该服务器出现故障,否则流量将被定向到另一台服务器。是的,这会中断 TCP 连接,但只要您连接的服务器出现故障,就会出现这种情况。任播不是循环类型的事情。路由是确定性的,因此任播是确定性的。 (3认同)
  • Anycast 通常对基于 TCP 的协议没有用,因为属于同一连接的数据包可以发送到不同的服务器。 (2认同)
  • @PaŭloEbermann 当你使用 BGP 路由时,这不是问题,因为路由通常在宣布时不会改变(只有很小的变化) (2认同)
  • @PaŭloEbermann 只要您的所有负载均衡器就如何选择后端达成一致,您就可以跨基于 DSR 的负载均衡器进行任播。 (2认同)
  • @RonMaupin Anycast 路由并不像您暗示的那样稳定。而且谷歌不会像你说的那样使用任播。如果您想知道 Google 实际上是如何做到这一点的,请查看 Google 发布的《站点可靠性工作簿》第 227 页。简而言之,任播路由背后的负载平衡层补偿了路由中不可避免的变化,否则会破坏 TCP 连接。 (2认同)

MLu*_*MLu 9

你需要的是究竟什么亚马逊Route53 DNS服务提供:

不必在 AWS托管您的网站即可使用 Route53,它会很高兴地与跨私有数据中心部署的服务一起使用。

除非您是 Facebook 或 Google,否则定价也不应该成为问题,从每百万个请求 0.40 美元起(请参阅定价详细信息)。

希望有帮助:)

  • 在调用第一个我发现大多数情况下最好的工具之前,我会拓宽我的视野。Route53 可能对每个人来说都是最好的,但是如果你没有尝试过其他任何东西,你怎么知道呢? (2认同)