大二層網絡


背景介紹

最近在項目中經常有學校提出需要把網絡改造成大二層的網絡,但是對大二層網絡又不是很了解,今天收集整理了華為關於大二層的比較系統的介紹,一起分享同時自己也學習一下。

目前校園網絡中有很多還是采用原來的架構網關在接入層,或者雖然有一台很強悍的核心,但由於采用傳統的二層組網方式,也會有一些風險,如:單鏈路沒有冗余、通過VLAN划分也無法很好地防止環路,運行了防環協議但由於網絡收斂的問題導致網絡不穩定,還有就是全網三層環境從而導致網絡中要運行路由協議或大量靜態路由,從而導致網絡有一點小改動都非常復雜。

所以,針對學校網絡碰到的以上情況,大二層也是一個比較好的解決方式,同時大二層最開始是針對數據中心提出的技術,其實學校網絡也是一個相當於數據中心的網絡,因為他需要對整個校園提供上網服務。那么下面我們就一起來了解一下大二層技術的前世今生及如何實現吧。

一、數據中心為什么需要大二層網絡?

在開始之前,首先要明確一點,大二層網絡基本上都是針對數據中心場景的,因為它實際上就是為了解決數據中心的服務器虛擬化之后的虛擬機動態遷移這一特定需求而出現的。對於普通的園區網之類網絡而言,大二層網絡並沒有特殊的價值和意義(除了某些特殊場景,例如WIFI漫游等等)。

所以,我們現在所說的大二層網絡,一般都是指數據中心的大二層網絡。

1      傳統數據中心網絡架構

傳統的數據中心網絡通常都是二層+三層網絡架構,如下圖所示。

為什么會有大二層網絡以及實現方式有哪些

我們看到,這種網絡架構其實和園區網等網絡的架構是一樣的,這種架構相當於零售行業的“加盟店”形式,而與之相對應的“三層到邊緣”架構,以及我們下面要談到的“大二層”架構,就相當於“直營店”了。

之所以采用這種網絡架構,是因為這種架構非常成熟,相關的二三層網絡技術(二層VLAN+xSTP、三層路由)都是成熟的技術,可以很容易的進行部署,也符合數據中心分區分模塊的業務特點。

但是這種網絡架構對於數據中心來說,其實是隱藏着一個弱點的,是什么呢?且容我賣個關子,后面再講。

2      服務器虛擬化趨勢

由於傳統的數據中心服務器利用率太低,平均只有10%~15%,浪費了大量的電力能源和機房資源。所以出現了服務器虛擬化技術。

服務器虛擬化技術是把一台物理服務器虛擬化成多台邏輯服務器,這種邏輯服務器被稱為虛擬機(VM),每個VM都可以獨立運行,有自己的OS、APP,當前也有自己獨立的MAC地址和IP地址,它們通過服務器內部的虛擬交換機(vSwitch)與外部實體網絡連接。

為什么會有大二層網絡以及實現方式有哪些

通過服務器虛擬化,可以有效地提高服務器的利用率,降低能源消耗,降低客戶的運維成本,所以虛擬化技術目前得到了廣泛的應用。(至於為啥有這些好處,我就懶得去說了,有興趣的話可以自己問一下度娘,總之服務器虛擬化就是個好東東啦)

PS:VMware是服務器虛擬化領域的市場領先產品和創新品牌,提供一整套VM解決方案的軟件。除了VMware之外,業界還有微軟Hyper-V和Xen等服務器虛擬化軟件。

3      虛擬機動態遷移

喝口水,我們繼續回到數據中心網絡上來。

本來,服務器虛擬化對於數據中心網絡來說,也沒啥特別大的影響,無非就是接入的主機規模變大一些而已(原來一台物理服務器算一個主機,現在每個VM算一個主機),還是可以用二三層網絡架構來連接的,規模變大了,多划分一些二層域就行。

但是服務器虛擬化之后,帶來了一項伴生的技術,那就是虛擬機動態遷移,這就給傳統的數據中心網絡帶來了很大的麻煩。當然在講麻煩之前,我們先得搞清楚虛擬機動態遷移是怎么回事。

所謂虛擬機動態遷移,就是在保證虛擬機上服務正常運行的同時,將一個虛擬機系統從一個物理服務器移動到另一個物理服務器的過程。該過程對於最終用戶來說是無感知的,從而使得管理員能夠在不影響用戶正常使用的情況下,靈活調配服務器資源,或者對物理服務器進行維修和升級。

