SDN網路IPv6組播機制研究
摘要:隨著互聯網的迅猛發展,各種各樣的實時業務和流媒體應用對網路的形態產生了更加複雜的需求,這一需求可概括為底層網路及終端用戶的動態性和網路流量的媒體化。組播是支撐這類應用的理想方式,而傳統網路下的組播由於擴展性差、路由器要求高等原因,並未得到廣泛發展。針對這一問題,提出了基於軟體定義網路(SDN)的IPv6組播實現機制,利用SDN集中控制,動態獲取全局網路拓撲的特性,監控組播成員動態行為。在優化帶寬選路的情況下,根據組成員加入組播組的次序構建最短路徑樹,進而實現動態組播組成員管理和對多媒體應用的動態支持,具有強大的擴展性和靈活性,實現簡單,易於部署。
正文內容:
0 引言
近年來,隨著互聯網的迅猛發展,諸如視頻直播、網路教學等實時業務廣泛應用,多個接收者需要同時從一個或多個源節點接收相同的流媒體數據,致使網路傳輸的信息容量大大增加,佔用了大量的網路帶寬。針對這樣的應用需求,傳統的點播技術不僅對源節點資源和網路帶寬的消耗很大,而且限制了用戶數量的擴展。比較而言,組播是一個更好的傳輸方案。但是,傳統網路中,路由器需要預先配置,然後才可以動態支持組播訂閱者的加入操作、離開操作和組播樹的生成操作。針對組播流量對帶寬的需求未動態選擇傳輸路徑,很容易造成鏈路擁塞,不能夠為用戶提供較好的服務質量。以OpenFlow技術為核心的軟體定義網路框架,具有集中控制的功能[1-2],能夠自己感知網路拓撲的變化,為IPv6組播實現提供好的解決方案。
文獻[3]提出了一種在IPv4網路下基於SDN分層組播的視頻會議系統架構。該系統捨棄了傳統的互聯網組管理協議(IGMP)和多點控制單元(MCU)硬體設備,結合可伸縮視頻編碼(SVC)實現分層視頻組播,以滿足不同設備能力的會議終端需求,用視頻層數之間的切換來避免擁塞。
文獻[4]在IPv4網路下從控制器的安全性出發,設計了一種基於OpenFlow的可信可控的組播控制器。組播控制器通過OpenFlow交換機連接到身份認證的主機,組播控制器制定並下發流表給OpenFlow交換機,實現將組播數據傳輸到通過身份認證的主機。基於組播接收者的身份認證,實現了組播接收者的可信;組播在組播組成員管理時,使用可信可控的組播控制器進行集中管理,沒有使用傳統的IGMP協議。
文獻[5]提出了一種基於IPv4的新型組播機制OpenFlow,稱為OpenFLow組播(OFM)。在控制器中設計了一個集中控制器負責實現組播,負責處理組播訂閱者請求、構造組播樹以及組播狀態維護。交換機根據生成的組播流錶轉發組播流量,沒有考慮帶寬擁塞的需求。
文獻[6]採用TCAM為交換機細粒度流量控制提供了較大的存儲空間,並採用分段路由解決流量工程中的可擴展問題。通過在組播源端交換機和分支交換機上用包頭編碼MPLS標籤來更改包頭,配置有序列表段來表明路由路徑,並考慮了交換節點的負載情況,但TCAM非常昂貴且能耗高。它用斯坦納樹構造組播生成樹,但沒有考慮到組成員加入、離開的動態性。
本文在SDN網路中研究IPv6組播實現技術,在保證協議棧(MLD)[7]不變的前提下,對組播訂閱者加入和離開進行感知和維護;可根據組播流量需求,考慮在網路帶寬負載情況下,根據組播訂閱者加入/離開組播組的動態次序構建組播生成樹;對組播轉發路徑進行動態調整,實現組播業務的有效轉發。
1 總體思路
1.1 傳統網路與SDN網路實現對比
SDN將分散式路由轉換為集中式路徑選擇,其控制器具有主導網路資源管理和流量控制的能力,能夠實現更靈活、細粒度的流量調度管理。傳統網路與SDN網路實現組播功能方式的對比,如表1所示。
1.2 SDN網路下功能性需求
組成員管理功能。在SDN網路中,組播訂閱者將MLD報文發送給組成員管理功能進行處理。該功能對組播訂閱者的加入、離開消息進行維護。即需要感知組播訂閱者的加入,同步在組播拓撲中增加該成員並維護網路拓撲,同時離開後在拓撲中刪除該成員並維護網路拓撲。
組播拓撲維護功能。與SDN控制器一起,維護整個網路實時的網路拓撲信息,包括交換機的加入、離開、改變、交換機埠的變化和新增鏈路的實時帶寬信息。
組播選路功能。根據組播拓撲維護功能,維護網路拓撲信息、實時可用帶寬信息和組成員管理功能維護的組播訂閱者信息。為每個新加入(S,G)組的交換機節點(S2)找到距離轉發組播流量交換機(S1)的最短路徑。如果有多條路徑,選擇路徑帶寬之和較大的路徑。
2 SDN網路下IPv6組播功能的設計
基於IPv6組播的RFC標準,在保證組播訂閱者MLD協議棧不變的前提下,依據SDN控制器具有動態、可管理和可配置的特性,提出了SDN網路下Ipv6組播功能的設計,如圖1所示。
SDN網路中,實現IPv6組播需要設計3個功能:組成員管理、組播拓撲維護和組播選路。圖1是整體功能設計圖。整體架構主要有3部分組成:控制器應用層、控制器控制層和物理拓撲層。
控制器應用層是ONOS控制器中的應用APP,開發者可以自定義實現一個或多個APP來完成自己的應用需求。本文針對單播源組播應用場景,在應用層上實現組成員管理、組播拓撲維護和組播選路3個功能。
控制器控制層由下往上包含協議層、適配器層、南向介面層、核心層和北向介面層。它通過OpenFlow協議接收物理拓撲等信息,並抽象給應用層。
物理拓撲層是由交換機通過鏈路連接成的網路拓撲。在實驗環境中,可以通過Mininet模擬器模擬實現。
2.1 組成員管理功能
組成員管理功能管理組播訂閱者的加入和離開消息,負責處理訂閱者發來的MLD數據報文,維護訂閱者列表HSL(主機交換機連接)表,如表2所示。
處理過程的流程,如圖2所示。對於加入組播組的報文,根據訂閱者加入的組播組地址,在HSL表中新增一條記錄,記錄下組播源地址、組播組地址以及控制器存儲的主機的IP地址、MAC地址、所連交換機的地址,埠信息在HSL表中添加一條記錄。對於離開組播組的報文,在HSL表中刪除一條記錄。
2.2 組播拓撲維護功能
SDN控制器通過LLDP協議與交換機通信獲得整個網路信息,包括網路拓撲、鏈路延遲等。網路管理和決策必須獲得準確的網路監測數據。控制器可以周期性地向交換機發送查詢消息,也可以由觸發條件觸發控制器發送查詢消息。本文採用第二種方式。
鏈路帶寬是進行組播選路的重要決策數據,同樣可以通過南向介面的OpenFlow協議獲取。在OpenFlow協議中,控制器通過發送OFPT_STATS_REQUEST消息向交換機查詢埠的統計信息,包括已接收的位元組數(g_bytes )、已發送的位元組數(f_bytes )。控制器按照式(1)計算鏈路的吞吐量BT ,再根據該鏈路的總帶寬和當前周期T 計算鏈路已使用的帶寬,然後按照式(2)即可計算出該埠直連鏈路的可用帶寬B_available 。
組播拓撲維護功能利用SDN控制器周期性地發送OFPT_STATS_REQUEST消息,獲取各個時刻的可用帶寬信息。當有組成員加入時,組播拓撲功能通知控制器觸發OFPT_STATS_REQUEST,實時獲取各鏈路當前的可用帶寬值,為新加入的訂閱者選擇組播路徑提供必要的信息。
網路交換機表示為拓撲圖中的頂點,如(S1,S2,S3,S4…)。每個頂點相連的邊表示連接關係。網路拓撲中記錄交換機互聯關係、互聯埠以及互聯鏈路的可用帶寬。圖1中的網路拓撲可以表示為如表3所示。
2.3 組播選路功能
根據組播訂閱者的動態加入、離開消息,組成員管理功能維護HSL表。該表中的交換機是需要轉發組播流量的交換機。由SL表中信息可知,組播拓撲維護功能已經維護了整個網路拓撲和鏈路之間的實時帶寬。以上2張表為組播選路提供了選路依據,根據組成員管理功能和組播拓撲維護功能維護的表信息,可以選取合適的演算法生成組播轉發樹。在進行組播演算法選取時,必須考慮組播通信的擴展性問題。為了解決網路的鏈路擁塞,最小化網路資源利用,解決SDN中組播的可擴展性問題,本文提出了根據組播流量可用帶寬需求選取的最短路徑,對選擇好的路徑制定轉發規則,通知控制層對接收組播流量的交換機進行流表下發的操作。轉發組播流量的交換機以Gswitch欄位描述存儲在表GSL中。該表維護了一個(S,G)組的所有轉發組播流量的交換機。0001、0002、0003、0004分別代表圖1中的交換機S1、S2、S3、S4。根據組播訂閱者加入/離開時的動態行為,同步添加/刪除所需的交換機到相應的(S,G)組的交換機集合中。如果一個(S,G)組對應的交換機集合中沒有交換機存在,則表示該(S,G)組沒有訂閱者接收組播流量,可以下發優先順序較高的流表使組播轉發表失效。
2.3.1 演算法思想
一個網路可以用加權圖G=(V,E) 表示,如圖3示。V 表示節點集合,即交換機節點;E(S,t) 表示鏈路集合,權值表示為從源節點S到組播訂閱者t節點路徑的可用帶寬,即圖3中的數字表示。圖3的網路示例圖是單播網路拓撲圖。組播生成樹的建立以單播鏈路信息為依據進行組播的選路。S節點為源端節點,組播樹的生成與組成員的加入次序有關,不同的加入次序會生成不同的組播生成樹。但是,組播路徑選擇的演算法不變。根據組播流量需求帶寬,對鏈路的帶寬進行升序排序,在保證整個網路連通的情況下,依次刪除帶寬最小的路徑,根據帶寬選取網路,如圖4所示。為每一個加入組播樹的節點(d1)選擇一個離轉發組播流量交換機節點(ds1)的最短路徑,即以d1為選擇點,找到距離ds1的最短路徑。如果有多條路徑,則選擇路徑帶寬總和較大的路徑。
2.3.2 演算法步驟
步驟1:初始時,X 只包含源點,即X= 。Y 包含除S外的其他頂點,即Y =。X 集合和Y 集合中節點之間的可用帶寬,在某一個時間是固定的。根據組播流量需求,提供組播路徑選擇的依據。
步驟2:當Y 中的第一個節點(d1)加入組播樹時,為節點d1選擇一個離組播源S的最短路徑。如果路徑有多條,則選擇帶寬總和較大的路徑。
步驟3:當Y 中的其他節點(d2)加入組播樹時,為該節點選擇一個離轉發組播流量交換機節點(除組播源節點)的最短路徑。如果路徑有多條,則選擇帶寬總和較大的路徑。
步驟4:重複步驟3,直到所有節點都加入組播樹。
步驟5:當Y 中的最後一個節點離開組播樹時,意味組播網路中已不存在組播訂閱者,則並行下發流表,刪除轉發組播流量的交換機中的轉發表(根據流表的優先順序)。
演算法的節點選擇結果,如表5所示。根據節點加入的次序I、A、B、C、D、E、L、G、H、K、F、J,依據圖4的路由網路,生成組播樹。
依據演算法,根據加入的節點次序,生成的組播樹如圖5所示,組播源端只發送一份流量。
3 實驗驗證
在mininet模擬器[8]環境下構建網路拓撲圖,連接到onos控制器上,並把源端和組播訂閱者的IPv4地址改為IPv6地址,如圖6所示。
在mininet模擬器中通過xterm命令開啟3個主機。h1為源端,發送組播流量;h2、h3為組播訂閱者,接收組播流量。用python命令運行發送和接收組播流量的程序,實驗結果如圖7所示。其中,h2、h3同一時刻能收到相同的數據。
4 結 語
本文基於傳統網路下的IPv6組播思想,利用SDN靈活控制的思路,提出了在SDN控制器下實現IPv6組播的方案,並結合鏈路帶寬,提供可保證服務質量的組播路徑選擇,但是沒有考慮時延、時延抖動等因素,可以作為未來的研究內容。
參考文獻:
[1] 左青雲,陳鳴,趙廣松.基於OpenFlow的SDN技術研究[J].軟體學報,2013,24(05):1078-1097.
[2] 王亞昕,陳量,康宗緒.用SDN改造Google WAN網路-Google B4網路項目研究[J].通信技術,2015,48(12):1432-1436.
[3] 張琳凱,楊恩眾,姚振. SDN分層組播視頻會議系統設計與實現[J].小型微型計算機系統,2017,38(03):425-430.
[5] Yu Y,Zhen Q,Xin L,et al.OFM:A Novel Multicast Mechanism Based on OpenFlow[J].Advances in Information Sciences & Service Sciences,2012,9(04):278-286..
[6] Huang L,Hung H,Lin C,et al.Scalable Steiner Tree for Multicast Communications in Software-Defined Networking[C].Computing Research Repository (CoRR),2014.
[7] 朱秀峰,錢華林,柴政.MLD協議與PIM-SM協議實現IPv6組播[J].微電子學與計算機,2005,22(06):206-209.
[8] Kaur K,Singh J,Ghumman N S.Mininet as Software Defined Networking Testing Platform[C].International Conference on Communiction,Computing & Systems,2014.
作者:李 丹,秦 華
單位:北京工業大學 信息學部,北京 100124
作者簡介:李 丹,女,碩士,主要研究方向為軟體定義網路、網路安全;
秦 華,女,博士,高級工程師,主要研究方向為互聯網體系結構、網路安全。
本文刊登在《通信技術》2018年第5期(轉載請註明出處,否則禁止轉載)
※OFDM系統自適應同步研究與DSP實現
※基於布爾異或掩碼轉算術加法掩碼的安全設計
TAG:通信技術編輯部 |