朱丹紅 張棟 何斌杰



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