確保經(jīng)由流偏轉(zhuǎn)的軟件定義的網(wǎng)絡(luò)的制作方法
【技術(shù)領(lǐng)域】
[0001]本公開一般地涉及通信網(wǎng)絡(luò),并且更具體但不排他地涉及提供在軟件定義的網(wǎng)絡(luò)(SDN)中的安全性。
【背景技術(shù)】
[0002]軟件定義的網(wǎng)絡(luò)(SDN)是一種計算機網(wǎng)絡(luò),在其中控制平面與數(shù)據(jù)平面分離。一般地,在SDN中,數(shù)據(jù)平面使用轉(zhuǎn)發(fā)單元(例如交換機、路由器等)來實現(xiàn),而控制平面使用與轉(zhuǎn)發(fā)單元分離的一個或多個控制單元(例如服務(wù)器等)來實現(xiàn)。
【發(fā)明內(nèi)容】
[0003]用于提供在軟件定義的網(wǎng)絡(luò)(SDN)中的安全性的實施例解決了現(xiàn)有技術(shù)中的多種缺陷。
[0004]在一個實施例中,裝置包括處理器和通信地連接到所述處理器的存儲器,其中所述處理器被配置以基于在SDN的第一網(wǎng)絡(luò)單元處的資源利用狀況的檢測,生成指示在SDN的第一網(wǎng)絡(luò)單元處接收的新的流請求的至少一部分將從SDN的第一網(wǎng)絡(luò)單元轉(zhuǎn)發(fā)到SDN的第二網(wǎng)絡(luò)單元的流轉(zhuǎn)發(fā)規(guī)則。
[0005]在一個實施例中,方法包括使用處理器來基于在SDN的第一網(wǎng)絡(luò)單元處的資源利用狀況的檢測,生成指示在SDN的第一網(wǎng)絡(luò)單元處接收的新的流請求的至少一部分將從SDN的第一網(wǎng)絡(luò)單元轉(zhuǎn)發(fā)到SDN的第二網(wǎng)絡(luò)單元的流轉(zhuǎn)發(fā)規(guī)則。
[0006]在一個實施例中,裝置包括處理器和通信地連接到所述處理器的存儲器,其中所述處理器被配置以基于指示在第一網(wǎng)絡(luò)單元處接收的新的流請求的至少一部分將從第一網(wǎng)絡(luò)單元轉(zhuǎn)發(fā)到第二網(wǎng)絡(luò)單元的流轉(zhuǎn)發(fā)規(guī)則,接收在SDN的第一網(wǎng)絡(luò)單元處的新的流請求,并且從所述第一網(wǎng)絡(luò)單元向SDN的第二網(wǎng)絡(luò)轉(zhuǎn)發(fā)所述新的流請求。
[0007]在一個實施例中,方法包括使用處理器來在SDN的第一網(wǎng)絡(luò)單元處接收新的流請求,并且基于指示在第一網(wǎng)絡(luò)單元處接收的新的流請求的至少一部分將從第一網(wǎng)絡(luò)單元轉(zhuǎn)發(fā)到第二網(wǎng)絡(luò)單元的流轉(zhuǎn)發(fā)規(guī)則,從第一網(wǎng)絡(luò)單元向SDN的第二網(wǎng)絡(luò)轉(zhuǎn)發(fā)新的流請求。
【附圖說明】
[0008]通過結(jié)合附圖考慮以下詳細的描述,本文的教導可以容易被理解,在其中:
[0009]圖1示出了包括實施為軟件定義的網(wǎng)絡(luò)(SDN)的數(shù)據(jù)中心網(wǎng)絡(luò)的數(shù)據(jù)中心環(huán)境的高級框圖;
[0010]圖2示出了圖1的數(shù)據(jù)中心網(wǎng)絡(luò)的相鄰網(wǎng)絡(luò)單元中相對低的資源消耗相關(guān)性的示例性累積分布函數(shù);
[0011]圖3示出了響應(yīng)于檢測在網(wǎng)絡(luò)單元處的資源利用狀況,用于使用在網(wǎng)絡(luò)單元處的流偏轉(zhuǎn)的方法的一個實施例;以及
[0012]圖4示出了適于在執(zhí)行本文所述功能中使用的計算機的高級框圖。
[0013]為便于理解,已使用相同的參考標記,其在可能的情況下指示為附圖所共用的相同單元。
【具體實施方式】
[0014]一般地,流偏轉(zhuǎn)能力被提供用于偏轉(zhuǎn)在軟件定義的網(wǎng)絡(luò)(SDN)內(nèi)的數(shù)據(jù)流以便提供用于SDN的安全性。
[0015]圖1示出包括實施為軟件定義的網(wǎng)絡(luò)(SDN)的數(shù)據(jù)中心網(wǎng)絡(luò)的數(shù)據(jù)中心環(huán)境的高級框圖。
[0016]如在圖1中所示,數(shù)據(jù)中心環(huán)境100包括數(shù)據(jù)中心102。數(shù)據(jù)中心102包括多個主機服務(wù)器110 (統(tǒng)稱為主機服務(wù)器110)和數(shù)據(jù)中心網(wǎng)絡(luò)120。
[0017]主機服務(wù)器110被配置以支持相應(yīng)的多個虛擬機(VM) 112。應(yīng)當理解,每一個主機服務(wù)器110可包括一個或多個服務(wù)器刀片,其中每一個服務(wù)器刀片可包括一個或多個中央處理單元(CPU)。
[0018]數(shù)據(jù)中心網(wǎng)絡(luò)120被配置以支持數(shù)據(jù)中心環(huán)境100的通信(例如在數(shù)據(jù)中心環(huán)境100內(nèi)的主機服務(wù)器110的VM 112之間、在主機服務(wù)器110的VM 112和位于數(shù)據(jù)中心環(huán)境100外部的設(shè)備之間等等,以及它們的各種組合)。
[0019]數(shù)據(jù)中心網(wǎng)絡(luò)120包括多個網(wǎng)絡(luò)單元122和控制器127。網(wǎng)絡(luò)單元122包括三個頂式機架(ToR)交換機122T1 - 122Τ3(統(tǒng)稱為ToR交換機122τ)、一對聚集交換機122Α1 -122Α2 (統(tǒng)稱為聚集交換機122α)和一對路由器122K1 - 122κ(統(tǒng)稱為路由器122κ)。如在圖1中所示,主機服務(wù)器110被通信地連接到ToR交換機122τ (其中每一個主機服務(wù)器110被連接到ToR交換機122τ*的一個相關(guān)聯(lián)的交換機,以使得每一個ToR交換機122 τ支持多個主機服務(wù)器110,并且每一個主機服務(wù)器110由ToR交換機122τ*的一個來支持),ToR交換機122τ*的每一個被通信地連接到兩個聚集交換機122 Α,并且聚集交換機122Α中的每一個被通信地連接到兩個路由器122κ??刂破?27經(jīng)由路由器122κ中的一個路由器被通信地連接到網(wǎng)絡(luò)單元122中的每一個網(wǎng)絡(luò)單元。如在圖1中進一步示出的,每一個路由器122κ被通信地連接到通信網(wǎng)絡(luò)140 (例如諸如因特網(wǎng)、專用數(shù)據(jù)網(wǎng)絡(luò)等的公共數(shù)據(jù)網(wǎng)絡(luò))。應(yīng)當理解,數(shù)據(jù)中心網(wǎng)絡(luò)120僅僅是示例性的,并且各種其它類型的數(shù)據(jù)中心網(wǎng)絡(luò)120均可被支持,例如包括更少或更多的ToR交換機122τ、更少或更多的聚集交換機122Α、更少或更多的路由器122κ、更少層或更多層的網(wǎng)絡(luò)單元122、不同布置的網(wǎng)絡(luò)單元120等,以及它們的各種組合。
[0020]數(shù)據(jù)中心網(wǎng)絡(luò)120被實施為SDN。一般地,SDN提供經(jīng)由集中控制器將網(wǎng)絡(luò)的網(wǎng)絡(luò)單元編程的能力(說明性地,經(jīng)由控制器127將數(shù)據(jù)中心網(wǎng)絡(luò)120的網(wǎng)絡(luò)單元122編程)。這種類型的靈活性簡化了各種任務(wù),諸如管理和更新網(wǎng)絡(luò)、控制網(wǎng)絡(luò)內(nèi)的流布置(placementof flows)等。應(yīng)當理解,這種優(yōu)點可能有利于大規(guī)模的數(shù)據(jù)中心。例如,SDN可用于規(guī)劃數(shù)據(jù)中心內(nèi)大數(shù)據(jù)集的迀移。
[0021]在數(shù)據(jù)中心網(wǎng)絡(luò)120中,網(wǎng)絡(luò)單元122被配置以作為SDN的轉(zhuǎn)發(fā)單元來操作,并且控制器127被配置以作為SDN的控制單元來操作。換句話說,網(wǎng)絡(luò)單元122提供用于在數(shù)據(jù)中心網(wǎng)絡(luò)120內(nèi)傳播數(shù)據(jù)的SDN的數(shù)據(jù)平面,并且控制器127提供用于在數(shù)據(jù)中心網(wǎng)絡(luò)120內(nèi)控制數(shù)據(jù)的傳播的SDN的控制平面。在典型的SDN中,網(wǎng)絡(luò)單元122向控制器127轉(zhuǎn)發(fā)用于新的數(shù)據(jù)流的請求,控制器127計算用于新的數(shù)據(jù)流的數(shù)據(jù)路徑,控制器127提供指示計算出的數(shù)據(jù)路徑的數(shù)據(jù)路徑信息給將支持該數(shù)據(jù)流的網(wǎng)絡(luò)單元122,并且將支持該數(shù)據(jù)流的網(wǎng)絡(luò)單元122從控制器127接收數(shù)據(jù)路徑信息,并使用該數(shù)據(jù)路徑信息以根據(jù)該數(shù)據(jù)流的計算出的數(shù)據(jù)路徑轉(zhuǎn)發(fā)該數(shù)據(jù)流的數(shù)據(jù)。以這種方式,控制器127控制在SDN內(nèi)的數(shù)據(jù)流的數(shù)據(jù)路徑。
[0022]在數(shù)據(jù)中心網(wǎng)絡(luò)120中,網(wǎng)絡(luò)單元122和控制器127被配置以使用SDN的控制協(xié)議來通信(例如用于使得網(wǎng)絡(luò)單元122能夠請求用于數(shù)據(jù)流的數(shù)據(jù)路徑的計算、用于使得控制器127能夠提供用于數(shù)據(jù)流的數(shù)據(jù)路徑信息至網(wǎng)絡(luò)單元122等)。在至少一些實施例中,在數(shù)據(jù)中心網(wǎng)絡(luò)120中使用的控制協(xié)議是OpenFlow協(xié)議。
[0023]—般地,OpenFlow通過分流(offloading)從網(wǎng)絡(luò)單元到中央控制器的數(shù)據(jù)流的路徑設(shè)立決策來提供網(wǎng)絡(luò)的精細粒度控制(說明性地,通過分流從網(wǎng)絡(luò)單元122到控制器127的數(shù)據(jù)流的路徑設(shè)立決策來提供數(shù)據(jù)中心網(wǎng)絡(luò)120的精細粒度控制)??刂破?27被配置以基于SDN的全局知識(說明性地,基于數(shù)據(jù)中心網(wǎng)絡(luò)120的全局知識)識別用于給定數(shù)據(jù)流的最優(yōu)數(shù)據(jù)路徑。在OpenFlow中,接收新的流請求的SDN的第一網(wǎng)絡(luò)單元122發(fā)送新的流請求給控制器127,并且控制器127確定在數(shù)據(jù)中心網(wǎng)絡(luò)120內(nèi)用于該數(shù)據(jù)流的數(shù)據(jù)路徑,并且通過用轉(zhuǎn)發(fā)規(guī)則編程網(wǎng)絡(luò)單元122來提供在數(shù)據(jù)中心網(wǎng)絡(luò)120內(nèi)的數(shù)據(jù)路徑,其中所述轉(zhuǎn)發(fā)規(guī)則被配置來由網(wǎng)絡(luò)單元122使用以根據(jù)用于該數(shù)據(jù)流的確定的數(shù)據(jù)路徑轉(zhuǎn)發(fā)該數(shù)據(jù)流的分組。新的流請求可以是以數(shù)據(jù)流第一分組、數(shù)據(jù)流請求消息等的形式。例如,對于源自數(shù)據(jù)中心102的主機服務(wù)器110中的一個主機服務(wù)器的VM 112中的一個VM的數(shù)據(jù)流,與該主機服務(wù)器110中的一個主機服務(wù)器相關(guān)聯(lián)的ToR交換機122τ是接收用于該數(shù)據(jù)流的新的流請求的第一網(wǎng)絡(luò)單元,并且(當流偏轉(zhuǎn)沒有使用時)轉(zhuǎn)發(fā)用于該數(shù)據(jù)流的新的流請求給控制器127。例如,對于源自數(shù)據(jù)中心102外部的設(shè)備并且旨在用于數(shù)據(jù)中心102的主機服務(wù)器110中的一個主機服務(wù)器的VM 110中的一個VM的數(shù)據(jù)流,作為到數(shù)據(jù)中心網(wǎng)絡(luò)120的入口點的路由器122κ是接收用于該數(shù)據(jù)流的新的流請求的第一網(wǎng)絡(luò)單元,并且(當流偏轉(zhuǎn)沒有使用時)轉(zhuǎn)發(fā)用于該數(shù)據(jù)流的新的流請求給控制器127。
[0024]因此,在OpenFlow中,控制平面開銷(overhead)取決于在SDN內(nèi)的數(shù)據(jù)流數(shù)量。因此,雖然使用OpenFlow來提供SDN的控制平面的使得在SDN數(shù)據(jù)流上的精細粒度控制可行,但是OpenFlow控制平面,包括用于提供OpenFlow的控制平面的相關(guān)資源,可能變得高利用率,并且因此可能容易受到新類別的攻擊(a new class of attacks)。這是與傳統(tǒng)的網(wǎng)絡(luò)一一其中控制平面開銷獨立于數(shù)據(jù)流的數(shù)目一一相比較,至少是因為(I)控制平面被分布在網(wǎng)絡(luò)單元上,所述網(wǎng)絡(luò)單元負責維護拓撲信息、計算數(shù)據(jù)路徑并且維護轉(zhuǎn)發(fā)表,以及
(2)通過基于預先計算的條目將用于數(shù)據(jù)流的數(shù)據(jù)路徑拼接在一起來通過網(wǎng)絡(luò)轉(zhuǎn)發(fā)數(shù)據(jù)流的分組。
[0025]在OpenFlow中,控制器127和網(wǎng)絡(luò)單元122執(zhí)行用于數(shù)據(jù)流的數(shù)據(jù)路徑設(shè)立,并且網(wǎng)絡(luò)單元122支持數(shù)據(jù)流。對于給定的數(shù)據(jù)流,(I)控制器127確定用于該數(shù)據(jù)流的數(shù)據(jù)路徑、計算轉(zhuǎn)發(fā)規(guī)則,該轉(zhuǎn)發(fā)規(guī)則將被提供給處于為該數(shù)據(jù)流確定的數(shù)據(jù)路徑之中的網(wǎng)絡(luò)單元122、以及傳播轉(zhuǎn)發(fā)規(guī)則給處于為該數(shù)據(jù)流確定的數(shù)據(jù)路徑之中的網(wǎng)絡(luò)單元122,以及(2)處于為該數(shù)據(jù)流確定的數(shù)據(jù)路徑之中的網(wǎng)絡(luò)單元122接收轉(zhuǎn)發(fā)規(guī)則、在轉(zhuǎn)發(fā)表中存儲轉(zhuǎn)發(fā)規(guī)則,并訪問轉(zhuǎn)發(fā)規(guī)則以根據(jù)為該數(shù)據(jù)流確定的數(shù)據(jù)路徑轉(zhuǎn)發(fā)該數(shù)據(jù)流的分組。因此,網(wǎng)絡(luò)單元122為數(shù)據(jù)流的支持消耗網(wǎng)絡(luò)單元122的資源。
[0026]通常被用于支持數(shù)據(jù)流的網(wǎng)絡(luò)單元122的資源是存儲器資源和處理器資源。網(wǎng)絡(luò)單元122的存儲器和處理器資源用于諸如執(zhí)行用于數(shù)據(jù)流的數(shù)據(jù)路徑設(shè)立、維護用于數(shù)據(jù)流的流狀態(tài)等的功能。網(wǎng)絡(luò)單元122的存儲器資源通常包括網(wǎng)絡(luò)單元122的內(nèi)容可尋址存儲器(CAM),以及更具體地,網(wǎng)絡(luò)單元122的三元CAM(TCAM),該三元CAM用于維護用于該網(wǎng)絡(luò)單元122的轉(zhuǎn)發(fā)表(例如,使用用于由該網(wǎng)絡(luò)單元122支持的每個數(shù)據(jù)流的數(shù)據(jù)流條目)。網(wǎng)絡(luò)單元122的處理器