為什么會有大二層網絡以及實現方式有哪些

為什么會有大二層網絡以及實現方式有哪些

說白了,動態遷移就是讓虛擬機搬家,但是要求搬家的時候,虛擬機上運行的業務還不會中斷,外面的用戶察覺不到。

搞清楚虛擬機動態遷移是怎么回事之后,我們來看到底這個技術給網絡帶來了什么麻煩。

4      虛擬機動態遷移對網絡的影響

還記得我前面賣得關子不?我說對於數據中心來說,二三層網絡架構是有一個弱點的,那是什么弱點呢?這個弱點就是服務器的位置不能隨便在不同二層域之間移動。

因為一旦服務器遷移到其他二層域,就需要變更IP地址,TCP連接等運行狀態也會中斷,那么原來這台服務器所承載的業務就會中斷,而且牽一發動全身,其他相關的服務器(比如WEB-APP-DB服務器之間都是相互關聯的)也要變更相應的配置,影響巨大。

為什么會有大二層網絡以及實現方式有哪些

(這和園區網不一樣,園區網里面接入的辦公PC等,換一個辦公區,換一個二層域,重新獲取一下IP地址,對於業務來說,幾乎沒什么影響)。

幸好在傳統的數據中心中,物理服務器位置的跨二層域遷移的場景是非常少見的,而且即使發生遷移,也都是物理層面的,業務肯定都已經中斷了,更換IP地址所以這個隱患並不明顯。

但是在服務器虛擬化之后,虛擬機的動態遷移會成為一種經常出現的場景。為了保證遷移時業務不中斷,就要求在遷移時,不僅虛擬機的IP地址不變,而且虛擬機的運行狀態也必須保持原狀(例如TCP會話狀態),所以虛擬機的動態遷移只能在同一個二層域中進行,而不能跨二層域遷移。

而傳統的二三層網絡架構限制了虛擬機的動態遷移只能在一個較小的局部范圍內進行,應用受到了極大的限制。為什么這么說?我再賣個關子,到下一章再詳細說。

為什么會有大二層網絡以及實現方式有哪些

所以,為了打破這種限制,實現虛擬機的大范圍甚至跨地域的動態遷移,就要求把VM遷移可能涉及的所有服務器都納入同一個二層網絡域,這樣才能實現VM的大范圍無障礙遷移。

就好比你原來住在南京,現在遷移到蘇州了,原來各城市的社保系統是獨立的(小二層網絡),所以你要辦理社保關系遷移(IP地址變更),辦過的人都知道這有多痛苦。

而據說從2015年開始整個江蘇省的社保系統現在納入統一管理了(大二層網絡),那么從南京遷移到蘇州,人過去就行了,社保關系不需要任何變更(IP地址不變,業務不中斷)。

這就是大二層網絡!一個真正意義的大二層網絡至少要能容納1萬以上的主機,才能叫做大二層網絡。

(2)傳統的二層網絡為啥大不起來?

VM動態遷移只是要求把所有服務器都納入同一個二層網絡,那問題來了:原來的網絡架構為什么就不能把所有服務器都納入同一個二層網絡?傳統的VLAN+xSTP二層技術不能把所有服務器都划到同一個二層域嗎?

這也就是我前面賣的關子,為什么說傳統網絡架構限制了虛擬機的動態遷移只能在一個較小的局部范圍內進行?為什么傳統的二層網絡大不起來?

要說清楚這一點,我們首先需要弄清楚二層網絡面臨的主要問題是什么,而傳統二層網絡采用的主要解決方案有哪些?

 

 

1      二層網絡的核心問題

其實說起來也簡單,二層網絡的核心問題就是環路問題以及由此產生的廣播風暴問題。

 

1.1      環路的由來

如果是一個單設備和單鏈路組成的樹型二層網絡,如下圖所示, 它是沒有任何環路和因環路引起的廣播風暴問題的(其他成因的廣播風暴,例如蠕蟲病毒等造成的,不在討論之列)。

但是這種網絡的可靠性是非常差的,因為它沒有任何的備份設備和備份鏈路,一旦某個設備或者鏈路發生故障,那么故障點下的所有主機就連不上網絡了。

