­

網路自動化的奠基石:看「遙測」如何打敗傳統的網路監控

‍遙測是什麼?從字面意思看遙遠的測量某個東西?還是不誤導大眾了,比較權威的說法是遙測是對被測量對象的參數進行遠距離測量的一種技術,起源於19世紀初,廣泛應用於航空航天、軍事、工業、生物研究、醫學等等方面。

比如發射衛星後,地面的衛星研究中心需要監測其運行狀態,因為衛星的運行狀態會受太陽光的壓力和其它星球運動的影響而發生變化,這時候我們需要通過感測器去測量衛星的飛行速度、旋轉速度、自旋軸的方向等等,然後靠高頻的無線電波送回地面,進行分析。

同理,承載上面這些宏觀業務(航天、工業、醫學等)的網路本身也可以進行遙測,通過對網路設備的數據進行遠程高速採集和監控,提供更實時、更全面和更精細的網路監管能力。

隨著數據中心承載的業務越來越多,一方面數據中心網路快速演變,SDN、大二層Overlay、以及RDMA等技術快速落地應用,另外一方面數據中心需要管理的網路設備也越來越多,如何實現對數據中心全網實現端到端的流量管理與故障監控,甚至故障預判則越來越迫切。

傳統的網路監控方案諸如CLI、SNMP和Syslog,都因各自的局限性不能滿足雲數據中心對於網路監控的要求。

因此,面對大規模、高性能、實時、全路徑網路數據監控需求,SDN網路呼喚新的網路監控方式:Telemetry解決方案在此背景下,應運而生!

深究Telemetry技術

Telemetry(遙測技術),一般是指從物理網元或者虛擬網元上遠程實時高速採集數據,實現對網路實時、高速和更精細的監控技術。相比於傳統的網路監控技術,如CLI、SNMP,Telemetry通過推模式,主動向採集器上推動數據資訊,提供更實時更高速更精確的網路監控功能。

我們先來看看一下Telemetry的模型結構,作為一個網路監控技術,Telemetry由網路設備和網管系統兩大部分組成的。

作為網路設備,Telemetry相當於原始數據模型,編碼類型和傳輸協議的組合。對於網管系統,Telemetry就相當於收集系統存儲系統和應用分析系統的組合。

在網路設備測,Telemetry按照樣yang模型組織數據,用GPB(goole protocol buffer)格式編碼,並通過加PC協議傳輸數據,使得數據的獲取更高效,智慧對接更便捷。而在網管系統測,Telemetry可以完成數據的收集存儲和分析功能,利用分析結果可以為網路配置調整提供依據。

Telemetry與傳統網路監控方式對比

下面通過一些傳統網路監控技術的對比,介紹一下Telemetry優勢。

首先,傳統監管方式,例如SNMP/CLI,使用了「網管查詢到設備響應」的拉模式(PULL Mode)採集數據。一次查詢都有一次響應,設備需要處理大量重複的查詢。Telemetry採用了「網管訂製-設備實時推送」的推模式採集數據。一次訂製就可以對應多次響應,降低了設備處理查詢報文的壓力。

其次,傳統網路監控方式通過拉模式獲取數據。如果網路卡頓或者網路獲取不及時,就容易造成數據失真。而Telemetry周期性的向網管系統推送數據,避免了網路延時造成的數據不準確。

第三,傳統的網路監控方式如果要採集N台設備的數據,需要執行N次的查詢操作。如果同時採集M的數據,則需要N*X操作。而採用Telemetry技術,所有的設備只需要提前配置訂閱。各種數據實時上報,中間的過程無需人工操作。

針對以上做出總結:

Telemetry的工作模式是推模式,可以主動推送數據,精度是亞秒級。而且比較關鍵的一點是,Telemetry的數據結構採用採用標準結構和標準編碼。方便對接第三方的設備,有助於網路監控的效率的提升和監控品質的提升。

我們再來看看其他幾種傳統的網路監控模式的特性。

CLI、SNMP、Syslog

CLI:作為應用最廣使用最久的網路監控技術,最大的問題就是兼容性,同類產品不同廠商之間的兼容性,甚至同廠商不同版本(比如軟體平台切換)之間也會存在差異。而往往現網環境下,大概率會是多廠商設備組網,一旦設備升級調試,都需要更改運維腳本,而多廠商則意味著需要準備多個不同版本的運維腳本,即使本來是很簡單的事情也會變得複雜。

