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

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