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

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

About The Author

Outline

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

當操作大型全球分佈式網路時,硬體故障,提供商中斷以及其他行爲變化都會經常發生。 因此,在出現故障的最初跡象時可以發出警報的系統可以提醒操作員或自動化系統,並能夠更快地採取糾正措施。 爲此,我們開發了 ShakeAlert,一個基於公開可用外部數據的警報系統,以提醒網際網路突然變化。

ShakeAlert監視從公共收集器觀察到的來自CDN的路徑的BGP (邊界閘道器協議)更新流。 當更新量大幅增加時,ShakeAlert發出一則稱爲Shake的警報 ,表示Internet的路由行爲可能發生變化,特別是外部網路如何將流量路由到CDN。 利用這些更新的內容,ShakeAlert進一步提供了可能受影響的POPS (存在點),提供程序和前綴的估計。

該系統以美國地質調查局地震預警系統命名 。 該系統通過檢測移動速度更快,但破壞性更低的P波並在破壞性更強的S波到達之前提醒居民來執行。 在這裏,我們認爲BGP的控制平面信號是早期預警信號,可能涉及數據平面和最終用戶流量的變化。

背景

爲了便於在Internet上的自治系統(ASE)之間進行路由,網路將通過BGP通信它們有路由的前綴。 作爲此通信的一部分,當前綴的可接通性發生變化時,網路將發送一系列稱爲通告的公告,指出受影響的前綴以及網路將用於到達前綴的路徑。

在網際網路的正常運作中,在更新路由表時,數千條此類消息在網路之間交換。 每次這些路由發生變化時,例如,由於網路故障,網路之間的新連接或計劃維護,可能會交換一組新的消息。 這些可能包括源站網路生成的更改(例如,宣佈新的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的一部分 。 數據從這些源中到達,並被分組爲一分鐘的時間箱。 然後,我們計算每個容器中的更新數,並使用離羣值檢測算法來確定容器與最近幾分鐘相比是否有異常大量的更新。 如果觀察到這樣的容器,我們會生成 Shake

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

爲了執行基於密度的異常檢測,我們考慮半徑 R 和鄰居計數 k。 我們認爲,如果在最後w分鐘內有少於k個其他容器,並且半徑R內的計數以新容器的計數爲中心,則我們的新時間容器 bw+1 是一個離羣 值。 正式而言,任何離羣值在最後w分鐘內有少於 k個 容器 bi ,這樣|bw+1|–|bi| <R。 我們指的是任何此類離羣值,如 搖動警報 或簡單的 振動,這些振動的更新計數作爲 大小

ShakeAlert的整體檢測過程

我們假設的基礎是,大規模和破壞性的網際網路路由更改會產生其中最大的事件:承載大量流量的路由很多下游網路和收集器很可能會聽到。 但是,從根本上說,許多更改涉及不屬於此類別的大量更新計數。 例如,我們撤回Anycast公告的定期維護。

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

在我們的CDN部署中,我們使用360分鐘和k of 5的窗口 ,從而避免提醒通常觀察到的每小時行爲。 我們也將 R 作爲窗口中觀察到的容器大小的第5和第95百分位之間的距離。 爲了增加操作上下文,我們根據更新中觀察到的前綴和路徑,進一步將容器細分爲特定於彈出的時間序列,分別發出警報。 最後,我們考慮了一些特定的調整,例如,根據我們的網路觀察設定最小警報大小。

ShakeAlert在行動中

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

評價

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

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

結論

ShakeAlert爲我們已經豐富的CDN監控提供了一個全新的可見性角度 。 通過從外部來源提取數據,我們知道它對Internet行爲提供了根本不同的見解。 在我們正在進行的系統工作中,我們正在探索如何將數據與內部監控進一步結合起來,以提高警報的準確性並啓用自動糾正措施。

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

1 例如 RouteviewsRIS

2 系統可以從根本上使用任何收集器。 在這裏,我們只是專注於RIS,因爲它的WebSocket界面具有靈活性

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

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

Tags

Just For You