SNMP:「拉」模式方式需要採集器通過輪詢的方式處理每個網元,隨著網路規模、採集器以及採集資訊的增加,網元需要接受越來越多的查詢,因此網元不能的正常工作;同時因為採用的是「拉」模式,傳輸時延無可避免,導致監控到的網元數據會進一步失真,只能實現分鐘級粒度,遠達不到秒級甚至亞秒級的顆粒度。

SNMP雖然也有「推」模式,即Trap上報,但推送數據僅告警和事件,對於介面流量之類的數據,不支援;同時又因為採用的是UDP傳輸協議,又存在丟包的可能。因此進一步限制了SNMP的發展應用。

Syslog:長期以來,Syslog的格式是比較隨意的。即使有規範格式,但由於規範出的晚很多廠商並沒有遵守或不完全遵守。因此Syslog雖然支援「推」模式,能夠在設備產生告警和事件時及時推送數據,但因為推送數據的隨意性以及數據主要以告警或事件方式,和SNMP一樣對於介面流量資訊則力所不及。

總體來說,傳統的網路監控方式如SNMP、Syslog可以採集到網路設備的CPU、記憶體、日誌等資訊,但缺點是無法採集到網路數據流量,無法判斷鏈路擁塞情況。

拿公交運行來類比,相當於挨個站點問過去:誒,你這車流多少呀?站點狀態怎麼樣?

NetFlow、sFlow

再往上高級點的採集功能,有NetFlow、sFlow等,可以實現網路數據流量的取樣和推送,但推送的是原始數據,需要進行二次數據加工分析;而且是按照一定比例採集的,不能反映整個網路鏈路的流量全貌,所以不能預測流量和擁塞;同時,網路設備的 CPU、記憶體、網路擁塞資訊、網路事件日誌資訊等沒有實時傳遞出來,無法判斷是什麼原因導致的擁塞。

相當於抽取一些車輛,在指定地方查看行車記錄,看他什麼時候經過了哪裡,匯總分析後可以一定程度上判斷的道路運行情況。

有人說如果將NetFlow和SNMP同時都部署到網路中,這樣不就OK了?但是這些技術都要靠網路設備CPU進行處理,無疑增加了網路設備的負擔,給網路穩定運行帶來了不穩定因素。

Out-band Network Telemetry

還有一種網路監控方式叫帶外網路遙測(Out-band Network Telemetry,ONT,簡稱帶外遙測),可以有效改進採集不全和CPU負擔等問題,帶外遙測是通過監控設備單獨發送探測報文,從而收集鏈路狀態資訊,類似在網路中部署一套長PING設備,通過PING網路中不同設備和主機,從而判斷網路鏈路是否可達。相當於派出一輛輛連接檢測的小車,看站點是否可達。

但它並不是最完美的方案,因為探測報文並不能覆蓋所有轉發路徑和表項,有的網路鏈路故障僅僅是一條轉發表項出問題,而探測報文只能走一條轉發表項,大概率發現不了網路故障;另外探測報文雖少,但仍會佔用少量頻寬,造成網路頻寬的一些浪費。

Telemetry關鍵網路技術解析

Telemetry方案網路技術一般主要涉及INT、gRPC、ERSPAN以及NetConf等,其中,ERSPAN主要負責從物理網路的指定埠捕獲指定的數據報文(包頭或者全包),並通過GRE(或者其他合適封裝)走帶內轉發到指定的Target IP(Host),而NetConf主要負責控制器配置下發。

傳統探測網路時延和路徑主要是Ping和Tracert,但是數據中心網路對於時延的要求越來越高,Ping和Tracert並不能精準的定位出到底是那台設備的那個埠的轉發時延最高,因而不能對網路做出針對性的優化,INT技術正是為了滿足這一需求誕生的。

INT是In-band Network Telemetry(帶內網路遙測)可視化技術的一個重要組成部分,是讓網路管理和運維走向真正自動化的第一步,也是最關鍵的一步。透過INT技術,可以獲知報文實際轉發路徑上的每台網路設備IP、出入埠資訊、隊列ID、CNG擁塞通知標記、出入時間戳以及轉發時延等,並且在路徑探測的最後一跳上,對監測的數據進行UDP頭和IP頭封裝,統一發送給採集器。同時因為INT技術採用的是推模式,因而支援一次配置下發,網元持續上報數據,INT技術的優勢有:

  • 支援推模式,支援配置訂閱和配置下發,持續數據上報;
  • 支援配置原始報文的採用率,這樣可以有效節省網路資源和數據資源;
  • 支援在路徑探測的最後一跳,直接封裝報文並發送給採集器,無需中間節點單獨重複上送數據,節省網路資源;
  • 支援收集探測路徑上每台設備的設備資訊、介面資訊、隊列資訊、時間戳資訊和轉發路徑資訊等,包括採集Underlay網路和Overlay網路路徑資訊;

