談小冬,鄒山,郭浩然,田野(中國科學技術大學 計算機科學與技術學院,合肥 230027)
?
面向協議無感知轉發技術的SDN試驗床①
談小冬,鄒山,郭浩然,田野
(中國科學技術大學 計算機科學與技術學院,合肥 230027)
摘 要:基于OpenFlow的軟件定義網絡(SDN)中的轉發設備不便于支持新協議的轉發,因此協議無感知轉發(Protocol Oblivious Forwarding,POF)技術被提出.本文基于POF技術和OpenFlow控制器POX,設計并實現了一種支持POF技術的SDN控制器,POF控制器可以充分利用POF轉發設備并且體現了SDN的可編程性.同時,我們基于POF控制器搭建了POF試驗床,實驗結果表明POF控制器能夠有效地管理POF網絡,并提供高效的控制功能.
關鍵詞:軟件定義網絡; OpenFlow; 協議無感知轉發; 試驗床
軟件定義網絡(Software Defined Networking,SDN)是將控制平面與轉發平面分離并直接可編程的網絡架構[1],它的思路是: 將傳統網絡設備的數據轉發和路由控制兩個功能模塊相分離,通過集中式的控制器以標準化的接口對各種網絡設備進行管理和配置.
OpenFlow是由斯坦福大學提出的可用于SDN中的核心技術[2],它已逐漸成為SDN中的控制器與網絡設備通信協議的標準.然而,基于OpenFlow的SDN只能支持現有的數據報文協議轉發,不能支持新的協議,若需要支持新協議,設備制造商需要修改設備代碼.所以為了支持更多的新協議,OpenFlow協議變得越來越復雜.
開放網路基金會(Open Networking Foundation,ONF)在中提出了協議獨立轉發層和協議獨立轉發(Protocol Independent Forwarding,PIF)[3],并在白皮書中提出使用P4[4]和協議無感知轉發技術(Protocol-Oblivious Forwarding,POF)[5]兩種方案互補的方式來解決協議獨立轉發的問題.POF技術定義了底層的原始指令集,P4需要來編寫和編譯使用POF指令集的數據包處理程序.
POF技術是由華為公司提出的SDN轉發平面的一項創新技術,即轉發硬件設備對數據報文協議和處理轉發流程沒有感知,網絡行為完全由控制面負責定義.POF技術可以作為對ONF OpenFlow協議的增強,支持任意轉發協議和分組數據格式,使SDN的控制平面和轉發平面分離更加徹底.目前,華為公司只發布了支持POF技術的交換機和控制器的Linux版本代碼[6],但是華為提供的POF控制器只能手工配置網絡設備的流表,不支持編程模型,而SDN最大的特色就是可編程性.所以本文中,我們在POX控制器[7]的基礎上,提出了一個新的支持POF技術的SDN控制器.同時,我們利用新的POF控制器和POF軟交換機搭建了第一個POF試驗床,并進行了相關的功能和性能測試.
本文余下的內容安排為: 第2節介紹我們開發POF控制器的工作; 第3節展示了在POF試驗床上的相應測試工作; 第4節總結我們的工作,并說明后續工作的安排.
1.1基于POF的SDN架構
基于POF的SDN架構如圖1所示,類似于基于OpenFlow的SDN機構.POF控制器中包括通信引擎、拓撲發現、最小生成樹、MAC地址學習等模塊,控制器通過擴展的OpenFlow協議下發流表來控制POF交換機的轉發行為.在設計POF控制器時,我們借助了POX控制器的編程模型和基礎結構.同時,我們利用POF控制器和POF軟交換機搭建了第一個POF試驗床并進行測試.

圖1 基于POF的SDN架構
1.2通信引擎
POF控制器與POF交換機通信主要是通過消息的交互,這些消息可以是控制器與交換機建立連接、向POF交換機下發流表、改變POF交換機的狀態等.通信引擎模塊主要功能是實現這些消息的數據結構、封裝收發和解析處理,是整個控制器框架的基本模塊,也是我們設計過程中的關鍵之處.我們根據POF技術設計和定義基本的消息類型,消息的解析過程以及異常處理過程.
1.3拓撲發現
拓撲發現模塊實現了在POF網絡中發現POF交換機間(本文假設POF網絡中所有的網絡設備都支持POF技術)的網絡拓撲信息的功能,主要使用了LLDP(Link Layer Discovery Protocol,鏈路層發現協議)[8]作為鏈路發現協議.LLDP協議是一種鄰居發現協議,它提供了一種標準的鏈路發現方式,可以將本端設備的主要能力、管理地址、設備標識、接口標識等信息表示成不同的TLV(Type/Length/Value,類型/長度/值)形式,并封裝在LLDPDU(鏈路層發現協議數據單元)中,封裝有LLDPDU的報文稱為LLDP報文,報文中包含了特定的組播、目的MAC地址,以及特定的以太網類型,可以將LLDP數據包與其他MAC數據幀區分.POF控制器進行鏈路發現的過程如圖2所示.

