李 艷 郝志安 李 寧 盧 冀
(中國電子科技集團公司第五十四研究所 河北 石家莊 050081)
基于mininet的SDN架構仿真研究
李 艷 郝志安 李 寧 盧 冀
(中國電子科技集團公司第五十四研究所 河北 石家莊 050081)
軟件定義網絡(SDN)是一種新型網絡創新架構,公開標準的OpenFlow技術是實現SDN架構最有效的技術之一。為進一步研究SDN架構的特性,為應用創新提供可定義的網絡平臺,在基于OpenFlow的mininet仿真軟件的基礎上,實現了SDN架構的仿真。文章總結了典型的SDN架構的特性,分析了基于OpenFlow技術的仿真原理和方法,基于Mininet仿真軟件構造,驗證了SDN架構的功能和基本工作流程,提出的仿真方法和搭建的平臺可為SDN架構的研究提供有效的技術支撐。
SDN OpenFlow Mininet
伴隨著云計算、物聯網和移動互聯網的快速發展,復雜的傳統網絡難以滿足使用需求的增長,而且有太多復雜的功能加入到路由器設計里面,比如OSPF、BGP、白名單、策略路由和MPLS等,早期定義的“最精簡”的數據通路已經臃腫不堪。網絡的復雜性已經難以靈活地滿足各種業務提出的不同資源需求,在這一背景下,SDN的概念被大家廣泛接受和認同[1]。SDN是一種基于軟件的網絡架構和技術,支持集中化的網絡控制,實現了底層網絡設施對上層應用的透明,具有靈活的軟件編程能力[2],采用軟件定義網絡的方式,靈活滿足不同用戶的應用需求。開放網絡基金會(Open Networking Foundation, ONF)標準化組織提出的OpenFlow技術,是目前實現SDN唯一的開源標準,為SDN架構的研究提供了便利方法的方法[3]。
在OpenFlow技術的基礎上,采用mininet仿真軟件構建了SDN模型,給出了驗證SDN架構靈活可編程功能的方法,驗證了SDN的控制與轉發分離的架構,實現了軟件定義網絡。
SDN架構如圖1所示,傳統網絡設備緊耦合的網絡架構被分拆成3個層級:基礎設施層,控制層和應用層?;A設施層負責數據高效轉發和狀態收集;控制層負責數據平面資源的編排、維護網絡拓撲和狀態信息等;應用層負責各種業務應用的開展[4]。

