乙太網虛擬專用網路在現代資料中心的興起
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)是用於構建虛擬隧道的控制平臺協議,使第一次發展浪潮的應用能夠在第二次發展浪潮的網路上執行。