不均匀的循环 DNS(即不是循环)?

Get*_*ree 0 domain-name-system load-balancing

在循环 DNS 中,与域关联的每个 IP 被客户端选择的概率相等。
但是,如果我想在两个 IP 上设置循环域,但不是以 50%-50% 的方式设置呢?

例如,我可以为 IP X 添加 3 条 A 记录,为 IP Y 添加 2 条 A 记录。这样,客户会以 60%-40% 的比率选择 X 和 Y,而不是如果我只添加了 50-50 1 每个 IP 的记录。

理论上听起来是有可能的。但这真的会按预期工作吗?
如果它在特定的 DNS 服务器(即 BIND)上工作,那么其他永久缓存请求的 DNS 服务器(例如 ISP DNS)呢?
假设这项工作在服务器端进行,客户端将如何处理具有相同 IP 的多个 A 记录?

Eva*_*son 5

由于缓存,并且因为客户端上的 DNS 解析器实际上做出了选择:选择什么 IP 地址,循环对于从预期的负载平衡中获得任何类型的“平衡”来说都是一个糟糕的选择。试图调整它以统计负载趋势不会完成任何有用的事情。

从根本上说,“A”记录并不是为了满足您的需求而设计的。(相比之下,SRV RR 确实具有“加权”功能,但是,唉,没有人使用它们。)我想可以实现一个 DNS 服务器,该服务器使用某种统计指标排列返回的 IP 地址列表,但鉴于有多少客户端将接收缓存结果以查找您的服务器(服务器端假设的统计指标永远不会“看到”),实际上也没有办法使其工作。