Dinesh Dutt是Cumulus Networks公司的首席科學(xué)家,是以太網(wǎng)絡(luò)行業(yè)領(lǐng)域的領(lǐng)導(dǎo)者,日前主持了Ivan Pepelnjak的以太網(wǎng)虛擬專(zhuān)用網(wǎng)絡(luò)(EVPN)網(wǎng)絡(luò)研討會(huì)。
Dinesh Dutt對(duì)正在興起的以太網(wǎng)虛擬專(zhuān)用網(wǎng)絡(luò)(EVPN)表達(dá)了自己的專(zhuān)業(yè)觀點(diǎn)。并討論了數(shù)據(jù)中心的實(shí)用性和局限性。
如今,數(shù)據(jù)中心架構(gòu)經(jīng)歷了許多設(shè)計(jì)階段,并正處于轉(zhuǎn)型過(guò)程中。在理想情況下,網(wǎng)絡(luò)技術(shù)經(jīng)歷了三個(gè)發(fā)展浪潮。如今處于第三個(gè)浪潮階段,它基于以太網(wǎng)虛擬專(zhuān)用網(wǎng)絡(luò)(EVPN)。在技術(shù)方面需要以某種方式進(jìn)行傾斜,目前,網(wǎng)絡(luò)發(fā)展的重點(diǎn)是第三層網(wǎng)絡(luò)。隨著越來(lái)越多的企業(yè)采用葉片拓?fù)浜腿~脊拓?fù)浣Y(jié)構(gòu),以太網(wǎng)虛擬專(zhuān)用網(wǎng)絡(luò)(EVPN)成為了傳統(tǒng)應(yīng)用程序在這種架構(gòu)上運(yùn)行的技術(shù)。為了更好地理解,讓我們了解第三個(gè)浪潮的網(wǎng)絡(luò)機(jī)制。
數(shù)據(jù)中心的起點(diǎn)
第一個(gè)發(fā)展浪潮是嘗試建立一個(gè)類(lèi)似于以往企業(yè)網(wǎng)絡(luò)設(shè)計(jì)方式的數(shù)據(jù)中心。它包括標(biāo)準(zhǔn)訪問(wèn)、聚合和核心層,這導(dǎo)致了行架構(gòu)的終結(jié)。第一個(gè)發(fā)展浪潮由網(wǎng)絡(luò)中心的設(shè)備組成,以作為通往外部世界的門(mén)戶(hù)。
第一個(gè)發(fā)展浪潮的網(wǎng)絡(luò)架構(gòu)適用于從北到南的流量。這種類(lèi)型的流量將流入和流出數(shù)據(jù)中心。但是,在數(shù)據(jù)中心內(nèi)部運(yùn)行的許多應(yīng)用程序需要交叉通信和相互通信的能力。另一方面,虛擬化是新的東西流量的重要推動(dòng)力。
不幸的是,第一個(gè)浪潮的網(wǎng)絡(luò)設(shè)計(jì)無(wú)法有效地進(jìn)行東西流通。出現(xiàn)了依賴(lài)于第二層網(wǎng)絡(luò) (Layer2)引起的規(guī)模和可靠性問(wèn)題。第二層網(wǎng)絡(luò) (Layer2) 在許多情況下依賴(lài)于脆弱的協(xié)議,其中包括專(zhuān)有擴(kuò)展。
整個(gè)訪問(wèn)、聚合和核心架構(gòu)圍繞第二層網(wǎng)絡(luò) (Layer2)交換模型進(jìn)行構(gòu)建。這意味著使用第二層網(wǎng)絡(luò) (Layer2)報(bào)頭轉(zhuǎn)發(fā)整個(gè)流量,直到它到達(dá)網(wǎng)絡(luò)中心,例如生成樹(shù)協(xié)議(STP)、多機(jī)架鏈路聚合(MLAG)、大量鏈路透明互連(TRILL)以及思科FabricPath等技術(shù)都圍繞著使用第二層網(wǎng)絡(luò)交換模型的思想構(gòu)建。
然而,與啟動(dòng)第二層網(wǎng)絡(luò) (Layer2)設(shè)計(jì)的健壯第三層網(wǎng)絡(luò)模型相比,第二層交換模型在網(wǎng)絡(luò)冗余、規(guī)模和可靠性方面表現(xiàn)出許多缺點(diǎn)。
第二層網(wǎng)絡(luò) (Layer2)和第三層網(wǎng)絡(luò) (Layer3)的主要區(qū)別在于數(shù)據(jù)包轉(zhuǎn)發(fā)的工作方式。在第三層網(wǎng)絡(luò)中,在媒體訪問(wèn)控制(MAC)地址級(jí)別查找地址,并且由MAC地址執(zhí)行分組轉(zhuǎn)發(fā)。這與第三層網(wǎng)絡(luò)形成對(duì)比,在第三層網(wǎng)絡(luò)中,尋址在網(wǎng)絡(luò)層工作,網(wǎng)絡(luò)層是全球互聯(lián)網(wǎng)協(xié)議(IP)地址。
如何實(shí)現(xiàn)健壯的網(wǎng)絡(luò)
健壯的網(wǎng)絡(luò)規(guī)則不應(yīng)包含單個(gè)故障域,這可能導(dǎo)致網(wǎng)絡(luò)分區(qū)。因此,企業(yè)需要考慮冗余設(shè)計(jì)。但是,當(dāng)其在網(wǎng)絡(luò)中有冗余時(shí),如何以不會(huì)導(dǎo)致循環(huán)的方式轉(zhuǎn)發(fā)數(shù)據(jù)包?
有利的是,第三層網(wǎng)絡(luò)具有所謂的路由協(xié)議,例如BGP、OSPF、IS-IS和Cisco的EIGRP。其路由協(xié)議支持構(gòu)建無(wú)環(huán)路轉(zhuǎn)發(fā)拓?fù)洹?/p>
第二個(gè)方面是IP報(bào)頭中稱(chēng)為生存時(shí)間(TTL)的字段。每次數(shù)據(jù)包遍歷第三層設(shè)備時(shí),TTL減1。一旦TTL變?yōu)榱?,?shù)據(jù)包就會(huì)被丟棄。
因此,在第三層網(wǎng)絡(luò)設(shè)計(jì)中,有兩種機(jī)制來(lái)防止環(huán)路的形成。首先是IP報(bào)頭中的TTL字段,其次是為給定前綴構(gòu)建無(wú)環(huán)路轉(zhuǎn)發(fā)路徑的路由協(xié)議。但是在第二層網(wǎng)絡(luò)中,人們并不擁有這樣的機(jī)制。
第二層網(wǎng)絡(luò)易用性模型
第二層網(wǎng)絡(luò)模型圍繞易用性模型構(gòu)建。在早期,路由協(xié)議被認(rèn)為使用比較復(fù)雜。配置路由協(xié)議被認(rèn)為是復(fù)雜的硬件數(shù)據(jù)包交換,因此從第二層網(wǎng)絡(luò)開(kāi)始,吞吐量更高,延遲更低。,即使到今天,大多數(shù)供應(yīng)商還要收取使用路由的額外許可費(fèi),但第二層網(wǎng)絡(luò)沒(méi)有這種費(fèi)用。第二層網(wǎng)絡(luò)的引入遵循了完整的易連接性。
然而,第二層網(wǎng)絡(luò)模型也有一些非常危險(xiǎn)的缺點(diǎn)。第二層網(wǎng)絡(luò)模型沒(méi)有可以構(gòu)建無(wú)環(huán)路轉(zhuǎn)發(fā)路徑協(xié)議。相反,它基于洪水泛濫。實(shí)質(zhì)上,如果第二層網(wǎng)絡(luò)交換機(jī)不知道目標(biāo)MAC地址,它會(huì)將數(shù)據(jù)包溢出到數(shù)據(jù)包所在端口以外的所有端口,然后記錄源MAC地址。
需要在第二層網(wǎng)絡(luò)中具有冗余,以便單個(gè)故障域不會(huì)導(dǎo)致網(wǎng)絡(luò)分區(qū)或節(jié)點(diǎn)被黑洞化。為了避免這些問(wèn)題,網(wǎng)絡(luò)需要冗余路徑。
但是,如果沒(méi)有生存時(shí)間(TTL)或機(jī)制來(lái)為給定前綴構(gòu)建無(wú)環(huán)路轉(zhuǎn)發(fā)路徑,則循環(huán)可能導(dǎo)致數(shù)據(jù)包永遠(yuǎn)循環(huán)。它只是淹沒(méi)數(shù)據(jù)包,在冗余路徑的情況下,被淹沒(méi)的數(shù)據(jù)包可能導(dǎo)致完全的網(wǎng)絡(luò)崩潰。
防止第二層網(wǎng)絡(luò)中的環(huán)路
為了防止第二層網(wǎng)絡(luò)環(huán)路,引入了生成樹(shù)協(xié)議(STP)。生成樹(shù)查看所有冗余路徑,然后刪除它們。
生成樹(shù)協(xié)議構(gòu)建了一個(gè)適用于網(wǎng)絡(luò)中每個(gè)數(shù)據(jù)包的無(wú)環(huán)路拓?fù)洌@與為每個(gè)源路由器構(gòu)建無(wú)環(huán)路拓?fù)涞穆酚蓞f(xié)議不同。
供應(yīng)商引入了各種技巧,使生成樹(shù)的執(zhí)行效率更高,但導(dǎo)致網(wǎng)絡(luò)不穩(wěn)定的基本部分是洪水泛濫。它導(dǎo)致終端站遭受損失,這成為了DoS攻擊的可能性。
關(guān)閉失敗或打開(kāi)失敗
路由協(xié)議未能關(guān)閉。如果路由協(xié)議不知道如何到達(dá)目的地,它將不會(huì)將數(shù)據(jù)包發(fā)送到該目的地。
但是,生成樹(shù)協(xié)議執(zhí)行相反的操作并且無(wú)法打開(kāi)。生成樹(shù)的構(gòu)建方式是:“如果我沒(méi)有收到你的回復(fù),那么我認(rèn)為你需要一個(gè)我的數(shù)據(jù)包。如果我沒(méi)有聽(tīng)到你的問(wèn)候,這與后面的路由協(xié)議形成對(duì)比,我認(rèn)為你不想和我通信。”
打開(kāi)失敗在很多方面都是危險(xiǎn)的。例如,導(dǎo)致單向連接的壞電纜或者加載的CPU無(wú)法及時(shí)發(fā)出hello數(shù)據(jù)包,可能會(huì)構(gòu)造一個(gè)環(huán)路。通過(guò)路由,TTL最終將終止數(shù)據(jù)包,從而阻止環(huán)路。但是,由于第二層網(wǎng)絡(luò)中沒(méi)有TTL,因此固有地創(chuàng)建了一個(gè)不穩(wěn)定的網(wǎng)絡(luò)。
第二層網(wǎng)絡(luò)具有較大的擴(kuò)散半徑,并且沒(méi)有細(xì)粒度的故障域。單個(gè)鏈路故障可能會(huì)影響整個(gè)網(wǎng)絡(luò)。所有這些因素都認(rèn)為第一次網(wǎng)絡(luò)浪潮的數(shù)據(jù)中心設(shè)計(jì)無(wú)效。更簡(jiǎn)潔的設(shè)計(jì)是從第二層網(wǎng)絡(luò)交換模型轉(zhuǎn)向IP和網(wǎng)絡(luò)路由協(xié)議。
數(shù)據(jù)中心設(shè)計(jì)的第二個(gè)發(fā)展浪潮
第二個(gè)發(fā)展浪潮的數(shù)據(jù)中心設(shè)計(jì)是構(gòu)建可擴(kuò)展的網(wǎng)絡(luò),這些網(wǎng)絡(luò)是可預(yù)測(cè)的、強(qiáng)大的、并支持細(xì)粒度的故障域設(shè)計(jì)。除了有效支持東西流量以外,還需要盡可能多的轉(zhuǎn)發(fā)能力。屏蔽雙絞線(STP)阻止了額外帶寬的使用,因此必須使用替代協(xié)議。
這一挑戰(zhàn)與20世紀(jì)50年代早期的電話網(wǎng)絡(luò)面臨的挑戰(zhàn)沒(méi)有什么不同。貝爾實(shí)驗(yàn)室Charles Clos博士采用Clos網(wǎng)絡(luò)拓?fù)浣鉀Q了這個(gè)問(wèn)題。Clos網(wǎng)絡(luò)拓?fù)淇梢詳U(kuò)展到多個(gè)層。其開(kāi)創(chuàng)性的網(wǎng)絡(luò)規(guī)模公司使用具有低端口數(shù)的小型白盒交換機(jī),因此它們需要8層Clos網(wǎng)絡(luò)。但是,對(duì)于大多數(shù)人來(lái)說(shuō),兩層就已經(jīng)足夠好。
數(shù)據(jù)中心設(shè)計(jì)的新浪潮被稱(chēng)為葉片和葉脊,它本質(zhì)上是一個(gè)Clos網(wǎng)絡(luò)。該設(shè)計(jì)允許人們構(gòu)建不受單個(gè)單元規(guī)模限制的網(wǎng)絡(luò)。但是,如果你想到第二層網(wǎng)絡(luò),那么規(guī)模就受到限制。
容量不僅受端口數(shù)量的控制,還受控制平臺(tái)的控制。此外,重要的是它能夠以多快的速度發(fā)送STP數(shù)據(jù)包,而不會(huì)有引起網(wǎng)絡(luò)崩潰的風(fēng)險(xiǎn)。然而,葉片網(wǎng)絡(luò)和葉脊網(wǎng)絡(luò)拓?fù)渫ㄟ^(guò)利用所有冗余鏈路的容量來(lái)實(shí)現(xiàn)高容量。使用此拓?fù)浣Y(jié)構(gòu)可以完美地實(shí)現(xiàn)IP和路由,因?yàn)樗恍枰囟ㄓ诠?yīng)商的障礙。
因此,通過(guò)切換到IP,第二層網(wǎng)絡(luò)的不穩(wěn)定性消失,可以實(shí)現(xiàn)具有IP轉(zhuǎn)發(fā)的高容量直接網(wǎng)絡(luò)。葉片和葉脊網(wǎng)絡(luò)拓?fù)湓O(shè)計(jì)提供了非常簡(jiǎn)單的構(gòu)建塊。
遷移到白盒
所以現(xiàn)在,有機(jī)會(huì)建立非常簡(jiǎn)單的IP轉(zhuǎn)發(fā)網(wǎng)絡(luò)。然而,行業(yè)巨頭當(dāng)時(shí)進(jìn)行了部署,例如思科或瞻博網(wǎng)絡(luò),由于網(wǎng)絡(luò)拓?fù)洮F(xiàn)在非常簡(jiǎn)單,因此不需要支付高額費(fèi)用。
所需要的只是IP路由和轉(zhuǎn)發(fā)協(xié)議。其結(jié)果是人們開(kāi)始看到白盒交換機(jī)的介紹。最初,白盒交換機(jī)并沒(méi)有采用很好的CPU,因此,像谷歌這樣的公司無(wú)法在它們上面運(yùn)行路由協(xié)議。所有控制邏輯的集中化都是開(kāi)箱即用的,使本地設(shè)備只對(duì)商用芯片進(jìn)行編程。這導(dǎo)致了OpenFlow模型的興起。
隨著時(shí)間的推移,其他網(wǎng)絡(luò)規(guī)模公司設(shè)計(jì)了傳統(tǒng)的分布式路由協(xié)議來(lái)設(shè)置轉(zhuǎn)發(fā)而不是將其拉出到集中位置。
具有葉片和葉脊體系結(jié)構(gòu)的路由協(xié)議
首先,有兩種類(lèi)型的路由協(xié)議:距離矢量和鏈路狀態(tài)。要了解它們之間的區(qū)別,人們需要知道它們?nèi)绾蝹鬟_(dá)信息。
通過(guò)距離矢量,可以告訴鄰居對(duì)整個(gè)世界的看法。然而,鏈接狀態(tài)協(xié)議通過(guò)將每個(gè)人的局部視角拼接在一起來(lái)拼湊成全局視角。
通常,網(wǎng)絡(luò)運(yùn)營(yíng)商更喜歡距離矢量上的鏈路狀態(tài)協(xié)議。這是因?yàn)樵诔霈F(xiàn)故障時(shí),鏈路狀態(tài)協(xié)議更好更快解析到目的地的路徑。然而,距離矢量協(xié)議有時(shí)會(huì)混淆并遇到問(wèn)題,例如計(jì)數(shù)到無(wú)窮大。
但是,在鏈接狀態(tài)的情況下,鏈接狀態(tài)數(shù)據(jù)庫(kù)規(guī)??赡艹蔀閱?wèn)題。它們具有區(qū)域或級(jí)別的概念,用于將域分解為層次結(jié)構(gòu)以避免擴(kuò)展問(wèn)題。
邊界網(wǎng)關(guān)協(xié)議(BGP)是一種距離向量的變體,稱(chēng)為路徑向量協(xié)議。邊界網(wǎng)關(guān)協(xié)議(BGP)運(yùn)行全球互聯(lián)網(wǎng),并且操作簡(jiǎn)單,卻是一種復(fù)雜成熟的協(xié)議,可能需要路由協(xié)議的所有部署和操作經(jīng)驗(yàn)。它可以通過(guò)多種方式實(shí)現(xiàn),其中包括開(kāi)源路由套件。
數(shù)據(jù)中心設(shè)計(jì)的第三次發(fā)展浪潮
然而,仍然存在的問(wèn)題是應(yīng)用程序假設(shè)它們存在于原有的第一次發(fā)展浪潮模型中。應(yīng)用程序假設(shè)他們?cè)谝粋€(gè)層中運(yùn)行,他們通過(guò)廣播“hello”,可以與鄰居中的每個(gè)人交談。
但是,通過(guò)路由廣播“hello”,數(shù)據(jù)包被抑制并被丟棄。在第一次發(fā)展浪潮期間設(shè)計(jì)的應(yīng)用仍然希望在原有基礎(chǔ)設(shè)施中那樣運(yùn)行,即使它們處于第二次發(fā)展浪潮數(shù)據(jù)中心設(shè)計(jì)中。他們?nèi)匀恍枰獜V播“hello”,而不是采用服務(wù)發(fā)現(xiàn)的記錄DNS。
其結(jié)果是,需要找到一種方法將第一次發(fā)展浪潮應(yīng)用與第二次發(fā)展浪潮的數(shù)據(jù)中心相結(jié)合,從而產(chǎn)生以太網(wǎng)虛擬專(zhuān)用網(wǎng)絡(luò)(EVPN)。它仍然圍繞fabric的概念構(gòu)建,但它是使用疊加層構(gòu)建的。疊加層給出了第一次發(fā)展浪潮應(yīng)用程序位于第二層網(wǎng)絡(luò)中的錯(cuò)覺(jué)。
網(wǎng)絡(luò)虛擬化
網(wǎng)絡(luò)虛擬化是用于產(chǎn)生上述錯(cuò)覺(jué)的技術(shù),并且通過(guò)分層(即創(chuàng)建覆蓋)來(lái)執(zhí)行。
網(wǎng)絡(luò)虛擬化構(gòu)建了一個(gè)網(wǎng)絡(luò)隧道,它與真實(shí)世界的隧道完全相同。除非以某種方式繞過(guò)或穿過(guò)隧道,否則現(xiàn)實(shí)世界隧道兩端的兩個(gè)端點(diǎn)無(wú)法通信。
在網(wǎng)絡(luò)中構(gòu)建隧道的方式基本上是通過(guò)向現(xiàn)有數(shù)據(jù)包添加另一層報(bào)頭來(lái)完成的。通常,眾所周知的層是多協(xié)議標(biāo)簽交換(MPLS),其是IP分組上的層。然而,多協(xié)議標(biāo)簽交換(MPLS)在數(shù)據(jù)中心中是復(fù)雜的,這就導(dǎo)致了需求,為什么不使用基于IP的技術(shù)?這產(chǎn)生了虛擬可擴(kuò)展LAN(VXLAN)。
那么進(jìn)行一下總結(jié):在第二層網(wǎng)絡(luò)中,我們有一個(gè)生成樹(shù)協(xié)議(STP)的控制平臺(tái)和使用路由協(xié)議的第三層網(wǎng)絡(luò)。在這里想到的問(wèn)題是,什么樣的控制面板可以用于VXLAN?實(shí)質(zhì)上,虛擬可擴(kuò)展LAN(VXLAN)的控制協(xié)議需要做兩件事。首先,哪些端點(diǎn)可用于隧道,即目的地到隧道的映射,其次,它需要告訴你在哪里以及有多少個(gè)隧道。以太網(wǎng)虛擬專(zhuān)用網(wǎng)絡(luò)(EVPN)就是答案。
為了創(chuàng)建錯(cuò)覺(jué),邊界網(wǎng)關(guān)協(xié)議(BGP)作為協(xié)議已經(jīng)支持MAC可達(dá)性信息的傳輸,而不僅僅是IP地址。在以太網(wǎng)虛擬專(zhuān)用網(wǎng)絡(luò)(EVPN)內(nèi),邊界網(wǎng)關(guān)協(xié)議(BGP)是用于構(gòu)建虛擬隧道的控制平臺(tái)協(xié)議,使第一次發(fā)展浪潮的應(yīng)用能夠在第二次發(fā)展浪潮的網(wǎng)絡(luò)上運(yùn)行。