所以,為了提高網絡可靠性,通常會采用冗余設備和冗余鏈路,這樣就不可避免的形成環路。如下圖所示。紅色鏈路構成一個環路,藍色鏈路也構成一個環路,事實上,在相對復雜的二層網絡中,物理上的環路幾乎無處不在。

 

而二層網絡處於同一個廣播域下,廣播報文在環路中會反復持續傳送,而且二層報文轉發又沒有TTL機制,無限循環之下,就會形成廣播風暴,瞬間即可導致端口阻塞和設備癱瘓。

 

1.2      環路的解決之道

為了解決廣播風暴問題,二層網絡中所采取的技術主要有兩方面:

1.2.1        通過划分VLAN來縮小廣播域的規模

VLAN技術可以把一個大的物理二層域划分成許多小的邏輯二層域,這種邏輯二層域被稱為VLAN。同一個VLAN內可以進行二層通信,不同VLAN之間是二層隔離的,這樣廣播的范圍就被局限在一個VLAN內,不會擴散到整個物理二層域。

VLAN雖然可以一定程度上降低廣播風暴的范圍和強度,但還是無法避免在VLAN內形成廣播風暴(只要同一個VLAN內還有環路),所以只是一種治標不治本的策略。

(當然,這種說法僅針對廣播風暴這一點而言,而VLAN技術還有其他很多方面的重要作用,比如簡化管理、提高安全性等等,但本文不討論這些方面)。

1.2.2        通過破環協議來防止環路的產生

另外一種治本的方法則是從廣播風暴形成的根本原因入手。既然廣播風暴是因為出現了環路才導致的,那么通過一定的手段,防止環路出現不就避免了廣播風暴了嗎?

防止環路出現,但是又要保證網絡的可靠性,就只能將冗余設備和冗余鏈路變成備份設備和備份鏈路。即冗余的設備端口和鏈路在正常情況下被阻塞掉,不參與數據報文的轉發。只有當前轉發的設備、端口、鏈路出現故障,導致網絡不通的時候,冗余的設備端口和鏈路才會被打開,使得網絡能夠恢復正常。實現這些自動控制功能的協議就被稱為破環協議,其中最常用的就是STP(Spanning Tree Protocol,生成樹協議)以及升級版的RSTP和MSTP等,我們統稱為xSTP協議。

當然,也有其他一些破環協議,比如SEP、RRPP等等,其本質思想和xSTP協議是一致的。

 

二、  傳統的二層技術為啥不能支持大二層

上面提到了,傳統二層網絡最主要的技術就是VLAN和xSTP。那么這兩者對於大二層的網絡需求究竟存在什么問題?

2.1      VLAN的問題

首先來看VLAN。

前面說了,VLAN的核心思想之一,就是通過划分VLAN來縮小二層域的范圍和規模,來控制廣播風暴的規模。

而對於大二層網絡的需求而言,又要求把所有服務器都納入同一個二層域,那如果把所有服務器都納入到同一個VLAN當中,如果沒有其他隔離手段,那不就相當於又把廣播域擴得大大的?這和划分VLAN的初衷是背道而馳的。

所以VLAN技術天然就不能很好的支持大二層網絡。

2.2      xSTP的問題

再來看xSTP,xSTP倒是可以解決大二層網絡可能出現的環路問題,但是問題在於xSTP技術本身。

由於xSTP的收斂性能等原因(如果xSTP的節點過多,那么整網的收斂速度會呈指數級下降),所以一般情況下xSTP的網絡規模不會超過100台交換機。同時由於xSTP需要阻塞掉冗余設備和鏈路,也降低了網絡資源的帶寬利用率。因此在實際網絡規划時,從轉發性能、利用率、可靠性等方面考慮,會盡可能控制xSTP網絡范圍。

(對於其他一些破環協議,雖然可能相比xSTP協議來說,在某些功能/性能方面有改進,但是總體上依然解決不了總規模不大的問題)。

所以xSTP協議也無法很好的支撐大二層網絡的需求。

3      總結

最后給個總結式的數據,基於VLAN+xSTP技術的二層網絡,由於前文所提的制約條件,可能容納的主機數量,通常都不會超過1K。(具體為啥是這樣一個數據,有興趣深究的同學可以自己推算一下,也可以跟筆者聯系)。

