SDN的核心構建模組有哪些??

  瞭解這些術語及其語義環境是很有幫助的。下面我們重點來了解一下和SDN相關的三個基本技術範疇:控制器、交換網路和疊加網路。

  控制器

  SDN的一個重要概念就是被稱為控制器的裝置,該裝置與某個域中所有的網路裝置會話,獲悉網路拓撲結構,並從一個無所不知的中心點上對網路進行程式設計。可以說,SDN控制器是把網路程式設計模式從分佈模式(相互通訊的網路裝置決定轉發路徑)轉變成了集中模式。

  網路的集中程式設計是控制器給業務帶來的重大價值。從概念上看,控制器可用於給某個網路全面部署業務策略,而與網路中的裝置無關。控制器的行為很像是一個網路中介軟體層,它將底層的物理網路元件如交換機、路由器、防火牆和負載均衡裝置等都做了抽象。

  用一臺SDN控制器對網路進行程式設計,網路運營者就不必再用傳統方法(比如說命令列介面)對個別的網路裝置進行程式設計了。此外,還可根據成本或者安全策略需求建立專有的網路轉發正規化。

  控制器是通過軟體完成網路程式設計的,也正因此,SDN才具有了極大的靈活性。控制器既是該軟體的執行平臺,也是該軟體的一個通訊閘道器。大多數控制器架構都是模組化的,允許控制器利用多種不同的方法與各種不同的網路裝置進行通訊。

  將SDN控制器視為中介軟體,也就意味著其通訊有兩個方向。迄今為止大多數的討論都是圍繞南向通訊的。也就是說,控制器對網路裝置進行程式設計,並從這些裝置接收資料,這就是南向通訊。南向通訊的一個例子就是控制器利用OpenFlow對網路交換機的轉發表進行程式設計。另一個方向則是北向通訊。希望對網路進行程式設計的各個應用與控制器之間的通訊稱之為北向的。北向通訊的一個例子就是類似VMware的vCloudDirector之類的應用通過控制器發出網路配置服務請求。

  交換機

  說到SDN時,可能很多人談到的裝置就是交換機,尤其是乙太網交換機。乙太網交換機的速度和密度一直在增加,可以為資料中心的主機、刀片中心和乙太網儲存提供上行鏈路。伺服器虛擬化的到來,hypervisor軟體交換機的地位越來越重要,它能夠探測到虛擬伺服器和虛擬網絡卡,並可將出入hypervisor的流量匯聚起來,傳送給物理網路。

  無論是硬體還是軟體交換機在SDN中都發揮著重要作用,首先是交換機的轉發表可以由控制器進行程式設計控制。再考慮到軟交換機一般駐留在網路邊緣,所以“智慧的軟邊緣”概念已經出現。

  支援智慧軟邊緣的網路設計者們感覺,軟體交換機在hypervisor上執行是個很理想的場所,因為這裡可以安裝豐富的網路功能,而讓物理硬體交換機在一個相對簡單的配置環境中執行。在智慧軟邊緣的SDN設計中,控制器可通過軟交換機進行轉發、QoS和安全策略。

  例如軟交換機可以有接入列表、受速率限制的QoS引數和流量優先順序,以及應用於虛擬埠的智慧轉發。當網路資料離開hypervisor之時,已經經過了安全合規檢測、速率整形和封裝。將所有這些功能放置在網路邊緣,可以讓核心硬體交換機只去做快速的流量傳輸。

  並非所有的網路都允許智慧的軟邊緣設計,也並非所有可行的SDN用例會用上軟交換機。對SDN來說,硬體交換機依然會在一些諸如端到端業務策略的部署、流量控制和安全執法等任務上發揮作用。此外,仍然有一定量的基本配置會在硬體交換機上完成,而無論邊緣網路有多麼智慧。

  控制器對硬體和軟體交換機轉發行為進行程式設計控制所使用的主要的南向協議就是OpenFlow。OpenFlow(OF)協議的標準正在由開放網路基金會(ONF)快速地推進之中。

  ONF是一個主要由網路廠商和服務提供商會員組成的機構,關起門來運作。該基金會的OpenFlow規範目前已釋出了PF1.0,在生產環境中經常會看到;下一步要釋出的OF1.3,將主要面向大多數交換機廠商。OF1.4目前正在制定當中。

  要記住,雖然OpenFlow可以像OpenvSwitch那樣完全在軟體交換機上實施,但是要翻譯成硬體交換機的網路晶片(ASIC)可以執行的程式碼,OF已被證明是要面對挑戰的。雖然有報道說,可更好處理OF的新的晶片很快就會出來,但是使用者們在評估OF的有用性時,肯定會結合其已有網路進行測試,以便確保所需的OF功能能夠儘可能地擴充套件,可以支援他們的應用。

  對於北向通訊來說,控制器常常會提供API。一個REST(表述性狀態轉移)API可能是最常用到的。RESTAPI很像HTTP伺服器,會利用一些熟悉的方法如GET和POST來交換資料和指令。API提供了應用到控制器的一種方法,可以告訴控制器網路上將會發生什麼。

  值得注意的是,除了OF之外,有些廠商已經有一些專門的南向API推出。這部分是因為OF的指令集有限,有時候很難在傳統的晶片上實現。例如思科,雖然支援OpenFlow,但還是強調其API須藉助其ONE架構來實現,思科的主張是說,它的API允許網路程式設計師能夠充分發揮其思科硬體的能力。

  疊加(Overlay)

  在SDN討論中經常會出現的另一個術語就是疊加網路。簡而言之,疊加是用來建立虛擬的網路容器,這些容器之間在邏輯上彼此隔離,但可共享相同的底層物理網路。

  網路工程師一般都很熟悉的通用路由封裝(GRE),比較容易理解疊加的概念。一個數據包(或幀)封裝在另一個數據包內;被封裝的包轉發到隧道端點後再被拆裝。原來的包就傳送到了目的地。疊加網路就是使用這種所謂“包內之包”的技術安全地將一個網路隱藏在另一個網路中,然後將網路區段進行遷移。2層擴充套件和多租戶就是比較流行的疊加網路例項。

  在過去幾年間,個標準化組織已釋出了不少的疊加協議,這是因為虛擬化資料中心需要在任意時間、任意地點移動主機的需求所致。有些SDN控制器使用疊加作為其傳輸選項,在散佈於資料中心內的各個主機之間架起了一座橋。而軟交換機通常被用作隧道的另一端。虛擬可擴充套件區域網(VXLAN)是目前獲得業界最廣泛支援的協議,思科、博科和VMware都支援疊加網路。在硬體方面支援VXLAN隧道端點的是Arista和博科的交換機。VXLAN的硬體端點正給業界帶來一場劇變,因為疊加通常都是由軟體交換機作為端點的。

  VXLAN在3層UDP包內封裝2層幀。這樣做可以讓一個VXLAN段內的主機彼此通訊,只要它們處在同一個2層網路上,即便這些主機可能被一個或多個3層網路所隔離。

  此外,由於VXLAN保留了全部的2層幀、還有VLAN標識,所以在一個VXLAN段內可允許多個3層網路存在。在該VXLAN段內的客戶(也可叫做租戶)會覺得這個網路很像他們以前所用過的VLAN,但底層網路只能用一個段ID來區分VXLAN的包。

  每個VXLAN網路是用VXLAN包頭內的段ID來區分的。這個ID有24位,也就是說可允許1600萬個租戶共享同一個網路基礎架構,同時又可以彼此間相互隔離。

  和VXLAN相似,利用GRE實現網路虛擬化(NVGRE)使用一個24位的識別符號來定義租戶的網路。NVGRE主要是微軟開發的技術,也是其Hyper-V所使用的疊加方法。

  儘管VMware堅定地支援VXLAN,但是它的疊加網路仍被稱為無狀態傳輸隧道(STT)。屬於VMware旗下的Nicira。STT是Nicira網路虛擬化平臺的一個組成部分,尤其需要指出的是,STT的封裝格式充分利用了先進網絡卡的硬體能力,可以將較大的資料塊分解成較小的資料塊。

  這被稱為TCP分段解除安裝(TSO),一塊有TSO功能的網絡卡可以承擔分段解除安裝的任務,從而釋放出伺服器的CPU給其他任務。STT的未來尚無法確定,但VXLAN已經有了VMware的支援以及來自行業的普遍支援。

  除了VXLAN、NVGRE和STT,另一個值得關注的疊加網路技術是網路虛擬化疊加(NVO3)。NVO3是由IETF的一個工作組開發的。關於NVO3的問題說明與上面已經討論過的其他疊加技術很相像,也就是說,流量孤立、租戶可自由使用所選擇的定址方案,可將虛擬機器在網路內自由移動,不必考慮底層核心中3層網路的分隔等等。NVO3未來會怎麼演進,如何封裝尚有待觀察,但NVO3工作組成員所提交的用例線路已經基本成形。

  結論

  對上述三大術語的討論可歸結為一點:一個無所不知的中央控制器能夠發現網路交換機組成的網路拓撲結構,而無論這些交換機是在hypervisor上的軟體交換機,還是在資料中心機櫃裡的硬體交換機。

  這個中央控制器就像是在北向的應用和南向的交換機之間的一箇中間件。北向應用主要向控制器闡明業務策略、網路配置和諸如此類的資訊;而控制器則將這些策略和配置翻譯成南向的程式設計指令給網路交換機。

  南向協議最常用的就是OpenFlow,但要把OpenFlow加裝到已有的網路硬體上是頗具挑戰性的,所以廠商們都在藉助API推動網路的可程式設計。

  在這個網路可程式設計以及物理裝置被抽象的平臺上,還要再加上疊加。疊加允許希望支援多租戶的雲提供商和企業安全地隔離每個租戶的流量,而且與此同時還允許租戶的主機駐留在資料中心內的任何地方。

相關問題答案