來源?| OSCHINA 社區(qū)
作者 | 華為云開發(fā)者聯(lián)盟
本文分享自華為云社區(qū)《重識云原生系列(四) —— 硬菜軟嚼的云網(wǎng)絡(luò)》,作者:黃俊 / 招商證券云原生轉(zhuǎn)型項目調(diào)研負責人。 在傳統(tǒng) IT 架構(gòu)中,網(wǎng)絡(luò)幾乎就是指物理網(wǎng)絡(luò)設(shè)備,觸手可及,服務(wù)器之間的網(wǎng)絡(luò)通訊也是通過網(wǎng)線或者光纖連接實現(xiàn),其大部分流量管控與訪問控制策略也都是在路由器 / 交換機實現(xiàn)。而到了云計算時代,網(wǎng)絡(luò),除了包含傳統(tǒng)的物理硬件設(shè)備,還包含大量虛擬化的網(wǎng)絡(luò)設(shè)備軟件應(yīng)用,其運行在普通服務(wù)器中。而虛擬網(wǎng)絡(luò)設(shè)備的連通,不僅需要底層真實硬件的支持,更需要關(guān)注軟件形態(tài)的虛擬網(wǎng)絡(luò)設(shè)備中的各種 Overlay 層的轉(zhuǎn)發(fā)策略與流量監(jiān)測,這對網(wǎng)絡(luò)管理員而言也是前所未有的挑戰(zhàn)。
伴生于云計算的云網(wǎng)絡(luò)技術(shù)
云計算時代,資源的虛擬化和調(diào)配的自動化,為用戶提供了可彈性伸縮、靈活配置的計算、存儲資源,進而支持快速簡便的業(yè)務(wù)系統(tǒng)發(fā)布。作為互聯(lián)互通的網(wǎng)絡(luò)基礎(chǔ)設(shè)施,如何實現(xiàn)網(wǎng)絡(luò)設(shè)備的虛擬化,從而進一步支持業(yè)務(wù)系統(tǒng)的快速擴縮容和網(wǎng)絡(luò)通訊策略的自適應(yīng)調(diào)配,為業(yè)務(wù)系統(tǒng)提供端到端的網(wǎng)絡(luò)快速響應(yīng)方案,成為了云計算時代急需解的核心關(guān)鍵問題。本質(zhì)上講,云網(wǎng)絡(luò)技術(shù)就是要實現(xiàn)對數(shù)據(jù)中心底層物理網(wǎng)絡(luò)設(shè)備的抽象,以期能在軟件層實現(xiàn)對網(wǎng)絡(luò)資源的二次切分、整合或者靈活管控,以便快速靈活地滿足各種業(yè)務(wù)場景的網(wǎng)絡(luò)使用需求,此即是軟件定義網(wǎng)絡(luò)(SDN)技術(shù)誕生的初衷。 云網(wǎng)絡(luò)技術(shù)發(fā)展至今,就是以云為中心,一方面為支撐數(shù)據(jù)中心基礎(chǔ)設(shè)施全面虛擬化而發(fā)展出來的網(wǎng)絡(luò)硬件的虛擬化能力,此方面的能力表現(xiàn)為可標準化快速組網(wǎng)、可按需擴展網(wǎng)絡(luò)資源容量、可靈活調(diào)配網(wǎng)絡(luò)安全管控策略、支持計量計費、可全棧監(jiān)控等;另一方面,因為公有云的蓬勃發(fā)展,也孕育出了面向企業(yè)租戶的云上網(wǎng)絡(luò)類產(chǎn)品與服務(wù),通過對機房級通用網(wǎng)絡(luò)設(shè)備或功能的模擬,以軟件產(chǎn)品服務(wù)的方式提供給云上用戶使用。
云網(wǎng)絡(luò)基礎(chǔ)技術(shù)演進
就云網(wǎng)絡(luò)基礎(chǔ)技術(shù)而言,其與計算虛擬化技術(shù)類似,也走過了一條精彩紛呈的硬件 “軟化” 之路。
一切從 Spine-Leaf 架構(gòu)說起
自從 1876 年電話被發(fā)明之后,電話交換網(wǎng)絡(luò)歷經(jīng)了人工交換機、步進制交換機、縱橫制交換機等多個階段,而隨著電話用戶數(shù)量急劇增加,網(wǎng)絡(luò)規(guī)模快速擴大,基于 crossbar 模型的縱橫制交換機在能力和成本上都已無法滿足要求。1953 年,貝爾實驗室有一位名叫 Charles Clos 的研究員,發(fā)表了一篇名為《A Study of Non-blocking Switching Networks》的文章,介紹了一種 “用多級設(shè)備來實現(xiàn)無阻塞電話交換” 的方法,著名的 CLOS 網(wǎng)絡(luò)模型就此誕生,其核心思想是 —— 用多個小規(guī)模、低成本的單元,構(gòu)建復(fù)雜、大規(guī)模的網(wǎng)絡(luò),如下圖所示:圖中的矩形,都是低成本的轉(zhuǎn)發(fā)單元。當輸入和輸出增加時,中間的交叉點并不需要增加很多。而到了 20 世紀 80 年代,隨著計算機的大量使用,計算機網(wǎng)絡(luò)技術(shù)也得到了長足的進步,開始出現(xiàn)各種網(wǎng)絡(luò)拓撲結(jié)構(gòu),例如星型、鏈型、環(huán)型、樹型結(jié)構(gòu),最終樹型網(wǎng)絡(luò)成為了行業(yè)主流架構(gòu),不過早期的樹型結(jié)構(gòu)網(wǎng)絡(luò)帶寬是收斂的。2000 年之后,互聯(lián)網(wǎng)從經(jīng)濟危機中復(fù)蘇,以谷歌和亞馬遜為代表的互聯(lián)網(wǎng)巨頭迅速崛起。他們開始推行云計算技術(shù),大量建設(shè)數(shù)據(jù)中心(IDC),甚至超級數(shù)據(jù)中心。面對日益龐大的計算集群規(guī)模,傳統(tǒng)樹型網(wǎng)絡(luò)已無法滿足要求,便誕生了一種改進型樹型網(wǎng)絡(luò) —— 胖樹(Fat-Tree)架構(gòu)。相比于傳統(tǒng)樹型,胖樹(Fat-Tree)更像是真實的樹,越到樹根,枝干越粗(其實是指帶寬)。從葉子到樹根,網(wǎng)絡(luò)帶寬無須收斂。胖樹架構(gòu)被引入到數(shù)據(jù)中心之后,數(shù)據(jù)中心便發(fā)展成了傳統(tǒng)的三層結(jié)構(gòu)(如下圖所示)。
這種架構(gòu)由核心路由器、聚合路由器(有時叫分發(fā)路由器,distribution routers )和接入交換機組成。在很長的一段時間里,三層網(wǎng)絡(luò)結(jié)構(gòu)在數(shù)據(jù)中心十分盛行。但在這種網(wǎng)絡(luò)架構(gòu)下,依然存在如下一些弊端:? 帶寬的浪費,接入交換機的上聯(lián)鏈路實際承載流量的只有一條,而其他上行鏈路則被阻塞(如圖中虛線所示);? 故障域較大,在網(wǎng)絡(luò)拓撲發(fā)生變更時 STP 協(xié)議需要重新收斂,容易發(fā)生故障,從而影響整個 VLAN 的網(wǎng)絡(luò);? 此架構(gòu)原生不支持大二層網(wǎng)絡(luò)的構(gòu)建,故難以適應(yīng)超大規(guī)模云平臺網(wǎng)絡(luò)需求,更無法支持虛擬機動態(tài)遷移;
針對以上問題,誕生了一種新的數(shù)據(jù)中心網(wǎng)絡(luò)設(shè)計方案,稱作基于 CLOS 網(wǎng)絡(luò)的 Spine-Leaf 架構(gòu)(Clos network-based Spine-and-Leaf architecture,中文也翻譯成葉脊網(wǎng)絡(luò))。實踐已經(jīng)證明,這種架構(gòu)可以提供高帶寬、低延遲、非阻塞的數(shù)據(jù)中心級連接服務(wù)。相比于三層架構(gòu),Spine-Leaf 架構(gòu)進行了扁平化處理,變成了兩層架構(gòu),如上圖右側(cè)所示。 Spine-Leaf 架構(gòu)的優(yōu)勢非常明顯: 1、帶寬利用率高,每個葉交換機的上行鏈路都可以負載均衡方式工作; 2、網(wǎng)絡(luò)延遲可預(yù)測,葉交換機之間的連通路徑均只需經(jīng)過一臺 Spine 交換機,東西向網(wǎng)絡(luò)延時可預(yù)測; 3、擴展性好,當上行帶寬不足時,可通過水平擴展方式增加 Spine 交換機數(shù)量來快速增加帶寬;當服務(wù)器數(shù)量增加時,則可通過增加 Leaf 交換機數(shù)量來快速擴大數(shù)據(jù)中心機器規(guī)模。 4、降低了對交換機的性能要求,東西向流量均衡分布在多條鏈路上,減少了單價昂貴的高性能高帶寬交換機的采購需求。 5、安全性和可用性高,一臺設(shè)備故障時,不需重新收斂,流量繼續(xù)在其他正常路徑上通過,網(wǎng)絡(luò)連通性不受影響,帶寬也只減少一條路徑的帶寬,性能影響微乎其微。 基于上述優(yōu)勢,Spine-Leaf 架構(gòu)從 2013 年一經(jīng)出現(xiàn),便很快取代了傳統(tǒng)三層網(wǎng)絡(luò)架構(gòu)的地位,成為現(xiàn)代數(shù)據(jù)中心的新標準。
大二層網(wǎng)絡(luò)的時代召喚
在上一節(jié),我們談到 Spine-Leaf 架構(gòu)出現(xiàn)的時候,其實已經(jīng)點到了大二層網(wǎng)絡(luò)的出現(xiàn)因由。 云計算技術(shù)的出現(xiàn),使得服務(wù)器虛擬化之后,除了使得數(shù)據(jù)中心的主機規(guī)模大幅增長,還伴生了一項新需求 —— 虛擬機的動態(tài)遷移。虛擬機遷移時,業(yè)務(wù)不能中斷,這就要求在遷移時,不僅虛擬機的 IP 地址不變,而且虛擬機的運行狀態(tài)也必須保持原狀(例如 TCP 會話狀態(tài))。所以虛擬機的動態(tài)遷移只能在同一個二層域中進行,而不能跨二層域遷移。而傳統(tǒng)的三層網(wǎng)絡(luò)架構(gòu)就限制了虛擬機的動態(tài)遷移只能在一個較小的 VLAN 范圍內(nèi)進行,應(yīng)用受到了極大的限制。 為了打破這種限制,實現(xiàn)虛擬機的大范圍甚至跨地域的動態(tài)遷移,就要求把 VM 遷移可能涉及的所有服務(wù)器都納入同一個二層網(wǎng)絡(luò)域,這樣才能實現(xiàn) VM 的大范圍無障礙遷移。這便是大二層網(wǎng)絡(luò)。 近十年間,就大二層網(wǎng)絡(luò)的實現(xiàn),業(yè)界先后出現(xiàn)了三類比較典型的實現(xiàn)方案,分別是網(wǎng)絡(luò)設(shè)備虛擬化類方案、L2 over L3 方案、Overlay 方案。所謂網(wǎng)絡(luò)設(shè)備虛擬化技術(shù),就是將相互冗余的兩臺或多臺物理網(wǎng)絡(luò)設(shè)備組合在一起,虛擬化成一臺邏輯網(wǎng)絡(luò)設(shè)備,在整個網(wǎng)絡(luò)中只呈現(xiàn)為一個節(jié)點。再配合鏈路聚合技術(shù),就可以把原來的多節(jié)點、多鏈路的結(jié)構(gòu)變成邏輯上單節(jié)點、單鏈路的結(jié)構(gòu),環(huán)路問題也就順勢而解了。以網(wǎng)絡(luò)設(shè)備虛擬化 + 鏈路聚合技術(shù)構(gòu)建的二層網(wǎng)絡(luò)天然沒有環(huán)路,其規(guī)模僅受限于虛擬網(wǎng)絡(luò)設(shè)備所能支持的接入能力,只要虛擬網(wǎng)絡(luò)設(shè)備允許,二層網(wǎng)絡(luò)想做多大都可以。不過,這類設(shè)備虛擬化協(xié)議大都是網(wǎng)絡(luò)設(shè)備廠商私有,因此只能使用同一廠商的設(shè)備來組網(wǎng),并且,網(wǎng)絡(luò)規(guī)模最終還是會受限于堆疊系統(tǒng)本身的規(guī)模限制,最大規(guī)模的堆疊 / 集群大概可以支持接入 1~2 萬臺主機,對于 10 萬級別的超大型數(shù)據(jù)中心來說,還是顯得力不從心。 而 L2 over L3 方案的著眼點不是杜絕或者阻塞環(huán)路,而是在有物理環(huán)路的情況下,怎樣避免邏輯轉(zhuǎn)發(fā)路徑的環(huán)路問題。此類方案通過在二層報文前插入額外的幀頭,并且采用路由計算的方式控制整網(wǎng)數(shù)據(jù)的轉(zhuǎn)發(fā),不僅可以在冗余鏈路下防止廣播風暴,而且可以做 ECMP(等價路由),這樣就可以將二層網(wǎng)絡(luò)的規(guī)模擴展到整張網(wǎng)絡(luò),而不會受到核心交換機數(shù)量的限制。當然,這需要交換機改變傳統(tǒng)的基于 MAC 的二層轉(zhuǎn)發(fā)行為,而采用新的協(xié)議機制來進行二層報文的轉(zhuǎn)發(fā),這些新的協(xié)議包括 TRILL、FabricPath、SPB 等。對于 TRILL 協(xié)議,CISCO、華為、Broadcom、Juniper 等都是其支持者;而 Avaya、ALU 等則是 SPB 的擁簇;而像 HP 等廠商,則同時支持這兩類協(xié)議。總體而言,像 TRILL 和 SPB 這類技術(shù)都是 CT 廠商主推的大二層網(wǎng)絡(luò)技術(shù)方案,而從事服務(wù)器虛擬化技術(shù)的 IT 廠商則被晾到了一邊,網(wǎng)絡(luò)話語權(quán)大幅削弱。 但伴隨著云計算技術(shù)迅猛發(fā)展的 IT 廠商又豈會坐以待斃,Overlay 方案便是從事服務(wù)器虛擬化技術(shù)的 IT 廠商主推的大二層網(wǎng)絡(luò)解決方案。其原理就是通過用隧道封裝的方式,將源主機發(fā)出的原始二層報文封裝后,再在現(xiàn)有網(wǎng)絡(luò)中進行透傳,到達目的地之后再解封為原始報文,轉(zhuǎn)發(fā)給目標主機,從而實現(xiàn)主機之間的二層通信。報文的封裝 / 解封裝都是在服務(wù)器內(nèi)部的虛擬交換機 vSwitch 上進行,外部網(wǎng)絡(luò)只對封裝后的報文進行普通的二層交換和三層轉(zhuǎn)發(fā)即可,所以網(wǎng)絡(luò)技術(shù)控制權(quán)就都回到了 IT 廠商手里。典型技術(shù)實現(xiàn)包括 VXLAN、NVGRE、STT 等。當然,目前 CT 廠商也都積極參與到了 Overlay 方案中來,畢竟云計算是大勢所趨。所以當前的 VXLAN 和 NVGRE 技術(shù)也可以把 Overlay 網(wǎng)絡(luò)的接入點部署在 TOR 等網(wǎng)絡(luò)設(shè)備上,由網(wǎng)絡(luò)接入設(shè)備來完成 VXLAN 和 NVGRE 的報文封裝。這樣的好處是: ? 一方面對于虛擬服務(wù)器來說,硬件網(wǎng)絡(luò)設(shè)備的性能要比軟件形態(tài)的 vSwitch 強很多,用 TOR 等設(shè)備來進行封裝 / 解封裝,整體云網(wǎng)絡(luò)性能自然更好。 ? 另一方面,在 TOR 上部署 Overlay 接入點,也便于把非虛擬化的服務(wù)器統(tǒng)一納入 Overlay 網(wǎng)絡(luò),目前主流云廠商的裸金屬方案基本如此。 如此一來,CT 廠商和 IT 廠商都在大二層網(wǎng)絡(luò)這個領(lǐng)域?qū)崿F(xiàn)了和諧共贏,也真因為如此,Overlay 方案成為了當今大二層網(wǎng)絡(luò)的主流方案。
Underlay 和 Overlay 正式托起 SDN 的太陽
上一節(jié)已經(jīng)提及,Overlay 技術(shù)實際上是一種隧道封裝技術(shù),主流協(xié)議有 VXLAN、NVGRE 等,基本原理都是通過隧道封裝的方式將二層報文進行封裝后在現(xiàn)有網(wǎng)絡(luò)中進行透明傳輸,到達目的地之后再解封裝得到原始報文,相當于一個大二層網(wǎng)絡(luò)疊加(overlay)在現(xiàn)有的網(wǎng)絡(luò)之上。而 Underlay 層則變成了一張承載網(wǎng),囊括各類物理網(wǎng)絡(luò)設(shè)備,如 TOR 交換機、匯聚交換機、核心交換機、負載均衡設(shè)備、防火墻設(shè)備等。由此實現(xiàn)邏輯組網(wǎng)與物理組網(wǎng)的隔離,例如,在華為云 / 阿里云解決方案中,均選用了 VXLAN 技術(shù)來構(gòu)建 Overlay 網(wǎng)絡(luò),業(yè)務(wù)報文運行在 VXLAN Overlay 網(wǎng)絡(luò)上,與物理承載網(wǎng)絡(luò)分層、解耦。 而對于當前走紅的 SDN 技術(shù),Underlay/Overlay 已經(jīng)成為了其從理念到實踐都不可或缺的一部分。 在數(shù)據(jù)中心之內(nèi)或者數(shù)據(jù)中心互聯(lián)(DCI)的場景下,運營方會先建立一個底層的 Underlay 網(wǎng)絡(luò)骨架,通過交換機和路由器將所有硬件單元(比如服務(wù)器 / 存儲設(shè)備 / 監(jiān)控設(shè)備等)相互連接。在這個 Underlay 網(wǎng)絡(luò)內(nèi),通過運行 IP 網(wǎng)絡(luò)協(xié)議比如 ISIS 或者 BGP,來保證各個在網(wǎng)硬件單元之間的可達性。在完成 Underlay 網(wǎng)絡(luò)構(gòu)架之后,管理員可以通過部署 SDN 控制器的方式來對整網(wǎng)所有硬件資源進行調(diào)控與編排,再建立租戶之間的 Overlay 網(wǎng)絡(luò)連接并承載真正的用戶流量。
SDN 技術(shù)讓封閉硬件 “軟化” 開放
軟件定義網(wǎng)絡(luò)(Software Define Network,SDN)技術(shù)是對傳統(tǒng)網(wǎng)絡(luò)架構(gòu)的一次重構(gòu),其核心思想是通過控制面(Control Plane)與數(shù)據(jù)面(Data Plane)的分離,將網(wǎng)絡(luò)的管理權(quán)限交給控制層的控制器軟件,在通過 OpenFlow 協(xié)議通道,統(tǒng)一下達指令給數(shù)據(jù)轉(zhuǎn)發(fā)層設(shè)備,從而實現(xiàn)網(wǎng)絡(luò)控制與數(shù)據(jù)轉(zhuǎn)發(fā)的充分解耦,一舉破除傳統(tǒng)網(wǎng)絡(luò)設(shè)備的封閉性。 由于 OpenFlow 協(xié)議的開放性,第三方也可以開發(fā)相應(yīng)的應(yīng)用置于控制層內(nèi),從而使得網(wǎng)絡(luò)資源的調(diào)配更加靈活、更能滿足企業(yè)個性化場景。而網(wǎng)絡(luò)管理人員只需通過控制器下達指令至數(shù)據(jù)層設(shè)備即可,無需一一登錄設(shè)備,從而大幅提高了網(wǎng)絡(luò)管理效率,節(jié)省了人力成本。可以說,SDN 技術(shù)極大地推動了網(wǎng)絡(luò)虛擬化的發(fā)展進程,也因此,其網(wǎng)絡(luò)架構(gòu)設(shè)計思想在當今各大云平臺均得到了充分實現(xiàn)與落地。SDN 有過三種主流實現(xiàn)方式,分別是 OpenFlow 組織主導(dǎo)的開源軟件(包括 Google,IBM,Citrix 等公司支持),思科主導(dǎo)的應(yīng)用中心基礎(chǔ)設(shè)施技術(shù)(Application Centric Infrastructure,ACI),以及 VMware 主導(dǎo)的 NSX。顯而易見,開源的 OpenFlow 成為了事實上的行業(yè)標準。
SDN 的價值
支撐網(wǎng)絡(luò)業(yè)務(wù)快速創(chuàng)新
SDN 的可編程性和開放性,使得我們可以快速開發(fā)新的網(wǎng)絡(luò)業(yè)務(wù)和加速業(yè)務(wù)創(chuàng)新。如果希望在網(wǎng)絡(luò)上部署新業(yè)務(wù),可以通過針對 SDN 軟件的修改實現(xiàn)網(wǎng)絡(luò)快速編程,業(yè)務(wù)快速上線。SDN 架構(gòu)下,底層硬件只需關(guān)注轉(zhuǎn)發(fā)和存儲能力,與業(yè)務(wù)特性徹底解耦。而網(wǎng)絡(luò)設(shè)備的種類及功能由軟件配置而定,對網(wǎng)絡(luò)的操作控制和運行也由控制層服務(wù)器完成,故而對業(yè)務(wù)響應(yīng)相對更快,可以定制各種網(wǎng)絡(luò)參數(shù)(如路由、安全策略、QoS 等),并實時配置到網(wǎng)絡(luò)中。如此,新業(yè)務(wù)的上線周期可從傳統(tǒng)網(wǎng)絡(luò)的幾年提升到幾個月甚至更快。
簡化網(wǎng)絡(luò)協(xié)議結(jié)構(gòu)
SDN 的網(wǎng)絡(luò)架構(gòu)簡化了網(wǎng)絡(luò)拓撲結(jié)構(gòu),可消除很多 IETF 協(xié)議。協(xié)議的去除,意味著運維學習門檻的下降、運行維護復(fù)雜度的降低,進而使業(yè)務(wù)部署效率提升。因為 SDN 網(wǎng)絡(luò)架構(gòu)下的網(wǎng)絡(luò)集中控制,所以被 SDN 控制器所控制的網(wǎng)絡(luò)內(nèi)部很多協(xié)議基本就不需要了,比如 RSVP 協(xié)議、LDP 協(xié)議、MBGP 協(xié)議、PIM 組播協(xié)議等等。網(wǎng)絡(luò)內(nèi)部的路徑計算和建立全部在控制器完成,控制器計算出流表,直接下發(fā)給轉(zhuǎn)發(fā)器就行,并不需要其他協(xié)議。
網(wǎng)絡(luò)設(shè)備白牌化
SDN 架 構(gòu) 下,控 制 器 和 轉(zhuǎn) 發(fā)器 之間 的 接口協(xié)議 逐 漸標 準 化(比 如 OpenFlow 協(xié)議),使得網(wǎng)絡(luò)設(shè)備的 白 牌 化 成 為可 能,比 如 專 門 的 OpenFlow 轉(zhuǎn)發(fā)芯片供應(yīng)商,控制器廠商等,這也正是所謂的系統(tǒng)從垂直集成開發(fā)走向水平集成開發(fā)。垂直集成是指由一個廠家提供從軟件到硬件到服務(wù)的一體化產(chǎn)品服務(wù),水平集成則是把系統(tǒng)水平分工,每個廠家都完成產(chǎn)品的一個部件,再由集成商把他們集成起來銷售。水平分工有利于系統(tǒng)各個部分的獨立演進和更新,快速迭代優(yōu)化,促進良性競爭,從而使各個部件的采購單價下降,最終使得整機產(chǎn)品的采購成本大幅降低。
業(yè)務(wù)自動化
SDN 網(wǎng)絡(luò)架構(gòu)下,由于整個網(wǎng)絡(luò)由 SDN 控制器控制,故 SDN 控制器可以自主完成網(wǎng)絡(luò)業(yè)務(wù)部署,并提供各種網(wǎng)絡(luò)個性化配置服務(wù),比如 L2VPN、L3VPN 等,對外屏蔽網(wǎng)絡(luò)內(nèi)部細節(jié),提供網(wǎng)絡(luò)業(yè)務(wù)自動化能力。網(wǎng)絡(luò)路徑流量智能優(yōu)化傳統(tǒng)網(wǎng)絡(luò)中,網(wǎng)絡(luò)路徑的選擇依據(jù)是通過各類路由協(xié)議計算得出所謂 “最優(yōu)” 路徑,但此結(jié)果反而可能會導(dǎo)致 “最優(yōu)” 路徑上的流量擁塞,其他非 “最優(yōu)” 路徑帶寬空閑。而采用 SDN 網(wǎng)絡(luò)架構(gòu)時,SDN 控制器可以根據(jù)各鏈路上網(wǎng)絡(luò)流量的狀態(tài)智能調(diào)整網(wǎng)絡(luò)流量路徑,從整網(wǎng)角度出發(fā),整體性提升網(wǎng)絡(luò)傳輸效率。
SDN 催化的網(wǎng)絡(luò)虛擬技術(shù)狂飆
接下來,我們分別從網(wǎng)絡(luò)設(shè)備虛擬化、鏈路虛擬化和虛擬網(wǎng)絡(luò)三個層面來看看網(wǎng)絡(luò)虛擬化技術(shù)的高速發(fā)展。
網(wǎng)絡(luò)設(shè)備虛擬化
網(wǎng)絡(luò)設(shè)備虛擬化技術(shù)是云網(wǎng)絡(luò)技術(shù)發(fā)展最為迅猛且影響最大的領(lǐng)域,其 主要包括網(wǎng)卡虛擬化(NIC Virtualization)與常規(guī)網(wǎng)絡(luò)設(shè)備虛擬化兩大方向。 一、網(wǎng)卡虛擬化 網(wǎng)卡虛擬化技術(shù)演進路線與我們在《重識云原生第三篇:軟飯硬吃的計算》一文中對于 I/O 虛擬化的演進路線基本一致,也是經(jīng)歷了純軟虛擬化(即 Qemu、VMware Workstation 虛擬網(wǎng)卡實現(xiàn)方案)、半虛擬化(Virtio、Vhost-net、Vhost-user 系列方案),再到硬件直通方案(SR-IOV),最后到硬件卸載(vPDA、DPU 等)。 網(wǎng)卡虛擬化的產(chǎn)品形態(tài)即是公有云常見的虛擬網(wǎng)卡,其主要通過軟件控制各個虛擬機共享同一塊物理網(wǎng)卡實現(xiàn),虛擬網(wǎng)卡可以有單獨的 MAC 地址、IP 地址,早期結(jié)構(gòu)如下圖所示。所有虛擬機的虛擬網(wǎng)卡通過虛擬交換機以及物理網(wǎng)卡連接至物理交換機。虛擬交換機負責將虛擬機上的數(shù)據(jù)報文從物理網(wǎng)口轉(zhuǎn)發(fā)出去。根據(jù)需要,虛擬交換機還可以支持安全控制等功能。 虛擬網(wǎng)卡包括 e1000、Virtio 等實現(xiàn)技術(shù)。Virtio 是目前最為通用的技術(shù)框架,其提供了虛擬機和物理服務(wù)器數(shù)據(jù)交換的通用方案,得到了大多數(shù) Hypervisor 的支持,成為事實上的標準。 Virtio 是一種半虛擬化的解決方案,在半虛擬化方案中,Guest OS 知道自己是虛擬機,通過前端驅(qū)動和后端模擬設(shè)備互相配合實現(xiàn) IO 虛擬化。這種方式與全虛擬化相比,可以大幅度提高虛擬機的 IO 性能。 最初的 Virtio 通信機制中,Guest 與用戶空間的 Hypervisor 通信,會有多次數(shù)據(jù)拷貝和 CPU 特權(quán)級的切換。Guest 發(fā)包給外部網(wǎng)絡(luò),需要切換到內(nèi)核態(tài)的 KVM,然后 KVM 通知用戶空間的 QEMU 處理 Guest 網(wǎng)絡(luò)請求。很顯然,這種通信方式效率并不高。很快,Virtio 技術(shù)演進中便出現(xiàn)了內(nèi)核態(tài)卸載的方案 Vhost-net。 Vhost-net 是 Virtio 的一種后端實現(xiàn)方案,與之相匹配的是一套新的 Vhost 協(xié)議。Vhost 協(xié)議允許 VMM 將 Virtio 的數(shù)據(jù)面 Offload 到另一個組件上,而這個組件是 Vhost-net。Vhost-net 在 OS 內(nèi)核中實現(xiàn),其與 Guest 直接通信,旁路了 KVM 和 QEMU。QEMU 和 Vhostnet 使用 ioctl 來交換 Vhost 消息,并且用 eventfd 來實現(xiàn)前后端的事件通知。當 Vhost-net 內(nèi)核驅(qū)動加載后,它會暴露一個字符設(shè)備標識在 /dev/Vhost-net, 而 QEMU 會打開并初始化這個字符設(shè)備,并調(diào)用 ioctl 來與 Vhost-net 進行控制面通信,其內(nèi)容包含 Virtio 的特性協(xié)商、將虛擬機內(nèi)存映射傳遞給 Vhost-net 等。對比最原始的 Virtio 網(wǎng)絡(luò)實現(xiàn),控制平面在原有執(zhí)行基礎(chǔ)上轉(zhuǎn)變?yōu)?Vhost 協(xié)議定義的 ioctl 操作(對于前端而言仍是通過 PCI 傳輸層協(xié)議暴露的接口),基于共享內(nèi)存實現(xiàn)的 Vring 數(shù)據(jù)傳遞轉(zhuǎn)變?yōu)?Virtio-net 與 Vhost-net 共享;數(shù)據(jù)平面的另一方轉(zhuǎn)變則為 Vhost-net,前后端通知方式也轉(zhuǎn)為基于 eventfd 來實現(xiàn)。 ?
在單次收發(fā)的過程中,數(shù)據(jù)通道減少了兩次用戶態(tài)與內(nèi)核態(tài)的上下文切換過程,實現(xiàn)了數(shù)據(jù)通道在內(nèi)核態(tài)的卸載,從而較大程度提升了數(shù)據(jù)傳輸效率。 但是,對于某些用戶態(tài)進程間的通信,比如數(shù)據(jù)面的通信方案(例如 Open vSwitch 和與之類似的 SDN 解決方案),Guest 仍需要和 Host 用戶態(tài)的 vSwitch 進行數(shù)據(jù)交換,如果采用 Vhost-net 方案,Guest 和 Host 之間還是存在多次上下文切換和數(shù)據(jù)拷貝,為了避免這種情況,業(yè)界就想出將 Vhost-net 從內(nèi)核態(tài)移到用戶態(tài)的方案,這就是 Vhost-user 方案的實現(xiàn)思路。
基于 Vhost 協(xié)議,DPDK 設(shè)計了一套新的用戶態(tài)協(xié)議 ——Vhost-user。該協(xié)議將網(wǎng)絡(luò)包處理(數(shù)據(jù)平面)卸載到用戶態(tài)的 DPDK 應(yīng)用中,控制平面仍然由 QEMU 來配置 Vhost-user。除此之外,DPDK 優(yōu)化實現(xiàn)了處理器親和性管理、NUMA 調(diào)度、使用大頁內(nèi)存代替普通內(nèi)存、采用無鎖技術(shù)解決資源競爭問題、輪詢模式驅(qū)動等技術(shù),由此,大名鼎鼎的 DPDK 網(wǎng)絡(luò)卸載方案蔚然成型。 縱如此,技術(shù)迭代演進是永無止境的,雖然上述方案對網(wǎng)絡(luò)性能的提升非常顯著,但總體而言,Virtio 網(wǎng)絡(luò)虛擬化方案一直都聚焦在軟件層實現(xiàn),在 Host 上因軟件虛擬化而產(chǎn)生的額外開銷始終無法避免。為了進一步提升云端網(wǎng)絡(luò)服務(wù)的性能,RedHat 的技術(shù)專家們提出可以將 Virtio 功能 Offload 到專用硬件,將與業(yè)務(wù)無關(guān)的任務(wù) Bypass 操作系統(tǒng)和 CPU,轉(zhuǎn)而直接交給專用硬件執(zhí)行,從而進一步提升網(wǎng)絡(luò)性能,這便是 vDPA 硬件卸載方案的設(shè)計初衷,也是 Virtio 半硬件虛擬化方案的早期硬件方案實現(xiàn)思路。 該框架由 Redhat 提出,實現(xiàn)了 Virtio 數(shù)據(jù)平面的硬件卸載。控制平面仍然采用原來的控制平面協(xié)議,當控制信息被傳遞到硬件中,硬件完成數(shù)據(jù)平面的配置之后,數(shù)據(jù)通信過程由硬件設(shè)備 SmartNIC(即智能網(wǎng)卡)完成,Guest 虛擬機與網(wǎng)卡之間直接通信。中斷信息也由網(wǎng)卡直接發(fā)送至 Guest 而不需要 Host 主機的干預(yù)。這種方式在性能方面能夠接近 SR-IOV 硬件直通方案,同時能夠繼續(xù)使用 Virtio 標準接口,保持云服務(wù)的兼容性與靈活性。但是其控制面處理邏輯比較復(fù)雜,通過 OVS 轉(zhuǎn)發(fā)的流量首包依然需要由主機上的 OVS 轉(zhuǎn)發(fā)平面處理,對應(yīng)數(shù)據(jù)流的后續(xù)報文才能由硬件網(wǎng)卡直接轉(zhuǎn)發(fā),硬件實現(xiàn)難度較大。 不過,隨著越來越多的硬件廠商開始原生支持 Virtio 協(xié)議,將網(wǎng)絡(luò)虛擬化功能 Offload 到硬件上,把嵌入式 CPU 集成到 SmartNIC(即智能網(wǎng)卡)中,網(wǎng)卡能處理所有網(wǎng)絡(luò)數(shù)據(jù),而嵌入式 CPU 負責控制路徑的初始化并處理異常情況。這種具有硬件 Offload 能力的 SmartNIC 就是如今越來越火的 DPU。
二、網(wǎng)絡(luò)設(shè)備虛擬化 硬件設(shè)備虛擬化主要有兩個方向:在傳統(tǒng)的基于 x86 架構(gòu)機器上安裝特定操作系統(tǒng)來實現(xiàn)路由功能。 前者的早期典型產(chǎn)品是 Mikrotik 公司開發(fā)的 RouterOS,其基于 Linux 內(nèi)核開發(fā),可以安裝在標準的 x86 架構(gòu)的機器上,從而使普通 Linux 服務(wù)器也可以當成路由器使用。此類設(shè)備以其低廉的價格和不受硬件平臺約束等特性,占據(jù)了不少低端路由器市場。現(xiàn)如今,國內(nèi)外主流云廠商對于 SDN 控制面的實現(xiàn)思路大抵都是如此。 而后者主要是應(yīng)第一代云計算技術(shù)的市場需求催生,在計算虛擬化之后,數(shù)據(jù)中心通訊規(guī)模大幅增長,傳統(tǒng)路由器中的單張路由表已經(jīng)不能滿足需求,因此催生了虛擬路由轉(zhuǎn)發(fā)(Virtual Routing and Forwarding,VRF)技 術(shù),即 是 將 路 由 信 息 庫(Forwarding Information Base,F(xiàn)IB)虛擬化成多個路由轉(zhuǎn)發(fā)表。此技術(shù)誕生背景主要為增加大型通訊設(shè)備的端口利用率,減少設(shè)備成本投入,將一臺物理設(shè)備虛擬化成多臺虛擬設(shè)備,每臺虛擬設(shè)備僅維護自身的路由轉(zhuǎn)發(fā)表即可,比如思科的 N7K 系列交換機可以虛擬化成多臺 VDC。所有 VDC 共享物理機箱的計算資源,但又各自獨立工作,互不影響。此外,為了便于維護、管理和控制,將多臺物理設(shè)備虛擬化成一臺虛擬設(shè)備的融合虛擬化技術(shù)也有一定市場,比如 H3C 公司的 IRF 技術(shù)。
鏈路虛擬化
鏈路虛擬化是日常使用最多的網(wǎng)絡(luò)虛擬化技術(shù)之一,增強了網(wǎng)絡(luò)的可靠性與便利性。常見的鏈路虛擬化技術(shù)有鏈路聚合和隧道協(xié)議,此部分內(nèi)容在《第四篇 - 硬菜軟嚼的網(wǎng)絡(luò) (上)》篇已有詳細闡述,此處只簡單提一下。 鏈路聚合(Port Channel)是最常見的二層虛擬化技術(shù)。鏈路聚合將多個物理端口捆綁在一起,虛擬成為一個邏輯端口。當交換機檢測到其中一個物理端口鏈路發(fā)生故障時,就停止在此端口上發(fā)送報文,根據(jù)負載分擔策略在余下的物理鏈路中選擇報文發(fā)送的端口。鏈路聚合可以增加鏈路帶寬、實現(xiàn)鏈路層的高可用性。 隧道協(xié)議(Tunneling Protocol)指一種技術(shù) / 協(xié)議的兩個或多個子網(wǎng)穿過另一種技術(shù) / 協(xié)議的網(wǎng)絡(luò)實現(xiàn)互聯(lián)。隧道協(xié)議將其他協(xié)議的數(shù)據(jù)幀或包重新封裝然后通過隧道發(fā)送。新的幀頭提供路由信息,以便通過網(wǎng)絡(luò)傳遞被封裝的負載數(shù)據(jù)。隧道可以將數(shù)據(jù)流強制送到特定的地址,并隱藏中間節(jié)點的網(wǎng)絡(luò)地址,還可根據(jù)需要,提供對數(shù)據(jù)加密的功能。當前典型的隧道的協(xié)議便是 VXLAN、GRE 和 IPsec。當今各大云廠商的云平臺的網(wǎng)絡(luò)實現(xiàn)方案莫不基于此。
虛擬網(wǎng)絡(luò)
虛擬網(wǎng)絡(luò)(Virtual Network)是由虛擬鏈路組成的網(wǎng)絡(luò)。虛擬網(wǎng)絡(luò)節(jié)點之間的連接并不使用物理線纜連接,而是依靠特定的虛擬化鏈路相連。典型的虛擬網(wǎng)絡(luò)包括在數(shù)據(jù)中心使用較多的虛擬二層延伸網(wǎng)絡(luò)、虛擬專用網(wǎng)絡(luò)以及 Overlay 網(wǎng)絡(luò)。 虛 擬 二 層 延伸網(wǎng)絡(luò)(V i r t u a l L 2 Extended Network)其實也可以算是 Overlay 網(wǎng)絡(luò)的早期解決方案。為滿足虛擬機動態(tài)遷移需求,傳統(tǒng)的 VPL(MPLS L2VPN)技術(shù),以及新興的 Cisco OTV、H3C EVI 技術(shù),都借助隧道的方式,將二層數(shù)據(jù)報文封裝在三層報文中,跨越中間的三層網(wǎng)絡(luò),來實現(xiàn)兩地二層數(shù)據(jù)的互通。 而虛擬專用網(wǎng)(VPN,全稱 Virtual Private Network),是一種應(yīng)用非常久遠,常用于連接中、大型企業(yè)或團體與團體間的私人網(wǎng)絡(luò)的通信方法。虛擬專用網(wǎng)通過公用的網(wǎng)絡(luò)架構(gòu)(比如互聯(lián)網(wǎng))來傳送內(nèi)聯(lián)網(wǎng)的信息。利用已加密的隧道協(xié)議來達到保密、終端認證、信息準確性等安全效果。這種技術(shù)可以在不安全的網(wǎng)絡(luò)上傳送可靠的、安全的信息,總體而言早于云計算技術(shù)在企業(yè)中落地。 而 Overlay 網(wǎng)絡(luò)也已在上篇有詳細闡述,此處就不再復(fù)述了。
云網(wǎng)絡(luò)產(chǎn)品的發(fā)展
云網(wǎng)絡(luò)產(chǎn)品整體而言,主要經(jīng)過了三次大的演進,從最初的經(jīng)典云網(wǎng)絡(luò),到私有網(wǎng)絡(luò)(Virtual Private Cloud),再到連接范圍更大的云聯(lián)網(wǎng)。云網(wǎng)絡(luò)技術(shù)的發(fā)展也是企業(yè)數(shù)字化、全球化發(fā)展的一個縮影。
經(jīng)典(基礎(chǔ))云網(wǎng)絡(luò)
從 2006 年 AWS 推出 s3 和 ec2 云服務(wù),開始為公有云用戶提供云上服務(wù)開始,到 2010 年,阿里云正式推出 Classic 經(jīng)典云網(wǎng)絡(luò)方案,實現(xiàn)了對云計算用戶的網(wǎng)絡(luò)支持,再后續(xù)騰訊云、華為云也提供過類似的基礎(chǔ)網(wǎng)絡(luò)產(chǎn)品。 這些都是公有云早期的云產(chǎn)品,當時用戶對云網(wǎng)絡(luò)的主要需求是提供公網(wǎng)接入能力。經(jīng)典云網(wǎng)絡(luò)的產(chǎn)品特點是云上所有用戶共享公共網(wǎng)絡(luò)資源池,所有云服務(wù)器的內(nèi)網(wǎng) IP 地址都由云廠商統(tǒng)一分配,無法自定義網(wǎng)段劃分、IP 地址。
私有網(wǎng)絡(luò) VPC
而從 2011 年左右開始,隨著移動互聯(lián)網(wǎng)的發(fā)展,越來越多企業(yè)選擇上云,企業(yè)對云上網(wǎng)絡(luò)安全隔離能力、互訪能力、企業(yè)自建數(shù)據(jù)中心與云上網(wǎng)絡(luò)互聯(lián)并構(gòu)建混合云的能力,以及在云上實現(xiàn)多地域部署后的多地域網(wǎng)絡(luò)互聯(lián)能力都提出了很多需求。此時,經(jīng)典網(wǎng)絡(luò)方案已經(jīng)無法滿足這些需求,AWS 適時推出云上 VPC 產(chǎn)品服務(wù) (即私有專用網(wǎng)絡(luò)服務(wù),全稱 Virtual Private Cloud),VPC 是企業(yè)用戶在云上建立的一塊邏輯隔離的網(wǎng)絡(luò)空間 —— 在 VPC 內(nèi),用戶可以自由定義網(wǎng)段劃分、自由分配網(wǎng)段內(nèi) IP 地址、自定義路由策略。而后又陸續(xù)推出 NAT 網(wǎng)關(guān)、VPN 網(wǎng)關(guān)、對等連接等云網(wǎng)絡(luò)產(chǎn)品,極大地豐富了云網(wǎng)絡(luò)的連接能力,基本實現(xiàn)了私有網(wǎng)絡(luò)方案最初的設(shè)計目標。 當前,以 VPC 為核心的云網(wǎng)絡(luò)產(chǎn)品體系依然在不斷發(fā)展壯大,又陸續(xù)誕生了負載均衡器、彈性網(wǎng)卡、彈性公網(wǎng) IP、云防火墻等配套類衍生網(wǎng)絡(luò)產(chǎn)品。
云聯(lián)網(wǎng)
而近幾年,隨著經(jīng)濟全球化高速發(fā)展,大數(shù)據(jù)與 AI 類應(yīng)用異軍突起,需要云平臺網(wǎng)絡(luò)提供更廣泛靈活的接入能力與分發(fā)能力,便催生了私網(wǎng)連接、云企業(yè)網(wǎng)、云連接器、云聯(lián)網(wǎng)等各類場景的接入類云網(wǎng)產(chǎn)品,以此來滿足企業(yè)全球化場景下的各類復(fù)雜互聯(lián)互通需求。 與此同時,傳統(tǒng)的 CDN 分發(fā)服務(wù),經(jīng)過與云聯(lián)網(wǎng)的深度融合,也煥發(fā)了第二春,如今各大云廠商均有推出 CDN 全球內(nèi)容分發(fā)服務(wù)與應(yīng)用加速服務(wù)。同時 SD-WAN 接入服務(wù)的不斷完善,也使得企業(yè)信息架構(gòu)一體化的物理邊際向著全球大踏步邁進。
云網(wǎng)絡(luò)技術(shù)后續(xù)演進展望
云網(wǎng)絡(luò)從基礎(chǔ)核心技術(shù)的演進來看,是對網(wǎng)絡(luò)編址靈活性和網(wǎng)絡(luò)傳輸性能提升的持續(xù)優(yōu)化過程:經(jīng)典云網(wǎng)絡(luò)和 VPC 網(wǎng)絡(luò)在編址方案上,都使用了 Overlay 技術(shù),在物理網(wǎng)絡(luò)之上疊加了一個支持多租戶的虛擬網(wǎng)絡(luò)層,從而有效支持了云上租戶間的網(wǎng)絡(luò)隔離安全性、租戶內(nèi)應(yīng)用的互聯(lián)互通靈活性訴求;而在網(wǎng)絡(luò)性能提升方面, 通過重構(gòu)網(wǎng)絡(luò)設(shè)備形態(tài),在不喪失轉(zhuǎn)發(fā)控制靈活性基礎(chǔ)上,來持續(xù)持續(xù)提升數(shù)據(jù)轉(zhuǎn)發(fā)性能是為當今主流技術(shù)演進方向,以虛擬交換機為例,伴隨著硬件服務(wù)器網(wǎng)絡(luò)帶寬從 10G 升級到 25G,乃至到 100G,vSwitch 技術(shù)經(jīng)歷了經(jīng)典網(wǎng)絡(luò)的 Linux 內(nèi)核態(tài)數(shù)據(jù)交換、DPDK 用戶態(tài)數(shù)據(jù)交換、硬件直通、再到智能網(wǎng)卡硬件卸載(vPDA、DPU 等)等演進歷程。 而從產(chǎn)品層面看,云網(wǎng)產(chǎn)品經(jīng)過經(jīng)典網(wǎng)絡(luò),VPC 網(wǎng)絡(luò),云聯(lián)網(wǎng)三代產(chǎn)品的發(fā)展,云網(wǎng)絡(luò)產(chǎn)品的能力范圍得到了極大延展 —— 從聚焦數(shù)據(jù)中心內(nèi)部網(wǎng)絡(luò)虛擬化,到聚焦數(shù)據(jù)中心之間的互聯(lián)互通,再進一步通過 sd-wan 接入能力把企業(yè)的網(wǎng)絡(luò)接入能力進行虛擬化從而支持各類場景接入。云網(wǎng)絡(luò)產(chǎn)品已不僅僅用于連接云內(nèi)的計算與存儲資源,云下接入范圍也逐漸擴展到連接企業(yè)的總部 / 分支網(wǎng)絡(luò)以及云外各類終端,以期最終使企業(yè)能在云上構(gòu)建完整的 IT 信息服務(wù)生態(tài)體系。 而在云計算技術(shù)發(fā)展到第三代云原生時代的當下,隨著各類虛擬化技術(shù)的成熟,各類軟件定義硬件的云能力得以落地運用,伴隨著容器技術(shù)的大規(guī)模商用,終會使業(yè)務(wù)研發(fā)與基礎(chǔ)運維一體化協(xié)作的技術(shù)隔閡會徹底破除,業(yè)務(wù)應(yīng)用的全棧可觀測性述求必將使業(yè)務(wù)服務(wù)監(jiān)控下鉆到基礎(chǔ)網(wǎng)絡(luò)層,讓網(wǎng)絡(luò)流量監(jiān)測帶上業(yè)務(wù)屬性,從而使業(yè)務(wù)全鏈路監(jiān)控真正具備生產(chǎn)力價值。而這又都將取決于容器網(wǎng)絡(luò)與云網(wǎng)絡(luò)技術(shù)的融合深度與應(yīng)用廣度,這一領(lǐng)域也必將成為今后各大云廠商決勝云原生時代的戰(zhàn)略制高點!
編輯:黃飛
?
評論