


摘 要:為深化研究生課程教學改革,針對軟件定義網絡實驗課程存在的實驗科目匱乏、硬件實驗環境尚難規模化部署和靈活性不足、學生上手難度大等問題,依據體現最新研究進展、增強差異對比實驗、設計模塊化實驗科目等建設思路,闡述如何基于Mininet軟件模擬環境配合POX、Kinetic、Pyretic等控制器開設SDN網絡環境搭建、SDN網絡特定拓撲繪制、網絡分割、防火墻編寫等實驗科目,最后說明取得的教學效果。
關鍵詞:軟件定義網絡:Mininet; OpenFlow; POX;實驗課程設計
引 言
軟件定義網絡(Sofiware Defined Network,SDN)是一種基于可編程網絡的新型網絡體系架構,本質上具有“控制與轉發分離”“設備資源虛擬化”和“通用硬件及軟件可編程”三大特性,可實現全網流量行為的靈活控制,為核心網絡及應用的創新提供了良好的平臺,SDN被普遍認為是IT界的第二次革命。
1 軟件定義網絡實驗課程設計面臨的問題
1) SDN屬于新型網絡體系架構,實驗科目比較匱乏。
SDN從2012年成為研究熱點,業界和學術界已開發和提出一些SDN網絡交換設備與搭建方案,也有一些介紹SDN相關技術的書籍(如《軟件定義網絡:SDN與OpenFlow解析》《深度解析SDN:利益、戰略、技術、實踐》《SDN核心技術剖析和實戰指南》等)面世,但高校很少開設軟件定義網絡相關課程,實驗科目更是不多,在這種情況下,缺乏可借鑒的教學成果,增加了軟件定義網絡實驗課程設計的難度。
2)硬件交換設備較貴,難以大規模部署用于實驗教學。
作為SDN網絡的主要南向通道協議,OpenFlow協議尚在更新發展之中。購買支持OpenFlow協議的硬件交換設備搭建環境,雖然環境真實,但OpenFlow協議更新較快,大概每半年就會更新一版,如果隨之更新硬件設備,會需要消耗大量經費,目前條件下尚難以用于大規模實驗教學。
3)硬件實驗環境的靈活性不足。
大部分SDN網絡硬件交換設備所實現的OpenFlow版本是1.0,而對于1.1、1.2、1.3和1.4版本的實現則較少,另外,滿足1.3版本所要求的安全傳輸層協議(TLS)支持則更少,因此采用其所搭建起來的SDN網絡環境不夠完整。另外,在硬件實驗環境下,學生做特定網絡拓撲繪制、網絡分割等實驗時不夠靈活,需要分批次開展實驗,且實驗環境構建與切換較為復雜,影響實驗教學的效果。
4)學生上手難度較大。
SDN本身就是新興技術,另外,在實現各類SDN技術時,用到了大量不同的編程語言(如Java、Python、C++等),存在不同的控制器實現(如POX、Kinetic、Pyretic等),需要網絡協議分析、虛擬機操作等相關基礎知識,因此,對于初學者而言,難度太大,不易上手,很多時間花在環境搭建和基礎知識更新學習上,不但會讓學生產生畏難情緒,而且不能起到很好的教學效果。
2 軟件定義網絡實驗科目設計思路和方法
從SDN、OpenFlow等公開文檔與資料中搜集適合用于SDN實驗科目的素材,借鑒已有教學成果,軟件定義網絡實驗科目設計的總體思路為體現最新研究進展、增強差異對比實驗和設計模塊化實驗科目。
1)體現SDN最新研究進展,提高實驗科目的針對性。
根據課程標準和課程目的,解析課程內容,充分利用現有的SDN網絡公開資料和開源工具,在硬件條件尚不具備的情況下,開設SDN實驗科目,另外,實驗科目要體現SDN網絡技術的最新研究進展,使實驗更有針對性,更貼近實際,提高學生的實踐動手能力和實際問題解決能力。
2)增加與傳統網絡的差異對比實驗,使學生更易理解和掌握SDN的優勢和不同。
SDN是一種新型的網絡架構,依據學生所具備的傳統網絡協議(如TCP/IP協議族)的相關知識,為使學生更好掌握SDN網絡相關知識,增加與傳統網絡運行方式的差異對比實驗,這樣不但使學生可以溫習舊知識、學習新知識,并且針對同樣的網絡通信問題,讓學生理解需要設計新的網絡架構的必要性,使得學生掌握創新思維,為后繼開展創新型研究奠定基礎。
3)模塊化設計實驗科目,滿足不同學生的個性化培養需求。
因本課程面向解放軍信息工程大學所有層次、所有類型研究生開設,為滿足不同層次、不同水平學生的培養需求,擬構建模塊化的實踐課程體系,可針對不同的培養對象和培養目標,利用不同的實踐課程模塊化組織實驗教學。在課程實施過程中,可針對學習和動手能力較強的學生適當增加難度較大的實驗科目,而針對學習和動手能力較差的學生適當降低難度,使不同的培養對象都能有所收獲。另外,針對那些只是想了解和學習SDN前沿知識的學生,則適當降低難度,減少實驗科目的難度和數量,使得他們也有信心學下去,而對于希望對SDN網絡技術有強烈興趣的學生,希望學到更多的知識,提高自身能力,則可布置更多的授課內容與難度較高的實驗科目。
3 Mininet模擬環境介紹
斯坦福大學Nick McKeown教授帶領的研究小組基于Linux Container架構,開發出了一套進程虛擬化的平臺_Mininet。在Mininet的幫助下,你可以輕易地在自己的筆記本上搭建一個軟件定義網絡,對基于OpenFlow、Open vSwitch的各種協議等進行開發驗證且所有的代碼幾乎可以無縫遷移到真實的硬件環境中。在自己的筆記本上,就可以搭建一套媲美真實硬件環境的復雜網絡,并輕松進行各項實驗,一行命令就可以創建一個支持SDN的任意拓撲的網絡結構并可以靈活地進行相關測試,驗證了設計的正確后,又可以輕松部署到真實的硬件環境中,因此Mininet給我們提供了一個非常便捷、非常優秀的SDN網絡研究與測試平臺,而無需使用昂貴的專業級硬件實驗平臺,也避免了使用傳統虛擬機搭建復雜網絡環境的負擔。
Mininet作為一個輕量級軟件定義網絡研發和測試平臺,其主要特性包括:
(1)支持OpenFlow、Open vSwitch等軟件定義網絡組件;
(2)方便多人協同開發;
(3)支持系統級的還原測試;
(4)支持復雜拓撲、自定義拓撲:
(5)提供Python API;
(6)很好的硬件移植性(Linux兼容),結果有更好的說服力;
(7)高擴展性,支持超過4 096臺主機的網絡結構。
4 軟件定義網絡實驗課程設計概況
軟件定義網絡實驗課程可設3種實驗類型(基礎型、驗證型和綜合型)和11個實驗科目,可根據不同培養對象的不同培養需求,模塊化組織實驗教學內容。
1)基礎型實驗科目。
基礎型實驗主要要求學生掌握后繼實驗所必需的實驗基礎環境及基本使用方法,主要是Mininet實驗環境的搭建與Mininet基本使用,詳見表1。該部分實驗可由學生自己選擇學時數。
2)驗證型實驗科目。
驗證型實驗主要使用Mininet模擬環境對Mininet與SDN網絡的特色與優勢功能進行試驗與驗證,如特定網絡拓撲繪制、二層防火墻編寫、網絡分割等,詳見表2。該部分實驗可由學生自己選擇學時數。
3)綜合型實驗科目。
綜合型實驗主要針對學習興趣濃厚、動手能力較強的學生,為其設計更復雜、更實用的實驗科目,也可根據技術的最新進展引進一些技術小課題作為實驗科目,需要學生獨立思考、查閱文獻資料、尋求解決方案,進一步提高學生解決實際問題的能力,詳見表3。該部分難度較大,授課時不做硬性要求,由感興趣的學生選做,既可抵消前面的學時,又可額外完成。
5 結語
針對軟件定義網絡實驗課程存在的實驗科目匱乏、硬件實驗環境尚難規模化部署和靈活性不足、學生上手難度大等問題,依據體現最新研究進展、增強差異對比實驗、設計模塊化實驗科曰等建設思路,通過Mininet軟件模擬環境配合POX、Kinetic、Pyretic等控制器開設SDN網絡環境搭建、SDN網絡特定拓撲繪制、網絡分割、防火墻編寫等實驗科目,涉及不同的培養難度和層次,充分考慮不同培養對象的個性化需求。未來,我們準備依托已成功搭建的OpenStack云平臺及其支持SDN的Neutron組件擴充SDN網絡實驗科目。