使托pipe应用程序对BGP失败具有弹性

我公司用专门的托pipe服务提供商为客户构build各种网站。

此托pipe服务提供商意外closures了负责边界网关协议(BGP)通告的设备,用于小范围的IP。 由于我很幸运,其中一个IP恰好是分配给负载均衡器的公共IP地址,以便为我们的客户提供所有networkingstream量。 结果,这个范围的BGP路由广告被撤销,并迅速在全球范围内无法访问。

托pipe服务提供商在发现问题后就解决了这个问题,但是这花费了我们超过15分钟的停机时间,这是我们在未来急于避免的。

  1. 我们怎么能监控这个? 它比我们正常的监控要低很多,它只检查Apache的httpd状态,JVM等。我们有内部监控,它使用Advent AppEngine来检查服务器进程,apache服务器状态响应,应用程序主页响应。

  2. 我们能够采取措施来解决这个问题吗? 比如通过我们自己的BGP公告以某种方式?

我很高兴为指针/build议的阅读,而不是直接的答案,因为这个层次对我来说是全新的,我想填补我的知识空白。

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

如果您在不同的AS中使用多个DNS服务器,则可以通过设置较低的TTL并故障转移到另一个networking块/数据中心内的单独的Web服务器,通过在发现问题时更改DNS来解决某些问题。 即使如此,至less需要几分钟的时间。

编辑:正如Chris所指出的那样,如果你正在运行BGP,那么你需要所有的对等点在你无法到达之前失败。

除非拥有至less2/3的提供商独立地址空间并且有ASN号码,否则您不可能运行BGP。 因此,您需要信任您的托pipe公司。 路由器的变化往往是相当罕见的,所以这个问题再次发生的可能性很小。 您可以调查您与他们的任何SLA,但是这可能只是涉及到您的托pipe费用退款。

就监控而言,我们在我们的networking之外有专门的服务器,我们用它作为外部的Nagios服务器。 你可以买一个便宜的VPS服务器,并使用它来监视来自外部用户PoV的事情。 例如,我们检查SMTP和HTTP工作,而不是检查exim和apache是​​否正在运行,这是我们在内部监控中所做的。

为了logging,它存在几个免费的BGP监视器和报警系统。 没有提供您想要的15分辨率。 而且,由于您可能有其他许多中断的原因,因此从外部监控IP连接是唯一真正的解决scheme。

  • 独眼巨人
  • RIPE IS
  • BGPmon ,我的最爱

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

根据设置的方式,所宣传的netblock的大小以及上游如何聚合,您可以使用其中一个镜像脚本来监视服务器所在块的BGP通告。

从主机和外部的服务器上ping一下你的主机和路由器可能会更容易一些。 您可以使用traceroute来确定使用哪个地址。

你可以做的很less,以防止你的托pipe公司再次这样做。 为了做到这一点,您至less需要一台运行BGP的路由器或其他主机连接到您的提供商。 除非你还有另一个提供者,否则如果他们不小心关掉了对等路由器,那就不会有帮助。

更好的解决scheme可能是通过另一个答案提到的故障切换站点。 根据您的风险承受能力,您可以设置故障转移在很短的时间内发生,但它涉及到您的DNS的完全控制。

你的select是相当有限的。 你可以大声疾呼你的提供者,你可以移动到另一个提供者,你可以得到两个不同的IP范围和广告服务,并在你的DNS条目上有短TTL。

如果您真的想要解决这个问题,请转到与会议室的可口可乐工具,并从几个提供商处购买带宽和IP地址。 然后, 注册一个ASN(或任何注册商无论身处何地都是正确的),并自己与供应商同行。

如果你购买了足够的带宽,就不会让他们咳嗽一个/ 24或/ 23。 根据colo设施的大小和您要求的带宽量,对等也将变得相当容易。

如果你正在写大检查,而且你确实知道自己想要什么(而且你想要的是合理的),那就不难完成这件事情。 如果你把它交给你的“提供者”,你将永远处于愚蠢的一端。

  1. 您可以通过询问公共路由服务器( http://www.traceroute.org/#Route%20Servers )关于您正在使用的前缀来监控您的提供者公告。 您可以通过telneting这些路由服务器来自动执行这种监控。
  2. 如果你使用足够的带宽,有这样的部署的预算和技能,你可以要求一个AS号码和一个IP地址范围。 但是,这样做成本很高,而且由于RIR不在使用IPv4地址,因此您必须提供真正的需求certificate。