用于軟件定義數(shù)據(jù)中心網(wǎng)絡(luò)中動態(tài)多徑轉(zhuǎn)發(fā)的方法和設(shè)備的制造方法
【專利說明】用于軟件定義數(shù)據(jù)中心網(wǎng)絡(luò)中動態(tài)多徑轉(zhuǎn)發(fā)的方法和設(shè)備
【背景技術(shù)】
[0001] 本申請總體上涉及一種改進的數(shù)據(jù)處理設(shè)備和方法,更具體地講,涉及用于軟件 定義的數(shù)據(jù)中心網(wǎng)絡(luò)中的動態(tài)多徑轉(zhuǎn)發(fā)的機制。
[0002] 軟件定義的聯(lián)網(wǎng)(SDN)是一種允許網(wǎng)絡(luò)管理員通過低級功能的提煉來管理網(wǎng)絡(luò) 服務(wù)的計算機聯(lián)網(wǎng)的方案。這是通過使決定通信量被發(fā)送到哪里的系統(tǒng)(控制面)與將通 信量轉(zhuǎn)發(fā)到所選擇的目的地的底層系統(tǒng)(數(shù)據(jù)面)分離來實現(xiàn)的。利用SDN,網(wǎng)絡(luò)智能和狀 態(tài)在邏輯上被集中,并且從應(yīng)用提煉底層網(wǎng)絡(luò)基礎(chǔ)設(shè)施。
[0003] SDN需要用于使控制面與數(shù)據(jù)面進行通信的一些機制。一個這樣的機制 OpenFlow(開放流)是專門為構(gòu)造所支持的網(wǎng)絡(luò)裝置的控制面和數(shù)據(jù)面之間的通信的SDN 而設(shè)計的標準接口。OpenFlow允許直接訪問并且操縱網(wǎng)絡(luò)裝置(例如,物理的和虛擬的(基 于管理程序的)交換機和路由器)的轉(zhuǎn)發(fā)面。OpenFlow協(xié)議定義了可以由外部軟件應(yīng)用用 來對網(wǎng)絡(luò)裝置的轉(zhuǎn)發(fā)面進行編程的基礎(chǔ)基元,類似于處理器的指令集。
[0004] 基于可以由SDN控制軟件靜態(tài)地或動態(tài)地編程的預(yù)定義的匹配規(guī)則,OpenFlow使 用流的概念來識別網(wǎng)絡(luò)通信量。由于OpenFlow允許在非常細粒度匹配的基礎(chǔ)上對網(wǎng)絡(luò)進 行編程,所以基于OpenFlow的SDN架構(gòu)提供了極端粒度控制,使得網(wǎng)絡(luò)能夠?qū)υ趹?yīng)用級別、 用戶級別和會話級別的實時變化做出響應(yīng)。
【發(fā)明內(nèi)容】
[0005] 在一個說明性實施例中,提供一種在數(shù)據(jù)處理系統(tǒng)中的用于在軟件定義的網(wǎng)絡(luò)中 進行動態(tài)多徑轉(zhuǎn)發(fā)的方法。該方法包括:識別用于流的多轉(zhuǎn)發(fā)路徑的集合。流的每個包由 源端點發(fā)出并且具有與目的地端點對應(yīng)的真實目的地地址。該方法還包括:為多轉(zhuǎn)發(fā)路徑 的集合中的每個多轉(zhuǎn)發(fā)路徑分派虛擬目的地地址。該方法還包括:將基于虛擬目的地地址 的轉(zhuǎn)發(fā)規(guī)則安裝在每個多轉(zhuǎn)發(fā)路徑的交換機中,并且將重寫規(guī)則安裝在多轉(zhuǎn)發(fā)路徑的集合 中的所有路徑的出口交換機中。每個重寫規(guī)則將虛擬目的地地址之一重寫為真實目的地地 址。該方法還包括:配置入口交換機,以基于路徑選擇策略動態(tài)地從多轉(zhuǎn)發(fā)路徑的集合中 選擇路徑,并且將目的地地址從真實目的地地址重寫為與選擇的路徑對應(yīng)的虛擬目的地地 址。
[0006] 在其它說明性實施例中,提供一種包括具有計算機可讀程序的計算機可用或可讀 介質(zhì)的計算機程序產(chǎn)品。當(dāng)在計算裝置上執(zhí)行所述計算機可讀程序時,所述計算機可讀程 序使計算裝置執(zhí)行以上參照方法說明性實施例概述的操作中的各個操作以及以上參照方 法說明性實施例概述的操作的組合。
[0007] 在另一個說明性實施例中,提供一種系統(tǒng)/設(shè)備。該系統(tǒng)/設(shè)備可包括:一個或多 個處理器;和存儲器,該存儲器耦合到所述一個或多個處理器。存儲器可包括指令,當(dāng)由所 述一個或多個處理器執(zhí)行所述指令時,所述指令使所述一個或多個處理器執(zhí)行以上參照方 法說明性實施例概述的操作中的各個操作以及以上參照方法說明性實施例概述的操作的 組合。
[0008] 考慮到下面對本發(fā)明的示例性實施例的詳細描述,將會描述本發(fā)明的這些和其它 特征和優(yōu)點,或者本發(fā)明的這些和其它特征和優(yōu)點將會對于本領(lǐng)域普通技術(shù)人員而言變得 清楚。
【附圖說明】
[0009] 當(dāng)結(jié)合附圖閱讀時,通過參照下面對示例性實施例的詳細描述,將會最好地理解 本發(fā)明以及優(yōu)選的使用模式及其另外的目的和優(yōu)點,其中:
[0010] 圖1描述可實現(xiàn)說明性實施例的各方面的示例性分布式數(shù)據(jù)處理系統(tǒng)的圖形表 示;
[0011] 圖2是可實現(xiàn)說明性實施例的各方面的示例性數(shù)據(jù)處理系統(tǒng)的框圖;
[0012] 圖3是可實現(xiàn)說明性實施例的各方面的示例性軟件定義的網(wǎng)絡(luò)的框圖;
[0013] 圖4表示根據(jù)說明性實施例的源和目的地之間的多個端對端路徑;
[0014] 圖5表示根據(jù)說明性實施例的多徑規(guī)則安裝;
[0015] 圖6表示可實現(xiàn)示例性實施例的各方面的開放虛擬交換機(Open vSwitch);以及
[0016] 圖7是表示根據(jù)說明性實施例的用于在軟件定義的數(shù)據(jù)中心網(wǎng)絡(luò)中進行動態(tài)多 徑轉(zhuǎn)發(fā)的機制的操作的流程圖。
【具體實施方式】
[0017] 說明性實施例提供一種用于在軟件定義的數(shù)據(jù)中心網(wǎng)絡(luò)中進行動態(tài)多徑轉(zhuǎn)發(fā)的 機制。以太網(wǎng)包的轉(zhuǎn)發(fā)需要網(wǎng)絡(luò)中的交換機具有用于指定向什么方向發(fā)送傳入的包的匹配 規(guī)則。軟件定義的聯(lián)網(wǎng)(SDN)引入了從邏輯地集中的控制器計算并安裝這些規(guī)則的概念。 如果每個流僅被允許一個路徑,則這引起低效率。
[0018] 多徑傳輸設(shè)立源和目的地之間的多個轉(zhuǎn)發(fā)路徑,并且允許給定包從可用的多個路 徑的集合中挑選。這引入了確定如何高效地將這些多個路徑用于在源目的地對之間轉(zhuǎn)發(fā)包 的問題。使用按照包的多徑傳輸,可以獨立地在不同路徑上潛在地發(fā)送給定流中的每個包。 由于可能因為路徑延時的差異而在目的地發(fā)生的包重新排序開銷,按照包的多徑傳輸通常 更加昂貴并且更加難以在面向連接的網(wǎng)絡(luò)中實現(xiàn)。另一方面,當(dāng)使用按照流的多徑傳輸時, 可以在不同路徑上潛在地發(fā)送每個流,但是來自給定流的所有包保持在單個路徑上以保留 流中的包次序。按照流的多徑傳輸通常是優(yōu)選的多徑傳輸方案,對于數(shù)據(jù)中心網(wǎng)絡(luò)而言尤 其如此,因為數(shù)據(jù)中心內(nèi)部的通信量的99. 9%使用傳輸控制協(xié)議(TCP)、即面向連接的協(xié) 議。
[0019] 當(dāng)前數(shù)據(jù)包(或簡單地稱為"包")的轉(zhuǎn)發(fā)需要數(shù)據(jù)網(wǎng)絡(luò)中的交換機具有用于指 定向什么方向發(fā)送傳入的包的匹配規(guī)則,例如,在每個交換機處確定通過交換機的哪個端 口發(fā)送包。軟件定義的聯(lián)網(wǎng)(SDN)架構(gòu)允許從邏輯地集中的控制器計算并安裝這些匹配規(guī) 貝1J。在OpenFlow協(xié)議下,匹配規(guī)則是基于12元組(OpenFlow允許基于12個頭字段安裝 匹配規(guī)則)的。OpenFlow中的字段的匹配可以是顯式匹配或通配符匹配。通配符匹配意 味著交換機不關(guān)心什么值位于指定字段中。顯式匹配是二元匹配,即匹配或不匹配。雖然 OpenFlow協(xié)議支持安裝具有包頭字段的非常細粒度匹配的規(guī)則,但總體靈活性受到交換機 中的可以存儲細粒度轉(zhuǎn)發(fā)狀態(tài)的可用貯存器的限制。細粒度轉(zhuǎn)發(fā)規(guī)則通常被安裝在三元內(nèi) 容可尋址存儲器(TCAM)中。
[0020] 在當(dāng)前交換機中,TCAM是具有非常有限的存儲容量的珍貴資源(例如,交換機僅 可提供對750-1K匹配規(guī)則的支持),因為TCAM需要SRAM的6-7x的芯片面積以保存相同信 息。當(dāng)前交換機硬件中的TCAM受到限制,因為它們被設(shè)計為實現(xiàn)策略規(guī)則(諸如,訪問控 制和服務(wù)質(zhì)量(QoS))而不是基礎(chǔ)轉(zhuǎn)發(fā)。OpenFlow使得硬件能夠允許靈活地使用TCAM實現(xiàn) 任何細粒度規(guī)則。然而,由于TCAM尺寸限制,實際的實現(xiàn)方式被迫使用更粗粒度匹配規(guī)則 和規(guī)則聚合技術(shù),因此無法提供由SDN意在使用的細粒度動態(tài)聯(lián)網(wǎng)控制。
[0021] 另一方面,僅在目的地地址(例如,目的地媒體訪問控制(DMAC)地址)上匹配的 匹配規(guī)則可被存儲在較便宜的更高容量存儲裝置(諸如,靜態(tài)隨機存取存儲器(SRAM)、二 元內(nèi)容可尋址存儲器(CAM)等)中。當(dāng)前交換機硬件包含允許基于DMAC頭字段的匹配和 轉(zhuǎn)發(fā)的非常大的表。因此,盡管基于目的地地址的匹配規(guī)則也是粗粒度規(guī)則,但這些類型的 規(guī)則中的許多規(guī)則可被存儲在較便宜的更高容量存儲裝置中。
[0022] 將多個路徑用于轉(zhuǎn)發(fā)包的問題的當(dāng)前解決方案包括等成本多徑傳輸(ECMP)和多 鏈路透明互連(TRILL)。在網(wǎng)絡(luò)層堆棧中,第一層Ll是物理層,L2是鏈路(例如,以太網(wǎng)) 層,并且L3是網(wǎng)絡(luò)(例如,IP)層。ECMP通常被實現(xiàn)在L3層,其中L2交換機使用因特網(wǎng)協(xié) 議(IP)地址與路由器連接。ECMP路由方案允許下一跳躍路由發(fā)生在多個等成本路徑處。 另一方面,TRILL是L2層多徑解決方案,但需要專門硬件交換機支持。另外,當(dāng)前多徑解決 方案在按照跳躍的基礎(chǔ)上做出轉(zhuǎn)發(fā)決定,這在端對端方面不是高效的。
[0023] 說明性實施例利用當(dāng)前硬件在L2提供端對端多徑傳輸機制。該機制使得能夠利 用按照流的多徑傳輸在軟件定義的網(wǎng)絡(luò)中進行多徑轉(zhuǎn)發(fā)的高效實現(xiàn)方式。該機制找到用于 源目的地對的多轉(zhuǎn)發(fā)路徑的集合,并且為每個路徑分派虛擬目的地媒體訪問控制(MC)地 址(在這里被稱為vMAC)。然后,該機制將基于虛擬目的地的轉(zhuǎn)發(fā)規(guī)則安裝在每個路徑的 交換機中。該機制還將所有路徑的虛擬MAC(vMAC)到真實MAC重寫規(guī)則安裝在出口交換機 中。然后,該機制配置入口交換機,以基于多徑策略動態(tài)地選擇流中的每個包的目的地MC 地址并且將流中的每個包的目的地MAC地址重寫為虛擬MAC (vMAC)地址之一。
[0024] 說明性實施例可被用在許多不同類型的數(shù)據(jù)處理環(huán)境中。為了提供用于描述說明 性實施例的具體元件和功能的上下文,以下提供圖1和圖2作為可實現(xiàn)說明性實施例的各 方面的示例性環(huán)境。應(yīng)該理解,圖1和圖2僅是例子,而不是旨在斷言或暗示關(guān)于可實現(xiàn)本 發(fā)明的各方面或各實施例的環(huán)境的任何限制??稍诓幻撾x本發(fā)明的精神和范圍的