保持主机文件更新的最佳方法

保持主机文件更新的最佳方法

我遇到过一种情况,即我有一个使用两个互联网连接的双宿主 VOIP 服务器。除了一个问题之外,该解决方案运行良好,即当主互联网连接中断时,DNS 解析也会中断。这会阻止我的 VOIP 服务器通过备用互联网连接连接到我的 VOIP 提供商,因为它无法解析服务器的 DNS 名称。我无法使用 IP,因为提供商喜欢移动他们的服务器。

所以我的“解决方法”计划是在 cron 作业上每 x 分钟更新一次 HOSTS 条目,这样,除非主互联网长时间停机且服务器 IP 地址发生变化,否则应该没问题。

但是,我真的想不出一个好的方法来做到这一点,请记住,如果无法解析 DNS 条目,我不想用空白或错误​​信息覆盖它们。

有什么建议么?

编辑:

也许我说得不太清楚。我需要这样做的原因是我的 VOIP 提供商喜欢移动他们的服务器。如果我使用缓存名称服务器,而他们移动了服务器,那么我就会遇到过时的 DNS 数据,如果我将 DNS 缓存时间设置得足够低,那么它就违背了目的,因为当主互联网出现故障时,缓存会在恢复之前过期,我也会遇到同样的情况。

我需要的是一种两全其美的方法,即能够快速对 DNS 变化做出反应,但在连接中断时不会失去解析能力,因此我能想到的唯一解决方案就是更新 hosts 文件。

此外,使用 OpenDNS 并不能解决任何问题,因为 DNS 查找不会在辅助网络连接上进行,它们总是在主网络连接上进行。这就是问题所在。即使我将应用程序绑定到使用不同网络连接的两个接口,它也只会在主连接上进行 DNS 查找。

答案1

为什么不安装本地缓存 DNS 服务器(例如 bind)——配置它非常简单。

这样,您只需询问本地 DNS 服务器,它就会从您的 ISP 的名称服务器询问(并缓存)。您只需将转发器指令添加到named.conf...

forwarders {
  xxx.xxx.xxx.xxx; //. 1st DNS Server
  xxx.xxx.xxx.xxx; //. 2nd DNS Server
};

(您可以根据需要添加任意数量)。

答案2

为什么不直接使用第三方 DNS 服务器呢?opendns 既快速、可靠又免费。

它们将完全独立于您正在运行的互联网连接,您真的不需要处理主机文件和 cron 作业。

编辑:根据您的编辑...

所以您没有将第二个连接定义为备用网关?

您可以为第二个连接赋予更高的“度量”值,这实际上意味着如果主连接中断,它将成为默认网关。

这是路线手册页以及一个好的如何

完成此操作后,您应该能够使用良好的非 ISP DNS 提供商(如 OpenDNS),并拥有两个完全冗余的 Internet 连接。

/ Richy

答案3

我没有同时使用 2 个互联网连接的经验,但是如果将两个提供商的 DNS 服务器放入 resolv.conf 中,这样可以吗(可以在 dhclient.conf 中使用“supersede domain-name”来完成)?

答案4

您还可以使用适用于两个 ISP 的 OpenDNS 名称服务器。

208.67.222.222 208.67.220.220

相关内容