圖2 POF交換機間的鏈路發現示意圖
當POF交換機連接POF控制器時,POF控制器會發送一個包含LLDP數據包的PACKET_OUT的消息給該交換機,該消息使POF交換機通過所有自身端口發送LLDP數據包.當POF交換機收到鄰居POF交換機發送的LLDP數據包時,由于POF交換機初始時并沒有專門的流表項用于處理LLDP數據包,所以它會通過一個PACKET_IN消息將LLDP數據包發送給POF控制器.POF控制器在收到PACKET_IN消息時,通過解析消息和LLDP數據從而發現兩臺POF交換機間的鏈路信息.網絡中其他POF交換機也都采用相同的方式發現與鄰居POF交換機間的鏈路,因此POF控制器通過拓撲發現模塊能夠發現完整的網路拓撲圖.
1.4生成樹協議
如果基于POF的SDN網絡拓撲中存在回路時可能會產生網絡風暴,最小生成樹模塊能有效地防止了網絡中回路的出現,避免了由于幀的無限循環和重復接收所導致網絡風暴的發生.該模塊的實現需要拓撲發現模塊探測的網絡拓撲信息,實現算法如下:

由拓撲發現模塊得到所有連接POF控制器POF交換機的集合switches和POF交換機間的鏈路關系tree_dict,并用done保存已遍歷的POF交換機,用tree_port保存生成樹里的端口.按序遍歷switches里的每個POF交換機,將該交換機保存到done中,若tree_dict中存在該POF交換機與另一POF交換機間的鏈路,則將另一交換機和存在的鏈路兩端端口加入到tree_port中.最后,done中已包含所有POF交換機時,將tree_port中對應的端口開啟洪泛功能.
1.5MAC地址學習
MAC地址學習模塊是通過維持MAC地址表來保存MAC地址和端口的映射關系,實現MAC地址學習功能.如果網絡拓撲中存在回路,則需要啟動最小生成樹模塊打破環路,避免廣播風暴.MAC地址學習模塊的實現算法如下:

當POF交換機收到數據包時,首先根據輸入端口p和源MAC地址src_mac更新MAC地址表mac_dict,如果數據包是LLDP類型或目的MAC地址dst_mac 是Bridge Filtered地址,則丟棄數據包; 如果dst_mac是廣播地址或者mac_dict中沒有dst_mac對應的鍵值(即輸出端口)時,則廣播該數據包; 如果mac_dict中有dst_mac對應的輸出端口是p,則丟棄數據包,否則將收到數據包轉發到合適端口并安裝相應的轉發流表.
基于我們實現的POF控制器和POF交換機,我們搭建了第一個POF試驗床,如圖3所示.其中,8臺POF交換機通過以太網交換機連接,POF控制器也與以太網交換機連接.POF控制器運行在一個配置為酷睿i7,1T硬盤和1G內存的主機上,POF交換機運行在10個千兆網口的主機上,如圖4所示.同時,我們也對我們的試驗床進行了相應測試.

圖3 POF試驗床

圖4 安裝POF交換機的10網口主機
2.1性能分析
吞吐量和時延是網絡性能的重要衡量指標.這里,我們通過對POF交換機進行了簡單的修改,以統計POF控制器每秒中能夠下發流表的數量.經過我們測量統計,我們得到了POF控制器下發流表的速率和POF交換機建立一個流表的平均時間,并與POX控制器進行了比較,如表1所示.由結果可知,POF控制器的性能是可觀的,基本達到了與POX控制器一致的性能.

表1 流表下發速率與建立流表的平均時間
2.2拓撲發現
為了測試POF試驗床的功能,我們運行拓撲發現模塊來展示.這里,我們借用第三方工具poxdesk[9]來顯示我們的測試結果,如圖5所示.圖中每個節點代表一個POF交換機,與圖3對比可知,我們通過POF控制器的拓撲發現的模塊得到的網絡拓撲與我們試驗床的拓撲一致.

