Home 技术文章 Edgio新推出的ShakeAlert可让您更好地了解网络事件
Applications

Edgio新推出的ShakeAlert可让您更好地了解网络事件

About The Author

Outline

Edgio新推出的ShakeAlert可让您更好地了解网络事件

运行大型全球分布式网络时,经常会出现硬件故障,提供商中断和其他行为变化。 因此,能够在出现故障时发出警报的系统可以提醒操作人员或自动化系统,并实现更快的纠正措施。 为此,我们开发了 ShakeAlert系统,这是一个建立在公开的外部数据上的警报系统,以提醒突然的互联网变化。

ShakeAlert监视从公共收集器中观察到的BGP (边界网关协议)更新流,以获取来自CDN的路径。 当更新量急剧增加时,ShakeAlert会发出一个警报,称为 Shake,表示Internet的路由行为可能发生变化,特别是外部网络如何将其流量路由到CDN。 使用这些更新的内容,ShakeAlert还提供了可能受影响的POP (入网点),提供程序和前缀的估计值。

该系统以美国地质调查局的地震预警系统命名 。 该系统的功能是检测移动速度更快但破坏性较小的P波,并在更具破坏性的S波到达之前提醒居民。 在这里,我们将BGP的控制平面信号视为可能涉及数据平面和最终用户流量变化的预警信号。

背景

为了便于在Internet上的自治系统(ASes)之间进行路由,网络通过BGP传达其路由到的前缀。 作为此通信的一部分,当前缀的可达性发生变化时,网络会发送一系列称为通知的通知,指示受影响的前缀和网络将使用的到达前缀的路径。

在Internet的正常运行中,数千条此类消息在更新路由表时在网络之间进行交易。 每当这些路由发生变化时(例如,由于网络故障,网络之间的新连接或计划的维护),可能会交换一组新的消息。 这些可能包括由源站网络生成的更改(例如,宣布新的IP块)或源站下游发生的更改(例如,传输提供商的连接更改)。

这些信息必然能让您深入了解互联网的现状,揭示网络之间连接的收益和损失。 为了利用此信息,许多组织1 运行称为路由收集器的服务,这些服务与许多网络对等,并公开收集的更新消息。

当连接发生变化时,上游网络会发送BGP更新,这些更新最终会发送到BGP收集器。

为了形成对这些行为的感知,我们考虑一些初步观察。 我们考虑为少数不同网络生成的更新源。 我们考虑两个大型CDN网络(CDN A,CDN B),一个内容网络(内容),两个大型ISP (ISP A,ISP B)和一个DNS根字母。 每种类型的网络都是为不同的目的而设计的,并且可能具有不同的对等策略。 在2021年1月,我们将每个网络的更新分成1分钟的存储桶,并考虑每个存储桶中一小时内的消息数。

上图显示了该期间每个更新站的大小。 在这里,我们可以看到CDN,它们都具有大型部署,许多对等项和提供商在几乎整个跨度内生成最多的更新,内容网络相对落后。 ISP和根字母生成的更新大大减少。 这些巨大的规模差异表明,网络的结构,对等项和体系结构可能对相应的消息量产生重大影响。 因此,我们必须确保我们的系统能够灵活地适应参数的变化,我们将在下一节中讨论。

振动警报系统

ShakeAlert侦听来自21个路线收集器的实时信息源,这些收集器是成熟NCC的路线信息系统(RIS)项目2的一部分 。 数据来自这些馈送,并被分组到分时长为一分钟的时间分箱中。 然后,我们计算每个容器中的更新数,并使用离群值检测算法来确定与最近几分钟相比,一个容器是否具有异常大量的更新。 如果观察到这样一个容器,我们会生成一个 Shake

为此,ShakeAlert会保持一个滑动窗口,显示在最后的w bins中看到的更新计数 ,从而避免存储有关超过w bins old的更新的信息 。 一旦ShakeAlert建立了w个容器的历史记录 ,并且 w+1个容器完成,它将考虑这个新容器b w+1的计数,相对于上一个窗口中的那些计数 。 虽然可以使用一些潜在的异常检测机制(例如,修改 z评分和标准偏差估计值,静态阈值和各种变化检测技术),但我们采用基于密度的检测机制34

