發(fā)布時(shí)間:2016-03-22 09:50:35 來(lái)源: 作者:
這一篇的內(nèi)容會(huì)略長(zhǎng)一些,各位讀者做好心理準(zhǔn)備。
如上一篇介紹的那樣,傳統(tǒng)的二層技術(shù)無(wú)法實(shí)現(xiàn)真正意義上的大二層網(wǎng)絡(luò)。所以就要另外動(dòng)腦筋來(lái)想辦法。
幸好這個(gè)世界上聰明的腦袋是很多的,這些技術(shù)大牛們各顯神通,在最近十來(lái)年的時(shí)間之間,提出了很多大二層網(wǎng)絡(luò)的解決方案。歸納總結(jié)一下,大概有這么幾個(gè)流派:
釜底抽薪派解決大二層網(wǎng)絡(luò)困境,還是從二層網(wǎng)絡(luò)的核心問(wèn)題著手。既然二層網(wǎng)絡(luò)的核心問(wèn)題是環(huán)路問(wèn)題,那么解決了環(huán)路問(wèn)題,就一勞永逸了。抽了“環(huán)路”的“薪”,那么因環(huán)路導(dǎo)致廣播風(fēng)暴的“火”也就燒不起來(lái)了。也就意味著,二層網(wǎng)絡(luò)想做多大就可以做多大。
當(dāng)然,要有效解決大二層環(huán)境中的環(huán)路問(wèn)題,傳統(tǒng)的xSTP技術(shù)行不通了(具體原因前一篇中已經(jīng)分析過(guò)了)。幸好現(xiàn)在我們有了新的武器,那就是網(wǎng)絡(luò)設(shè)備虛擬化技術(shù)。
所謂網(wǎng)絡(luò)設(shè)備虛擬化技術(shù),就是將相互冗余的兩臺(tái)或多臺(tái)物理網(wǎng)絡(luò)設(shè)備組合在一起,虛擬化成一臺(tái)邏輯網(wǎng)絡(luò)設(shè)備,在整個(gè)網(wǎng)絡(luò)中只呈現(xiàn)為一個(gè)節(jié)點(diǎn)。
(這里的網(wǎng)絡(luò)虛擬化技術(shù)特指多虛一的技術(shù),另外也有一虛多的技術(shù),比如華為的VS(Virtual System)技術(shù),可以把一臺(tái)網(wǎng)絡(luò)設(shè)備虛擬成多臺(tái)網(wǎng)絡(luò)設(shè)備使用,這種虛擬化技術(shù)就有點(diǎn)和服務(wù)器的虛擬化比較相似,但是我們本文中不涉及這種虛擬化)
網(wǎng)絡(luò)設(shè)備虛擬化再配合鏈路聚合技術(shù),就可以把原來(lái)的多節(jié)點(diǎn)、多鏈路的結(jié)構(gòu)變成邏輯上單節(jié)點(diǎn)、單鏈路的結(jié)構(gòu),環(huán)路問(wèn)題也就無(wú)疾而終了。(上一篇中已經(jīng)說(shuō)明了,單節(jié)點(diǎn)、單鏈路的樹型結(jié)構(gòu)網(wǎng)絡(luò)是沒(méi)有環(huán)路問(wèn)題的)
而且虛擬化技術(shù)和鏈路聚合技術(shù)都具備冗余備份功能,單臺(tái)物理設(shè)備或者鏈路故障時(shí),可以自動(dòng)切換到其他物理設(shè)備和鏈路來(lái)進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),保證網(wǎng)絡(luò)的可靠性。
以網(wǎng)絡(luò)設(shè)備虛擬化+鏈路聚合技術(shù)構(gòu)建的二層網(wǎng)絡(luò)天然沒(méi)有環(huán)路,其規(guī)模僅受限于虛擬網(wǎng)絡(luò)設(shè)備所能支持的接入能力,只要虛擬網(wǎng)絡(luò)設(shè)備允許,二層網(wǎng)絡(luò)就可以想做多大就做多大。
網(wǎng)絡(luò)設(shè)備虛擬化的主要技術(shù)大致可以分為三類:框式設(shè)備的堆疊技術(shù)、盒式設(shè)備的堆疊技術(shù)、框盒/盒盒之間的混堆技術(shù)。有華為的CSS、iStack、SVF,CISCO的VSS、FEX,H3C的IRF等。具體的技術(shù)本文就不贅述了,后續(xù)會(huì)有相關(guān)文章詳細(xì)介紹。
但是網(wǎng)絡(luò)設(shè)備虛擬化方案也有一定的缺點(diǎn):
1)這些協(xié)議都是廠家私有的,因此只能使用同一廠家的設(shè)備來(lái)組網(wǎng)。
2)受限于堆疊系統(tǒng)本身的規(guī)模限制,目前最大規(guī)模的堆疊/集群大概可以支持接入1~2萬(wàn)主機(jī),對(duì)于超大型的數(shù)據(jù)中心來(lái)說(shuō),有時(shí)候就顯得力不從心了。但是對(duì)于一般的數(shù)據(jù)中心來(lái)說(shuō),還是顯得游刃有余的。
移花接木派要解決的也是二層網(wǎng)絡(luò)的環(huán)路問(wèn)題,但是著眼點(diǎn)不是杜絕或者阻塞環(huán)路,而是在有物理環(huán)路的情況下,怎樣避免邏輯轉(zhuǎn)發(fā)路徑的環(huán)路問(wèn)題。
這一派的大牛們從三層網(wǎng)絡(luò)的機(jī)制中找到了靈感。
我們都知道,二層以太網(wǎng)的幀交換不能有環(huán)路,冗余鏈路必須阻塞掉。但是三層轉(zhuǎn)發(fā)網(wǎng)絡(luò)也是有環(huán)路的,為啥就沒(méi)有這些問(wèn)題呢?而且三層網(wǎng)絡(luò)還可以利用冗余鏈路做ECMP。它們的區(qū)別在哪里?
其實(shí)原因很簡(jiǎn)單,因?yàn)槿龑泳W(wǎng)絡(luò)比二層網(wǎng)絡(luò)“聰明”!二層網(wǎng)絡(luò)的設(shè)備說(shuō)不好聽(tīng)一點(diǎn),都是“近視眼”,只看到和自己相連的鏈路,不知道整個(gè)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),轉(zhuǎn)發(fā)的時(shí)候只能通過(guò)大喊大叫來(lái)尋找目標(biāo)(向除入端口之外的其他端口廣播),這種喊話的聲音來(lái)回傳遞就形成了廣播風(fēng)暴。
而三層網(wǎng)絡(luò)就聰明智能得多了。三層網(wǎng)絡(luò)是依靠路由協(xié)議來(lái)計(jì)算轉(zhuǎn)發(fā)路徑的。通過(guò)路由協(xié)議,各臺(tái)路由設(shè)備就可以收集、擴(kuò)散和更新彼此的路由信息,進(jìn)而每一臺(tái)設(shè)備可以知道全部或者局部網(wǎng)絡(luò)的拓?fù)湫畔?,所以在?shù)據(jù)轉(zhuǎn)發(fā)的時(shí)候,可以保證從某個(gè)主機(jī)發(fā)出的報(bào)文只會(huì)向著目標(biāo)主機(jī)一路前進(jìn),而不會(huì)再返回前續(xù)節(jié)點(diǎn)而造成路徑循環(huán)。
所以,移花接木派就想到了能不能把三層網(wǎng)絡(luò)的路由轉(zhuǎn)發(fā)方式引入到二層網(wǎng)絡(luò)中來(lái)呢?事實(shí)上他們做到了。通過(guò)在二層報(bào)文前插入額外的幀頭,并且采用路由計(jì)算的方式控制整網(wǎng)數(shù)據(jù)的轉(zhuǎn)發(fā),不僅可以在冗余鏈路下防止廣播風(fēng)暴,而且可以做ECMP。這樣可以將二層網(wǎng)絡(luò)的規(guī)模擴(kuò)展到整張網(wǎng)絡(luò),而不會(huì)受核心交換機(jī)數(shù)量的限制。當(dāng)然這需要交換機(jī)改變傳統(tǒng)的基于MAC的二層轉(zhuǎn)發(fā)行為,而采用新的協(xié)議機(jī)制來(lái)進(jìn)行二層報(bào)文的轉(zhuǎn)發(fā)。
題外話:有喜歡鉆研的同學(xué)可能會(huì)疑問(wèn),那為啥當(dāng)初二層網(wǎng)絡(luò)不直接按照這種方式設(shè)計(jì)呢?而要設(shè)計(jì)成這樣一個(gè)比較弱智的轉(zhuǎn)發(fā)行為模式?說(shuō)白了,時(shí)代的不同而已,那個(gè)時(shí)候的網(wǎng)絡(luò)設(shè)備性能很低,要進(jìn)行完整的路由計(jì)算,就要求網(wǎng)絡(luò)設(shè)備具有很高的性能(所以那個(gè)時(shí)候路由器很貴的?。?,而那個(gè)時(shí)候的局域網(wǎng)又都不大,沒(méi)有遇到像現(xiàn)在這種大二層的網(wǎng)絡(luò)需求,所以弱智一點(diǎn)的轉(zhuǎn)發(fā)行為更符合經(jīng)濟(jì)的原則。所以TCP/IP協(xié)議族就把拓?fù)浒l(fā)現(xiàn)定義在第三層。
當(dāng)前的網(wǎng)絡(luò)設(shè)備的性能已經(jīng)不可同日而語(yǔ)了,以太網(wǎng)交換機(jī)完全有能力承擔(dān)更復(fù)雜的路由計(jì)算,而且又有大二層這種明確的需求,所以三層路由方式控制二層網(wǎng)絡(luò)轉(zhuǎn)發(fā)行為就變得可行和合理了。
通過(guò)路由計(jì)算方式進(jìn)行二層報(bào)文的轉(zhuǎn)發(fā),需要定義新的協(xié)議機(jī)制。這些新的協(xié)議包括TRILL、FabricPath、SPB等。
TRILL是IETF推出的標(biāo)準(zhǔn)協(xié)議,而FabricPath則是CISCO在TRILL推出之前推向市場(chǎng)的“Pre-Standard”技術(shù),內(nèi)容與TRILL 類似,包含了一些私有的增強(qiáng)性功能和特性,我們暫不用去理會(huì),基本上可以認(rèn)為TRILL和FabricPath是差不多的(當(dāng)然封裝格式啥的有點(diǎn)不太一樣)。
說(shuō)起TRILL,就不能不提它的首席發(fā)明者Perlman,這是一個(gè)傳奇般的天才女人。前面我們提到的STP協(xié)議,就是她在1983年發(fā)明的,解決了以太網(wǎng)交換的環(huán)路問(wèn)題。而她還有一項(xiàng)眾所周知的偉大發(fā)明,那就是IS-IS路由協(xié)議。這兩項(xiàng)發(fā)明是現(xiàn)代的數(shù)據(jù)通信網(wǎng)絡(luò)中不可或缺的重要發(fā)明。
到了二十一世紀(jì),大二層網(wǎng)絡(luò)的需求超出了STP的能力范疇,Perlman坐不住了,于是她老人家閉關(guān)苦思一年,終于發(fā)明了TRILL協(xié)議。在TRILL協(xié)議中,Perlman把她最得意的一個(gè)“兒子”—— IS-IS引入到了局域網(wǎng)絡(luò)中,從而解決網(wǎng)絡(luò)風(fēng)暴問(wèn)題。
TRILL協(xié)議在原始以太幀外封裝一個(gè)TRILL幀頭,再封裝一個(gè)新的外層以太幀來(lái)實(shí)現(xiàn)對(duì)原始以太幀的透明傳輸,TRILL交換機(jī)可通過(guò)TRILL幀頭里的Nickname標(biāo)識(shí)來(lái)進(jìn)行轉(zhuǎn)發(fā),而Nickname就像路由一樣,可通過(guò)IS-IS路由協(xié)議進(jìn)行收集、同步和更新。
關(guān)于TRILL的詳細(xì)技術(shù)原理,后面會(huì)有專題詳細(xì)介紹,本文不詳述。(下面是一個(gè)典型的TRILL網(wǎng)絡(luò))
而SPB是IEEE推出的待定標(biāo)準(zhǔn),算是TRILL的強(qiáng)有力競(jìng)爭(zhēng)者。
要說(shuō)SPB,需要先從PBB(Provider Backbone Bridging)說(shuō)起,PBB是IEEE于2008年完成的802.1ah標(biāo)準(zhǔn),為運(yùn)營(yíng)商城域以太網(wǎng)定義了一整套MAC-in-MAC的轉(zhuǎn)發(fā)機(jī)制。但PBB只定義了轉(zhuǎn)發(fā)平面的封裝內(nèi)容,當(dāng)報(bào)文封裝上外層Ethernet報(bào)頭在運(yùn)營(yíng)商骨干區(qū)域二層網(wǎng)絡(luò)中時(shí),仍然需要依靠傳統(tǒng)的STP進(jìn)行環(huán)路避免和轉(zhuǎn)發(fā)控制。
于是IEEE在2009年又定義了802.1Qay標(biāo)準(zhǔn):PBB-TE(Provider Backbone Bridge Traffic Engineering),用于在運(yùn)營(yíng)商的骨干區(qū)域中進(jìn)行拓?fù)涔芾砼c環(huán)路保護(hù),說(shuō)白了就是通過(guò)手工方式配置一堆指定路徑取代STP的自動(dòng)收斂。但PBB-TE靜態(tài)規(guī)劃轉(zhuǎn)發(fā)路徑,明顯無(wú)法適用于大型二層網(wǎng)絡(luò)擴(kuò)展,于是IEEE再搞出個(gè)802.1aq SPB(Shortest Path Bridging)來(lái),這回就直面大二層網(wǎng)絡(luò)的需求了。
從實(shí)現(xiàn)上來(lái)看,SPB同樣是采用了IS-IS作為其控制平面協(xié)議進(jìn)行拓?fù)鋵W(xué)習(xí)計(jì)算,而用MAC-in-MAC封裝方式在SPB區(qū)域內(nèi)部進(jìn)行報(bào)文傳輸。所以這個(gè)實(shí)現(xiàn)和TRILL還是非常相似的。
關(guān)于SPB的詳細(xì)技術(shù)原理,以后有機(jī)會(huì)再做詳細(xì)介紹,本文不詳述。
關(guān)于TRILL和SPB,在數(shù)通領(lǐng)域都有各自的支持廠商。以CISCO為首,華為、Broadcom、Juniper等都是TRILL的有力支持者。而Avaya、ALU等則堅(jiān)定的站在SPB這邊。而像HP等廠商,則表示我兩個(gè)都支持。。。。。。
另外,總的來(lái)說(shuō),像TRILL和SPB這些技術(shù)是CT廠商主推的大二層網(wǎng)絡(luò)技術(shù)方案。為什么CT廠商會(huì)鐘情于這些技術(shù)呢?其實(shí)這也很容易理解,因?yàn)檫@些技術(shù)的部署和實(shí)施都是在網(wǎng)絡(luò)設(shè)備上進(jìn)行的,與服務(wù)器等IT設(shè)施無(wú)關(guān),所以CT廠商可以全盤控制。
瞞天過(guò)海派正式的學(xué)名應(yīng)該叫Overlay派,就是通過(guò)用隧道封裝的方式,將源主機(jī)發(fā)出的原始二層報(bào)文封裝后在現(xiàn)有網(wǎng)絡(luò)中進(jìn)行透明傳輸,到達(dá)目的地之后再解封裝得到原始報(bào)文,轉(zhuǎn)發(fā)給目標(biāo)主機(jī),從而實(shí)現(xiàn)主機(jī)之間的二層通信。
通過(guò)封裝和解封裝,相當(dāng)于一個(gè)大二層網(wǎng)絡(luò)疊加在現(xiàn)有的基礎(chǔ)網(wǎng)絡(luò)之上,所以稱為Overlay派。瞞天過(guò)海的含義也就在于此。
其實(shí)對(duì)于隧道封裝,我們并不陌生,比如最典型的GRE,就是把原始數(shù)據(jù)報(bào)文通過(guò)GRE封裝之后在三層網(wǎng)絡(luò)中進(jìn)行傳輸,從主機(jī)的角度來(lái)看,中間的三層網(wǎng)絡(luò)是透明不可見(jiàn)的,也就相當(dāng)于直接在源網(wǎng)絡(luò)和目標(biāo)網(wǎng)絡(luò)之間直接拉了一根“光纖”!
但是GRE這樣的隧道協(xié)議是點(diǎn)到點(diǎn)的隧道協(xié)議,只能點(diǎn)對(duì)點(diǎn)建立隧道,如果有很多主機(jī)需要二層通信的話,就要每?jī)膳_(tái)主機(jī)之間都拉上“光纖”,這是無(wú)法想象的。那怎么辦?
既然“光纖”不行,那就上“二層交換機(jī)”!
眾所周知,“二層交換機(jī)”是可以實(shí)現(xiàn)下掛主機(jī)之間相互二層通信的,而且主機(jī)從“二層交換機(jī)”的一個(gè)端口遷移到另一個(gè)端口時(shí),IP地址是可以保持不變的。這樣不就可以實(shí)現(xiàn)大二層網(wǎng)絡(luò)的需求了嗎?
所以,Overlay方案的意義也就是在于此。Overlay方案的核心就是通過(guò)點(diǎn)到多點(diǎn)的隧道封裝協(xié)議,完全忽略中間網(wǎng)絡(luò)的結(jié)構(gòu)和細(xì)節(jié),把整個(gè)中間網(wǎng)絡(luò)虛擬成一臺(tái)“巨大無(wú)比的二層交換機(jī)”, 每一臺(tái)主機(jī)都是直接連在這臺(tái)“巨大交換機(jī)”的一個(gè)端口上。而基礎(chǔ)網(wǎng)絡(luò)之內(nèi)如何轉(zhuǎn)發(fā)都是這臺(tái)“巨大交換機(jī)”內(nèi)部的事情,主機(jī)完全無(wú)需關(guān)心。
基于這種“巨大交換機(jī)”的理解,那么就也很容易理解為什么這種方案就可以實(shí)現(xiàn)VM動(dòng)態(tài)遷移了,不就是把VM主機(jī)從交換機(jī)的一個(gè)端口換到另一個(gè)端口嘛,完全無(wú)需變更IP地址。
公司簡(jiǎn)介
company profile
解決方案
solution
客戶案例
Customer case
官方微信