你現在可能已經聽到過“軟件定義一切”的大肆宣傳。“SDx”是一個描述可編程及由策略、自動化和嚴格的資源管理推動的基礎設施的共同術語。x可指整個數據中心(SDDC)或存儲器(SDS)或網絡(SDN)或其它目標。
價值定位是雙重的:(1)硬件資源被虛擬化且被視為一個實用程序;(2)應用要求推動這些資源利用。因此,不是為一系列應用手動配置計算機、存儲器和網絡資源,而是APP的需求“編程行動資源”。聽起來這可能很抽象,因此讓我們看一個使用SDN的例子。當前,許多云和一些私有數據中心實現采用SDN原則。
SDN概念

圖1:軟件定義網絡環境
為理解SDN的運行方式,讓我們首先觀察傳統第三層分組交換機的操作。一個新安裝的交換機查看其連接的鄰居并且建立一個它認為到其所在位置其它交換機的全部IP路由之拓撲圖。它采用如開放最短路徑優先(OSPF)這樣的協議遞增地建立其內部流程表。此流程表是該交換機控制面的一部分,而分組轉發路徑是數據面的一部分。每個交換機獨立行動,并且對網絡總體性有稍微短視的觀點。作為一個良好的網絡公民,它根據其流程表世界觀轉發數據包。
現在轉向SDN。在這種情況下,控制面與數據面完全分離(圖1)。實際上,這意味著流程表不是由如OSPF這樣的本地探測協議填充,而是由一種“無所不知”的外部控制器填充。這種控制器具有大拓撲關,能夠最佳確定網絡上包的路由方式,利用網絡資源最大限度提高效率。
此外,基于SDN的路由還為應用層的實際業務要求提供更高能力。有些人稱之為“應用流暢”。例如,交換層可被分為兩個完全分開的虛擬網(即財務部門和實時媒體),必要時它們之間絕無聯系。不錯,當前用VLAN也能做到,但SDN方式提供基于應用需求的負載平衡能力。或者,如果因可靠性的關系,要求某些路徑上有重復鏈接,這些鏈接可使用SDN按需建立和拆除。最后,可集中管理系統級QoS,這是媒體設施一種有價值的特性。總之,網絡利用率、可靠性和資源管理程度提高是SDN戰略價值定位。
SDN環境
讓我們分析圖1。底部是一個網絡交換機網,每個交換機有流程表。交換機可以是傳統的,但增加了SDN支持,另一極端就是“裸機、白盒、開放”型式。多種裸機支持SDN語義,但沒有傳統協議的沉重負擔。例如,谷歌建立了一個巨大的基于SDN友好裸機交換機的網絡。
控制層為多面的。核心是網絡操作層(NOS)。此軟件調解來自應用層的請求,并且根據應用需求編程每個交換機的流程表。一些流行的開源控制器包括OpenDaylight(Linux基金會)、Floodlight(Big Switch)和POX(斯坦福)。此外,還有很多廠家支持的私有控制器。
為便于說明,控制面有時被稱為“南北”面,而數據包流被視為“東西”面。在這個背景下,北向API使更高層系統能夠請求路由連接和QoS。例如,一個連接管理系統(想象SDI矩陣控制)在應用層能夠請求NOS建立一條從攝像機到錄像機或者從播出服務器到監視器的3Gb/s視頻路徑。
NOS經由南向API與交換機通信。與交換機通信的一種流行方式是采用OpenFlow協議。大部分現代交換機支持OpenFlow語義及其它方式。開放網絡基金會(ONF)提倡采用SDN且管理OpenFlow標準。設想OpenFlow為一種流程表編程的命令語言。一個流程表每行有兩項(加上一個統計項):第一項是“表頭或規則”,第二項為“動作”。例如,如果交換機收到一個設置為10.2.1.1的包頭目的地IP地址,那么動作就是轉發此包到出站端口X。你可以通過接口和試驗一個開放vSwitch(虛擬交換)實例探究OpenFlow和命令行對話。事實上,我在我的桌面上保存了一個亞馬遜EC2的實例,研究有基于vSwitch的不同網絡拓撲的OpenFlow。
當然,有只用SDN方案的折衷方案。很少網絡為孤島,大部分網絡需要在某一時刻與非SDN交換機通信。因此,大部分交換機支持最少量的傳統協議以便能夠互操作。傳統矩陣方式在開關故障情況下非常耐用。同樣,在NOS控制器失效情況下依賴一個使危險的。為了彌補,SDN可采用基于集群的高可用性模式,其中N個控制器表現為一個邏輯控制器。最后,SDN鑄就一個包含上述的NOS/OpenFlow的大網:VXLAN(虛擬可擴展局域網);而通用隧道覆蓋意味著建立虛擬局域網。
為什么我們要關注?
SDN有可能實現全網資源控制:考慮一個有“無所不知”系統級管理方案的控制器。隨著視頻SDI轉向以太網,一些設計將用SDN建立有有益的敏捷性、可靠性和流控制的網絡。總之,要在此領域和SDx中跟上時代,因為它們可能有助于定義未來的媒體設施。