我的公司通过专门的托管服务提供商为客户构建各种网站。
这家托管服务提供商意外关闭了负责一小部分 IP 边界网关协议 (BGP) 公告的设备。由于我很幸运,其中一个 IP 恰好是分配给负载均衡器的公共 IP 地址,用于我们客户的所有网络流量。结果,该范围的 BGP 路由公告被撤回,并很快在全球范围内无法访问。
托管服务提供商在收到警报后立即解决了该问题,但这导致我们停机超过 15 分钟,我们希望将来能够避免这种情况。
我们如何监控它?它比我们正常的监控级别低很多,正常监控只检查 apache httpd 状态、JVM 等。我们有内部监控,使用 Advent AppEngine 检查服务器进程、apache 服务器状态响应、应用程序主页响应。
我们能否自行采取措施解决这个问题?例如通过某种方式发布我们自己的 BGP 公告?
我很高兴得到指点/建议阅读,而不是直接的答案,因为这个级别的堆栈对我来说是全新的,我想填补我的知识空白。
答案1
除非您的地址空间足够大,可以运行自己的 BGP,否则您不太可能解决这个问题。即便如此,您也容易受到同行 BGP 故障的影响。
如果您在不同的 AS 中使用多个 DNS 服务器,那么您可以通过设置较低的 TTL 并在发现问题后更改 DNS 以将故障转移到不同网络块/数据中心的单独 Web 服务器来解决此问题。然而,即使这样也至少需要几分钟。
编辑:正如 Chris 指出的那样,如果你正在运行 BGP,你需要全部在你变得无法联系之前,你的同行可能会失败。
答案2
除非您拥有至少 /23 的提供商独立地址空间并拥有 ASN 编号,否则您不太可能运行 BGP。因此,您需要信任您的托管公司。路由器更改往往相当罕见,因此再次发生此问题的可能性很小。您可以调查与他们签订的任何 SLA,但这可能只会涉及退还您的托管费。
至于监控,我们在网络外部有一个专用服务器,我们将其用作外部 Nagios 服务器。您可以购买便宜的 VPS 服务器,并使用它来从外部用户的视角监控事物。例如,我们检查 SMTP 和 HTTP 工作情况,而不是检查 exim 和 apache 是否正在运行,这是我们在内部监控中所做的。
答案3
答案4
您的选择非常有限。您可以对您的提供商大喊大叫,您可以转到另一个提供商,您可以获取 2 个不同的 IP 范围并在两者上宣传服务,并在您的 DNS 条目上使用较短的 TTL。
但
如果你真的想要解决这个问题,可以搬到一个有会议室的托管设施,从几个提供商那里购买带宽和 IP 地址。然后,登记使用 arin 的 ASN(或者任何适合您居住地的注册商)并与提供商进行对等。
如果您购买了足够的带宽,那么让他们支付 /24 或 /23 并不难。对等连接也将非常容易,具体取决于托管设施的规模和您要请求的带宽量。
如果你正在开大额支票,并且表现得好像你确切地知道自己想要什么(而且你想要的也是合理的),那么完成这些事情并不难。如果你把它外包给你的“提供商”,那么你永远都是傻瓜。