魏月華 陳曉 張征

摘要:受計算規模的驅動,數據中心物理拓撲從接入-匯聚-核心三級網絡架構演進到基于Clos的Spine-and-Leaf架構。計算資源的基本單位經歷了物理服務器、虛擬機、容器化3個階段。數據中心底層(underlay)連接協議逐步從以二層協議為主演進到以IP路由協議為主。但傳統路由協議存在可擴展性、拓撲可見性、自動化部署能力等諸多問題。結合鏈路狀態和距離矢量的胖樹路由協議,解決了超大規模數據中心部署的痛點問題,有望逐漸成為超大規模數據中心底層網絡的主流技術。
關鍵詞:Spine-and-Leaf;路由;數據中心
Abstract: Driven by the scale of computing, the physical topology of the data center has evolved from an access-aggregation-core three-level network architecture to a Closbased Spine-and-Leaf architecture. The basic unit of computing resources has gone through three stages: physical server, virtual machine, and containerization. The underlay connection protocol of the data center has gradually evolved from layer 2 protocol to IP routing protocol. However, traditional routing protocols have many problems, such as scalability, topology visibility, and automated provision capabilities. The fat-tree routing protocol, which combines link state and distance vector, solves the pain points of ultralarge-scale data center deployment, and is expected to gradually become the mainstream technology for ultra-large-scale data center underlay networks.
Keywords: Spine-and-Leaf; routing; data center
1 接入-匯聚-核心三級網絡架構協議方案演進
受計算規模的驅動,數據中心的網絡架構和解決方案,在過去20年里發生了很大變化。總的來說,數據中心物理拓撲從接入-匯聚-核心三級網絡架構演進到基于Clos的Spine-and-Leaf架構。計算資源的基本單位經歷了從物理服務器到虛擬機再到容器化3個階段。
在物理服務器階段,應用直接在物理服務器上運行,數據中心物理拓撲為經典的接入-匯聚-核心三級網絡架構,整張網絡采用二層協議互聯,應用訪問模式為客戶端-服務器模式,并且南北向流量遠大于東西向流量。其中,南北向流量在核心交換機處理,數據中心內跨網段需要經過核心交換機,內部子網的網關一般也配置在核心。在這種模型中,由于節點之間的通信都可能經過核心,因此核心交換機需要記錄所有節點的互聯網協議(IP)和介質訪問控制(MAC)地址信息。在這種網絡方案中,與計算節點規模相關的瓶頸最可能出現在核心交換機中。
2008年,傳統的數據中心逐步演進到云計算時代的數據中心。云計算時代計算資源的基本單位從物理機變成了虛擬機。計算資源的數量和密度都有數量級的提高。應用廣泛采用微服務訪問模式。這種模式帶來的網絡變化是:東西向流量超過南北向流量,成為數據中心的主要流量。
隨后,網絡虛擬化應運而生。數據中心網絡中的每個宿主機都運行一個虛擬交換機(vSwitch)。虛擬交換機向上連接物理交換機,向下連接多個虛擬機。網絡的邊界從原來的接入交換機(置頂交換機)層,下沉到宿主機內部。這使得整張網絡變成一個大的二層網絡。在這個大二層網絡內,虛擬機生命周期內的IP地址和MAC地址均保持不變。對于同網段的虛擬機,不管它們是否在同一臺宿主機上,彼此都能夠通過二層(MAC地址)訪問對方。此時,核心交換機不僅需要記錄宿主機的IP/MAC信息,還需要記錄所有虛擬機的IP/MAC信息,以便支持虛擬機全網可遷移。
2016年以后,數據中心進入大規模容器時代。容器也被稱為輕量級虛擬機,可進一步提高部署密度。虛擬機與容器的最大區別在于:虛擬機平臺交付的是虛擬機實例,抽象的是計算資源,而容器平臺交付的是服務,訪問入口為服務的IP地址,同時服務屏蔽了計算資源的細節(如虛擬機實例的IP地址或MAC地址)。
當把虛擬機換成容器后,考慮到容器的部署密度,如果繼續采用大二層模型,交換機轉發表容量將會成為網絡瓶頸。為此,在每個服務器節點內可用虛擬路由器(vRouter)替換虛擬交換機。一個虛擬路由器管理一個網段。服務器域內是一個二層網絡。服務器節點運行邊界網關協議(BGP) 代理,并負責節點之間或者節點和數據中心網絡之間的路由同步。核心交換機只需要記錄服務器節點本身的IP和它所管理的網段。表項與服務器的數量保持同一量級,但與容器的數量沒有關系。
因此,數據中心網絡擁有一個在三層網絡下有無數個小二層網絡的架構,如圖1所示。這種以三層路由為主的數據中心協議架構,可以滿足現代數據中心規模不斷擴大和服務器數量不斷增加的需求。
2 帶寬與流量模型的變化
傳統數據中心的流量主要是進出數據中心的流量,通常被稱為南北向流量。即使在網絡層之間存在很高的收斂比,傳統的“樹”拓撲也足以容納這樣的流量。如果需要更多的帶寬,則可以通過“擴展”網絡元素來增加帶寬。例如,升級設備的線路板,或者采用端口密度更高的設備。
如今,許多大型數據中心承載著大量服務器到服務器的流量。這些流量并不會離開數據中心,通常被稱為東西向流量。例如,某些應用程序需要集群之間的海量數據進行復制,或者需要虛擬機進行遷移。由于受到物理限制(例如交換機的端口密度低),采用擴展傳統的樹形拓撲來滿足帶寬需求的方式,不僅成本很高,而且難以實現。
3基于Clos的Spine-and-Leaf結構演進
東西向流量的增加使三層數據中心架構中的帶寬成為瓶頸。此外,服務器到服務器的延遲會隨著流量路徑的不同而不同。為了解決這兩個問題,基于Clos網絡的Spine-and-Leaf架構被提出。
在如圖2所示的三級Clos架構中,每個低層級的leaf交換機都與所有高層級的spine交換機相連,并形成全網狀連接拓撲。leaf交換機用于連接服務器等設備,spine層則負責將所有的leaf連接起來。當leaf 層的接入端口和上行鏈路都沒有瓶頸時,這個架構就實現了無阻塞連接。
在Spine-and-Leaf架構中,任意一個服務器到另一個服務器的連接,都需要相同數量的設備(除非這兩個服務器都在同一個leaf下)。這使得延遲可以被預測。由于東西向帶寬更高,因此它更適合現代微服務的場景。
當Spine-and-Leaf中任意一層存在帶寬瓶頸時,只需要添加一臺新設備,并將其和另外一層的所有設備相連即可。這種橫向擴展的方法比較容易實施。
4 數據中心協議的選擇與設計
4.1 選擇三層路由的Spine-and-Leaf架構
Spine-and-Leaf結構相當于傳統網絡架構中的“接入層-匯聚層”。如果采用二層交換技術,則生成樹協議(STP)生成的無環樹形結構會大大減少活躍可用的鏈路。
如果采用三層路由,Spine-andLeaf則可以充分利用spine和leaf之間的全網狀連接,并選擇最短路徑。如果為了獲得更高的整體利用率,該架構也可以選擇特定的路徑。
4.2 BGP路由協議部署技術與特征[1-2]
BGP在應用于數據中心之前,主要用于運營商網絡。BGP數據中心與運營商網絡最大的區別在于連接的密度:超大型數據中心的連接密度遠大于運營商網絡的連接密度。因此,BGP協議在應用于數據中心之前需要經過適當的“改造”。
BGP協議具有一些突出優勢,主要包括:
(1)作為距離矢量協議,BGP采用傳輸控制協議(TCP),互操作性好,總體上很成熟,目前已經獲得廣泛應用。設備商和各種開源平臺都實現了BGP部署,并獲得了良好的測試結果。
(2)由于BGP本身在廣域通信網絡上是一個廣泛部署的路由協議,因此,從技術和運維的角度上看,將BGP應用于超大規模數據中心網絡具有很高的接受度;
(3)相比于其他內部網關路由協議,BGP具有較高的可擴展性;
(4)BGP協議有諸多前綴過濾、路由標記和流量工程的能力選項,在過濾、修改路由參數和控制流量方面具有優勢;
(5)BGP可以同時用于底層(underlay)網絡和疊加(overlay)網絡。通常在這種情況下,底層網絡使用外部BGP(eBGP)對等體,疊加網絡使用內部BGP(iBGP)對等體。這使得網絡的整體配置變得更簡單。
BGP協議作為數據中心的底層也面臨一些挑戰,具體包括:
(1)由于BGP協議具有易于擴展的特性,BGP上逐步增加的多地址族、以太網虛擬專用網(EVPN)、虛擬專用局域網業務(VPLS)、 BGP鏈路狀態(BGP-LS)等能力,使得BGP協議變得非常復雜。雖然可以通過一些開關來關閉這些功能,但是實際上仍無法避免實現BGP功能的軟件代碼漏洞和錯誤配置等問題;
(2)BGP協議在自動化能力方面不足以滿足大規模數據中心的需求;
(3)在數據中心fabric中的高密度拓撲中,需要大量專業的手動配置來使BGP快速收斂。例如,當流量從fabric上的一個位置移動到另一位置,或者當由anycast地址代表的一個服務實例從fabric上被刪除時,BGP收斂時間會很長。這將影響在fabric上正常運行的應用。
4.3鏈路狀態路由協議的演進[3]
自RFC 7938(在大規模數據中心路由中使用BGP的標準)發布起, BGP幾乎成了大規模數據中心的缺省選擇??紤]到標準和部署的多種因素(如收斂速度、數據遙測等),業界提出在數據中心fabric中采用鏈路狀態路由協議來代替BGP協議。
在超大規模數據中心采用鏈路狀態路由協議的最大的挑戰是,存在用于可達性計算和拓撲計算的路由信息洪泛問題。目前,國際互聯網工程任務組(IETF)正在針對中間系統到中間系統(IS-IS)開展洪泛優化和集中計算優化泛洪樹的工作。
在數據中心fabric中,與BGP協議相比,鏈路狀態協議具有收斂速度快的優點。當一個可達目的地在fabric中從一個地方移動到另一個地方,或者完全從fabric上斷開時,鏈路狀態協議的收斂速度將遠快于BGP的收斂速度。從IS-IS的角度來看,任何可達目標的更改都只是葉子連接的更改。這意味著系統無須運行最短路徑優先(SPF)算法。這種方法被稱為部分SPF。它的速度非常快,并且每個交換矩陣設備只需要進行最少量的處理。
與數據中心結構中的BGP相比,鏈路狀態協議的第二個優勢是拓撲可見性。鏈路狀態協議要求每個設備都擁有維護拓撲的完整視圖。該拓撲(稱為鏈接狀態數據庫)必須與網絡洪泛域中的每個路由器同步。在使用控制器時,為了獲得鏈路狀態數據庫的副本,鏈路狀態協議僅需要連接光纖網絡中的一個路由器。鏈接狀態數據庫對于流量工程和流量導流很有用,也有利于做數據遙測。
數據中心結構中鏈路狀態協議面臨的第一個挑戰是擴展問題,這主要與消息洪泛有關。由于消息量大,鏈路狀態協議會在大型結構中造成嚴重的洪泛。
此外,鏈路狀態協議還面臨另外兩個挑戰:存在可達目的地數量的擴展性問題和計算無環路徑集SPF算法所需的時間較長的問題。通過更快的處理器和SPF優化,雖然不能使鏈路狀態協議的擴展性達到BGP的級別,但是足以支持運營商構建大部分的數據中心結構。
4.4胖樹路由協議特征分析[4-6]
業界對數據中心fabric中路由技術的探索從未停止。針對基于Clos網絡的Spine-and-Leaf結構,IETF啟動了結合距離矢量路由與鏈路狀態路由的胖樹路由協議的標準化工作。
胖樹路由協議可將鏈路狀態協議和距離矢量協議的優點結合起來,以最大程度地實現網絡路由配置自動化和故障管理自動化,并用于Spineand-Leaf結構的大規模數據中心中。胖樹路由協議支持多線程,可匹配多核CPU的處理能力。因此,胖樹路由協議可以極大地節省操作和運維成本,并減少人為錯誤。
4.4.1拓撲適用性分析
如前所述,在數據中心進入云計算時代以后,東西向流量就超過了南北向流量,成為數據中心的主要流量。東西向流量在虛擬服務器與虛擬服務器之間,以及容器與容器之間的轉發,本質上還是在胖樹的北向與南向運動。只不過東西向流量的轉發是最大程度的就近轉發。
流量從Spine-and-Leaf結構底部的leaf節點向北到達結構的頂部,然后向南回到leaf節點。從所需的可達性信息角度來看,這種服務器到服務器的流量模式,所需的可達信息很少。例如,在三級Clos中,leaf節點流量僅需要默認路由即可到達spine節點。同時spine節點流量不需要整個路由表即可到達leaf節點,只需要向南一級的節點可達信息。因此,胖樹路由協議具有方向特性,具體表現為:向北為鏈路狀態協議,向南則為距離矢量協議。
胖樹結構(Spine-and-Leaf結構)天然分層:結構頂部的節點保持在最高級別,而底部節點(leaf節點)保持在最低級別。胖樹路由協議用方向性來描述拓撲中不同級別之間的關系,并利用拓撲的這種特性,通過零接觸部署(ZTP)功能進行錯誤布線檢測。另外,這種協議在設計時也考慮了容錯性,因此能夠應對胖樹結構的變異,比如同一層節點之間的水平鏈路或跨層的垂直直連鏈路。
4.4.2 拓撲發現
胖樹路由協議通過交換鏈路信元(LIE)自動發現鄰居,協商ZTP,并檢測錯誤布線。LIE交換采用用戶數據報協議(UDP),并且將互聯網協議第4版(IPv4)報文中的生存時間值(TTL)(或互聯網協議第6版報文中的Hoplimit)設置為1。LIE包含的關鍵信息有本地鏈路ID、SystemID、最大傳輸單元(MTU)、本地節點的交付點(PoD)值、所屬層值等。
胖樹路由協議通過交換拓撲信元來攜帶一個節點連接的鄰居、前綴和能力等信息。由于胖樹路由協議具有方向特性,拓撲信元可分為北拓撲信元和南拓撲信元。
無論是南拓撲信元還是北拓撲信元,拓撲信元都包括6種類別:節點拓撲信元、前綴拓撲信元、積極解聚合拓撲信元、消極解聚合拓撲信元、外部前綴拓撲信元和鍵值拓撲信元。
拓撲信元交換(洪泛)采用UDP協議,具有方向性。所有的北拓撲信元都是向北洪泛的,目的在于為更高層提供以南網絡的完整拓撲視圖。這可以保證從特定層節點(或低于特定層節點)收到的流量始終采用最具體的路由來到達目的節點。
所有南節點拓撲信元都被往南泛洪,而其他類型的南拓撲信元僅往南泛洪本節點為發起者的拓撲信元。這樣,低一級的節點就會擁有去往上層節點所需要的路由信息。這些信息也可以到達fabric的其他地方。
胖樹路由協議采用類似IS-IS協議的方式來保持鏈路狀態數據庫的同步。在計算最短路徑時,胖樹路由協議也是基于南向或北向的。兩個方向的最短路徑算法都不會產生環路:往北向的最短路徑算法只利用北向(和東西向)鄰居來計算“北拓撲信元”,往南向的最短路徑算法只利用南向鄰居來計算“南拓撲信元”
4.4.3負載均衡
IP網絡中的負載均衡一直是個難題。BGP負載均衡實施困難,而內部網關協議(IGP)僅能做到等價路徑負載均衡。在胖樹路由協議中,負載均衡只需要在北向的缺省路由上來實現(也可以在解聚合前綴和南向路由上實現)。胖樹路由協議自動計算并繼續使用所有可用最短路徑上的可用帶寬,使流量不會在fabric中迂回打轉。
在正常情況下,每個前綴都帶有一個關聯的距離值(相當于典型的度量值)。當鏈路發生故障時,SPF計算必須考慮當前不可用的帶寬,并計算帶寬調整后的距離(BAD),然后使用BAD值來代替初始距離值,以評估可用鏈接上的流量。
4.4.4 南向反射與路由解聚合
這種反射機制是指,只有節點的南向拓撲信元會被往北反射到上一層。因此,同一層的所有節點都能夠相互感知對方。
反射機制可以觸發積極解聚合。為了解決流量黑洞問題,路由解聚合在發布缺省路由的基礎上,會再發布一個更詳細的路由。
解聚合包括兩種類型:積極的解聚合和消極的解聚合。節點發布積極路由表示它可以到達某個前綴。而當節點不能到達某個前綴時,則通告消極路由。不管是哪種情況,解聚合的路由總是被通告為前綴或外部南拓撲信元,并且永遠不會被重發。同時,其他節點不需要知道哪個節點正在發布解聚合的路由。
積極解聚合很簡單。它是一種額外的路由通告。這樣,南方的節點可以根據典型的最長匹配原則來進行路由布置,即胖樹路由在默認路由中為部分連接的前綴打一個洞。
積極解聚合是非傳遞性的,以免給節點增加無用的路由信息。對于未解聚合的前綴,默認路由將為其提供可達性。
消極解聚合相對比較復雜。當fabric包含多個平面時,消極解聚合就是必需的。當某個節點失去某前綴的可達性時,該平面中所有上一層的節點都會觸發消極解聚合。與積極路由不同,消極路由是可傳遞的。消極路由可以一直向南廣播,直到解除流量黑洞。
4.4.5 零接觸部署
胖樹路由協議內置了零接觸部署模式。除了ToF節點之外(ToF節點需要預先設定一個層值),其他節點無需任何初始化配置就可以自動接入fabric中。每個節點都以競爭在fabric中的最高點為原則。層決策算法利用相鄰節點之間的位置信息進行運算,以確保所有節點找到在fabric中的穩定位置,從而自動完成一個穩定的胖樹拓撲構建,并自動實現南向和北向路由策略。零接觸部署能力能夠有效消除可能的由錯誤布線對fabric構建產生的干擾。
零接觸部署是胖樹路由協議最突出的特性之一,對于提升超大規模數據中心網絡構建的效率意義重大。
5 結束語
在未來,BGP將繼續成為數據中心架構底層的重要選擇。它最終會具備一些鏈路狀態協議功能,例如更快的收斂和更接近自動化的部署。然而,BGP很難復制鏈路狀態協議的某些功能,例如從一個位置獲取整個拓撲的完整視圖。同時,BGP的收斂速度很可能總是落后于鏈路狀態協議。對此,IETF已經啟動改進鏈路狀態協議的標準化工作。但由于改動較大,同時協議復雜度較高,因此協議應用前景不明。胖樹路由協議可將鏈路狀態和距離矢量相結合:當數據報文沿fabric向上傳遞到ToF時,可采用類似鏈路狀態的操作;當數據報文向fabric的邊緣傳遞可達性和拓撲信息時,可采用類似距離矢量的操作。胖樹路由協議解決了現有路由協議在Spine-andLeaf IP結構中面臨的諸多問題,具有擴展性好、運維簡單的優點,可有效節省部署開銷。
中興通訊在IETF深入參與了胖樹路由協議的標準化工作。我們認為,胖樹路由協議有望成為超大規模數據中心底層網絡的主流技術。
參考文獻
[1] IETF. Use of BGP for routing in large-scale data centers: RFC 7938 [S]. 2016
[2] Dinesh G D. BGP in the data center [M]. California: OReilly Media, Inc. 2017
[3] IETF. Dynamic flooding on dense graphs: draftietf-lsr-dynamic-flooding-08 [S]. 2020
[4] IETF. RIFT: routing in fat trees: draft-ietf-riftrift-12 [S]. 2021
[5] IETF. RIFT applicability: draft-ietf-rift-applicability-06 [S]. 2021
[6] IETF. A YANG data model for Routing in Fat Trees(RIFT): draft-ietf-rtgwg-policy-model-27 [S]. 2021
作者簡介
魏月華,中興通訊股份有限公司承載網標準預研總工;擁有15年以上數據網絡產品研發、設計及新技術預研經驗;從事以太網、IP路由、云計算數據中心網絡、SDN等技術和標準研究;發表論文3篇,獲授權專利40余項。
陳曉,中興通訊股份有限公司有線架構部部長;長期從事電信產品和相關技術的研究規劃。
張征,中興通訊股份有限公司標準專家;擁有20年的數據網絡產品研發與設計經驗;從事IP單播/組播路由、數據中心網絡、SDN等技術與標準研究;主持多個IETF工作組標準的制定和RFC的發布;申請發明專利40余項。