网关状态检查方法在linux / bsd

我想知道是否有任何可靠的工具可以使用(与我的networkingconfiguration集成)来监视网关的状态,并在检测到主网关已经死亡时切换默认gw?

基于ping的检查有多可靠,还有什么可以达到相同的结果? 你用什么方法,如果有的话?

这基本上是为了“高可用性”互联网共享 – 办公室网关当时连接到两个ISP,并在另一个ISPclosures时自动切换活动。

编辑:

我正在寻找一个可靠的,可能不是基于ping的解决scheme,软件。

好的方法是在networking端做这件事,两个使用HSRP的routeur共享相同的IP。 有了这个,如果一个路由器或一个链路失败,第二个路由器将采取第一个IP(这是一个基本的解释)。 有了这个,你可以肯定你的电脑的默认网关将工作。 现在,如果你真的想要在服务器端的解决scheme,我想我会ping在互联网上的东西(如IPS Dns服务器,因为戴夫切尼说,但也知道网站,如谷歌和雅虎可能),也检查与tcpdump /飘渺,如果我接收来自Internet的数据包。 由于任何原因,ICMP不能回复,但链接可以处于良好状态,以便您可能会看到服务器以太网卡上的数据(来自Internet)。

编辑:正如你添加“我正在寻找一个可靠的,可能不是基于ping的解决scheme,软件”。 如果可能的话,我可以build议使用SNMP来监视两台路由器。 如果你告诉我们使用什么types的路由器,是否可以访问它们,这将有所帮助。

据我所知,HSRP不是一个select,因为这将不得不在两个ISP之间configuration。 由于他们不会这样做,所以我认为您必须使用检测错误路由的脚本来执行“自动故障转移”。 例如freebsddiary的成功故事

为什么ping不能满足你的要求? 在我看来,这是testing连接性的最低可能的基于IP的工具。

您可以尝试ping上游路由,或ISP的名称服务器。

这不是坚实的,链接上的高争用可以触发故障转移。 如果您的路由器可以直接支持ADSL接口,那么最好的办法就是将它与链路级故障切换结合起来。