朱丹紅 張棟 何斌杰



摘? 要 針對軟件定義網(wǎng)絡(Software Defined Network,SDN)
的可編程重要特性,以控制平面北向應用開發(fā)為主要內(nèi)容,設計實驗方案。該方案基于負載均衡的SDN應用場景,對Open-Daylight控制器北向接口采用Python編程并部署實現(xiàn)。一方面可以加強SDN的場景認知,為學習北向應用開發(fā)提供有意義的實踐指導;另一方面能夠促進學生深入理解SDN的可編程內(nèi)涵,掌握SDN靈活部署網(wǎng)絡新業(yè)務的架構(gòu)優(yōu)勢,從而提升網(wǎng)絡應用的實踐創(chuàng)新能力。
關(guān)鍵詞 軟件定義網(wǎng)絡;北向接口;網(wǎng)絡課程;實驗教學;負載均衡
中圖分類號:G642.423? ? 文獻標識碼: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ī)模的不斷擴大與爆炸式增長,網(wǎng)絡結(jié)構(gòu)越來越復雜,網(wǎng)絡上部署的應用也越來越多。由于傳統(tǒng)網(wǎng)絡架構(gòu)的靈活性和可控性較差,增加部署協(xié)議或規(guī)則太為煩瑣,嚴重阻礙了網(wǎng)絡的進一步發(fā)展[1]。軟件定義網(wǎng)絡(Software Defined Network,SDN)正是為解決傳統(tǒng)網(wǎng)絡面臨的問題與限制而提出的新型網(wǎng)絡架構(gòu)[2]。SDN將控制平面與數(shù)據(jù)平面分離,網(wǎng)絡設備的所有控制邏輯集中在SDN控制器。控制器擁有網(wǎng)絡的全局視圖以及下層設備信息,并通過開放的北向API(Application Programming Inter-face,應用編程接口)為開發(fā)者提供軟件編程的方式調(diào)用網(wǎng)絡資源與編排網(wǎng)絡業(yè)務,從而快速實現(xiàn)負載均衡、防火墻等網(wǎng)絡新應用部署。因此,SDN控制平面北向接口的可編程特性,能夠極大地推動網(wǎng)絡業(yè)務創(chuàng)新,繁榮網(wǎng)絡應用,成為SDN的核心特性之一[3]。
自SDN提出后,相關(guān)研究和產(chǎn)業(yè)化應用迅速展開,將SDN引入網(wǎng)絡課程體系,是提高課程先進性與前瞻性的必然趨勢[4]。作為網(wǎng)絡新型架構(gòu),SDN技術(shù)新穎,學生在學習中往往存在一些問題,例如:SDN的理論知識前沿且抽象,缺少可借鑒的配套實踐內(nèi)容;對SDN應用場景的認知不足,很難理解SDN的可編程特性;無法準確把握SDN用于網(wǎng)絡業(yè)務開發(fā)的架構(gòu)優(yōu)勢,局限了網(wǎng)絡創(chuàng)新能力培養(yǎng)。
針對上述問題,本文提出以SDN控制平面北向API的程序開發(fā)為主要內(nèi)容,基于負載均衡的網(wǎng)絡應用場景,對實驗教學進行設計,并引導學生加以部署實現(xiàn)。該實驗方案能夠促進學生掌握SDN架構(gòu)下編程實現(xiàn)網(wǎng)絡新應用的基本方法,加強對SDN可編程內(nèi)涵與網(wǎng)絡業(yè)務快速部署的深入理解,有助于提升學生網(wǎng)絡應用的實踐創(chuàng)新能力。
2 重要知識點分析
負載均衡是一種服務器或網(wǎng)絡設備的集群技術(shù),將特定的網(wǎng)絡業(yè)務(如網(wǎng)絡服務或網(wǎng)絡流量等)分擔給多個服務器或網(wǎng)絡設備,從而提高業(yè)務處理能力,保證業(yè)務的高可用性。在傳統(tǒng)網(wǎng)絡中部署負載均衡器成本較高,過程較為繁雜;但在SDN網(wǎng)絡架構(gòu)中,控制器擁有全局網(wǎng)絡信息,能夠?qū)I(yè)務需求靈活調(diào)配。因此,負載均衡成為SDN的“殺手級”應用。
SDN北向接口是控制器為應用提供的API編程接口。編程者無須關(guān)注底層設備細節(jié),就可以通過北向接口訪問控制器管理的網(wǎng)絡資源,設計網(wǎng)絡策略并與網(wǎng)絡進行交互,充分利用SDN的網(wǎng)絡可編程優(yōu)點。本實驗以多路徑的鏈路負載均衡為應用場景,通過對控制器開放的北向接口編程,及時獲取底層設備的負載信息,并將數(shù)據(jù)分配到多條路徑傳輸,從而快速靈活地部署并實現(xiàn)負載均衡應用。
3 實驗方案展示
實驗仿真環(huán)境搭建? 基于鏈路負載均衡的應用場景,對控制平面北向API進行程序開發(fā),旨在促進學生掌握SDN架構(gòu)下編程實現(xiàn)網(wǎng)絡應用的基本方法,理解SDN網(wǎng)絡可編程的重要特性。利用開源控制器與軟件交換機等虛擬化技術(shù),能夠在普通的實驗室環(huán)境中輕松部署SDN控制平面北向應用開發(fā)所需的實驗環(huán)境[5]。首先,利用虛擬仿真平臺Mininet部署由終端虛擬主機、OpenvSwitch軟件交換機、開源控制器構(gòu)建的SDN仿真網(wǎng)絡,效果可與真實網(wǎng)絡環(huán)境相媲美。其次,在控制平面采用著名的開源通用SDN控制器OpenDaylight(ODL)。ODL提供一套基于SDN開發(fā)的模塊化、可擴展、可升級、支持多協(xié)議的控制器框架,被行業(yè)普遍使用。其北向應用接口REST API的可擴展性很強,且簡單易學,適用于淺層應用開發(fā)。學生僅需了解一些ODL提供的Python或Java API,就可以編程實現(xiàn)簡單的SDN網(wǎng)絡應用,省去了初學階段理解控制器繁雜內(nèi)部運行機制的麻煩,非常有利于實驗教學展開。