知識庫
網絡運維一直倡導要可視化,并且在實踐中不斷優化,怎耐可視化的技術寥寥無幾,網絡技術經過了五十年的演進變化,可視化依然要依托SNMP、鏡像這些老技術。SNMP能監控到網絡的運行信息實在有限,從外部應用發起的請求獲取網絡狀態信息的SNMP協議,無法實時反映網絡的狀態。比如:時延、轉發路徑、緩存和丟包,這些都無法通過SNMP獲知,網絡對運維的人員來講,就是一個黑盒子,傳統的監控手段無法看透黑盒子。所以,長期以來網絡運維的可視化算不上真正的可視化,那些通過大屏將端口流量、設備CPU、Memory等運行狀態顯示出來只不過是可視化的一部分,網絡真實的運行狀態還未能顯現出來。最近,網絡可視化還真出現不少新技術,頗為引人注目,也許是未來網絡運維的技術演進方向,本文接下來就詳細講講。
Sflow(RFC3176)
Sflow其實算不上新技術,這幾年幾乎已經所有的網絡設備都能支持。Sflow實現了網絡流量的采樣和推送,通過Sflow采集最原始的數據信息,以IP報文格式的形式發往服務器,由專門的分析工具解析,然后根據這些采集的數據進行統計分析。Sflow是采樣方式收集數據,采樣比越高獲取的數據越真實,但采樣比越高,設備CPU壓力就越大。Sflow采樣報文是經過網絡設備CPU收集,然后再發向服務器的,采集的數據太多,會對網絡設備CPU形成攻擊,可能影響設備的正常協議處理,影響業務。所以,要謹慎使用Sflow,即便使用也要根據設備流量大小,確認好采樣比。Sflow使用的局限性讓人想到用硬件實現數據采集,比如FPGA、Netstream硬件設備,這樣采集數據性能雖會有很大提升,但運維的投入成本(購入支持FPGA的板卡或Netstream硬件設備)會上去。另一方面,網絡設備的CPU、Memory、網絡擁塞和網絡事件的日志信息也無法通過Sflow實時傳遞出來。所以,Sflow技術一直不溫不火,并未得到絕大多數人的認可,使用時還要配合著SNMP來用,一個網絡中要部署多個監控系統,可視化看到的都是部分網絡,并非全部。
gRPC(Google Remote Procedure Calls,谷歌遠程過程調用)
網絡運維在可視化上的窘態引起了互聯網技術人員的注意,谷歌發布了一個開源的RPC框架,RPC定義了客戶端和服務端進行通信的數據結構,服務端提供的服務等,然后編譯生成相應的代碼供客戶端和服務端使用,gRPC是RPC框架正式的實現版本,在2015年初開源的通信框架。gRPC采用了protocol buffer來做數據的序列化與反序列化,用http 2作為數據傳輸協議,性能更優。在網絡設備上集成gRPC應用,網絡設備就相當于gRPC客戶端角色,監控服務器相當于gRPC服務器角色,網絡設備主動向監控服務器發起gRPC通道建立和連接。gRPC可以靈活定義數據格式和數據推送的閾值,從而實現網絡設備自身運行狀態的主動推送數據能力,實現周期性推送網絡設備豐富的運行狀態,尤其當發生緩存不足導致的丟包時,也會實時通知給監控服務器,實現網絡運行數據的可視化。表1列舉了gRPC與傳統可視化技術的對比:
顯然,gRPC具有響應速度快,實時性高,采集數據全面的優點。
INT(In-band Network Telemetry帶內網絡遙測)
INT是由Barefoot、Arista、Dell、Intel和VMWARE共同提出的技術。INT是被設計用來收集和報告網絡狀態的一個框架,它通過數據平面實現,不需要控制平面的干涉,Facebook根據這個協議和相應廠商的網絡設備設計了一套系統,未來可能會開源。INT的思想是在第一跳的網絡設備上收到相應報文,對其進行封裝特定報文,然后扔給下一跳,直到最后一跳網絡設備,每一跳網絡設備都會收集相應的信息,封在報文里面。最后,在最后一跳網絡設備剝離報文里面收集到的信息,然后把原始報文扔給服務器,收集到的網絡設備信息扔給監控端處理。這樣即不影響正常業務轉發,又能收集到經過網絡設備的信息,在黑盒不知道網絡拓撲的情況下還能探測出網絡拓撲。初步協議給定的有:交換機ID、入端口信息、入端口時間戳、出端口ID、出端口時間戳、出端口鏈路利用率,緩存信息。INT是一個類似OAM的協議,INT根據沿路設備的信息,就能夠知道報文怎么走的,哪里有性能瓶頸,解決了網絡轉發路徑和轉發時延不可見的問題。要注意的是:“INT推薦在數據面處理,不推薦控制面處理以體現真實情況。”利用INT技術能很快定位網絡丟包和延遲問題,通過軟件打標記是無法實現INT的高效處理的,必須需要網絡設備硬件支持。
網絡運維的可視化還有很長的路要走,sflow、gRPC、INT等都是可視化具體實現技術,尤其gRPC和INT技術還沒有得到廣泛使用,現有機房的絕大部分設備還無法支持這種新技術,網絡設備的更新換代需要數年時間,所以這些新技術只有在新建的機房網絡中才能有機會出現,能支持INT功能的網絡設備必然具有芯片自編程能力,這對網絡設備提出了更高要求。除了以上介紹的這三種可視化技術,還有微軟在2015年提出的Pingmesh技術,以及依然是微軟在2015年提出的Everflow技術,還有Netsight(具體采用的Openflow協議)、ATPG、Planck等等,這些都是這兩年出現的可視化技術,雖然沒有gRPC、INT影響力大,但技術也在不斷完善中,未來也不好說哪些技術一定能勝出,哪些技術會直接淘汰,去讓時間證明一切吧。