這與前一篇中所說的,真正意義上的大二層網絡至少能容納一萬以上的主機的要求相去甚遠,所以說傳統的二層網絡不能很好支持大二層網絡。

它,大不起來!

三、如何實現真正意義上的大二層網絡?

這一篇的內容會略長一些,各位讀者做好心理准備。

如上一篇介紹的那樣,傳統的二層技術無法實現真正意義上的大二層網絡。所以就要另外動腦筋來想辦法。

幸好這個世界上聰明的腦袋是很多的,這些技術大牛們各顯神通,在最近十來年的時間之間,提出了很多大二層網絡的解決方案。歸納總結一下,大概有這么幾個流派:

  •  釜底抽薪派
  •  移花接木派
  •  瞞天過海派

1      釜底抽薪派

1.1      思想

釜底抽薪派解決大二層網絡困境,還是從二層網絡的核心問題着手。既然二層網絡的核心問題是環路問題,那么解決了環路問題,就一勞永逸了。抽了“環路”的“薪”,那么因環路導致廣播風暴的“火”也就燒不起來了。也就意味着,二層網絡想做多大就可以做多大。

當然,要有效解決大二層環境中的環路問題,傳統的xSTP技術行不通了(具體原因前一篇中已經分析過了)。幸好現在我們有了新的武器,那就是網絡設備虛擬化技術。

所謂網絡設備虛擬化技術,就是將相互冗余的兩台或多台物理網絡設備組合在一起,虛擬化成一台邏輯網絡設備,在整個網絡中只呈現為一個節點。

 

(這里的網絡虛擬化技術特指多虛一的技術,另外也有一虛多的技術,比如華為的VS(Virtual System)技術,可以把一台網絡設備虛擬成多台網絡設備使用,這種虛擬化技術就有點和服務器的虛擬化比較相似,但是我們本文中不涉及這種虛擬化)

網絡設備虛擬化再配合鏈路聚合技術,就可以把原來的多節點、多鏈路的結構變成邏輯上單節點、單鏈路的結構,環路問題也就無疾而終了。(上一篇中已經說明了,單節點、單鏈路的樹型結構網絡是沒有環路問題的)

而且虛擬化技術和鏈路聚合技術都具備冗余備份功能,單台物理設備或者鏈路故障時,可以自動切換到其他物理設備和鏈路來進行數據轉發,保證網絡的可靠性。

以網絡設備虛擬化+鏈路聚合技術構建的二層網絡天然沒有環路,其規模僅受限於虛擬網絡設備所能支持的接入能力,只要虛擬網絡設備允許,二層網絡就可以想做多大就做多大。

1.2      技術

網絡設備虛擬化的主要技術大致可以分為三類:框式設備的堆疊技術、盒式設備的堆疊技術、框盒/盒盒之間的混堆技術。有華為的CSS、iStack、SVF,CISCO的VSS、FEX,H3C的IRF等。具體的技術本文就不贅述了,后續會有相關文章詳細介紹。

1.3      番外

但是網絡設備虛擬化方案也有一定的缺點:

1)這些協議都是廠家私有的,因此只能使用同一廠家的設備來組網。

2)受限於堆疊系統本身的規模限制,目前最大規模的堆疊/集群大概可以支持接入1~2萬主機,對於超大型的數據中心來說,有時候就顯得力不從心了。但是對於一般的數據中心來說,還是顯得游刃有余的。

2      移花接木派

移花接木派要解決的也是二層網絡的環路問題,但是着眼點不是杜絕或者阻塞環路,而是在有物理環路的情況下,怎樣避免邏輯轉發路徑的環路問題。

這一派的大牛們從三層網絡的機制中找到了靈感。

2.1      思想

我們都知道,二層以太網的幀交換不能有環路,冗余鏈路必須阻塞掉。但是三層轉發網絡也是有環路的,為啥就沒有這些問題呢?而且三層網絡還可以利用冗余鏈路做ECMP。它們的區別在哪里?

其實原因很簡單,因為三層網絡比二層網絡“聰明”!二層網絡的設備說不好聽一點,都是“近視眼”,只看到和自己相連的鏈路,不知道整個網絡的拓撲結構,轉發的時候只能通過大喊大叫來尋找目標(向除入端口之外的其他端口廣播),這種喊話的聲音來回傳遞就形成了廣播風暴。

 

