摘要:網絡領域在IT技術里一直是復雜的,而網絡故障發生頻率往往較高,對業務影響也比較大。
本文分享自華為雲社區《【華為雲Stack】【大架光臨】第1期:華為雲網絡測量如何“懸絲診脈”》,作者:華為雲Stack資深架構師 李俊武 。
一、背景:
雲計算為數據中心注入新活力,業務通過雲化來實現資源快速部署;彈性伸縮和敏捷創新,而網絡領域也從原來的交換機、路由器、防火牆等物理網絡逐步延伸到包括虛擬交換機、虛擬路由器、虛擬防火牆和應用類網絡虛擬設備的虛擬網絡。
傳統網絡設備運維已經形成了配套的標准和工具,比如交換機設備常用的端口收發報文計數、SNMP交換機監控指標、端口鏡像/流鏡像/ERSAPN鏡像、ACL計數、日志信息等。隨着網絡SDN架構的發展,基於SDN架構的雲網絡具有智能化的基因,比如網元提供Netconf信息上報接口等。隨着雲網絡的發展以及業務上雲的普及,虛擬網絡成為雲計算開發者、使用者、運維工程師等角色需要深入理解的技術。
圖1 雲網絡的常見流量
二、雲計算虛擬網絡發展帶來的問題和難點
網絡領域在IT技術里一直是比較復雜的,而網絡故障發生頻率往往較高,對業務影響也比較大。傳統業務上雲后,計算和存儲的資源對象是局部靜態的,本身就有訪問權限控制的概念,除了同主機資源隔離外並不需要太多特定的隔離技術,但是網絡資源對象卻是全局的且處於變動的運行態,不同租戶間甚至VPC內部都有隔離訴求;而且業務運行時一旦出現雲網絡問題會讓運維人員感到棘手和頭疼。 因此,對雲平台運維人員提出了更高的要求,包括虛擬網絡系統知識的學習、雲平台虛擬網絡架構的學習等,並且也對雲平台虛擬網絡的運維工具的功能豐富度和普適性都提出了新訴求。
雲網絡有很多自身的特點和測量的前提約束,所以雲網絡測量和傳統網絡測量在技術方案上會有些不同,我們逐一來分析下:
雲平台的虛擬網絡需要大量的軟硬件系統知識和相關工具
物理網絡多是網絡協議RFC和相關設備特性的積累,而虛擬網絡的技術掌握除了需要熟悉傳統網絡相關技能外,還需要理解程序運行的CPU/內存等硬件、OS/工具等軟件有關知識,並且積累相關雲網絡運維的可用技術和工具手段也是一件非常瑣碎的事情。
虛擬網絡架構復雜,涉及網絡功能繁雜,需考慮運維技術的普適性
為了實現地址重疊和多租戶VPC能力,並且具備從傳統網絡架構上演進為雲網絡的能力,雲網絡整體架構通常分下Underlay和Overlay兩層,常見技術是Vxlan、NvGRE或Geneve等隧道封裝,Underlay網絡是雲平台運行的物理網絡,虛擬網絡是在雲網絡里由租戶來創建,但其維護職責依然在雲平台相關的管理/運維角色來負責,所以雲網絡運維要支持分開測量業務Overlay網絡和底層Underlay網絡,且二者測量能力是解耦的,以解除對Underlay網絡硬件依賴;雲網絡測量還具有網元分布式范圍廣、非對稱路由存在廣泛、網絡配置動態變更頻率高、子網地址重疊等特征,這些也是雲平台網絡測量必備適應能力。
虛擬網絡測量不可影響租戶業務
雲網絡環境下,計算實例運行的業務屬於對應租戶,網路測量不能對租戶業務造成任何的影響,不能因為測量導致業務報文丟棄,或是業務報文測量信息進入計算實例內造成業務受損;這就決定了傳統修改業務報文的DSCP/TTL等字段作為測量報文標識是不可取的。雲網絡測量如果想達到良好的效果和影響可控,必須采用主動測量,而主動測量的報文必須和業務報文在轉發路徑上要一致,才能達到精確測量的目的。
網絡測量的安全性
傳統網絡業務和網絡屬於同一個管理者,所以業務可以配合網絡測量並且不會對業務造成影響。但是雲網絡測量不同,一方面因為雲平台為租戶提供資源租用服務的原因,一旦對業務報文修改可能造租戶成業務影響;另一方面對於惡意租戶,可能會知曉測量內部實現,故意偽造或風暴大量測量動作,從而造成網絡測量的錯誤甚至影響平台工作的運行穩定。所以網絡測量報文和測量方案一定是要經過精心的設計,即前面說的必須主動測量。一雲網絡測量的測量標識有一部分是可以自定義的並且可控的可周期性變化,縱然惡意租戶發送的偽造測量標識一樣,但自定義部分無法被測量算法匹配而識別到是攻擊,進而達到安全測量的目的。
政企客戶的雲平台里,虛擬網路和物理網路的建設及維護都在客戶的數據中心里發生。對於政企的網絡建設或維護的負責部門,在技能積累、工具復用、運維流程等方面都有很大的差異,這些差異可能會造成雲平台管理維護、業務上雲的相關人員的不適應。因此雲平台通過轉發面數據的信息采集和分析,對網絡故障定界定位,網絡測量技術意義非常重大。
三、華為雲的獨門秘籍:網絡帶內測量方案為雲網絡“懸絲診脈”
華為雲Stack通過雲平台運維功能提供了相應的網絡定界能力,將原來數小時甚至數天才能定界清楚的故障場景,縮短到了分鍾級,並且精確度和流量適應性都極大的提高,同時很大程度上降低了維護人員的技能要求和對雲平台內部實現細節的熟悉程度的要求。
圖2 華為雲Stack網絡測量工具界面
在IETF RFC 7799論文中,將網絡測量分為了三類:主動(Active,構造測量報文來獲取網絡運行信息)、被動(Passive,在業務報文原始數據來獲取網絡運行信息)和混合態(Hybrid type;混合態又分為兩種,一種是在原始業務報文上添加比如修改DHCP、IP/TCP OPTION等,另一種是主動和被動的同時使用)。
僅僅基於原有故障業務的報文進行測量會存在不可控的問題。舉個例子,假設是租戶錯誤配置防火牆規則導致特定源端口丟棄,導致客戶業務流出現了TCP流量中斷;想定位/定界這個問題需要基於在該TCP流報文路徑各個結點繼續采集獲取網絡運行信息,但是因為TCP中斷該流,不再有新報文發送而無法繼續測量。而對於該斷流場景,又不能基於Ping報文等做測試,一方面Ping報文相比TCP五元組在網元集群時可能因ECMP/LACP的哈希走不同路徑,另一方面防火牆/SNAT匹配時走的有狀態轉發規則也不同,所以可能存在Ping測量沒有問題,但是特定TCP流有問題的情況而無法測量出結果。因此,基於業務報文自身的測量,對於測量速率、測量總量等都無法有效控制,被動測量的方式在雲網絡測量系統的測量效果將會十分不理想。
我們可以看出,雲網絡測量想達到極好的測量效果,我們必須使用有可編程能力的網絡測量技術,並且使用主動測量來設計相關方案,從而實現精確的網絡測量。我們提出了華為雲自己的網絡帶內遙測協議。應用場景包括雲計算網絡的業務故障網絡節點測量定位,並兼容傳統數據中心測量的能力。可用在企業自建雲下,可以進行虛擬網絡和物理網絡組件問題定界以分配問題到具體責任組件,還可以為公有雲租戶提供定期巡檢能力,讓其業務感知雲平台網絡情況,合理進行業務流量優化調度。測量平台整體架構如圖3中的架構。
圖3 雲網絡測量架構設計
華為雲Stack雲網絡方案實現通常分為控制面和轉發面兩個部分,雲網絡測量系統對應的分別由測量控制器、測量CMDB、測量網元及其對接Agent或SDN控制器幾個關鍵組件構,這些組件互相配合,實現網絡精准測量。我們為此申請了專利《網絡測量系統、方法、設備及存儲介質》申請號:201910886165.6。
在整個測量系架構統設計中,我們實現了如下幾個關鍵技術點:
- 高精准性:測量系統基於故障業務流報文/L2/L3/L4頭等信息結合測量標識構建Active的測量報文,從而實現精確的測量;
- 高安全性:測量系統對租戶的業務流報文的進行安全測試: 在測量路徑始節點開始注入測量,測量路徑各個節點進行測量標識匹配並將測量信息送到測量控制器和分析器,並在測量路徑末節點丟棄該測量報文避免對租戶業務產生不良影響,各節點測量信息在分析器匯總后將測試結果返回測量系統管理者;
- 低資源損耗:測量系統針在轉發面網元通過測量標識來識別測量報文,轉發面網元對測量報文的識別特征歸一,僅需要固定下發少量匹配規則,不需要隨着測量動作動態更改網元配置,轉發面性能影響在3%以下,大大減少了網元匹配的資源耗費。
- 高靈活性:測量Agent采集各測量結點的測量信息時,除了原始測量報文的內容,還包括報文轉發狀態信息和時間戳等相關信息,並且可以基於編程能力自定義所需要的采集信息;
圖4 華為雲網絡測量方案關鍵技術點說明
四、華為雲網絡測量方案的小結
華為雲Stack的虛擬網絡基於測量方案——網絡帶內遙測協議,實現不同租戶、不同業務流報文的測量標識在控制面、轉發面等協作測量。既可以實現網絡故障出現后的故障定界,也可以在故障發生前進行周期性巡檢來事前預防,特征包括丟包和時延等。經過精心設計的雲網絡測量方案不僅可以適用於Underlay和Overlay的不同網元,還可以自適應不同網絡流量的路徑,后續雲網絡新能力上線后測量能力無需重新開發適配,幫助政企業務在雲上穩定運行。