全球互聯網監控篇之---BGP數據持續監控

輕量級監控:BGPCorsaro

BGPCorsaro是在規則時間倉中從BGP流中連續提取派生數據的工具。它的體系結構是基於插件的流水線,它連續處理BGPStream記錄。插件可以是:

無狀態(Stateless:):例如,執行BGP記錄的分類和標記;管道中的插件可以利用這些標記處理數據;

有狀態(Stateful:):例如,提取統計數據或聚集在每個時間倉結束時輸出的數據。由於libBGPStream提供了排序的記錄流,即使在處理來自多個收集器的數據時,BGPCorsaro也可以容易地識別時間倉的結束。

BGPCorsaro的核心和插件都是用C編寫的,以便支持對歷史數據流或實時數據流的高速分析。在第6.2節中,我們描述瞭如何部署BGPCorsaro,它能夠作為全球互聯網監控基礎設施的一部分的並且42/7無間斷的運行。

作為示例,我們描述了一個有狀態的插件,它監視與給定的IP地址範圍重疊的前綴。對於每個BGPStream記錄,插件:(1)只選擇與給定IP地址範圍重疊的前綴相關的RIB和Updates類型的dump記錄。(2)對於每一個對,跟蹤路由到這些前綴路徑的源AS號。在每個時間倉的結束時,插件輸出當前時間倉的時間戳、識別的唯一前綴的數量以及由所有探測源觀察到的唯一起源AS號的數目。

全球互聯網監控篇之---BGP數據持續監控

BGP劫持事件監測

我們使用Dyn Research報告的BGP劫持事件(即2015年1月7日意大利學術和研究網絡(GARR)前綴的劫持)來演示這個插件。我們將插件配置為處理2015年1月1日來自所有可用RouteViews和RIPE RIS收集器的數據,將時間倉大小設置為5分鐘,並將由AS137(GARR)發起的78個前綴所覆蓋的IP範圍作為輸入提供給插件,如2015年1月1日所觀察到的。圖6顯示了由該插件生成的兩個時間序列的圖形:發佈的唯一前綴數量(綠色)和唯一來源AS號的數量(藍色)。雖然預料所宣佈的前綴數量有小幅振盪(前綴可被宣佈為聚合或解聚合),但在4種情況下,唯一宣佈AS號的數量從1轉移到2,持續約1小時。通過手動分析,我們發現在這些峰值期間,羅馬尼亞AS公司TehnoGrup(AS198596)也宣佈了GARR的IP空間的一部分(具體來說,7/24個前綴),它似乎與GARR沒有關係。Dyn研究報告描述了1月7日的一次襲擊。然而,考慮到圖中其他三個事件(1月1日、5日和8日)的類似性質,插件輸出表明發生了另外三個攻擊。雖然這種方法不能檢測所有類型的劫持攻擊,但它仍然是識別可疑事件的有效方法,並且用於演示用戶如何通過編寫特定於他們的應用程序的插件來利用BGPCorsaro的能力。

監控全球互聯網

我們提出了一種基於BGPStream的分佈式體系結構,並利用Apache Kafka(分佈式消息系統)來執行連續的全局BGP監控。我們的目標是雙重的:我們演示了BGPStream如何啟用和簡化開發複雜的全球監測基礎設施;並且針對出現的挑戰,我們在下文中提出了有效的解決方案。

為了構建開發這種複雜體系結構的背景和動機,讓我們考慮兩個示例應用程序,即“互聯網中斷:檢測和分析”(IODA)和“劫持”(Hijack)研究項目。在IODA中,我們24/7全天候監視互聯網來檢測和描述宏觀連通中斷現象。對於BGP,我們的目標是瞭解一組前綴(例如,共享同一地理區域或同一起源AS)是否可全局訪問。來自單個探測源的信息不足以驗證中斷的發生,事實上,由於本地路由失敗,探測源可能無法訪問前綴。另一方面,如果拓撲上和地理上分散的幾個探測源同時丟失了部分前綴,那麼這些前綴本身可能正在經歷中斷。在劫持中,我們感興趣的是檢測和分析基於BGP的流量劫持。由於大多數常見的劫持表現為兩個或更多個AS同時宣佈完全相同的前綴或相同地址空間的一部分,因此檢測它們需要比較從多個探測源觀察到的前綴可達性信息。

為了及時檢測這些事件,我們需要保持一個全局的(如,針對每個VP)視圖,並且擁有更新精細時間粒度(例如,幾分鐘)的更新BGP可達性信息。這種不斷更新的全局視圖可以在許多其他應用中使用,例如跟蹤包含特定AS的AS路徑、驗證路徑洩漏的發生、發現AS級拓撲圖中出現的新的(可疑的)AS鏈路等。

在下圖中描繪了我們建議的體系結構:多個BGPCorsaro進程數據(每個進程收集器一個實例,以便跨多個CPU/主機分佈計算),它們的輸出被存儲在Apache Kafka集群中,並由應用程序(消費者)進一步處理由同步服務器生成的元數據。在下面的小節中,我們描述這個體系結構的主要組件以及它們所解決的挑戰:下文解釋瞭如何高效且準確地重構每個探測源的可觀察的LocRIB;下文說明了如何減少我們存儲的數據量,以及稍後對消費者的處理;下文展示瞭如何根據應用程序需求來支持不同同步機制的問題。

全球互聯網監控篇之---BGP數據持續監控

實時監控分佈式架構

總結

BGPStream針對廣泛的應用程序和用戶。我們希望它能夠進行新穎的分析,開發新的工具,提供教育機會,以及對我們平臺的反饋和貢獻。此外,由於使用BGPStream的代碼和腳本嵌入了用於實驗的公共數據源的定義,因此BGPStream顯著地降低了實驗結果的可再現性。BGPStream開發是與其他研究人員和數據提供者(如Cisco、RouteViews和BGPMon)協作工作的一部分,以協調該領域的進展。

我們計劃在不久的將來發布新特性,包括對更多數據格式的支持(例如,ExaBGP、OpenBMP中的JSON導出)。特別地,添加對OpenBMP的支持能夠直接處理來自BGP路由器的流。


分享到:


相關文章: