以太網虛擬專用網絡在現代數據中心的興起

電腦通訊 9547 197 2018-09-17

Dinesh Dutt是Cumulus Networks公司的首席科學家,是以太網絡行業領域的領導者,日前主持了Ivan Pepelnjak的以太網虛擬專用網絡(EVPN)網絡研討會。

Dinesh Dutt對正在興起的以太網虛擬專用網絡(EVPN)表達了自己的專業觀點。并討論了數據中心的實用性和局限性。

如今,數據中心架構經歷了許多設計階段,并正處于轉型過程中。在理想情況下,網絡技術經歷了三個發展浪潮。如今處于第三個浪潮階段,它基于以太網虛擬專用網絡(EVPN)。在技術方面需要以某種方式進行傾斜,目前,網絡發展的重點是第三層網絡。隨著越來越多的企業采用葉片拓撲和葉脊拓撲結構,以太網虛擬專用網絡(EVPN)成為了傳統應用程序在這種架構上運行的技術。為了更好地理解,讓我們了解第三個浪潮的網絡機制。

數據中心的起點

第一個發展浪潮是嘗試建立一個類似于以往企業網絡設計方式的數據中心。它包括標準訪問、聚合和核心層,這導致了行架構的終結。第一個發展浪潮由網絡中心的設備組成,以作為通往外部世界的門戶。

第一個發展浪潮的網絡架構適用于從北到南的流量。這種類型的流量將流入和流出數據中心。但是,在數據中心內部運行的許多應用程序需要交叉通信和相互通信的能力。另一方面,虛擬化是新的東西流量的重要推動力。

不幸的是,第一個浪潮的網絡設計無法有效地進行東西流通。出現了依賴于第二層網絡 (Layer2)引起的規模和可靠性問題。第二層網絡 (Layer2) 在許多情況下依賴于脆弱的協議,其中包括專有擴展。

整個訪問、聚合和核心架構圍繞第二層網絡 (Layer2)交換模型進行構建。這意味著使用第二層網絡 (Layer2)報頭轉發整個流量,直到它到達網絡中心,例如生成樹協議(STP)、多機架鏈路聚合(MLAG)、大量鏈路透明互連(TRILL)以及思科FabricPath等技術都圍繞著使用第二層網絡交換模型的思想構建。

然而,與啟動第二層網絡 (Layer2)設計的健壯第三層網絡模型相比,第二層交換模型在網絡冗余、規模和可靠性方面表現出許多缺點。

第二層網絡 (Layer2)和第三層網絡 (Layer3)的主要區別在于數據包轉發的工作方式。在第三層網絡中,在媒體訪問控制(MAC)地址級別查找地址,并且由MAC地址執行分組轉發。這與第三層網絡形成對比,在第三層網絡中,尋址在網絡層工作,網絡層是全球互聯網協議(IP)地址。

如何實現健壯的網絡

健壯的網絡規則不應包含單個故障域,這可能導致網絡分區。因此,企業需要考慮冗余設計。但是,當其在網絡中有冗余時,如何以不會導致循環的方式轉發數據包?

有利的是,第三層網絡具有所謂的路由協議,例如BGP、OSPF、IS-IS和Cisco的EIGRP。其路由協議支持構建無環路轉發拓撲。

第二個方面是IP報頭中稱為生存時間(TTL)的字段。每次數據包遍歷第三層設備時,TTL減1。一旦TTL變為零,數據包就會被丟棄。

因此,在第三層網絡設計中,有兩種機制來防止環路的形成。首先是IP報頭中的TTL字段,其次是為給定前綴構建無環路轉發路徑的路由協議。但是在第二層網絡中,人們并不擁有這樣的機制。

第二層網絡易用性模型

第二層網絡模型圍繞易用性模型構建。在早期,路由協議被認為使用比較復雜。配置路由協議被認為是復雜的硬件數據包交換,因此從第二層網絡開始,吞吐量更高,延遲更低。,即使到今天,大多數供應商還要收取使用路由的額外許可費,但第二層網絡沒有這種費用。第二層網絡的引入遵循了完整的易連接性。

然而,第二層網絡模型也有一些非常危險的缺點。第二層網絡模型沒有可以構建無環路轉發路徑協議。相反,它基于洪水泛濫。實質上,如果第二層網絡交換機不知道目標MAC地址,它會將數據包溢出到數據包所在端口以外的所有端口,然后記錄源MAC地址。

需要在第二層網絡中具有冗余,以便單個故障域不會導致網絡分區或節點被黑洞化。為了避免這些問題,網絡需要冗余路徑。

但是,如果沒有生存時間(TTL)或機制來為給定前綴構建無環路轉發路徑,則循環可能導致數據包永遠循環。它只是淹沒數據包,在冗余路徑的情況下,被淹沒的數據包可能導致完全的網絡崩潰。

防止第二層網絡中的環路

為了防止第二層網絡環路,引入了生成樹協議(STP)。生成樹查看所有冗余路徑,然后刪除它們。

生成樹協議構建了一個適用于網絡中每個數據包的無環路拓撲,這與為每個源路由器構建無環路拓撲的路由協議不同。

供應商引入了各種技巧,使生成樹的執行效率更高,但導致網絡不穩定的基本部分是洪水泛濫。它導致終端站遭受損失,這成為了DoS攻擊的可能性。

關閉失敗或打開失敗

路由協議未能關閉。如果路由協議不知道如何到達目的地,它將不會將數據包發送到該目的地。

但是,生成樹協議執行相反的操作并且無法打開。生成樹的構建方式是:“如果我沒有收到你的回復,那么我認為你需要一個我的數據包。如果我沒有聽到你的問候,這與后面的路由協議形成對比,我認為你不想和我通信。”

打開失敗在很多方面都是危險的。例如,導致單向連接的壞電纜或者加載的CPU無法及時發出hello數據包,可能會構造一個環路。通過路由,TTL最終將終止數據包,從而阻止環路。但是,由于第二層網絡中沒有TTL,因此固有地創建了一個不穩定的網絡。

第二層網絡具有較大的擴散半徑,并且沒有細粒度的故障域。單個鏈路故障可能會影響整個網絡。所有這些因素都認為第一次網絡浪潮的數據中心設計無效。更簡潔的設計是從第二層網絡交換模型轉向IP和網絡路由協議。

數據中心設計的第二個發展浪潮

第二個發展浪潮的數據中心設計是構建可擴展的網絡,這些網絡是可預測的、強大的、并支持細粒度的故障域設計。除了有效支持東西流量以外,還需要盡可能多的轉發能力。屏蔽雙絞線(STP)阻止了額外帶寬的使用,因此必須使用替代協議。

這一挑戰與20世紀50年代早期的電話網絡面臨的挑戰沒有什么不同。貝爾實驗室Charles Clos博士采用Clos網絡拓撲解決了這個問題。Clos網絡拓撲可以擴展到多個層。其開創性的網絡規模公司使用具有低端口數的小型白盒交換機,因此它們需要8層Clos網絡。但是,對于大多數人來說,兩層就已經足夠好。

數據中心設計的新浪潮被稱為葉片和葉脊,它本質上是一個Clos網絡。該設計允許人們構建不受單個單元規模限制的網絡。但是,如果你想到第二層網絡,那么規模就受到限制。

容量不僅受端口數量的控制,還受控制平臺的控制。此外,重要的是它能夠以多快的速度發送STP數據包,而不會有引起網絡崩潰的風險。然而,葉片網絡和葉脊網絡拓撲通過利用所有冗余鏈路的容量來實現高容量。使用此拓撲結構可以完美地實現IP和路由,因為它不需要特定于供應商的障礙。

因此,通過切換到IP,第二層網絡的不穩定性消失,可以實現具有IP轉發的高容量直接網絡。葉片和葉脊網絡拓撲設計提供了非常簡單的構建塊。

遷移到白盒

所以現在,有機會建立非常簡單的IP轉發網絡。然而,行業巨頭當時進行了部署,例如思科或瞻博網絡,由于網絡拓撲現在非常簡單,因此不需要支付高額費用。

所需要的只是IP路由和轉發協議。其結果是人們開始看到白盒交換機的介紹。最初,白盒交換機并沒有采用很好的CPU,因此,像谷歌這樣的公司無法在它們上面運行路由協議。所有控制邏輯的集中化都是開箱即用的,使本地設備只對商用芯片進行編程。這導致了OpenFlow模型的興起。

隨著時間的推移,其他網絡規模公司設計了傳統的分布式路由協議來設置轉發而不是將其拉出到集中位置。

具有葉片和葉脊體系結構的路由協議

首先,有兩種類型的路由協議:距離矢量和鏈路狀態。要了解它們之間的區別,人們需要知道它們如何傳達信息。

通過距離矢量,可以告訴鄰居對整個世界的看法。然而,鏈接狀態協議通過將每個人的局部視角拼接在一起來拼湊成全局視角。

通常,網絡運營商更喜歡距離矢量上的鏈路狀態協議。這是因為在出現故障時,鏈路狀態協議更好更快解析到目的地的路徑。然而,距離矢量協議有時會混淆并遇到問題,例如計數到無窮大。

但是,在鏈接狀態的情況下,鏈接狀態數據庫規模可能成為問題。它們具有區域或級別的概念,用于將域分解為層次結構以避免擴展問題。

邊界網關協議(BGP)是一種距離向量的變體,稱為路徑向量協議。邊界網關協議(BGP)運行全球互聯網,并且操作簡單,卻是一種復雜成熟的協議,可能需要路由協議的所有部署和操作經驗。它可以通過多種方式實現,其中包括開源路由套件。

數據中心設計的第三次發展浪潮

然而,仍然存在的問題是應用程序假設它們存在于原有的第一次發展浪潮模型中。應用程序假設他們在一個層中運行,他們通過廣播“hello”,可以與鄰居中的每個人交談。

但是,通過路由廣播“hello”,數據包被抑制并被丟棄。在第一次發展浪潮期間設計的應用仍然希望在原有基礎設施中那樣運行,即使它們處于第二次發展浪潮數據中心設計中。他們仍然需要廣播“hello”,而不是采用服務發現的記錄DNS。

其結果是,需要找到一種方法將第一次發展浪潮應用與第二次發展浪潮的數據中心相結合,從而產生以太網虛擬專用網絡(EVPN)。它仍然圍繞fabric的概念構建,但它是使用疊加層構建的。疊加層給出了第一次發展浪潮應用程序位于第二層網絡中的錯覺。

網絡虛擬化

網絡虛擬化是用于產生上述錯覺的技術,并且通過分層(即創建覆蓋)來執行。

網絡虛擬化構建了一個網絡隧道,它與真實世界的隧道完全相同。除非以某種方式繞過或穿過隧道,否則現實世界隧道兩端的兩個端點無法通信。

在網絡中構建隧道的方式基本上是通過向現有數據包添加另一層報頭來完成的。通常,眾所周知的層是多協議標簽交換(MPLS),其是IP分組上的層。然而,多協議標簽交換(MPLS)在數據中心中是復雜的,這就導致了需求,為什么不使用基于IP的技術?這產生了虛擬可擴展LAN(VXLAN)。

那么進行一下總結:在第二層網絡中,我們有一個生成樹協議(STP)的控制平臺和使用路由協議的第三層網絡。在這里想到的問題是,什么樣的控制面板可以用于VXLAN?實質上,虛擬可擴展LAN(VXLAN)的控制協議需要做兩件事。首先,哪些端點可用于隧道,即目的地到隧道的映射,其次,它需要告訴你在哪里以及有多少個隧道。以太網虛擬專用網絡(EVPN)就是答案。

為了創建錯覺,邊界網關協議(BGP)作為協議已經支持MAC可達性信息的傳輸,而不僅僅是IP地址。在以太網虛擬專用網絡(EVPN)內,邊界網關協議(BGP)是用于構建虛擬隧道的控制平臺協議,使第一次發展浪潮的應用能夠在第二次發展浪潮的網絡上運行。