gRPC(Google Remote Procedure Call,Google遠程過程調用)是Google發布的基於HTTP 2.0傳輸層協議承載的高性能開源軟體框架,提供了支援多種程式語言的、對網路設備進行配置和管理的方法。gRPC目前提供C、Java和Go語言版本,分別是gRPC、gRPC -Java、gRPC -go;gRPC基於HTTP/2標準設計,帶來諸如雙向流、流控、頭部壓縮、單TCP連接上的多復用請求等特性。

gRPC可以實現周期性推送網路設備的各種運行狀態給監控伺服器,gRPC具有響應速度快,實時性高,採集數據全面的優點,很好解決了實時數據無法有效傳給監控伺服器的問題。

當然,INT的數據也可以通過gRPC發送給監控伺服器,INT+gRPC奠定了數據中心網路可化實現的技術基礎。

Telemetry用例分析

隨著數據中心的驚人增長,包括Web、雲數據中心、軟體定義的網路和大數據的擴展,需要一種完整的解決方案來優化網路和緩解網路帶來的挑戰。目前業界很多玩家都推出了高級網路遙測方案為網路提供了端到端的可見性。

Telemetry數據傳輸模型是YANG,支援三種YANG模型,分別是IETF、Openconfig和私有模式,其中:IETF模型:IETF定義的模型,該路線主要運營商主導,但因為運營商自身業務太過龐大,因此標準進展相對較慢;Openconfig模型:由Google牽頭主導的模型,中國阿里,騰訊均有參加;私有模型:新華三、瞻博網路等都有涉及。

下面來看一下具體的案例

Mellanox通過網路遙測技術為乙太網交換機注入能量

2019年5月,Mellanox通過網路遙測技術增強乙太網交換機的性能,以監控數據平面中的公共雲,私有雲和企業計算。

該監控技術被稱為「What Just Happened 」(WJH),可幫助企業識別數據平面中的異常情況。據該晶片製造商稱,WJH提供了其他流式遙測和帶內網路遙測(INT)產品所沒有的獨特服務。這種獨特性可以理解為提供有關異常網路行為的上下文和可操作細節的能力,從而消除網路故障排除中的猜測。

WJH如何運行

WJH能夠利用Mellanox的Spectrum和Spectrum-2乙太網交換機ASIC硬體功能檢查數據包。這些交換機利用Melannox的InfiniBand互連技術,使企業能夠通過智慧網路結構連接快速計算節點。

這種遙測技術將在Mellanox Onyx(乙太網作業系統),Cumulus Linux(Cumulus的開放網路作業系統)和SONiC網路作業系統(基於Linux的開源網路OS,可在交換機和ASIC上運行)上提供。而且它可以與InfluxDB,Grafana,Kibana等開源工具以及Mellanox NEO和Cumulus的NetQ等其他數據中心監控產品集成。

Junos介面遙測

隨著網路上對象的數量及其生成的度量標準的增加,用於收集操作統計資訊以監視網路運行狀況的傳統「拉模型」(如SNMP)直接限制了網元的擴展。

Junos遙測介面(JTI)通過依靠所謂的推送模型非同步傳輸數據來克服這些限制,從而消除了輪詢。發送數據的請求由管理站發送一次,以流式傳輸定期更新。因此,JTI具有高度的可擴展性,並且可以支援監視網路中數千個對象。使用Junos Telemetry Interface,用戶可以設置感測器以收集和導出各種系統資源的數據,例如物理介面和防火牆過濾器。JTI支援兩個數據模型即OpenConfig數據模型、瞻博網路自定義的開放和可擴展的數據模型,每個數據模型使用傳輸方式不同。

用於性能管理的遙測流

Junos遙測介面的一項主要功能是性能監控。通過將數據流傳輸到性能管理系統,網路管理員可以測量鏈路和節點利用率的趨勢,並實時解決網路擁塞等問題。

思科模型驅動遙測

Cisco IOS XE是企業的網路作業系統。它可以在Catalyst 9000等交換機、ASR 1000、CSR1000v、ISR 1000和4000等路由器,Catalyst 9800無線LAN控制器以及IoT和Cable產品系列中的其他一些設備上運行。自IOS XE 16.6發行以來,一直支援模型驅動的遙測,這為網路運營商提供了從其網路獲取資訊的其他選項。

