我可以使用哪种方法通过监控自动进行 DNS 故障转移?

Man*_*iur 1 domain-name-system monitoring failover high-availability

出于延迟原因,我们在世界各地运行多个冗余服务器。目前,如果一个站点出现故障,我们让另一个站点接管该区域的唯一方法是通过 DNS。

我们希望自动执行此过程,例如,如果通过监控工具检测到站点出现故障,则替换/修改区域文件。

我的 Google 技能只发现提供此服务的公司,但我们更喜欢我们自己的解决方案。我们目前使用 Nagios 进行监控,我们的名称服务器是 Bind。

是否有任何工具/方法可以完成此操作?

HBr*_*ijn 5

当然,这也是这些服务正在做的事情。:-)

这在一定程度上取决于您当前如何在全球范围内重定向/分发您的用户。假设结果是有效地将一些用户从 www.example.com 重定向到 www.eu.example.com,将其他用户分别重定向到 www.oc.example.com www.am.example.com。

您可以使用您的监控解决方案,以便当 www.am.example.com 变得无响应时,不仅会触发正常警报,还会触发更新,以便 www.am.example.com 指向 www.eu.example.com。

一种干净的方法是使用动态更新,这是一种通过向主服务器发送特殊形式的 DNS 消息来添加、替换或删除主服务器中记录的方法。这些消息的格式和含义在RFC 2136 中指定。

通过在 zone 语句中包含一个allow-updateorupdate-policy子句来启用动态更新。有关更多信息,请查看绑定管理员参考手册

最干净的方法可能是同时使用基于 IP 的访问控制和 DNS 公钥。

创建密钥对:

dnssec-keygen -a HMAC-MD5 -b 512 -n USER nagios.example.com.
Run Code Online (Sandbox Code Playgroud)

这应该会产生两个文件,一个用于私钥,另一个用于Knagios.exmaple.com.NNNN.private公钥Knagios.exmaple.com.NNNN.key

更新您的绑定配置:

key nagios.example.com. {
    algorithm HMAC-MD5;
    secret "<string with contents from Knagios.exmaple.com.NNNN.key>"; };

zone "am.example.com"
{
    type master;
    file "/etc/bind/zone/am.example.com";
    allow-update { key nagios.example.com.; };
    ...
};
Run Code Online (Sandbox Code Playgroud)

然后是使用 Bindnsupdate实用程序在引发警报时执行以下操作的脚本:

cat<<EOF | /usr/bin/nsupdate -k Knagios.exmaple.com.NNNN.private -v
server ns1.example.com
zone am.example.com
update delete www.am.example.com. A
update add www.am.example.com. 60 A <ip-address-of-www.eu.example.com>
send
EOF
Run Code Online (Sandbox Code Playgroud)

我不确定是否允许您对A记录以外的任何内容使用动态更新。

  • @Mantriur 如果它是一个可行的选择,我强烈推荐 Anycast。 (2认同)

归档时间:

查看次数:

1116 次

最近记录:

10 年,9 月 前