在我的内部工作网络中,每当我dig
针对特定主机名启动时,都会得到类似于以下的结果:
;; ANSWER SECTION:
some.internal.host.com. 10 IN A 10.210.54.121
如果我继续发送相同的dig some.internal.host.com
命令,响应总是有一个 A 记录,但 IP 地址在调用之间发生变化。
我认为这是某种形式的负载平衡,但是对于好奇的人来说,池中 IP 地址的完整列表是隐藏的。
这里使用什么技术来实现所描述的结果?
输出中的“10”是TTL。它很短,只有 10 秒,因此可以猜测这是动态变化的。这就是为什么它不应该在 DNS 递归服务器的缓存中停留超过 10 秒。
它是如何完成的?这取决于远程 DNS 服务器及其实现方式。隐藏节点动态(取消)注册到 DNS 或 DNS 可能正在“检测”活动的后端主机本身。
这可能是一个循环的方法。
通常,您提供所有有效地址,客户端选择一个进行连接。
如果您的客户实施不当,您可能需要通过仅提供一个值来强制他们选择。
另一种选择是根据不同服务器的繁忙程度进行负载平衡。然后将 DNS 用作廉价的负载平衡器。与一个或多个真实负载平衡器相比便宜,例如,多个 IP 地址将所有请求代理到服务器。