一些定义/含义 :稳定的IP地址 – Internet服务提供商(ISP)自治系统(AS)networking中的主机,回放到ICMP 8型回显请求。
创世纪 :我的路由器通过向ISP的ASnetworking中的主机请求ICMP回应请求(每5秒钟一个数据报)来监控互联网连接,如果链路工作稳定或不稳定,它将提供足够可靠的图像。
理由 :在(非常小规模的)多WAN环境中(例如,当使用至less两个不同的ISP时),它使我能够closures不可靠的链路并执行故障转移和准负载平衡(使用源和目标IP地址)。 为了冗余,我的路由器通常同时监视ISPnetworking中的两个主机,当两个地址都不响应时,路由器能够区分ISP的可达性并closures给定的网关。
地址search方法,我想改进:我的生产testing(近一年,99,99%的正常运行时间)表明,ISP的主DNS服务器和ISP所拥有的域的第一个MX服务器是相当可靠的方式给几乎所有的时候我ICMP回声响应。
离题:假设我知道BGP是什么,这是一个合适的方法,但由于成本和微型业务,我无法承受。
问题 :我主要关心的是整个事情取决于IP地址的变化能力。 我正在寻找地址( 寻找这些地址的方法 ) ,这对于ISP来说是最可能改变的 。 有什么可以改进的 – 就IP地址稳定性而言? 我正在考虑ISP的边界路由器,但我找不到一个可靠的方法来确定这些IP,我不确定它是否会更“稳定”。 任何想法/意见?
如果您正在testing链路的可靠性,请使用tracertdynamic查找链路另一端的第一跳地址。 假设你的networking拓扑没有改变,它将总是相同的跳数,通常是第二或第三。 在我的情况下,以下在我的Windows机器上工作:
tracert -d 8.8.8.8 | find " 3 "
通过监控这个IP,您可以清楚地了解是否由于您的链接而导致的失败。
如果你正在testing,以便作出故障切换的决定,那么为什么不ping一个众所周知的服务器的地址? 我使用Google的DNS服务器B / C,它被改变的可能性可能远远小于ISP改变地址的机会。 因为这种方法也是ISP与世界其他地方连接的一个因素,所以它通常更有用。 我看到很多情况下,链接是好的,但ISP有路由问题,无论如何造成服务中断。
正如joeqwerty已经评论的那样, ping并不是100%可靠的连接b / c指标,它经常被降低优先级(例如,服务器/交换机/路由器可能会丢弃/延迟ping以跟上其他工作)而偶尔设备专门configuration为忽略它(许多SOHO防火墙有这个选项作为一个初步的“隐形模式”)。 如果您需要更准确的testing,请监控您所关心的特定端口/服务。 有几个工具可以做一个“TCP ping”,可以在这里帮助。
如果正常运行时间是一个问题,您应该监控所有三个环节 – 一般互联网连接和关键任务服务 – 以便在出现问题时更容易排除故障。
我使用商业Elfiq链接平衡器来做到这一点。
它用于确定特定链路的健康状况的方法是尝试build立到多个目的地的IP:端口连接,并具有可变的故障超时和阈值。
一般来说,我build议你在ISP的基础设施之外轮询地址,因为ISP可能有上游路由问题,他们无法控制。 公共DNS服务器是stream行的投票的目的。