我有一个情况,我有一个双宿主VOIP服务器,使用两个互联网连接。 该解决scheme工作正常,除了一个问题,当主要互联网连接断开,DNSparsing也是如此。 这可以防止我的VOIP服务器连接到备份Internet连接上的VOIP提供商,因为它无法parsing服务器的DNS名称。 我不能使用IP,因为提供者喜欢移动他们的服务器。
所以我的“解决scheme”计划是在cron作业上每隔x分钟更新一次HOSTS条目,这样除非主要互联网长时间closures,服务器IP地址改变,否则我应该是好的。
但是,我真的不能想到这样做的一个好方法,请记住,如果DNS条目无法解决,我不想用空白或错误信息覆盖它们。
有什么build议么?
编辑:
也许我不太清楚。 我需要这样做的原因是因为我的VOIP提供商喜欢移动他们的服务器。 如果我正在使用caching名称服务器,并且他们移动服务器,那么我将会遇到过时的DNS数据,而且如果我将DNScaching时间设置得足够低,那么它就会失败,因为当主networking出现故障时,caching将在它回来之前到期,我在同一条船上。
我需要的是一种获得两全其美的方法,即快速响应DNS变化的能力,但不会失去解决连接故障的能力,因此我唯一能想到的解决scheme就是更新的主机文件。
另外,使用OpenDNS并不能解决任何问题,因为DNS查找不会在辅助networking连接上发生,它们总是在主要连接上出去。 这就是问题。 即使我已经将应用程序绑定到使用不同networking连接的两个接口,但它只在主连接上进行DNS查找。
为什么不安装本地cachingDNS服务器(如绑定) – configuration它非常简单。
这样,你只需要询问你的本地DNS服务器,并从你的ISP的域名服务器询问(并caching)。 您只需将转发器指令添加到named.conf中即可
forwarders { xxx.xxx.xxx.xxx; //. 1st DNS Server xxx.xxx.xxx.xxx; //. 2nd DNS Server };
(你可以添加尽可能多的,如你所愿)。
你为什么不使用第三方DNS服务器呢? opendns是快速,可靠和免费的。
他们将完全独立于你正在运行的互联网连接,你真的不应该需要充满主机文件和cron作业。
编辑:根据您的编辑…
那么您还没有将第二个连接定义为替代网关?
您可以给第二个连接一个更高的“度量”值,这意味着如果主连接断开,它将成为默认网关。
这里是路线手册页和一个很好的howto
一旦你这样做,你应该能够使用一个非ISP的DNS提供商(如OpenDNS),并有两个完全冗余的互联网连接。
/ Richy
我没有任何使用两个互联网连接的经验,但如果你把这两个提供商的DNS服务器放在你的resolv.conf中(可以在你的dhclient中使用“supersede domain-name”来完成) .conf)?
DNS本身是一个分布式数据库,试图保持主机文件的更新。 它通过recursion查找来完成,并在本地caching结果,并有一个过期。 BIND为你做这个。
您也可以使用OpenDNS的名称服务器,这两个名称服务器应该为两个ISP工作。
208.67.222.222 208.67.220.220