圖5 網絡拓撲圖
2.3生成樹協議
POF技術對轉發的數據包協議無感知,能支持任何協議的數據包轉發.我們通過工具Ostinato[10]組建并發送自定義數據包來測試試驗床的性能.我們設置自定義數據包的類型為0x0988,TTL字段值為10.同時,在POF控制器端運行MAC地址學習模塊.當數據包到達POF交換機時,交換機在轉發前會通過相應流表操作將TTL值會減1,當TTL值為0或者數據包到達目的交換機時數據包將不會轉發.我們在PC_1向PC_2連續發送50個自定義數據包,并在相應鏈路上的POF交換機用wireshark抓包分析.
在表2中,我們統計比較是否運行生成樹協議模塊這兩種情景下POF交換機上經過的數據包數量: 當沒有運行生成樹協議模塊時,POF交換機PS_04和PS_05上轉發的數據包數量是運行生成樹協議模塊時的6倍,PS_01、PS_03和PS_06上是運行生成樹協議模塊的5倍.因此,該模塊可有效減少冗余傳輸,有效地提高網絡的穩定性.

表2 POF交換機轉發數據包的數量
本文基于POF技術設計并實現了POF控制器,主要包括通信引擎、拓撲發現、最小生成樹、MAC地址學習等模塊.在此基礎上,我們利用新的POF控制器和POF交換機搭建了基于POF的SDN試驗床,證實了我們的POF控制器具有良好的特性和一定的靈活性和擴展性.我們的工作為POF技術的研究提供了很好地思路,極大的體現了SDN的可編程性這一特點.但是,POF控制器的功能和性能亟待豐富提升,下一步的工作我們將修改Mininet平臺使其支持POF技術,并進行不同規模的仿真實驗.同時我們將考慮POF控制器的并行化[11]以及性能提升,以及將POF軟交換機移植到OpenWRT[12]系統中以便于支持無線接入技術.
參考文獻
1Casado M,Freedman MJ,Pettit J,Luo J,McKeown N,Shenker S.Ethane: taking control of the enterprise.ACM SIGCOMM Computer Communication Review,2007,37(4): 1–12.
2McKeown N,Anderson T,Balakrishnan H,Parulkar G,Peterson L,Rexford J,Shenker S,Turner J.OpenFlow: Enabling Innovation in Campus Networks.ACM SIGCOMM Computer Communication Review,2008,38(2): 69–74.
3PIF.https://www.opennetworking.org/protocol-independentforwarding.
4Bossharty P,Daly D,Gibb G,et al.P4: Programming protocol-independent packet processors,ACM SIGCOMM Computer Communication Review,2014,44(3): 87–95.
5Song H.Protocol-Oblivious forwarding: Unleash the power of SDN through a future-proof forwarding plane.ACM SIGCOMM Workshop on HotSDN.2013.127–132.
6Huawei’s POF Controller and switch.http://www.poforwarding.org/vdownload/.
7POX.http://www.noxrepo.org/pox/about-pox/.
8LLDP.http://en.wikipedia.org/wiki/Link_Layer_Discovery_ Protocol.
9Poxdesk.https://github.com/MurphyMc/poxdesk/wiki/Getting-Started.
10Ostinato.https://code.google.com/p/ostinato/wiki/UserGuide
11Cai Z,Cox AL,Ng TSE.Maestro: A system for scalable OpenFlow control[Technical Report],TR10-08,Rice University,2010.
12OpenWRT.http://www.openwrt.org.cn.
SDN Testbed for Protocol Oblivious Forwarding
TAN Xiao-Dong,ZOU Shan,GUO Hao-Ran,TIAN Ye
(School of Computer Science and Technology,University of Science and Technology of China,Hefei 230027,China)
Abstract:The OpenFlow-based software-defined Networking could not easily support forwarding of the new protocols,thus Protocol-Oblivious Forwarding technology is proposed.On the basis of POF technology and OpenFlow controller POX,this paper designs and implements the controller which supports POF technology,employs the full potentials of POF devices and reflects the programmability of SDN.Meanwhile,we construct a network testbed based on POF controller,and experimentally illustrate that POF controller can effectively manage the POF network and provide the controlling functionality with high performances.
Key words:software-defined networking; OpenFlow; protocol oblivious forwarding; testbed
基金項目:①國家自然科學基金(61202405);中國科學院先導專項子課題(XDA06011202)
收稿時間:2015-07-30;收到修改稿時間:2015-10-09