要执行基于密度的异常检测,我们考虑半径 R 和邻居计数 k。 我们说,如果在最后的w分钟内有少于k个其它箱,且半径R内的计数围绕新箱计数居中,则新的时间 箱bw+1 是离群 。 正式地说,任何离群值在最后w分钟内少于 k 个容器 bi ,这样|bw+1|–| b i | <R。 我们将任何此类离群值,如 摇摇警报 或只是 摇摇 和这些摇的更新计数作为 大小

ShakeAlert的整体检测过程

我们假设的基础是,大型和破坏性的互联网路由更改会产生最大的这些事件:承载大量流量的路由很可能会被许多下游网络和收集器听到。 但是,从根本上说,许多更改涉及不属于此类别的大量更新。 例如,定期维护,我们撤回Anycast公告。

可以进一步观察容器中的更新内容,以显示有关网络事件性质的详细信息。 更新中的前缀可用于确定哪些POPS和Anycast区域可能受相应网络更改的影响。 我们可以进一步检查在更新过程中观察到的路径,并估计最有可能受到影响的上游网络。 最后,我们可以根据警报对入站CDN流量的重要性来确定警报的重要性。

在我们的CDN部署中,我们使用360分钟的窗口和5分钟的窗口 ,使我们能够避免对常见的小时行为发出警报。 我们还采用 R 作为窗口中观察到的容器大小的第5和第95百分位数之间的距离。 为了增加操作环境,我们根据更新中观察到的前缀和路径,进一步将容器细分为特定于弹出的时间序列,并分别发出警报。 最后,我们考虑一些特定的调整,例如,根据我们的网络观察结果设置最小警报大小。

ShakeAlert正在运行中

接下来,我们看一个简单的例子,说明奶昔是如何在野外出现的。 在2022年9月的上述示例中,我们关注特定的CDN流行,注意到沿y轴和线性尺度的更新计数比我们之前的数字小得多。 在此期间,更新计数几乎完全为0,直到它们突然增加,在12:14时生成更大的更新计数,在12:20后不久出现第二个峰值,两者都产生抖动。 这些更新是由于与提供商的连接出现意外中断而导致的。

评价

为了衡量奶昔是否代表有趣的事件,我们考虑以下分析。 对于2022年夏季30天内产生的每一个振动,我们会检查相应站点的内部指标,以确定我们是否在振动发生后10分钟内观察到异常行为。 对于我们的异常情况,我们考虑以下因素: 路由器重置(例如,路由器重新启动或以其他方式脱机),提供商链路上的BGP状态更改(即提供商BGP会话退出已建立的状态),从站点通知的更改,以及在相应站点和至少五个其他站点之间检测到的数据包丢失。

上图显示了30天内这些事件的细目。 在这里,我们看到所有桶至少有60%的奶昔具有相应的事件,平均80%的奶昔具有匹配的事件。 这些调查结果证实,最大的震动与重要且通常影响交通的事件相对应。 然而,他们进一步强调了可能造成这种震动的事件的广度,从例行维修到严重故障不等。

结论

ShakeAlert为我们已经丰富的CDN监控提供了新的可见性 。 通过从外部来源提取数据,我们知道它对互联网行为提供了根本不同的见解。 在我们对该系统的持续工作中,我们正在探索如何将数据与内部监控进一步结合,以提高警报的准确性并实现自动纠正措施。

特别感谢研究团队,网络可靠性工程团队以及所有使这项工作成为可能的内部工程团队。 此外,还要感谢许多路由数据方面的外部专家,包括Emile Aben,Stephen Strowes和Mingwei Zhang,他们提供了有用的反馈和讨论。

1 例如 RouteviewRIS

2 系统基本上可以使用任何收集器。 由于其WebSocket界面的灵活性,我们在此仅关注RIS

3 M. Gupta,J. Gao,C. C. Aggarwal和J. Han。 时间数据的离群值检测:一项调查。 IEEE Transactions on Knowledge and Data Engineering, 2014

4 T. Kitabatake, R. Fontugne, and H. Esaki。 BLT:用于挖掘BGP更新消息的分类和分类工具。 在过程中 2018年12月18日的INFOCOM。

Tags

Just For You