在某些 ISP 的 AS 网络内查找“稳定” IP 地址的方法

在某些 ISP 的 AS 网络内查找“稳定” IP 地址的方法

一些定义/含义:稳定的 IP 地址 - 互联网服务提供商(ISP)自治系统(AS)网络内的主机,重放 ICMP 类型 8 回显请求。

创世纪:我的路由器通过向 ISP 的 AS 网络内的主机发送 ICMP 回显请求(每 5 秒一个数据报)来监控 Internet 连接,无论链路是否稳定运行,它都能提供足够可靠的图像。

原因:在(非常小规模的)多 WAN 环境中(例如,当使用至少两个不同的 ISP 时),它使我能够关闭不可靠的链接并执行故障转移和准负载平衡(使用源和目标 IP 地址在上游完成)。为了实现冗余,我的路由器通常同时监控 ISP 网络中的两个主机,当两个地址都没有响应时,路由器能够区分 ISP 的可达性并关闭给定的网关。

我想改进的地址搜索方法:我的生产测试(近一年,99.99%的正常运行时间)表明,ISP 的主 DNS 服务器和 ISP 拥有的域的第一个 MX 服务器几乎在任何时候都可以非常可靠地向我提供 ICMP 回显响应。

题外话: 假设我知道 BGP 是什么,也知道这是实现该目的的正确方法,但由于成本和小规模业务,我无法承担它的费用。

问题:我主要担心的是整个事情都取决于 IP 地址的改变能力。我正在寻找地址(查找这些地址的方法这对于 ISP 来说最有可能是改变的痛苦。在 IP 地址稳定性方面,有什么可以改进的吗?我正在考虑 ISP 的边界路由器,但我找不到可靠的方法来确定这些 IP,而且我不确定它是否会更“稳定”。有什么想法/意见吗?

答案1

鏈接測試

如果您正在测试链接的可靠性,请使用tracert动态查找链接另一端的第一个跳数地址。假设您的网络拓扑没有改变,它将始终是相同的跳数,通常是第二个或第三个。就我而言,以下内容在我的 Windows 计算机上有效:

tracert -d 8.8.8.8 | find "  3 "

通过监控此 IP,您可以清楚地了解故障是否是由您的链接引起的。

连通性测试

如果您正在测试以做出故障转移决策,那么为什么不 ping 一个知名服务器的地址呢?我使用 Google 的 DNS 服务器,因为它被更改的可能性可能比 ISP 更改地址的可能性小得多。由于这种方法还考虑了 ISP 与世界其他地方的连接,因此它通常更有用。我见过许多情况,其中链接良好,但 ISP 存在路由问题,导致服务中断。

服务测试

正如 joeqwerty 已经评论过的,ping它并不是 100% 可靠的连接指标,因为它经常被降低优先级(即服务器/交换机/路由器可能会丢弃/延迟 ping 以跟上其他工作),有时设备会专门配置为忽略它(许多 SOHO 防火墙都有此选项作为基本的“隐身模式”)。如果您需要更准确的测试,请监控您关注的特定端口/服务。有几种执行“tcp ping”的工具可以提供帮助。

概括

如果担心正常运行时间,您应该监控所有三个方面 - 链接、一般互联网连接和关键任务服务 - 以便在问题出现时能够更轻松地进行故障排除。

答案2

我使用商业埃尔菲克链接平衡器来执行此操作。

它用来确定特定链接健康状况的方法是尝试建立到多个目的地的 IP:端口连接,并具有可变的故障超时和阈值。

在此处输入图片描述

一般来说,我建议你调查地址外部ISP 基础设施的复杂性,因为 ISP 可能存在无法控制的上游路由问题。公共 DNS 服务器在轮询方面很受欢迎。

相关内容