而三層網絡就聰明智能得多了。三層網絡是依靠路由協議來計算轉發路徑的。通過路由協議,各台路由設備就可以收集、擴散和更新彼此的路由信息,進而每一台設備可以知道全部或者局部網絡的拓撲信息,所以在數據轉發的時候,可以保證從某個主機發出的報文只會向着目標主機一路前進,而不會再返回前續節點而造成路徑循環。

 

所以,移花接木派就想到了能不能把三層網絡的路由轉發方式引入到二層網絡中來呢?事實上他們做到了。通過在二層報文前插入額外的幀頭,並且采用路由計算的方式控制整網數據的轉發,不僅可以在冗余鏈路下防止廣播風暴,而且可以做ECMP。這樣可以將二層網絡的規模擴展到整張網絡,而不會受核心交換機數量的限制。當然這需要交換機改變傳統的基於MAC的二層轉發行為,而采用新的協議機制來進行二層報文的轉發。

題外話:有喜歡鑽研的同學可能會疑問,那為啥當初二層網絡不直接按照這種方式設計呢?而要設計成這樣一個比較弱智的轉發行為模式?說白了,時代的不同而已,那個時候的網絡設備性能很低,要進行完整的路由計算,就要求網絡設備具有很高的性能(所以那個時候路由器很貴的!),而那個時候的局域網又都不大,沒有遇到像現在這種大二層的網絡需求,所以弱智一點的轉發行為更符合經濟的原則。所以TCP/IP協議族就把拓撲發現定義在第三層。

當前的網絡設備的性能已經不可同日而語了,以太網交換機完全有能力承擔更復雜的路由計算,而且又有大二層這種明確的需求,所以三層路由方式控制二層網絡轉發行為就變得可行和合理了。

2.2      技術

通過路由計算方式進行二層報文的轉發,需要定義新的協議機制。這些新的協議包括TRILL、FabricPath、SPB等。

2.2.1        TRILL和FabricPath

TRILL是IETF推出的標准協議,而FabricPath則是CISCO在TRILL推出之前推向市場的“Pre-Standard”技術,內容與TRILL 類似,包含了一些私有的增強性功能和特性,我們暫不用去理會,基本上可以認為TRILL和FabricPath是差不多的(當然封裝格式啥的有點不太一樣)。

說起TRILL,就不能不提它的首席發明者Perlman,這是一個傳奇般的天才女人。前面我們提到的STP協議,就是她在1983年發明的,解決了以太網交換的環路問題。而她還有一項眾所周知的偉大發明,那就是IS-IS路由協議。這兩項發明是現代的數據通信網絡中不可或缺的重要發明。

 

到了二十一世紀,大二層網絡的需求超出了STP的能力范疇,Perlman坐不住了,於是她老人家閉關苦思一年,終於發明了TRILL協議。在TRILL協議中,Perlman把她最得意的一個“兒子”―― IS-IS引入到了局域網絡中,從而解決網絡風暴問題。

TRILL協議在原始以太幀外封裝一個TRILL幀頭,再封裝一個新的外層以太幀來實現對原始以太幀的透明傳輸,TRILL交換機可通過TRILL幀頭里的Nickname標識來進行轉發,而Nickname就像路由一樣,可通過IS-IS路由協議進行收集、同步和更新。

 

關於TRILL的詳細技術原理,后面會有專題詳細介紹,本文不詳述。(下面是一個典型的TRILL網絡)

2.2.2        SPB

而SPB是IEEE推出的待定標准,算是TRILL的強有力競爭者。

要說SPB,需要先從PBB(Provider Backbone Bridging)說起,PBB是IEEE於2008年完成的802.1ah標准,為運營商城域以太網定義了一整套MAC-in-MAC的轉發機制。但PBB只定義了轉發平面的封裝內容,當報文封裝上外層Ethernet報頭在運營商骨干區域二層網絡中時,仍然需要依靠傳統的STP進行環路避免和轉發控制。

於是IEEE在2009年又定義了802.1Qay標准:PBB-TE(Provider Backbone Bridge Traffic Engineering),用於在運營商的骨干區域中進行拓撲管理與環路保護,說白了就是通過手工方式配置一堆指定路徑取代STP的自動收斂。但PBB-TE靜態規划轉發路徑,明顯無法適用於大型二層網絡擴展,於是IEEE再搞出個802.1aq SPB(Shortest Path Bridging)來,這回就直面大二層網絡的需求了。

