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