Home 技術文章 Edgio的新ShakeAlert提供了對網路事件的更高可見性
Applications

Edgio的新ShakeAlert提供了對網路事件的更高可見性

About The Author

Outline

Edgio的新ShakeAlert提供了對網路事件的更高可見性

在運行大型的全球分佈式網絡時,經常發生硬件故障,提供商中斷和其他行爲變化。 因此,在出現故障時可以發出警報的系統可以提醒操作員或自動化系統,並加快糾正措施。 爲此,我們開發了ShakeAlert,這是一種基於公開的外部數據而構建的警報系統,用於對Internet的突然變化發出警報。

ShakeAlert監控從公共收集器觀察到的BGP (邊界閘道器協議)更新流,以查找源自CDN的路徑。 當更新量急劇增加時,ShakeAlert會發出一個警報,稱爲“振動”,提示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根號。 每種網路類型的架構都有不同的用途,並且可能具有不同的對等策略。 對於每個網路,我們將更新分為1分鐘的時間段,並考慮2021年1月每個時間段中超過1小時的消息數。

上圖顯示了該期間每個更新容器的大小。 在這裡,我們可以看到CDN,它既具有大型部署功能,也有許多對等方和提供商在幾乎整個範圍內生成最多更新,內容網路相對較為落後。 ISP和根號生成的更新明顯較少。 這些顯著的幅度差異表明,網絡的結構,對等項和體系結構可能對相應的消息量產生重大影響。 因此,我們必須確保我們的系統能夠靈活地適應參數的變化,我們將在下一節中討論。

振動警報系統

ShakeAlert可監聽來自21路由收集器的實時饋送,這些路由收集器是成熟的NCC信息系統(RIS)項目2的一部分。 數據來自這些上傳數據,並分組到分鐘長的時間箱中。 然後,我們計算每個容器中的更新數,並使用離群值檢測算法來確定與最近其他分鐘相比,容器是否具有異常大量的更新。 如果觀察到這樣的垃圾箱,我們就會產生振動

爲此,ShakeAlert維護一個滑動窗口,顯示在最後一個w bins中看到的更新計數,從而避免存儲有關更新超過w bins舊更新的信息。 一旦ShakeAlert建立了w bin的歷史記錄,並且w+1 bin完成,它就會考慮這個新bin的計數(bw+1)相對於上一個窗口中的計數。 雖然可以使用一些潛在的異常檢測機制(例如,修改的z-分數和標準偏差的估計值,靜態閾值和各種變化檢測技術),但我們採用了基於密度的檢測機制34

要執行基於密度的異常檢測,我們考慮使用半徑R和鄰居計數k。 我們說,如果在過去w分鐘內其他容器少於k個,並且計數在Radius R以內以新容器的計數為中心,則我們的新時間容器bw+1是異常值。 正式而言,任何離群值在過去w分鐘內都少於k bins bi,因此|bw+1|–|bi| <R。 我們將任何此類異常值稱為振動警報或簡單的振動,這些振動的更新計數為大小

ShakeAlert的整體檢測過程

我們假設的基本基礎是,大型和破壞性的Internet路由更改會產生最大的這些事件:許多下游網路和收集者可能會聽到帶有大量流量的路由。 但是,從根本上講,許多更改涉及不屬於此類別的大量更新計數。 例如,我們會撤回Anycast公告的定期維護計劃。

可以進一步觀察容器中更新的內容,以顯示有關網路事件性質的詳細資訊。 更新中的前綴可用於確定哪些POP和Anycast區域可能受到相應網路更改的影響。 我們可以進一步檢查通過更新觀察到的路徑,並估計最可能受影響的上游網路。 最後,我們可以根據警報對入站CDN流量的重要性來確定警報的重要性。

在我們的CDN部署中,我們使用360分鐘的窗口和5的k窗口,這樣我們就可以避免對經常觀察到的每小時行為發出警報。 我們還將R作為窗口中觀察到的容器大小的第5個百分點和第95個百分點之間的距離。 爲了增加操作上下文,我們根據更新中觀察到的前綴和路徑,進一步將容器細分爲特定於彈出的時間序列,並分別發出警報。 最後,我們會考慮一些特定的調整,例如,根據我們的網絡觀察設置最小警報大小。

ShakeAlert在操作中

接下來,我們來看一個簡單的例子,說明搖晃是如何在野外出現的。 在2022年9月的上例中,我們重點關注特定的CDN Pop,注意到沿y軸和線性比例的更新計數比我們先前的數字小得多。 在此期間,更新計數幾乎完全為0,直到它們突然增加,在12:14時生成更大的更新計數,在12:20時又生成第二個峰值,這兩個峰值都產生了振動。 這些更新是由於與提供商的連接出現意外中斷而導致的。

評估

為了衡量搖晃是否代表有趣的事件,我們考慮以下分析。 對於2022年夏季30天內產生的每次振動,我們會檢查相應站點的內部指標,以確定我們在振動後10分鐘內是否觀察到異常行為。 對於異常情況,我們考慮以下幾點:路由器重置(例如,路由器重新啟動或脫機),提供商鍊路上的BGP狀態更改(即,提供商BGP會話退出已建立狀態),站點通告的更改以及在相應站點和至少五個其他站點之間檢測到數據包丟失。

上圖顯示這些事件在30天內的細目。 在這裡,我們看到所有桶中至少有60%的奶昔都有相應的事件,平均而言,80%的奶昔都有匹配的事件。 這些調查結果證實,最大的振動與重要且經常影響流量的事件相對應。 然而,他們進一步強調了可能產生這種搖晃的事件的廣泛性,從例行維修到嚴重故障。

結論

ShakeAlert為我們已經豐富的CDN監控提供了新的可視性。 通過從外部來源提取數據,我們知道,它提供了對網際網路行為的截然不同的見解。 在我們對系統的持續工作中,我們正在探索如何將數據與內部監控進一步結合,以提高警報的準確性並啟用自動糾正措施。

特別感謝研究團隊,網路可靠性工程團隊以及所有內部工程團隊,他們使這項工作成為可能。 還要感謝許多路由數據外部專家,包括Emile Aben,Stephen Strowes和Mingwei Zhang,他們提供了有用的反饋和討論。

1例如RouteviewsRIS

2該系統可以從根本上使用任何收集器。 由於其WebSocket界面的靈活性,我們在此僅關注RIS

3 M. Gupta,J. Gao,C. Aggarwal和J. Han。 時間數據的離群值檢測:調查。 《關於知識和數據工程的IEEE交易》,2014年。

4 T. Kitabatake,R. Fontugne和H. Esaki。 BLT:用於挖掘BGP更新消息的分類和分類工具。 在處理器中 18年,2018年。