從實現上來看,SPB同樣是采用了IS-IS作為其控制平面協議進行拓撲學習計算,而用MAC-in-MAC封裝方式在SPB區域內部進行報文傳輸。所以這個實現和TRILL還是非常相似的。

關於SPB的詳細技術原理,以后有機會再做詳細介紹,本文不詳述。

2.3      番外

關於TRILL和SPB,在數通領域都有各自的支持廠商。以CISCO為首,華為、Broadcom、Juniper等都是TRILL的有力支持者。而Avaya、ALU等則堅定的站在SPB這邊。而像HP等廠商,則表示我兩個都支持。。。。。。

另外,總的來說,像TRILL和SPB這些技術是CT廠商主推的大二層網絡技術方案。為什么CT廠商會鍾情於這些技術呢?其實這也很容易理解,因為這些技術的部署和實施都是在網絡設備上進行的,與服務器等IT設施無關,所以CT廠商可以全盤控制。

3      瞞天過海派

瞞天過海派正式的學名應該叫Overlay派,就是通過用隧道封裝的方式,將源主機發出的原始二層報文封裝后在現有網絡中進行透明傳輸,到達目的地之后再解封裝得到原始報文,轉發給目標主機,從而實現主機之間的二層通信。

通過封裝和解封裝,相當於一個大二層網絡疊加在現有的基礎網絡之上,所以稱為Overlay派。瞞天過海的含義也就在於此。

3.1      思想

其實對於隧道封裝,我們並不陌生,比如最典型的GRE,就是把原始數據報文通過GRE封裝之后在三層網絡中進行傳輸,從主機的角度來看,中間的三層網絡是透明不可見的,也就相當於直接在源網絡和目標網絡之間直接拉了一根“光纖”!

但是GRE這樣的隧道協議是點到點的隧道協議,只能點對點建立隧道,如果有很多主機需要二層通信的話,就要每兩台主機之間都拉上“光纖”,這是無法想象的。那怎么辦?

既然“光纖”不行,那就上“二層交換機”!

眾所周知,“二層交換機”是可以實現下掛主機之間相互二層通信的,而且主機從“二層交換機”的一個端口遷移到另一個端口時,IP地址是可以保持不變的。這樣不就可以實現大二層網絡的需求了嗎?

所以,Overlay方案的意義也就是在於此。Overlay方案的核心就是通過點到多點的隧道封裝協議,完全忽略中間網絡的結構和細節,把整個中間網絡虛擬成一台“巨大無比的二層交換機”, 每一台主機都是直接連在這台“巨大交換機”的一個端口上。而基礎網絡之內如何轉發都是這台“巨大交換機”內部的事情,主機完全無需關心。

基於這種“巨大交換機”的理解,那么就也很容易理解為什么這種方案就可以實現VM動態遷移了,不就是把VM主機從交換機的一個端口換到另一個端口嘛,完全無需變更IP地址。

3.2      技術

Overlay派的典型技術主要有VXLAN、NVGRE、STT等,在本文中僅對VXLAN進行簡單的介紹。

VXLAN(Virtual eXtensible LANs)是VMWare和CISCO提出的Overlay技術方案。VXLAN的陣營中還包括了Arista、Broadcom、Citrix和Red Hat等廠商,可謂陣容豪華。當前處於IETF草案階段。

VXLAN采用Mac in UDP的封裝方式,虛擬機發出的數據包在VXLAN接入點(被稱為VTEP)加上VXLAN幀頭后再被封裝在UDP報頭中,並使用承載網絡的IP/MAC地址作為外層頭進行封裝,承載網絡只需要按照普通的二三層轉發流程進行轉發即可。

 

VXLAN在VXLAN幀頭中引入了類似VLAN ID的網絡標識,稱為VXLAN網絡標識VNI(VXLAN Network ID),由24比特組成,支持多達16M((2^24-1)/1024^2)的VXLAN段,從而滿足了大量的網絡標識需求。

VTEP通過(目的MAC地址、目的VNI、目的VTEP的IP地址)映射表來實現報文封裝,對於不認識的MAC地址,通過組播方式在網絡內進行查詢(當然,如果有統一的控制器,就可以單播向控制器進行查詢)。

關於VXLAN的詳細技術原理,后面會有專題詳細介紹,本文不詳述。

3.3      番外

