程 瑩 張云勇
中國聯(lián)通研究院 北京 100032
SDN(Software Defined Networking,軟件定義網絡)是一種新興的基于軟件的網絡架構及技術,其特征在于解耦控制平面和數(shù)據(jù)平面,支持集中的網絡狀態(tài)控制,實現(xiàn)底層網絡基礎設施對上層應用的透明。以ONF提出的SDN典型三層架構為例,最上層為應用層,包括各種不同的網絡業(yè)務和應用;中間的控制層主要負責處理數(shù)據(jù)平面資源的編排,維護網絡拓撲,轉發(fā)信息等;最下層的數(shù)據(jù)轉發(fā)層負責數(shù)據(jù)處理、轉發(fā)和狀態(tài)收集。其中,以控制層為中心,其與應用層和數(shù)據(jù)轉發(fā)層之間的接口分別被定義為北向接口和南向接口,是SDN架構中兩個重要的組成部分。ONF在南向接口上定義了著名的OpenFlow協(xié)議,而業(yè)界在北向接口上還沒有達成標準共識。
SDN的核心理念在于推動網絡業(yè)務的創(chuàng)新,而北向接口恰恰是這一趨勢的最主要推動力。通過北向接口,網絡業(yè)務的開發(fā)者可通過軟件編程的方式調用不同的網絡資源和能力。網絡業(yè)務編排系統(tǒng)也可通過北向接口獲知網絡資源的工作狀態(tài)并對網絡資源進行調度,實現(xiàn)資源的統(tǒng)一交付,從而更好的支持云計算等新業(yè)務對網絡資源的需求[1-2]。
以ONF提出的SDN三層架構為例,最上層的應用層包括了基于控制層提供的API接口實現(xiàn)的與網絡業(yè)務相關的管理、編排、安全等應用,以及根據(jù)用戶需求定制的具有其它指定功能的網絡業(yè)務。在當前主流的SDN應用領域中,主要包括如下兩種類型的應用。
1) 業(yè)務/資源編排類應用。該類應用主要是面向業(yè)務及資源統(tǒng)一管理、調度和編排的平臺,以云計算資源管理平臺為例,其作用是實現(xiàn)計算、存儲、網絡等基礎設施資源的池化和按需調度。
2) 創(chuàng)新類網絡應用。該類應用主要面向傳統(tǒng)靜態(tài)網絡環(huán)境下難以實現(xiàn),但在SDN環(huán)境下可充分發(fā)揮優(yōu)勢的業(yè)務,包括全局流量工程、應用加速等,同時還可包括網絡功能虛擬化相關應用,從而替代傳統(tǒng)網絡中的專用硬件。
SDN北向接口確保了SDN控制器及其以下部分作為網絡驅動供上層SDN應用調用。SDN北向接口可進行網絡抽象和網絡虛擬化。網絡抽象可提供物理網絡視圖、虛擬網絡疊加視圖、指定域抽象視圖、基本連接視圖以及QoS相關連接視圖等;網絡虛擬化可提供隧道流量處理以及疊加網絡啟/停等。另外,北向接口還可以實現(xiàn)基礎的網絡功能,例如路徑計算、環(huán)路檢測、安全等。同時向編排系統(tǒng)(OpenStack[3]Quantum、Vmware vCloud Director等)提供網絡管理的功能。
從網絡業(yè)務的使用者角度來看,使用北向接口API基于SDN控制器以下所提供的網絡抽象和網絡虛擬化功能,可開發(fā)4~7層軟件功能以及虛擬設備,如防火墻、負載均衡器、流量工程和安全功能等,也可以實現(xiàn)網絡資源和業(yè)務的編排。
從網絡管理員的角度來看,基于北向接口可進行網絡管理和控制,包括網絡抽象、網絡拓撲和網絡狀態(tài)監(jiān)控等。
根據(jù)接口特性可以將北向接口分為強耦合接口(應用編程接口)、松耦合接口以及基于狀態(tài)的功能接口三種。
1) 強耦合API包括進程內API和進程間API。進程內API主要由控制器提供用于在控制器內實現(xiàn)編程功能;進程間API主要由控制器外部部件用來同控制器通信以執(zhí)行功能或者交換/讀取狀態(tài)。
2) 松耦合接口由外部部件以松耦合的方式與控制器通信,通常并不需要立即響應,也不需要直接或即時同步出現(xiàn)。
3) 基于狀態(tài)的功能接口包括主要以處理狀態(tài)為主的API,其功能就是設置和讀取狀態(tài)以及通知狀態(tài)改變。功能性API提供一套功能以供編程使用,如編程庫或SDK,包括系統(tǒng)和協(xié)議,它們并不通過過程調用,而是通過狀態(tài)改變。
1) OpenDayLight。圖1為OpenDayLight[4]給出的SDN架構,其中,網絡應用/編排/業(yè)務和控制平臺之間的OpenDayLight APIs即為通常所說的北向接口,這里指定以REST方式進行定義,OpenDayLight所給出的SDN應用包括對L2/L3轉發(fā)以及負載均衡、集線器等。
2) BigSwitch。圖2為BigSwitch[5]的SDN平臺架構,其北向接口包括右側REST APIs以及平臺(Core Platform)和應用之間的接口。BigSwitch所給出的SDN應用包括對網絡虛擬化應用,如ARP,DHCP、虛擬路由、OpenStack Networking、集線器、交換機學習、靜態(tài)流推送、負載均衡等的支持。
圖1 OpenDayLight SDN架構圖
圖2 BigSwitch SDN平臺架構
當前,服務器虛擬化、存儲虛擬化等技術都已被廣泛應用,充分實現(xiàn)了底層物理資源的池化共享,進而滿足云計算多租戶需求。相比之下,傳統(tǒng)網絡遠未達到類似存儲及服務器虛擬化的靈活性。
在云計算資源管理平臺中引入SDN,可以更好地改善對網絡資源的控制,實現(xiàn)管理的自動化。SDN架構將控制平面從分散部署的網絡設備中抽取出來,并以集中化的控制器方式對全網進行控制。SDN控制器可從全局監(jiān)控SDN網絡的資源容量和網絡需求。云計算資源管理平臺通過調用控制器的北向接口,以軟件方式自動實現(xiàn)網絡資源的靈活調度和分配,進而與計算、存儲資源整合統(tǒng)一交付為云服務[6]。
結合SDN的云計算資源管理平臺核心在于基于SDN控制器北向接口編排資源管理流程,使其能及時將上層云計算業(yè)務的資源需求反饋給控制器并對網絡設備和鏈路進行調度,從而將計算/存儲管理平臺與網絡管理平臺充分集成,實現(xiàn)云網融合。
OpenStack通過Neutron組件提供SDN插件支持框架,將云平臺與網絡業(yè)務創(chuàng)新結合起來,從而實現(xiàn)云網融合。以下將以云計算環(huán)境中常見的虛擬機遷移網絡策略同步跟隨(即網絡策略跟隨虛擬機的遷移而同步遷移)的場景為例分析基于云計算的SDN應用。
虛擬機在數(shù)據(jù)中心內部署時,通常與其相連的虛擬交換機或接入交換機上會部署ACL、QoS等網絡策略,從而對虛擬機進行管理。同時,針對部分有安全需求的業(yè)務,防火墻也會對虛擬機狀態(tài)進行記錄和安全保障。當虛擬機跨物理設備或跨廣域網遷移時,相應的網絡策略需同步地遷移到虛擬機新位置下的網絡設備,以保證虛擬機仍然能夠得到正常的業(yè)務保障。在遷移過程中,應保證用戶訪問無感知。
作為開源項目,OpenStack降低了運營和管理生產/實驗云基礎設施的門檻,同時,極大縮短了IaaS新業(yè)務的開發(fā)和部署周期。通過大量商業(yè)/開源Neutron插件的發(fā)布,可將OpenStack與SDN充分結合(OpenStack可視為工作在SDN應用層的云計算資源管理平臺),系統(tǒng)管理員可利用SDN北向接口調用SDN控制器對外開放的網絡能力。當有虛擬機組網需求時,相關的網絡策略和配置可在OpenStack管理平臺的界面上集中制定并進而驅動SDN控制器自動下發(fā)到對應的網絡設備上。
基于上述分析,給出虛擬機遷移網絡策略同步跟隨的場景示意圖,如圖3所示,具體步驟如下文描述。
1)系統(tǒng)管理員通過OpenStack管理平臺下發(fā)創(chuàng)建虛擬機的指令;2)OpenStack管理平臺在計算節(jié)點A上創(chuàng)建虛擬機;3)當在計算節(jié)點A上創(chuàng)建虛擬機時,Neutron SDN插件會將虛擬機對網絡資源(包括QoS,ACL等)的需求通知SDN控制器;4)SDN控制器通過OpenFlow流表將虛擬機所需要的網絡資源下發(fā)給OVS(Open vSwitch[7])和OpenFlow物理交換機;5) 系統(tǒng)管理員根據(jù)業(yè)務需求向OpenStack管理平臺下發(fā)虛擬機遷移指令;6) OpenStack根據(jù)虛擬機遷移策略將指定虛擬機從計算節(jié)點A遷移至計算節(jié)點B;7) 虛擬機遷移時會通過指令觸發(fā)SDN控制器,SDN控制器通過OpenFlow協(xié)議,更新下發(fā)給物理交換機和OVS的流表,從而實現(xiàn)與該虛擬機相對應的QoS和ACL等網絡資源隨之遷移,并保證用戶訪問無感知。
圖3 虛擬機遷移網絡策略同步跟隨
基于3.3小節(jié)的實現(xiàn)方案,搭建圖3所示的驗證環(huán)境。通過限定租戶虛擬機從外網FTP下載速度作為QoS策略,利用SDN控制器下發(fā)對應的流表至計算節(jié)點A上的租戶虛擬機所對應的交換機端口。當從OpenStack管理平臺上通過Nova live-migration命令將租戶虛擬機從計算節(jié)點A遷移至計算節(jié)點B時,SDN控制器會得到觸發(fā),從而更新下發(fā)流表。經測試,遷移過程中,遷移至計算節(jié)點B的租戶虛擬機仍然保持同樣的外網FTP下載速度,進而驗證了虛擬機在線遷移時,相關的網絡策略可保持同步跟隨。
與SDN南向接口方面已有的OpenFlow等國際標準不同,北向接口方面因需要密切聯(lián)系業(yè)務應用需求,同時具備多樣化的特征,成為當前SDN領域競爭的焦點,業(yè)界不同的參與者分別從不同的角度提出北向接口從而實現(xiàn)不同的SDN應用,導致當前北向接口標準很難達成共識??梢灶A測,后續(xù)的SDN北向接口將朝著標準化和開源兩個方向發(fā)展。北向接口設計的是否合理以便能被業(yè)務應用廣泛調用將直接影響到SDN控制器廠商的市場前景。
基于OpenStack和SDN集成環(huán)境的解決方案為云計算網絡業(yè)務的快速上線提供了新的可能,以本文提出的典型場景實現(xiàn)為基礎,后續(xù)將有更多SDN相關應用涌現(xiàn)出來,從而為云業(yè)務的發(fā)展提供更多網絡保障。
參考文獻
[1]Shin M K,Nam K H,Kim H J.Software-defined networking(SDN):A reference architecture and open APIs[C]//ICT Convergence (ICTC),2012 International Conference on.IEEE,2012:360-361
[2]左青云,陳鳴,趙廣松,等.基于Open Flow的SDN技術研究[J].軟件學報,2013,24(5):1078-1097
[3]OpenStack[EB/OL].[2013-12-13].http://www.openstack.org/
[4]OpenDaylight[EB/OL].[2013-12-13].http://www.opendaylight.org/
[5]BigSwitch[EB/OL].[2013-12-13].http://www.bigswitch.com/
[6]程瑩,張云勇,楊紹光,等.云網融合及原型驗證研究[J].電信技術,2013(9):9-13
[7]Open vSwitch[EB/OL].[2013-12-13].http://openvswitch.org/