圖1 SDN架構圖
SDN架構具有集中控制、開放接口和網絡虛擬化的特征,支持控制平面與轉發平面分離,使得底層的網絡設備可以被統一控制和管理,而靈活的開放接口推動網絡業務不斷創新。分析SDN架構可以看出SDN控制層負責整個網絡的運行,底層網絡設備狀態和控制指令都需要通過SDN的南向接口傳達,北向接口使得業務應用能夠便利地調用基礎設施層的網絡資源和能力[5]。
南向接口可以采用OpenFlow協議和OF-CONFIG協議實現,通過OpenFlow協議實現控制軟件向網絡設備(如OpenFlow交換機)發送流表,控制數據流通過網絡所經過的路徑的方式完成對底層網絡設備的控制;OF-CONFIG協議規定了管理和配置交換機的端口和隊列等。OF-CONFIG與OpenFlow之間存在著密切的關系,OF-CONFIG提供一個開放接口用于遠程配置和控制OpenFlow交換機,如在OpenFlow交換機上配置控制器IP地址、對交換機的各個端口進行enable/disable操作等。OF-CONFIG V1.1版本定義了OpenFlow端口和OpenFlow隊列兩類資源,支持OpenFlow交換機與控制器之間的安全通信證書配置,支持OpenFlow邏輯交換機的發現,支持多種數據隧道類型(包括IP-in-GRE、NV-GRE和VxLAN等)。通過OpenFlow可以將網絡控制層和底層物理網絡硬件分離,實現更精細的管理,其理念就是軟件定義網絡。
OpenFlow也是由3層架構組成,第一層架構由支持OpenFlow協議的交換機組成,第二層是OpenFlow控制器,第三層是OpenFlow軟件應用。控制器是一個平臺,可以直接與使用OpenFlow協議的交換機進行通信,為OpenFlow軟件應用提供豐富的功能。OpenFlow軟件應用為網絡執行控制功能,如路由交換和會話類應用等。
OpenFlow的核心思想很簡單,傳統的FIB表和MAC表等都被OpenFlow協議統一整合為流表,流表本身的生成、維護和下發完全有外置的控制器來實現,交換機保存控制器下發流表并且只按照流表進行轉發。進入交換機的數據包通過查詢流表來獲得轉發的目的端口[6]。流表由很多個流表項組成,每個流表項就是一個轉發規則,流表項定義了端口號、VLAN、L2/L3信息等關鍵字,OpenFlow v1.3中定義的流表項由下列字段組成:
Match fields:對報文進行匹配,包括入端口,報文的頭部和一些可選的元數據;
Priority:匹配的優先級,決定匹配流表項的優先順序;
Counters:匹配到的報文統計;
Instructions:修改行為或者進行流水線處理;
Timeouts:用于配置流表項的實效時間;
Cookie:由控制器指定的非透明數值,控制器可用此字段來過濾流統計,流的修改以及流的刪除。
支持Openflow協議的交換機通過流表控制數據流的轉發,流表是交換機進行轉發策略控制的核心數據結構,交換芯片通過查找流表項來決策對進入交換機的網絡流量采取何種行為。
數據包從第一個流表開始匹配,經歷流水線處理。首先,找到流表中優先級最高的流條目執行匹配,這將根據入端口、包頭以及有上一個流表指定的元數據三類匹配域進行匹配。如果某個數據包成功匹配了流表中某個流條目,則更新這個流條目的計數器計數,同時這個流條目中的指令操作將被應用生效。如果指令中沒有指定下一個流表,這時數據包通常會被所帶有的動作集合處理后轉發。當交換機收到一個不能被當前流表各條流匹配的數據包時,會把這個數據包以openflow的格式(PACKET_IN)發送給控制器??刂破鹘涍^路由決策后,同樣以openflow的格式(PACKET_OUT)的方式將該數據包的下一跳信息回給該交換機。
電解煙氣脫硫采用“雙氧水脫硫塔-高效濕式電除塵器”的工藝流程。包含:吸收塔、循環泵、雙氧水儲槽、藥劑計量添加泵、稀硫酸儲槽等。尾氣由脫硫塔底部進入,經噴淋和填料吸收,與雙氧水溶液充分接觸和反應,生成稀硫酸。脫硫處理后的煙氣經除霧沫后,由塔上部排出。為控制煙氣拖尾和進一步降低尾氣中的污染物濃度,脫硫煙氣經脫硫塔后再串聯進入濕式電除塵器后達標排放。工藝流程如圖1 所示。
在仿真實現中,通過Mininet軟件實現OpenFlow控制器和支持OpenFlow協議的交換機的功能,實現SDN平臺的構建。
4.1 Mininet
Stanford大學Nick McKeown的研究小組基于LinuxContainer架構,開發了Mininet平臺。Mininet作為一個輕量級“軟件定義網絡”研發和測試平臺,其主要特性包括:①支持OpenFlow、Open vSwitch等網絡部件;于方便多人協同開發;③支持系統級的還原測試;④支持復雜拓撲、自定義拓撲;⑤提供phthon API;⑥很好的硬件移植性(Linux兼容);⑦高擴展性,支持超過4 096臺主機。
SDN平臺基于Mininet軟件,可以輕易地在PC機上仿真驗證一個軟件定義網絡,對基于OpenFlow和Open vSwitch的各種協議進行開發驗證,而且,所有代碼還可以無縫遷移到真實的硬件環境中。
4.2 仿真建模
演示流表下發:搭建一個網絡拓撲,有1個控制器—c0,1臺交換機—s1,3臺終端—h1、h2和h3,3臺終端與交換機s1相連接,如圖2所示。

