朱丹紅 張棟 何斌杰
摘? 要 針對軟件定義網(wǎng)絡(luò)(Software Defined Network,SDN)
的可編程重要特性,以控制平面北向應(yīng)用開發(fā)為主要內(nèi)容,設(shè)計實驗方案。該方案基于負(fù)載均衡的SDN應(yīng)用場景,對Open-Daylight控制器北向接口采用Python編程并部署實現(xiàn)。一方面可以加強(qiáng)SDN的場景認(rèn)知,為學(xué)習(xí)北向應(yīng)用開發(fā)提供有意義的實踐指導(dǎo);另一方面能夠促進(jìn)學(xué)生深入理解SDN的可編程內(nèi)涵,掌握SDN靈活部署網(wǎng)絡(luò)新業(yè)務(wù)的架構(gòu)優(yōu)勢,從而提升網(wǎng)絡(luò)應(yīng)用的實踐創(chuàng)新能力。
關(guān)鍵詞 軟件定義網(wǎng)絡(luò);北向接口;網(wǎng)絡(luò)課程;實驗教學(xué);負(fù)載均衡
中圖分類號:G642.423? ? 文獻(xiàn)標(biāo)識碼:B
文章編號:1671-489X(2019)04-0121-03
Abstract This paper briefly introduces the programmable fea-tures of Software Defined Network (SDN), and puts forward the?experiment for the northbound application development of con-trol plane. The experiment teaching scheme is designed with app-lication scenario of load balance, and is deployed on the north-bound interface of OpenDaylight controller by Python progra-mming. It not only provides meaningful practical guidance for learning northbound application but also promotes students un-derstanding of the programmable connotation of SDN. And the?experiment is helpful to master the SDN architectural advantagesfor deployment of new services, so the practical innovation abi-lity of network applications can be enhanced.
Key words software defined network; northbound interface; net-work course; experiment teaching; load balance
1 引言
伴隨著互聯(lián)網(wǎng)規(guī)模的不斷擴(kuò)大與爆炸式增長,網(wǎng)絡(luò)結(jié)構(gòu)越來越復(fù)雜,網(wǎng)絡(luò)上部署的應(yīng)用也越來越多。由于傳統(tǒng)網(wǎng)絡(luò)架構(gòu)的靈活性和可控性較差,增加部署協(xié)議或規(guī)則太為煩瑣,嚴(yán)重阻礙了網(wǎng)絡(luò)的進(jìn)一步發(fā)展[1]。軟件定義網(wǎng)絡(luò)(Software Defined Network,SDN)正是為解決傳統(tǒng)網(wǎng)絡(luò)面臨的問題與限制而提出的新型網(wǎng)絡(luò)架構(gòu)[2]。SDN將控制平面與數(shù)據(jù)平面分離,網(wǎng)絡(luò)設(shè)備的所有控制邏輯集中在SDN控制器。控制器擁有網(wǎng)絡(luò)的全局視圖以及下層設(shè)備信息,并通過開放的北向API(Application Programming Inter-face,應(yīng)用編程接口)為開發(fā)者提供軟件編程的方式調(diào)用網(wǎng)絡(luò)資源與編排網(wǎng)絡(luò)業(yè)務(wù),從而快速實現(xiàn)負(fù)載均衡、防火墻等網(wǎng)絡(luò)新應(yīng)用部署。因此,SDN控制平面北向接口的可編程特性,能夠極大地推動網(wǎng)絡(luò)業(yè)務(wù)創(chuàng)新,繁榮網(wǎng)絡(luò)應(yīng)用,成為SDN的核心特性之一[3]。
自SDN提出后,相關(guān)研究和產(chǎn)業(yè)化應(yīng)用迅速展開,將SDN引入網(wǎng)絡(luò)課程體系,是提高課程先進(jìn)性與前瞻性的必然趨勢[4]。作為網(wǎng)絡(luò)新型架構(gòu),SDN技術(shù)新穎,學(xué)生在學(xué)習(xí)中往往存在一些問題,例如:SDN的理論知識前沿且抽象,缺少可借鑒的配套實踐內(nèi)容;對SDN應(yīng)用場景的認(rèn)知不足,很難理解SDN的可編程特性;無法準(zhǔn)確把握SDN用于網(wǎng)絡(luò)業(yè)務(wù)開發(fā)的架構(gòu)優(yōu)勢,局限了網(wǎng)絡(luò)創(chuàng)新能力培養(yǎng)。
針對上述問題,本文提出以SDN控制平面北向API的程序開發(fā)為主要內(nèi)容,基于負(fù)載均衡的網(wǎng)絡(luò)應(yīng)用場景,對實驗教學(xué)進(jìn)行設(shè)計,并引導(dǎo)學(xué)生加以部署實現(xiàn)。該實驗方案能夠促進(jìn)學(xué)生掌握SDN架構(gòu)下編程實現(xiàn)網(wǎng)絡(luò)新應(yīng)用的基本方法,加強(qiáng)對SDN可編程內(nèi)涵與網(wǎng)絡(luò)業(yè)務(wù)快速部署的深入理解,有助于提升學(xué)生網(wǎng)絡(luò)應(yīng)用的實踐創(chuàng)新能力。
2 重要知識點分析
負(fù)載均衡是一種服務(wù)器或網(wǎng)絡(luò)設(shè)備的集群技術(shù),將特定的網(wǎng)絡(luò)業(yè)務(wù)(如網(wǎng)絡(luò)服務(wù)或網(wǎng)絡(luò)流量等)分擔(dān)給多個服務(wù)器或網(wǎng)絡(luò)設(shè)備,從而提高業(yè)務(wù)處理能力,保證業(yè)務(wù)的高可用性。在傳統(tǒng)網(wǎng)絡(luò)中部署負(fù)載均衡器成本較高,過程較為繁雜;但在SDN網(wǎng)絡(luò)架構(gòu)中,控制器擁有全局網(wǎng)絡(luò)信息,能夠?qū)I(yè)務(wù)需求靈活調(diào)配。因此,負(fù)載均衡成為SDN的“殺手級”應(yīng)用。
SDN北向接口是控制器為應(yīng)用提供的API編程接口。編程者無須關(guān)注底層設(shè)備細(xì)節(jié),就可以通過北向接口訪問控制器管理的網(wǎng)絡(luò)資源,設(shè)計網(wǎng)絡(luò)策略并與網(wǎng)絡(luò)進(jìn)行交互,充分利用SDN的網(wǎng)絡(luò)可編程優(yōu)點。本實驗以多路徑的鏈路負(fù)載均衡為應(yīng)用場景,通過對控制器開放的北向接口編程,及時獲取底層設(shè)備的負(fù)載信息,并將數(shù)據(jù)分配到多條路徑傳輸,從而快速靈活地部署并實現(xiàn)負(fù)載均衡應(yīng)用。
3 實驗方案展示
實驗仿真環(huán)境搭建? 基于鏈路負(fù)載均衡的應(yīng)用場景,對控制平面北向API進(jìn)行程序開發(fā),旨在促進(jìn)學(xué)生掌握SDN架構(gòu)下編程實現(xiàn)網(wǎng)絡(luò)應(yīng)用的基本方法,理解SDN網(wǎng)絡(luò)可編程的重要特性。利用開源控制器與軟件交換機(jī)等虛擬化技術(shù),能夠在普通的實驗室環(huán)境中輕松部署SDN控制平面北向應(yīng)用開發(fā)所需的實驗環(huán)境[5]。首先,利用虛擬仿真平臺Mininet部署由終端虛擬主機(jī)、OpenvSwitch軟件交換機(jī)、開源控制器構(gòu)建的SDN仿真網(wǎng)絡(luò),效果可與真實網(wǎng)絡(luò)環(huán)境相媲美。其次,在控制平面采用著名的開源通用SDN控制器OpenDaylight(ODL)。ODL提供一套基于SDN開發(fā)的模塊化、可擴(kuò)展、可升級、支持多協(xié)議的控制器框架,被行業(yè)普遍使用。其北向應(yīng)用接口REST API的可擴(kuò)展性很強(qiáng),且簡單易學(xué),適用于淺層應(yīng)用開發(fā)。學(xué)生僅需了解一些ODL提供的Python或Java API,就可以編程實現(xiàn)簡單的SDN網(wǎng)絡(luò)應(yīng)用,省去了初學(xué)階段理解控制器繁雜內(nèi)部運行機(jī)制的麻煩,非常有利于實驗教學(xué)展開。