模型驅動的遙測技術是一種新的網路監測方法,它使用推模型從網路設備中連續不斷地傳輸數據,並提供對運行統計數據的近乎實時的訪問。通過在NETCONF-YANG上使用基於標準的YANG數據模型,應用程式可以訂閱它們需要的特定數據項。Cisco IOS XE流遙測技術可以將設備上的數據以更高的頻率、更高效的方式推送到外部收集器,同時還可以將數據轉換為流。

華為FabricInsight數據中心網路分析器

華為的iMaster NCE-FabricInsight是面向數據中心網路的分析器,基於大數據分析技術,為用戶提供無處不在的網路應用分析與可視化呈現,打通應用和網路的邊界。

通過Telemetry技術採集海量真實業務報文,提供數據中心內部應用和網路的關聯分析,實時呈現應用地圖及網路品質,幫助客戶快速識別故障,並在業務產生影響前主動識別風險。

FabricInsight根據功能特性分為網路智慧分析基礎包和網路流分析增值包。基礎包主要包含:網路狀態可視、網路異常檢測、預測性維護和網路服務類問題感知與分析。

網路流分析增值包主要:應用與網路關聯分析、TCP業務流分析、應用品質/安全合規類Issues智慧分析、RoCE全流可視化和邊緣智慧分析。

Arista的高級網路遙測

Arista網路遙測與應用程式結合使用,通過改進的實時系統和網路性能可見性,它與應用程式行為和先進的端到端路徑監控工具相關聯,從而大大降低了應用程式停機時間和網路運營成本。

Arista的Telemetry Tracer策略包括三個關鍵組件(如圖1所示),這些組件通過與大數據,雲和虛擬化環境等分散式應用程式集成,通過現代軟體定義的方法帶來了更深的網路和應用程式級可見性。

除以上列舉的遙測產品外,還有2019年Broadcom發布Trident 4交換晶片。據說該晶片將業界最高的乙太網交換性能和編譯器可編程的分組處理遙測功能結合到一起,支援2.0到12.8Tbps交換能力,為企業網帶來革命性變化。

初創公司Arrcus研發的ArcOS系統。這是一個獨立的,與硬體無關的網路作業系統,適用於白盒系統,專門針對服務提供商和雲計算平台的大規模可擴展基礎設施。在遙測方面ArcOS主要包括控制平面、智慧可編程數據平面適配層(DPAL),用於控制平面、數據平面和環境的數據模型驅動的遙測,以及一致的YANG/OpenConfig API介面,便於編程訪問。這些功能與Broadcom的StrataDNX Jericho+平台相結合,可以支援完整的BGP互聯網路由表。

新華三的帶內遙測技術也是該公司可視化網路解決方案中的重要組成部分。相比傳統網路監控技術,帶內遙測一次配置,持續數據上報;採集路徑靈活資訊豐富,可在普通網路、EVPN和VXLAN網路中部署;採集精度靈活降低設備和採集器的數據處理壓力。目前該公司的產品中S6850 & S9850系列交換機支援做Ingress、Transit、Egress。S12500X-AF 和S9820系列交換機僅支援做Transit。S9850系列交換機做Ingress時,需開啟介面的內部環回功能。

SDN初創公司雲杉網路的DeepFlow®是一款虛擬網路流量採集、可視化與分析產品,幫助企業在雲環境中統一採集並分發任意虛擬機之間的網路流量,實現對業務關鍵鏈路的全面性能監控,並提供虛擬網路端到端的全路徑診斷,解決企業上雲遇到的虛擬網路監控、運維、安全等難題。

網路遙感技術是實現數據中心網路可視化和智慧運維的有效手段,是對傳統網路監控的補充,真正地實現網路業務端到端的流量可視化,打破「網路黑盒」束縛,為網路監控提供精準實時的數據支撐。可以預見,在不久的將來,在各路玩家的努力下,可實現真正的網路可視化和智慧運維。

參考鏈接:

1.http://www.ciotimes.com/Infrastructure/170208.html

2.https://www.sohu.com/a/341266653_730763

3.https://mp.weixin.qq.com/s/uajBIn_flW_2zh6CcJpk0Q

4.https://www.sdxcentral.com/articles/news/mellanox-infuses-ethernet-switches-with-network-telemetry-tech/2019/05/

5.https://www.juniper.net/documentation/en_US/junos/topics/concept/junos-telemetry-interface-oveview.html

6.https://e.huawei.com/cn/products/enterprise-networking/switches/data-analyzer/FabricInsight

7.https://www.arista.com/en/solutions/software-defined-network-telemetry