圖2 網絡拓撲建模
4.3 仿真結果
網絡建好后,由于控制器流表為空,沒有給OpenFlow交換機下發流表,OpenFlow交換機沒有收到流表不能對端口接收的數據流進行轉發,因此,h2 ping h3不能成功。在控制器上通過dpctl手動添加流表項,下發到Openflow交換機上,完成h2和h3端口的轉發設置,查看Openflow交換機此時已經有流表信息,包括優先級、類型和表id等,如下所示:

此時,Openflow交換機上已經有了轉發的流表信息,交換機上端口2和3的in_port和out_port增加h2 ping h3操作,結果可以互通。
在流表下發和終端之間ping包過程中,可以通過wireshark軟件進行抓包分析。OpenFlow協議在應用中是在傳輸層以上,也就是應用層解析的。首先是初始化,發送hello信息,并協商使用OF協議的版本號。
數據交互過程中抓到的OpenFlow協議包如圖3所示,包括交換機和控制器建立起連接后的維護消息Hello,查詢交換機能力的Feature消息、設置或者查詢配置參數Configuration消息、控制器指定從交換機的特定端口轉發數據包的Packet-in和Packet-Out消息等,在控制器中通過設置流表中的入端口和出端口參數就可以讓接收到流表的交換機根據入端口和出端口參數實現數據流的轉發。

圖3 wireshark抓包分析OpenFlow協議
典型的SDN架構采用OpenFlow技術實現了把網絡數據和控制數據的分離,靈活改變網絡行為的意思體現出來,為未來網絡架構及業務應用發展提供了有效的方法,在分析基于OpenFlow技術仿真原理的基礎上,基于Mininet軟件,實現了一套基于OpenFlow技術的SDN仿真平臺,驗證了控制器對網絡設備的靈活控制,為SDN架構的研究提供了平臺構建及仿真技術支撐。
[1]趙慧玲,馮明,史凡.SDN—未來網絡演進的重要趨勢[J].電信科學,2012(11):1-5.
[2]王淑玲,李濟漢,張云.SDN架構及安全性研[J].電信科學, 2013(3):117-122.
[3]王文東,胡延楠.軟件定義網絡:正在進行的網絡變革[J].中興通訊技術,2013(1):39-43.
[4]韋世紅,盧威.基于OpenFlow的未來互聯網試驗網[J].計算機應用系統,2013(5):21-24.
[5]侯長逸.OpenFlow網絡軟件路由研究[J].蘭州大學學報, 2013(4):261-263.
[6]趙聯祥.SDN架構下的Open Flow原理探討[J].電信技術, 2013(2):70-72.
Research on SDN Architecture Simulation Based on Mininet
LI Yan HAO Zhi-an LI Ning LU Ji
(The 54th Research Institute of CETC,Shijiazhuang Hebei 050081,China)
The Software Defined Networking(SDN)is a new network innovation architecture,and the open OpenFlow technology is one of the most efficient technique for realizing the SDN architecture.In order to further study the characteristics of SDN architecture and provide the definable network platform for application innovation,the simulation of SDN architecture is implemented by using the Mininet simulation software based on OpenFlow technology.This paper summarizes the characteristics of typical SDN architecture, analyzes the simulation principles and methods based on OpenFlow technology,and verifies the functions and basic workflows of SDN architecture based on Mininet simulation software construction.The proposed simulation methods and platform provide the effective technical support for the research on SDN architecture.
SDN;OpenFlow;Mininet
TP393
A
1008-1739(2014)05-57-3
定稿日期:2013-12-26