夏仕俊
(國網(wǎng)上海市電力公司信息通信公司,上海 200120)
計(jì)算機(jī)網(wǎng)絡(luò)通常由大量的網(wǎng)絡(luò)設(shè)備構(gòu)成,諸如交換機(jī)、各種類型的中間件(如防火墻),以及諸多作用在之上的復(fù)雜協(xié)議。需要使用非常有限的工具來手動配置復(fù)雜的策略將高層次的政策轉(zhuǎn)化為低層次的配置命令,并適應(yīng)不斷變化的網(wǎng)絡(luò)條件。因此對于網(wǎng)絡(luò)環(huán)境的管理和性能調(diào)優(yōu)相當(dāng)具有挑戰(zhàn)性,且容易出錯。同時(shí)“互聯(lián)網(wǎng)僵化”是更加嚴(yán)峻的問題。因?yàn)榛ヂ?lián)網(wǎng)極其龐大的部署基數(shù),又涉及重要基礎(chǔ)設(shè)施(比如能源供應(yīng)等方面),所以極難在物理結(jié)構(gòu)和協(xié)議性能兩方面有所發(fā)展。隨著互聯(lián)網(wǎng)應(yīng)用及服務(wù)變得越來越復(fù)雜和苛刻,以何種方式,使得互聯(lián)網(wǎng)可以快速應(yīng)對這些新的挑戰(zhàn)已成為當(dāng)務(wù)之急。
“可編程網(wǎng)絡(luò)”的概念作為一種促進(jìn)網(wǎng)絡(luò)演進(jìn)的方法已被提出多年,而軟件定義網(wǎng)絡(luò)(Software Defined Network,簡稱SDN)是一種新的網(wǎng)絡(luò)模式,其中網(wǎng)絡(luò)設(shè)備通過控制決策層去耦合,可顯著簡化網(wǎng)絡(luò)管理,實(shí)現(xiàn)創(chuàng)新和發(fā)展。在SDN中,網(wǎng)絡(luò)的拓?fù)潢P(guān)系、轉(zhuǎn)發(fā)路由等按照邏輯集中在基于軟件的控制器中,網(wǎng)絡(luò)設(shè)備通過標(biāo)準(zhǔn)化的開發(fā)成為可通過開放接口(例如ForCES,OpenFlow等)進(jìn)行編程的簡單的數(shù)據(jù)包轉(zhuǎn)發(fā)裝置。
SDN目前吸引了來自學(xué)術(shù)界和工業(yè)界顯著的關(guān)注,一些網(wǎng)絡(luò)運(yùn)營商和服務(wù)提供商等最近創(chuàng)建了工業(yè)導(dǎo)向的開放網(wǎng)絡(luò)基金會以推動SDN并標(biāo)準(zhǔn)化OpenFlow協(xié)議。在學(xué)術(shù)界,也創(chuàng)建了OpenFlow網(wǎng)絡(luò)研究中心,專注于SDN研發(fā),IETF、IRTF和其他一些標(biāo)準(zhǔn)制定組織也在為SDN的標(biāo)準(zhǔn)化努力。
數(shù)據(jù)通信網(wǎng)絡(luò)通常由用戶設(shè)備,或網(wǎng)絡(luò)基礎(chǔ)架構(gòu)互聯(lián)的主機(jī)組成,這種基礎(chǔ)架構(gòu)是主機(jī)共享的。如路由器和交換機(jī),以及進(jìn)行主機(jī)之間數(shù)據(jù)傳遞的通信鏈路。路由器和交換機(jī)通常是“閉路”系統(tǒng),通常帶有有限的、供應(yīng)商特定的控制接口。因此,一旦部署并投入使用,要當(dāng)前的網(wǎng)絡(luò)基礎(chǔ)架構(gòu)再進(jìn)行演變是相當(dāng)困難的;換句話說,部署現(xiàn)有協(xié)議(例如,IPv6)的新版本是相當(dāng)困難的,更不要說部署完全新的協(xié)議和服務(wù),這是在當(dāng)前的網(wǎng)絡(luò)中幾乎不可克服的障礙,無論是互聯(lián)網(wǎng)還是局域網(wǎng)絡(luò)都不例外。
軟件定義網(wǎng)絡(luò)的開發(fā)是為了促進(jìn)創(chuàng)新,使網(wǎng)絡(luò)數(shù)據(jù)路徑的簡單編程控制成為可能。如圖1所示,來自控制邏輯的轉(zhuǎn)發(fā)與硬件的分離使得新協(xié)議和應(yīng)用程序的部署成為可能,簡化了網(wǎng)絡(luò)可視化及管理、以及各種中間件到軟件控制的整合。網(wǎng)絡(luò)被簡化成“簡單”的轉(zhuǎn)發(fā)硬件和決策網(wǎng)絡(luò)控制器的組合,來代替以往執(zhí)行策略和協(xié)議分散在個個網(wǎng)絡(luò)器件上的情況。
圖1 傳統(tǒng)網(wǎng)絡(luò)與SDN架構(gòu)的對比
圖1SDN架構(gòu)將控制邏輯從轉(zhuǎn)發(fā)硬件上解耦,并且使中間件的合并,更簡單的策略管理和新的功能成為可能,實(shí)線表示數(shù)據(jù)平面連接,虛線表示控制平面連接。
(1)現(xiàn)有SDN架構(gòu)
ForCES和OpenFlow是兩個知名的SDN架構(gòu)協(xié)議,二者均遵守基本的SDN控制平面和數(shù)據(jù)平面的分離原則,并且都會標(biāo)準(zhǔn)化平面之間的信息交換,但是在設(shè)計(jì)、架構(gòu)、轉(zhuǎn)發(fā)模式以及協(xié)議接口的技術(shù)上有很大不同[1,2]。
IETF提出了ForCES(轉(zhuǎn)發(fā)與控制元件分離)工作組方法,該方法重新定義了將控制元件與轉(zhuǎn)發(fā)元件分離的網(wǎng)絡(luò)設(shè)備內(nèi)部架構(gòu)。然而,這個網(wǎng)絡(luò)設(shè)備仍然表示為單個實(shí)體,由工作組提供的驅(qū)動用例,來將新的轉(zhuǎn)發(fā)硬件與第三方控件結(jié)合在單一網(wǎng)絡(luò)設(shè)備中。因此,控制平面和數(shù)據(jù)平面被放在靠近的位置(例如,同一機(jī)箱或機(jī)房)。與此相反,在“的OpenFlow型”的SDN系統(tǒng)中,控制平面是完全從網(wǎng)絡(luò)設(shè)備剝離開的。
在OpenFlow架構(gòu)中(見圖2),轉(zhuǎn)發(fā)設(shè)備即OpenFlow交換機(jī),包括一個或多個流表,及一個通過OpenFlow協(xié)議與控制器安全交換的抽象層。流表由流條目組成,每個流條目決定一個流中的數(shù)據(jù)包如何處理和轉(zhuǎn)發(fā)。流條目通常由匹配字段(或匹配規(guī)則)、計(jì)數(shù)器及一組指令或操作組成,它們決定如何處理匹配的數(shù)據(jù)包。
圖2 OpenFlow架構(gòu)圖
圖2為通過OpenFlow協(xié)議發(fā)生的控制器和轉(zhuǎn)發(fā)設(shè)備之間的通信。流表的三個構(gòu)成部分為:匹配規(guī)則、數(shù)據(jù)包匹配規(guī)則時(shí)的動作及用于收集流統(tǒng)計(jì)數(shù)據(jù)的計(jì)數(shù)器組成。
(2)轉(zhuǎn)發(fā)設(shè)備
底層網(wǎng)絡(luò)基礎(chǔ)架構(gòu)可以包括多個不同的物理網(wǎng)絡(luò)設(shè)備、或轉(zhuǎn)發(fā)設(shè)備,諸如路由器、交換機(jī)、虛擬交換機(jī)、無線接入點(diǎn)設(shè)備、等等。在軟件定義網(wǎng)絡(luò)中,這樣的設(shè)備通常被描述成抽象層中可通過開放接口訪問的基本轉(zhuǎn)發(fā)硬件,而控制邏輯和算法被隔離移動到一個控制器,這類轉(zhuǎn)發(fā)設(shè)備通常指的是在SDN術(shù)語中被簡單稱為“交換器”的設(shè)備,圖3分離的控制邏輯可被視為一個網(wǎng)絡(luò)操作系統(tǒng),應(yīng)用可被在其中創(chuàng)建以“編寫”網(wǎng)絡(luò)。
(3)控制器
解耦的網(wǎng)絡(luò)系統(tǒng)一直被比作操作系統(tǒng),控制器在此系統(tǒng)中提供了網(wǎng)絡(luò)的編程接口,它可用于實(shí)現(xiàn)管理任務(wù),并提供新的功能。該模型的分層視圖如圖3所示,這個抽象分層假定控制器是集中式的,應(yīng)用程序的編寫環(huán)境如同此網(wǎng)絡(luò)是一個單一的系統(tǒng),它使得SDN模型能夠在多種不同的應(yīng)用和不同的網(wǎng)絡(luò)技術(shù)及物理介質(zhì),諸如無線(如802.11和802.16),有線(如以太網(wǎng))和光纖網(wǎng)絡(luò)中得以應(yīng)用。
圖3 SDN分層視圖
(4)產(chǎn)業(yè)的標(biāo)準(zhǔn)化
最近,一些標(biāo)準(zhǔn)制定組織開始關(guān)注SDN。比如IETF的ForCES工作組一直致力于標(biāo)準(zhǔn)化關(guān)于網(wǎng)絡(luò)集中控制和網(wǎng)絡(luò)基礎(chǔ)架構(gòu)抽象的機(jī)制、接口和協(xié)議,以及開放網(wǎng)絡(luò)基金會(ONF)一直致力于的OpenFlow標(biāo)準(zhǔn)化。隨著控制平面將網(wǎng)絡(luò)應(yīng)用從底層硬件架構(gòu)抽象出來,將重點(diǎn)放在了標(biāo)準(zhǔn)化以下幾項(xiàng)之間的接口,即網(wǎng)絡(luò)應(yīng)用和控制器及控制器和交換基礎(chǔ)架構(gòu)之間。一些ITU電信標(biāo)準(zhǔn)化部門(ITU-T)的研究小組近來的工作是SDN在不同維度下的需求討論并給出建議。
(1)仿真和模擬工具
Mininet使整個OpenFlow網(wǎng)絡(luò)被模擬在一臺機(jī)器上,簡化了初始的開發(fā)和部署過程。新的服務(wù)、應(yīng)用和協(xié)議在被接入真實(shí)硬件上前,可先在仿真的預(yù)期部署環(huán)境中進(jìn)行開發(fā)和測試。Mininet默認(rèn)支持OpenFlow的1.0版,但它可被修改以支持適應(yīng)新發(fā)布的軟件交換機(jī),ns-3網(wǎng)絡(luò)仿真器環(huán)境內(nèi)部可支持OpenFlow交換機(jī),不過它目前的版本只能執(zhí)行OpenFlow的0.89版。
(2)可用軟件交換機(jī)平臺
目前有幾種可用的SDN軟件交換機(jī)可以使用,比如運(yùn)行SDN測試平臺或通過SDN開發(fā)服務(wù)。表1目前符合OpenFlow標(biāo)準(zhǔn)的軟件交換工具列出了現(xiàn)有的軟件交換機(jī)的簡要描述,包括實(shí)現(xiàn)語言,現(xiàn)有設(shè)備支持的OpenFlow標(biāo)準(zhǔn)版本。
表1 目前符合OpenFIow標(biāo)準(zhǔn)的軟件交換工具
(3)本地SDN交換機(jī)
SDN實(shí)現(xiàn)的所有技術(shù)中,一個比較主要的在商業(yè)網(wǎng)絡(luò)硬件中的實(shí)現(xiàn)是OpenFlow標(biāo)準(zhǔn)。目前還并不需要展示OpenFlow啟用的硬件和制造商的詳細(xì)介紹,而是提供了一個市場上可用的本地SDN交換機(jī)列表,并提供了一些相關(guān)信息,包括OpenFlow執(zhí)行的版本。
行業(yè)對SDN有力支撐的一個明顯的證據(jù)是商用OpenFlow網(wǎng)絡(luò)硬件的可用性,表2符合OpenFlow標(biāo)準(zhǔn)的主流商用交換機(jī)制造商列出了當(dāng)前可用的商用交換機(jī),它們的制造商和Open-Flow的,以及它們執(zhí)行的版本。
表2 符合OpenFIow標(biāo)準(zhǔn)的主流商用交換機(jī)制造商
[1] DORIA A,SALIM J H,HAAS R,et al.Forwarding and Control Element Separation(ForCES)Protocol Specification.RFC 5810(Proposed Standard),Mar.2010.
[2] MCKEOWN N,ANDERSON T,BALAKRISHNAN H,et al.OpenFlow:enabling innovation in campus networks.ACM SIGCOMM Computer Communication Review,38(2):69-74,2008.