VXLAN和NVGRE等技術是服務器虛擬化的IT廠商主推的大二層網絡技術方案,這也很好理解,對於VXLAN和NVGRE技術來說,報文的封裝/解封裝都是在服務器內部的虛擬交換機vSwitch上進行的,外部網絡只對封裝后的報文進行普通的二層交換和三層轉發,所以技術控制權都在IT廠商手里,CT廠商就是一個路人看客了。

當然,目前CT廠商也在積極參與到Overlay方案中來,所以當前的VXLAN和NVGRE技術也可以把Overlay網絡的接入點部署在TOR等網絡設備上,由網絡設備來完成VXLAN和NVGRE的報文封裝。

  •  一方面對於虛擬化的服務器來說,網絡設備的性能還是要比vSwitch強很多的,用TOR等設備來進行封裝,性能更好一些。
  •  另外一方面,在TOR上部署Overlay接入點,也可以把非虛擬化的服務器統一納入Overlay網絡。

這樣CT廠商和IT廠商就可以在大二層這個領域實現了和諧共贏。

四、跨數據中心的大二層網絡怎么實現?

上一篇我們談了很多大二層網絡的技術和流派,但是細心的讀者可能已經發現,我們談這些方案和技術,實際上都是講的同一個數據中心內的大二層網絡技術,未考慮跨數據中心的情況。

跨數據中心情況下,那么如果要實現跨數據中心的VM動態遷移,就要保證不同數據中心的服務器也都在同一個二層域內。也就是說要構建一個覆蓋所有數據中心的大二層網絡。

在討論跨數據中心的大二層網絡時,我們可以從數據中心內的情況往跨數據中心的情況進行延伸。看看對於釜底抽薪派、移花接木派、瞞天過海派的技術來說,一旦要跨數據中心構建大二層網絡時,又會遇到什么?該如何解決?

1      釜底抽薪派的跨數據中心互聯方案

釜底抽薪派通過網絡設備虛擬化來消除二層網絡環路,從而實現大二層網絡。比如通過CSS/iStack技術,把接入、匯聚、核心層的交換機都虛擬成單節點設備。

 

當釜底抽薪派遇到跨數據中心的情況時,有兩種方式可以實現跨數據中心的大二層網絡:

1.1      跨數據中心堆疊

這種方式就是把網絡設備虛擬化的范圍擴大到所有數據中心,把不同數據中心里的交換機堆疊成單台交換機,這種方式就把所有數據中心都當成一體來處理。

 

但是這種方式要求數據中心之間可以實現堆疊線纜和光纖線路的直連,所以數據中心之間距離一般不能太遠,通常不超過10km。而且最重要的一點,很多企業是不具備自己鋪設長距離光纖或者傳輸設備的條件的。所以,這種方式局限性非常大,一般很少采用。

1.2      L2 over L3

如果不具備跨數據中心堆疊的條件,那么想通過純二層的方式實現跨數據中心的互聯就不太現實了。而在一般情況下,多數據中心之間是通過三層路由互通的,那么就只能把每個數據中心內的二層網絡作為大二層網絡的一個局部,再把這些局部網絡通過L2 over L3的方式進行互聯,進而構建一個全局范圍的大二層網絡。

所謂L2 over L3,是指借助隧道的方式,將二層數據報文封裝在三層報文中,跨越中間的三層網絡,實現兩地二層數據的互通。這種隧道如前面所說的,像“光纖”,將多個數據中心的二層網絡貫穿在一起。

L2 over L3的技術有很多種,有傳統的VPN技術VPLS/VLL以及增強版的VPLS/VLL over GRE。也有新興的專門為數據中心二層互聯開發的VPN技術,例如華為的EVN(Ethernet Virtual Network)技術、CISCO的OTV(Overlay Transport Virtualization)等等。

新興的這些技術主要是為了解決VPLS的一些固有缺陷,例如多歸屬接入時無法負載分擔、網絡部署和配置復雜、網絡資源消耗高等等。

以EVN為例:

  • EVN通過擴展BGP協議使二層網絡的MAC地址學習和發布過程從數據平面轉移到控制平面。這樣可以使設備在管理MAC地址時像管理路由一樣,使目的MAC地址相同但下一跳不同的多條EVN路由實現負載分擔。
  • BGP協議支持路由反射器RR功能,所以可以在互聯骨干網部署RR,所有PE設備與RR建立鄰居關系,通過RR來反射EVN路由,大大減少了網絡部署成本。
  • EVN數據轉發不再使用MPLS隧道承載,而是使用VXLAN隧道承載。VXLAN隧道可以在PE間鄰居關系建立成功后通過EVN路由的傳播自動建立,大大減少了配置工作量。

