網(wǎng)絡(luò)是云計算最關(guān)鍵的技術(shù),網(wǎng)絡(luò)系統(tǒng)非常復(fù)雜,通常都是通過分層的結(jié)構(gòu)實現(xiàn)。虛擬網(wǎng)絡(luò)是云計算核心的網(wǎng)絡(luò)功能,基于基礎(chǔ)物理網(wǎng)絡(luò)構(gòu)建。軟件定義網(wǎng)絡(luò),則用于動態(tài)網(wǎng)絡(luò)變更以及網(wǎng)絡(luò)功能創(chuàng)新。
1 基礎(chǔ)網(wǎng)絡(luò):分層和拓?fù)?/p>
基礎(chǔ)的物理網(wǎng)絡(luò)有兩個核心的概念:
分層的協(xié)議棧。在接收協(xié)議棧的基礎(chǔ)上,通過泛化網(wǎng)絡(luò)分層,來理解復(fù)雜系統(tǒng)的組成——復(fù)雜系統(tǒng)必然是分層的。
網(wǎng)絡(luò)拓?fù)?。代表了?shù)據(jù)中心基本的服務(wù)器組織方式,從小到大依次為:服務(wù)器、機架、POD、數(shù)據(jù)中心等。
1.1 網(wǎng)絡(luò)分層協(xié)議棧
為了降低網(wǎng)絡(luò)設(shè)計的復(fù)雜度,絕大部分網(wǎng)絡(luò)都是分層的結(jié)構(gòu),構(gòu)成一個層次棧。每一層都建立在下面一層的基礎(chǔ)之上,層的數(shù)量、每一層的名稱、功能在不同的網(wǎng)絡(luò)中不盡相同。每一層的目的都是向上一層提供特定的服務(wù),而把如何實現(xiàn)這些服務(wù)的具體細(xì)節(jié)封裝起來,對上一層屏蔽。分層的概念大家并不陌生,它廣泛的應(yīng)用于計算機科學(xué)各個領(lǐng)域,只是在不同的領(lǐng)域有不同的稱謂,例如細(xì)節(jié)屏蔽、抽象數(shù)據(jù)類型,數(shù)據(jù)封裝以及面向?qū)ο蟮某绦蛟O(shè)計等。其基本思想是一個特定的軟件(或硬件)向其用戶提供某種服務(wù),但是把內(nèi)部狀態(tài)和算法及實現(xiàn)細(xì)節(jié)隱藏起來。
這樣構(gòu)成相對應(yīng)的實體一般稱為對等體(Peer)。這些對等體可以是軟件進(jìn)程、硬件設(shè)備,或者其他交互實體。一臺機器上第n層與另一臺機器上第n層進(jìn)行對話,該對話中使用的規(guī)則和約定統(tǒng)稱為第n層協(xié)議。實際上,數(shù)據(jù)并不是從一臺機器的第n層直接傳遞到另一臺機器的第n層。相反,每一層都將數(shù)據(jù)和控制信息傳遞給下一層,一直傳遞到最底層,然后通過物理傳輸介質(zhì)進(jìn)行實際的通信。圖1中的實線表示實際的物理通信,而虛線則表示虛擬通信。每一對相鄰層次間的連線是接口,接口定義了下層往上層提供哪些原語操作和服務(wù)。當(dāng)網(wǎng)絡(luò)設(shè)計者在決定一個網(wǎng)絡(luò)中應(yīng)該包括多少層,以及每一層應(yīng)該提供什么功能時,其中最重要的就是必須定義清楚層與層之間的接口。
1.2 五層參考模型
OSI參考模型具有七層,分別是物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會話層、表示層、應(yīng)用層。TCP/IP參考模型精簡了OSI模型,只有鏈路層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層。OSI參考模型的影響力在于模型本身(去掉會話層和表示層),它已被證明對于討論計算機網(wǎng)絡(luò)非常有價值;而TCP/IP參考模型的優(yōu)勢體現(xiàn)在協(xié)議,這些協(xié)議已經(jīng)被廣泛應(yīng)用許多年,證明了自身在各種復(fù)雜網(wǎng)絡(luò)條件下的穩(wěn)定性。結(jié)合二者的特點,現(xiàn)在大家討論的網(wǎng)絡(luò)分層模型如圖2所示的五層參考模型:
物理層:規(guī)定了如何在不同的介質(zhì)上以電氣(或其他模擬)信號傳輸比特。
鏈路層:關(guān)注的是如何在兩臺相連的計算機之間發(fā)送有限長度的消息,并具有指定級別的可靠性。以太網(wǎng)和802.11就是鏈路層協(xié)議。
網(wǎng)絡(luò)層:主要處理如何把多條鏈路結(jié)合到網(wǎng)絡(luò)中,以及如何把網(wǎng)絡(luò)與網(wǎng)絡(luò)連接成互聯(lián)網(wǎng)絡(luò),使我們可以在兩個相隔遙遠(yuǎn)的計算機之間發(fā)送數(shù)據(jù)包。網(wǎng)絡(luò)層的任務(wù)包括找到傳遞數(shù)據(jù)包所走的路徑。IP是網(wǎng)絡(luò)層主要的協(xié)議。
傳輸層:傳輸層增強了網(wǎng)絡(luò)層的傳輸,通常有更高的可靠性,提供滿足不同應(yīng)用需求的可靠字節(jié)流。TCP和UDP是傳輸層主要的協(xié)議。
應(yīng)用層:應(yīng)用層包含了使用網(wǎng)絡(luò)的應(yīng)用程序。例如HTTP和DNS等。
如圖2,一般情況下,網(wǎng)絡(luò)協(xié)議棧各層分別實現(xiàn)在硬件、內(nèi)核態(tài)軟件和用戶態(tài)軟件。物理層和網(wǎng)絡(luò)鏈路層是由以太網(wǎng)和802.11標(biāo)準(zhǔn)所定義的,比較穩(wěn)定,因此物理層和網(wǎng)絡(luò)鏈路層一般實現(xiàn)在硬件里;網(wǎng)絡(luò)層和傳輸層作為系統(tǒng)共用的組件,一般是作為TCP/IP協(xié)議棧集成在操作系統(tǒng)內(nèi)核里;而應(yīng)用層的任務(wù)則一般交給用戶態(tài)的程序去實現(xiàn)。
1.3 數(shù)據(jù)中心網(wǎng)絡(luò)拓?fù)?/p>
物理網(wǎng)絡(luò)是一切網(wǎng)絡(luò)系統(tǒng)的基礎(chǔ),承載著各種網(wǎng)絡(luò)流量的傳輸。大型數(shù)據(jù)中心物理網(wǎng)絡(luò),很多采用經(jīng)典的三層連接,即Cisco定義的分層互連網(wǎng)絡(luò)模型(Hierarchical Internetworking Model)。如圖3(a)所示,分層互連網(wǎng)絡(luò)模型包含了以下三層:
接入層(Access Layer):接入交換機通常位于機架頂部,所以它們也被稱為ToR(Top of Rack)交換機,它們物理連接服務(wù)器。
匯聚層(Aggregation Layer):匯聚交換機連接Access交換機,同時提供其他的服務(wù),例如防火墻,SSL offload,入侵檢測,網(wǎng)絡(luò)分析等。
核心層(Core Layer):核心交換機為進(jìn)出數(shù)據(jù)中心的包提供高速的轉(zhuǎn)發(fā),為多個匯聚層提供連接性。
2008年,美國加州大學(xué)圣迭戈分校的研究學(xué)者提出了將Clos架構(gòu)用于數(shù)據(jù)中心中?,F(xiàn)在流行的Clos網(wǎng)絡(luò)架構(gòu)是一個二層的spine/leaf架構(gòu),如圖3(b)所示。spine交換機之間或者leaf交換機之間不需要鏈接同步數(shù)據(jù)。每個leaf交換機的上行鏈路數(shù)等于spine交換機數(shù)量,同樣的每個spine交換機的下行鏈路數(shù)等于leaf交換機的數(shù)量??梢赃@樣說,spine交換機和leaf交換機之間是以full-mesh方式連接。在Clos spine/leaf架構(gòu)中,每一層的作用分別是:
葉子交換機(leaf switch):相當(dāng)于傳統(tǒng)三層架構(gòu)中的接入交換機,作為TOR直接連接物理服務(wù)器。
主干交換機(spine switch):相當(dāng)于核心交換機。spine和leaf交換機之間通過ECMP(Equal Cost Multi Path)動態(tài)選擇多條路徑。
對比spine/leaf網(wǎng)絡(luò)架構(gòu)和傳統(tǒng)三層網(wǎng)絡(luò)架構(gòu),可以看出傳統(tǒng)的三層網(wǎng)絡(luò)架構(gòu)是垂直的結(jié)構(gòu),而spine/leaf網(wǎng)絡(luò)架構(gòu)是扁平的結(jié)構(gòu),從結(jié)構(gòu)上看,spine/leaf架構(gòu)更易于水平擴(kuò)展。
2 虛擬網(wǎng)絡(luò):VLAN和VxLAN
虛擬網(wǎng)絡(luò)是云計算多租戶共存的基礎(chǔ),通過可動態(tài)配置的虛擬網(wǎng)絡(luò),構(gòu)建足夠多的私有網(wǎng)絡(luò)域,承載多租戶的安全訪問隔離。VLAN是一種underlay網(wǎng)絡(luò),而VxLAN則是基于underlay網(wǎng)絡(luò)隧道實現(xiàn)的Overlay網(wǎng)絡(luò)。
2.1 虛擬局域網(wǎng)VLAN
VLAN(Virtual Local Area Network,虛擬局域網(wǎng))是同一廣播域中設(shè)備的邏輯分組。通常,通過在交換機上配置一些VLAN,將某些接口置于一個廣播域中,而將某些接口置于另一廣播域中。VLAN可以分布在多個交換機上,每個VLAN被當(dāng)作自己的子網(wǎng)或廣播域。這意味著廣播到網(wǎng)絡(luò)上的幀將僅在同一VLAN內(nèi)的端口之間傳遞。VLAN的作用類似于物理LAN,但是即使主機未連接到同一交換機,它也可以將主機在同一廣播域中分組在一起。在網(wǎng)絡(luò)中使用VLAN的主要原因是:
VLAN增加了廣播域的數(shù)量,同時減小了廣播域的大小;
VLAN通過減少接收交換機泛洪幀副本的主機數(shù)量來降低安全風(fēng)險;
可以將保存敏感數(shù)據(jù)的主機保留在單獨的VLAN上,以提高安全性;
可以創(chuàng)建更靈活的網(wǎng)絡(luò)設(shè)計,以便按部門而不是按地理位置將用戶分組;
只需將端口配置到適當(dāng)?shù)腣LAN,即可輕松實現(xiàn)網(wǎng)絡(luò)更改。
如圖4(a)所示,拓?fù)滹@示了一個網(wǎng)絡(luò),其中所有主機都位于同一VLAN中。如果沒有VLAN,則從主機A發(fā)送的廣播將到達(dá)網(wǎng)絡(luò)上的所有設(shè)備。如圖4(b)所示,通過將兩個交換機上的接口Fa0/0和Fa0/1放置在單獨的VLAN中,來自主機A的廣播將僅到達(dá)主機B,因為每個VLAN是一個單獨的廣播域,并且只有主機B與主機A處于同一VLAN內(nèi)。VLAN 3和VLAN 5中的主機甚至都不知道發(fā)生了通信。
VLAN的幀格式是在802.1Q協(xié)議里規(guī)定的,如圖5所示,相比傳統(tǒng)的802.3協(xié)議包,增加了4字節(jié)的字段。第一個16bits字段是VLAN協(xié)議標(biāo)識符,值為0x8100。第二個字段包括優(yōu)先級Pri(3bits)、規(guī)范格式指示器CFI(1bit)、VLAN ID(12bit)。
2.2 虛擬擴(kuò)展局域網(wǎng)VxLAN
VxLAN(Virtual Extensible LAN,虛擬擴(kuò)展局域網(wǎng)),或許是目前最熱門的網(wǎng)絡(luò)虛擬化技術(shù)。VxLAN由RFC7348定義,這是2014年定稿的一個協(xié)議,VxLAN協(xié)議將Ethernet幀封裝在UDP內(nèi),再加上8個字節(jié)的VxLAN header,用來標(biāo)識不同的二層網(wǎng)絡(luò)。如圖6所示,除了常規(guī)的各層的包頭之外,VxLAN協(xié)議還定義了8個字節(jié)的VxLAN包頭。其中的24bit用來標(biāo)識不同的二層網(wǎng)絡(luò),這樣總共可以標(biāo)識1600多萬個不同的二層網(wǎng)絡(luò)。一般的傳輸層端口號用來標(biāo)識進(jìn)程或者應(yīng)用,但是在VxLAN協(xié)議里面的,以太網(wǎng)幀封裝在UDP里面,UDP的源端口被用來在ECMP或者LACP做負(fù)載均衡;目的端口被用來標(biāo)識VxLAN數(shù)據(jù),分配給VxLAN的端口號是4789。VxLAN數(shù)據(jù)是經(jīng)過VTEP(VxLAN Tunnel EndPoint,VxLAN隧道終端)封裝和解封裝的,相應(yīng)的VxLAN數(shù)據(jù)的外層IP地址就是VTEP的IP地址。最外層的MAC地址用來實現(xiàn)VTEP之間的數(shù)據(jù)傳遞
VxLAN與VLAN的最大區(qū)別在于,VLAN只是修改了原始的以太網(wǎng)包頭,但是整個網(wǎng)絡(luò)數(shù)據(jù)包還是原來那個數(shù)據(jù)包,而VxLAN是將原始的以太網(wǎng)幀隱藏在UDP數(shù)據(jù)里面。經(jīng)過VTEP封裝之后,在網(wǎng)絡(luò)線路上看起來只有VTEP之間的UDP數(shù)據(jù)傳遞,原始的網(wǎng)絡(luò)數(shù)據(jù)包被掩蓋了。相比VLAN,VxLAN要復(fù)雜很多。加上VLAN的先發(fā)優(yōu)勢,已經(jīng)在交換機硬件中得到了廣泛的支持。那為什么還要VxLAN?原因主要是:
VLAN ID數(shù)量限制。首先是VLAN能支持的二層網(wǎng)絡(luò)數(shù)量有限。VLAN有12bit用來標(biāo)識不同的二層網(wǎng)絡(luò),這樣總共是4096個。當(dāng)前大型數(shù)據(jù)中心數(shù)以十萬計的節(jié)點數(shù)量,4096個虛擬網(wǎng)絡(luò)域捉襟見肘。而VxLAN有24bit用來標(biāo)識不同的二層網(wǎng)絡(luò),這樣總共是1600多萬個虛擬網(wǎng)絡(luò)域,完全可以滿足大型數(shù)據(jù)中心的需求。
交換機MAC地址表限制。之前交換機的一個端口連接一個物理主機對應(yīng)一個MAC地址,但現(xiàn)在交換機的一個端口雖然還是連接一個物理主機但是可能連接幾十個虛擬機和相應(yīng)數(shù)量的MAC地址。交換機是根據(jù)MAC地址表實現(xiàn)二層轉(zhuǎn)發(fā)。交換機的內(nèi)存比較寶貴,所以MAC地址表的大小通常是有限的。如果使用VxLAN,虛擬機的以太網(wǎng)幀被VTEP封裝在UDP里面,一個物理主機對應(yīng)一個VTEP,所以交換機的MAC地址表,只需要記錄與物理主機數(shù)量相當(dāng)條目就可以了,虛擬化帶來的MAC地址表暴增的問題也不存在了。
靈活的虛機部署。采用VLAN網(wǎng)絡(luò)的虛擬環(huán)境,不存在overlay網(wǎng)絡(luò)。虛擬機的網(wǎng)絡(luò)數(shù)據(jù),被打上VLAN Tag之后,直接在物理網(wǎng)絡(luò)上傳輸,與物理網(wǎng)絡(luò)上的VLAN是融合在一起的。這樣的好處是虛擬機能直接訪問到物理網(wǎng)絡(luò)的設(shè)備,但是壞處是,虛擬網(wǎng)絡(luò)現(xiàn)在不能打破物理網(wǎng)絡(luò)的限制。如果使用VxLAN,因為VxLAN通過UDP傳輸以太網(wǎng)幀,那相應(yīng)的可以在一個L3網(wǎng)絡(luò)上,傳遞L2的數(shù)據(jù)。物理網(wǎng)絡(luò)的二層邊界還存在,但是現(xiàn)在虛機的網(wǎng)絡(luò)數(shù)據(jù)在三層網(wǎng)絡(luò)傳輸,可以跨越物理二層網(wǎng)絡(luò)的限制。不管物理網(wǎng)絡(luò)的二層還是三層,虛擬機現(xiàn)在已經(jīng)感知不到了。通過VxLAN的封裝,虛擬機現(xiàn)在走的是一套獨立于物理網(wǎng)絡(luò)(underlay network)的overlay網(wǎng)絡(luò)。這樣的話,在物理網(wǎng)絡(luò)上,就不必把所有的交換機連起來,還是可以保持一個個小的L2 Pod。但是同時,虛擬機的部署和遷移,又不用受物理網(wǎng)絡(luò)的限制,整個數(shù)據(jù)中心可以保持一個平均的利用率。這是又一個VxLAN能解決,但是VLAN無法回避的問題。
更好的利用多條網(wǎng)絡(luò)鏈路。VLAN協(xié)議使用STP(Spanning Tree Protocol)來管理多條線路,STP根據(jù)優(yōu)先級和cost,只會選出一條線路來工作,這樣可以避免數(shù)據(jù)傳遞的環(huán)路。當(dāng)網(wǎng)絡(luò)流量較大的時,也不能通過增加線路來提升性能。而VxLAN因為是通過UDP封裝,在三層網(wǎng)絡(luò)上傳輸。雖然傳遞的還是二層的以太網(wǎng)幀,但是VxLAN可以利用一些基于三層的協(xié)議來實現(xiàn)多條線路共同工作,以實現(xiàn)負(fù)載均衡,例如ECMP和LACP等。當(dāng)網(wǎng)絡(luò)流量較大時,可以通過增加線路來減輕現(xiàn)有線路的負(fù)擔(dān)。這在提升數(shù)據(jù)中心網(wǎng)絡(luò)性能,尤其是東西向流量的性能時,尤其重要。
責(zé)任編輯:haq
-
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7080瀏覽量
89175 -
網(wǎng)絡(luò)
+關(guān)注
關(guān)注
14文章
7580瀏覽量
88932
原文標(biāo)題:技術(shù)分享 | 數(shù)據(jù)中心網(wǎng)絡(luò)基礎(chǔ)技術(shù)
文章出處:【微信號:Ithingedu,微信公眾號:安芯教育科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論