使托管应用程序能够抵御 BGP 故障

使托管应用程序能够抵御 BGP 故障

我的公司通过专门的托管服务提供商为客户构建各种网站。

这家托管服务提供商意外关闭了负责一小部分 IP 边界网关协议 (BGP) 公告的设备。由于我很幸运,其中一个 IP 恰好是分配给负载均衡器的公共 IP 地址,用于我们客户的所有网络流量。结果,该范围的 BGP 路由公告被撤回,并很快在全球范围内无法访问。

托管服务提供商在收到警报后立即解决了该问题,但这导致我们停机超过 15 分钟,我们希望将来能够避免这种情况。

  1. 我们如何监控它?它比我们正常的监控级别低很多,正常监控只检查 apache httpd 状态、JVM 等。我们有内部监控,使用 Advent AppEngine 检查服务器进程、apache 服务器状态响应、应用程序主页响应。

  2. 我们能否自行采取措施解决这个问题?例如通过某种方式发布我们自己的 BGP 公告?

我很高兴得到指点/建议阅读,而不是直接的答案,因为这个级别的堆栈对我来说是全新的,我想填补我的知识空白。

答案1

除非您的地址空间足够大,可以运行自己的 BGP,否则您不太可能解决这个问题。即便如此,您也容易受到同行 BGP 故障的影响。

如果您在不同的 AS 中使用多个 DNS 服务器,那么您可以通过设置较低的 TTL 并在发现问题后更改 DNS 以将故障转移到不同网络块/数据中心的单独 Web 服务器来解决此问题。然而,即使这样也至少需要几分钟。

编辑:正如 Chris 指出的那样,如果你正在运行 BGP,你需要全部在你变得无法联系之前,你的同行可能会失败。

答案2

除非您拥有至少 /23 的提供商独立地址空间并拥有 ASN 编号,否则您不太可能运行 BGP。因此,您需要信任您的托管公司。路由器更改往往相当罕见,因此再次发生此问题的可能性很小。您可以调查与他们签订的任何 SLA,但这可能只会涉及退还您的托管费。

至于监控,我们在网络外部有一个专用服务器,我们将其用作外部 Nagios 服务器。您可以购买便宜的 VPS 服务器,并使用它来从外部用户的视角监控事物。例如,我们检查 SMTP 和 HTTP 工作情况,而不是检查 exim 和 apache 是否正在运行,这是我们在内部监控中所做的。

答案3

顺便说一下,目前有几种免费的 BGP 监控和报警系统。没有一个能提供你想要的 15 分钟的分辨率。而且,由于中断可能有很多其他原因,因此从外部监控 IP 连接是唯一真正的解决方案。

关于 BGP 监控的一般文章,法语

答案4

您的选择非常有限。您可以对您的提供商大喊大叫,您可以转到另一个提供商,您可以获取 2 个不同的 IP 范围并在两者上宣传服务,并在您的 DNS 条目上使用较短的 TTL。

如果你真的想要解决这个问题,可以搬到一个有会议室的托管设施,从几个提供商那里购买带宽和 IP 地址。然后,登记使用 arin 的 ASN(或者任何适合您居住地的注册商)并与提供商进行对等。

如果您购买了足够的带宽,那么让他们支付 /24 或 /23 并不难。对等连接也将非常容易,具体取决于托管设施的规模和您要请求的带宽量。

如果你正在开大额支票,并且表现得好像你确切地知道自己想要什么(而且你想要的也是合理的),那么完成这些事情并不难。如果你把它外包给你的“提供商”,那么你永远都是傻瓜。

相关内容