關於EVN的詳細技術原理,后面會有專題詳細介紹,本文不詳述。

2      移花接木派的跨數據中心互聯方案

移花接木派的思想是借用三層路由的方式來進行二層報文的轉發,比如TRILL協議。而當TRILL等協議遭遇跨數據中心互聯時,又會發生什么呢?

最理想的狀況,當然是把所有數據中心的網絡(包括互聯的網絡)都納入同一個TRILL網絡,這樣什么麻煩都沒有了。

2.1      純二層TRILL互聯

如果企業可以構建跨數據中心的二層鏈路,構建一個大范圍的純TRILL網絡理論上是可行的。這種方案簡單的說,就是沒有什么數據中心內部網絡、互聯網絡的區分,所有網絡設備統一運行TRILL來轉發二層數據。

簡單是簡單的,但是這種方案的物理條件要求似乎也太高了些,也非常不經濟。想象一下,對於一個全國性的企業,多地數據中心的互聯網絡全部運行TRILL來轉發二層數據,想想就覺得冷的不行啊。

如果是一個城域內的兩個主備數據中心來說,這種方案倒是勉強可以考慮一下的。

2.2      TRILL over L3

所以,對於TRILL來說,最經濟的方案,其實就和釜底抽薪派的解決方案一樣,也采用L2 over L3的方式來實現互聯。這種情況下,可以稱之為TRILL over L3。

說到這里就基本殊途同歸了,L2 over L3的技術也是前面提到過的VPLS/VLL(VPLS/VLL over GRE)、EVN和OTV這么幾種。都可以用來實現TRILL網絡之間的互聯。

唯一需要說明的是,對於釜底抽薪派來說,它的L2 over L3封裝的就是普通的二層以太網報文。而對於TRILL來說,如果要實現跨數據中心的大二層網絡,那么要保證兩個數據中心的TRILL網絡是在同一個TRILL域,所以在L2 over L3時,需要把完整的TRILL報文(包括外層二層頭)一起封裝之后傳輸到對端。

以VPLS為例,在傳輸TRILL報文的時候,整個封裝結構就會是這個樣子:

(對於TRILL來說,還有另外一種互聯方式,就是在數據中心的出口處先終結掉TRILL報文,只取出用戶原始二層報文再進行隧道封裝和傳輸,但是這樣的話,實際上兩側的TRILL網絡是相互獨立的,因而就不是大二層網絡,VM也無法在兩個TRILL網絡之間進行遷移)

3      瞞天過海派的跨數據中心互聯方案

瞞天過海派面對跨數據中心的情況時,情不自禁的要樂出聲來。

“哈哈哈,為了跨數據中心的大二層,你們都累死了吧?看哥哥的!”

然后……

瞞天過海派就去睡覺了!

為啥他們這么悠閑?

還記得瞞天過海派(VXLAN/NVGRE等)的核心思想不?

瞞天過海派通過把原始二層報文進行隧道協議封裝后,在承載網絡中透明傳輸,完全忽略中間網絡的結構和細節,把整個承載網絡虛擬成一台“巨大無比的二層交換機”, 每一台主機都是直接連在這台“巨大交換機”的一個端口上。而承載網絡之內如何轉發都是這台“巨大交換機”內部的事情,主機完全無需關心。

 

所以,無論是在數據中心內的網絡,還是跨數據中心的互聯網絡,對於瞞天過海派來說,統統是承載網絡(“交換機”)的一部分,壓根就不需要關心細節。

就以VXLAN為例,VTEP把VM A的原始數據報文進行VXLAN封裝后(MAC in UDP),它就是一個普通的IP報文而已(源地址是本VTEP的地址,目的IP地址是VM B所在的VTEP),中間網絡無論用什么技術,只要能把報文轉發到目的地的VTEP就可以了。

所以說,瞞天過海派是天然可以支持跨數據中心的大二層網絡的。在這種架構下,無論VM是在本數據中心內遷移,還是跨數據中心遷移,都無需變更IP地址。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM