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