国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種基于標簽交換的OpenStack SDN網絡高效多流表方案

2018-05-28 11:10:10許延偉黃志林徐曄劉永紅
電腦知識與技術 2018年9期
關鍵詞:軟件定義網絡

許延偉 黃志林 徐曄 劉永紅

摘要:在OpenStack云計算平臺中采用基于SDN技術的網絡架構是當前的一個技術發(fā)展趨勢,因為其可以很好的滿足OpenStack在網絡管理方面的靈活性和敏捷性需求。其中基于OpenFlow流表為虛擬機提供各種二層和三層網絡功能是實現高效的網絡通信的關鍵。針對OpenStack平臺的網絡需求特性,該文提出了一種基于標簽交換的SDN網絡高效多流表方案,通過多流水線有效降低SDN網絡流表數量,提高網絡通信的效率,具備適應不同云計算平臺的能力和網絡功能擴展能力,從而可為OpenStack提供高效的SDN組網實現方案。

關鍵詞: 軟件定義網絡;OpenStack;OpenFlow;多流表方案

中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2018)09-0053-04

Abstract:The adoption of SDN-based network architecture in the OpenStack cloud-computing platform is a current trend, because of its ability to meet OpenStack's flexibility and agility requirements in network management. Providing various Layer 2 and Layer 3 network functions for virtual machines based on the OpenFlow flow entries is the key to achieving efficient network communication. Aiming at the network characteristics of OpenStack, this paper proposes an efficient multi-flow table Implementation for SDN network based on label switching, which can effectively reduces the number of SDN network flow tables and improves the efficiency of network communication by multi-pipelines. In addition, it has the ability to adapt to different cloud computing platforms and extending the network functionalities.

Key words:SDN ; OpenStack; OpenFlow; Multi-Flow Table Implementation

1 引言

近年來云計算己經在各大軟件廠商、互聯網公司中得到廣泛認可和使用。當前,基于OpenStack架構的云計算平臺占領了絕對的市場份額。無論在國內一線互聯網和軟件公司還是國外各軟件巨頭,近90%的廠商都在關注和實踐OpenStack項目,成為了事實上的開源云計算平臺標準[1]。

OpenStack是由Rackspace和美國國家航空航天局(NASA)合作研發(fā)的用于搭建IaaS平臺的云計算管理軟件[2]。OpenStack是一個開源的云計算管理平臺項目,并基于社區(qū)開發(fā)模式,無論是企業(yè)或個人都可以根據自己的需要修改源代碼,并將修改的代碼作為開源或者商業(yè)產品發(fā)布出去[3]。OpenStack支持幾乎所有類型的云環(huán)境,項目目標是提供實施簡單、可大規(guī)模擴展、豐富、標準統(tǒng)一的云計算管理平臺。OpenStack通過各種互補的服務提供了基礎設施即服務(IaaS)的解決方案,每個服務提供API以進行集成。

作為OpenStack云平臺中的三大關鍵基礎資源之一,Neutron網絡的管理相當復雜,各種網絡功能和配置對用戶的要求很高,而且出現問題以后非常難以定位原因,而且開源社區(qū)版本的虛擬網絡性能表現不是很理想。因此,依靠其內在的高靈活性和可編程性,開發(fā)可對接OpenStack Neutron的軟件定義網絡(Software Defined Network,SDN)[4]網絡就成為了一個技術上的必然選擇和當前主流趨勢。SDN把傳統(tǒng)網絡設備緊密耦合的網絡架構分拆為應用、控制、數據轉發(fā)3層分離的體系架構,其核心技術是通過實現網絡設備的控制權和轉發(fā)權的相互獨立,從而靈活、方便地控制數據包的轉發(fā),提供了一種可編程的網絡管理模式。在軟件定義網絡中,控制器通過南向接口(OpenFlow[5]協(xié)議)獲取底層網絡設備信息,進行統(tǒng)一部署、集中管理以及靈活控制,從而解決了分散網絡設備的管理控制問題。同時,控制器提供了可編程擴展的北向接口,按不同需求設計的功能應用軟件可以直接運行在控制器上,利用控制器對全局網絡設備進行統(tǒng)一管理。

當前基于SDN的OpenStack網絡方案主要可以分為Overlay網絡架構[6, 7]和非Overlay網絡架構[8, 9]。在Oveylay網絡架構下,不同服務器上的虛擬機之間的通信依靠構建在虛擬交換機之上的二層隧道,例如VxLan [10]、GRE [11]等。由于二層隧道需要對數據包進行封包和解封包的操作,Overlay網絡架構下的虛擬機通信性能和網絡的靈活性都會受到很大的限制[8]。非Overlay網絡架構一般是利用物理SDN交換機進行組網,利用SDN控制器下發(fā)OpenFlow實現虛擬機的端到端的SDN通信。這種組網方案可以充分利用SDN網絡的靈活性和敏捷特性,充分發(fā)揮物理交換機的高效數據包處理性能,但是其面臨的主要問題是當前的SDN物理交換機的流表數量有限和SDN控制器流表下發(fā)的低效率。

文獻[12]提出了一種基于標簽進行數據包轉發(fā)的SDN網絡方案,如圖1所示。文獻[12]會為每一個交換機定義一個標簽,并預先計算所有交換機之間的最短路徑,然后以OpenFlow流表的形式在所有的交換機上下發(fā)基于標簽進行路由的流表。因此,交換機中的流表的數量就從主機數量數量級降低到了交換機數量級,從而可以大大降低物理交換機上流表的數量。但是文獻[10]的方法無法直接應用于OpenStack平臺,主要是由于Neutron網絡功能眾多,各種功能特性也具有很大區(qū)別,導致了設計開發(fā)在功能和性能上能滿足要求的SDN網絡難度很大。因此,如何設計一種高效的多流表方案以達到靈活性和性能的統(tǒng)一就成為了一個關鍵因素。

本文提出了一種基于標簽交換的SDN網絡高效多流表方案,通過多流水線有效降低SDN網絡流表數量,提高網絡通信的效率,具備適應不同云計算平臺的能力和網絡功能擴展能力,從而可為OpenStack提供高效的SDN組網實現方案。本文的方案主要有以下幾個特性:1)基于標準OpenFlow流表實現OpenStack中虛擬機的內外網所有網絡通信,交換網中的交換機分為計算節(jié)點OVS虛擬交換機、轉發(fā)交換機、外網出口交換機三種角色,根據其角色分別下發(fā)不同的流表;2)通過標簽實現整個交換網內的數據包的統(tǒng)一路由交換;3)每個OVS虛擬交換機和外網出口交換機都使用多個流表來完成流量處理,每一個流表對應于一個獨立的網絡處理流程,根據通信類型在不同的流表之間進行跳轉以支持虛擬機的各種通信需求;4)多流表中的流表項根據其相應的功能特性分別采取了反應式和預先式兩種下發(fā)策略。

2 全流程OpenFlow流表交換的網絡組網架構

為了能更好的發(fā)揮SDN在OpenStack中的應用潛力,避免Overlay網絡帶來的各項難題,我們提出了基于物理OpenFlow交換機的高效網絡方案,其主要優(yōu)點如下:

1)無須封包、解包帶來的高網絡吞吐量,可以最大程度發(fā)揮物理網絡性能;

2)VM的南北向流量可以直接通過物理交換網轉發(fā),不僅南北向帶寬可以達到線性速度,而且NAT、Floating IP和負載均衡等高級網絡功能都可在控制器的統(tǒng)一調度下由交換機來實現;

3)基于標準OpenFlow協(xié)議,無廠商綁定,造價較傳統(tǒng)網絡方案可大幅降低,而且網絡可動態(tài)線性擴展;

4)物理網絡中流量可視帶來的可管可控優(yōu)勢,可支持網絡安全功能和流量工程等功能擴展,提高系統(tǒng)的靈活性。

基于標準OpenFlow流表實現OpenStack中虛擬機的內外網所有網絡通信,交換網中的交換機分為計算節(jié)點OVS虛擬交換機、轉發(fā)交換機、外網出口交換機三種角色,根據其角色分別下發(fā)不同的流表。轉發(fā)交換機和出口交換機都可以采用支持OpenFlow協(xié)議的物理交換機。

通過控制器計算交換機之間的通信路徑,每個交換機分配一個唯一的基于Vlan ID的標簽, 根據路徑建立基于Vlan ID標簽的數據流表,當有網絡通信請求時候,在通信兩端點所在交換機上分別建立兩個流表,在起點處數據加上Vlan ID的標簽并放在路徑上,在終點把數據拆解標簽并轉發(fā)到指定的通信端點上,完成數據通信。交換機間的通信路徑都基于標簽下發(fā)OpenFlow流表。轉發(fā)交換機上只要基于標簽進行路由的流表,因此流量數量會得以大大降低。

轉發(fā)交換機上面只有一個0號標簽轉發(fā)表,會根據數據包中的不同標簽轉發(fā)到不同的端口。本專利使用VLAN ID作為數據包標簽,所以標簽轉發(fā)表上面的流表都是類似于如下的流表模式:

IP,dl_vlan=x,actions=output:y

轉發(fā)交換機上面的流表只和網絡拓撲有關,和主機的通信過程無關,所以只在拓撲發(fā)生變化影響到交換機之間的轉發(fā)路徑時才需要進行更新。

3 OVS虛擬交換機多流表方案

在OpenStack網絡中,所有的虛擬機都會連接在宿主機上的一個虛擬OVS交換機上。OVS支持通過標準的OpenFlow協(xié)議下發(fā)流表,每一條流表包含Match域以匹配不能數據包字段和Action域以對相應的數據包執(zhí)行不同的動作。為了能實現多種流水線的處理,Goto_Table是最為關鍵的一個Action操作,以實現多個流水線處理之間的跳轉。需要注意的是,OpenFlow標準本身并沒有限制Goto_Table的目的流表,但是在OVS中Goto_Table的目的流表號必須大于當前的流表號,即OVS中的流水線只能“向前”。

圖3顯示了本文提出的OVS虛擬交換機的多流表方案。每個OVS虛擬交換機上的流表分為兩個不同的流水線,分別對應于處理本地虛擬機發(fā)送的數據包和其他交換機轉發(fā)過來的帶標簽的數據包,0號流表會根據數據包的實際情況選擇不同的流水線進行處理。本地虛擬機發(fā)送的數據包流經的流水線包括0號出口分發(fā)表、1號輸出防火墻表、2號輸出QoS表、3至10號的網絡功能區(qū)表、11號虛機間通信會話表和12號標簽轉發(fā)表,最終由12號表輸出到不同的交換機上聯端口。其他交換機轉發(fā)過來的帶有本地標簽的數據包流經的流水線包括13至20號的網絡功能區(qū)表、21號入口防火墻表、22號入口QoS表和30號本地主機轉發(fā)表,最終由30號表輸出到本地不同的虛擬機。

其中網絡功能區(qū)中的每一個流表都對應于一個單獨的網絡功能,多個網絡功能之間彼此隔離,可以根據實際需求增加或刪除網絡功能,以適應不能的云平臺環(huán)境,而且可以根據其功能特性分別支持反應式和預先式兩種下發(fā)策略。例如,對于Floating IP流表,其中的流表下發(fā)方式為預先下發(fā)式,當用戶在OpenStack平臺中更新相應配置以后可以直接在5號和15號表中下發(fā)相應的流表。但是對于NAT流表,就要求在每次NAT會話時才能以反應式的方式在4號和14號表中下發(fā)相應的流表。

4 外網出口交換機多流表方案

在OpenStack Neutron網絡方案中,網絡的管理分為內部網絡(Internal network)和外部網絡(public network)。內部網絡為虛擬機可以直接連接的網絡,一般分配的是局域網IP地址。所謂外部網絡是指openstack部署環(huán)境以外的網絡。這個網絡可以是數據中心中的另一個網絡、Internet、或者一個不被openstack控制的私有網絡。與外部網絡通信,我們需要在openstack中創(chuàng)建一個network并設置為public。這個network用于虛擬機與public network通信。虛擬機不能直接連接到這個新創(chuàng)建的屬性為public的network,所有網絡流量必須使用openstack創(chuàng)建的router從private network路由到public network。OpenStack管理員可以創(chuàng)建多個屬性為public的網絡,用以把虛擬機連接到不同的外部網絡中。

在本文所提出的SDN網絡方案會包含多個外網出口交換機,每一個外網出口對應于一個Public網絡。每個外網出口交換機上的流表分為兩個不同的流水線,如圖4所示,分別對應于處理其他交換機轉發(fā)過來的由虛擬機發(fā)出的數據包和外連網口發(fā)送過來的數據包,0號流表會根據數據包的實際情況選擇不同的流水線進行處理。外連網口發(fā)送過來的數據包流經的流水線包括0號出口分發(fā)表、1號輸入防火墻表、2號輸入QoS表、3至10號的網絡功能區(qū)表和12號標簽轉發(fā)表,最終由12號表通過不同的內聯端口輸出到內部交換機。其他交換機轉發(fā)過來的帶有本地標簽的數據包流經的流水線包括21號外連輸出防火墻表、22號外連輸出QoS表和30號外部網關MAC轉發(fā)表,最終由30號表輸出到不同的外聯端口。

為了能和OVS虛擬交換機上面的多流表方案保持相對應,這里把外網出口作為一個連接所有外部主機的本地端口。和OVS虛擬交換機上面的多流表方案最大的不同是外網出口交換機上的網絡功能區(qū)流表只有一份,目的是為了減少出口交換機上面的流表數量,而把其實現在了每一個虛擬交換機上面。

外網出口交換機可以是OVS虛擬交換機也可以是支持OpenFlow協(xié)議的物理交換機,如Pica8的交換機P-5401、P-5101等1?;诂F有物理OpenFlow交換機的實現方式和交換芯片的限制,在一個數據包處理的流水線中,對數據包相關字段做出修改后必須要立即輸出到某個端口[13]。因此,若外網出口交換機為物理交換機,則圖4所示的第12號流表需要刪除,而應由網絡功能區(qū)中的各流表直接進行輸出,但是這樣會破壞流表的耦合性要求。另外一個常用的解決方案是令相應的數據包可以從0號流表開始重新走一次流水線,這可以通過由兩個網口直連構造的“回路”來實現。

5 總結

本文提出了一種基于多流表的OpenStack SDN網絡實現方法,通過多流表分級有效降低SDN網絡流表數量,可有效提高交換機的性能。通過基于標簽進行交換網中的數據包轉發(fā),可大大降低一次通信的路徑計算時間以及流表下發(fā)數量,有效提高數據通信的速度,并可支持現有物理SDN交換機組網。另外,本文所提出的多流表方案可支持網絡功能的擴展,具備適應不同云計算平臺的能力。所以,可解決現有云計算環(huán)境中網絡靈活性和性能方面的矛盾,具高度產業(yè)利用價值。

注釋:

1.http://www.pica8.com/products/pre-loaded-switches

參考文獻:

[1] 張宇霞,周明輝,張偉,等.OpenStack開源社區(qū)中商業(yè)組織的參與模式[J].軟件學報,2017,28(06):1343-1356.

[2] 李知杰,趙健飛. Open Stack開源云計算平臺[J].軟件導刊, 2012,12:10-12.

[3] 張進鐸,毛承國,李碩,等. Open Stack開源云平臺主模塊的架構分析[J]. 信息技術與信息化, 2014,04:244-247.

[4] Fundation O N. Software-defined networking: The new norm for networks. ONF White Paper, 2012.

[5] McKeown N, et al. OpenFlow: enabling innovation in campus networks. ACM SIGCOMM Computer Communication Review, 2008,38(2): 69-74.

[6] Denton J.Learning OpenStack Networking ( Neutron)[M].Packt Publishing Ltd.,2015.

[7] 詹晗.基于OpenStack的分布式SDN控制器Dragonflow研究[J].計算機與現代化,2017(07):91-94.

[8] 許延偉,許凱.一種基于SDN全物理交換機部署OpenStack的實現[J].電腦知識與技術,2016,12(04):66-69.

[9] 羅朝樂.基于OpenFlow硬件交換機實現OpenStack網絡虛擬化性能優(yōu)化[D].東南大學,2015.

[10] 繆仕福.VXLAN 網絡技術研究[J].科技資訊, 2015,4:009.

[11] 唐琴.GRE 隧道技術在大型企業(yè)網中的應用[J].電腦知識與技術:學術交流, 2008(8): 800-802.

[12] Xiaoyuan Lu, Yanwei Xu.SFabric: A scalable SDN based large layer 2 data center network fabric. IWQoS,2015: 57-58.

[13] http://www.pica8.com/document/v2.3/html/ovs-commands-reference/

猜你喜歡
軟件定義網絡
面向未來的傳輸綜合網管系統(tǒng)演進研究
移動通信(2016年23期)2017-03-07 16:28:25
基于隊列樹的SDN控制器高效消息處理機制
中國聯通SDN的思考和應用實例
業(yè)務功能鏈技術及其應用探析
針對大規(guī)模軟件定義網絡的子域劃分及控制器部署方法
一種新的SDN架構下端到端網絡主動測量機制
超高吞吐率Wi—Fi融合應用新技術分析
移動通信(2016年20期)2016-12-10 09:22:49
SDN在傳送網絡的引入與應用分析
SDN/NFV技術接入網應用
3SNetworking:面向業(yè)務、安全增強的軟件定義網絡
孝昌县| 民权县| 垣曲县| 温宿县| 双峰县| 泰兴市| 句容市| 尖扎县| 开封县| 二连浩特市| 岳普湖县| 平和县| 新竹县| 宿松县| 桂阳县| 简阳市| 任丘市| 新沂市| 宝丰县| 屏南县| 阜南县| 华池县| 澄城县| 张家界市| 莒南县| 高碑店市| 白朗县| 鸡东县| 龙里县| 泰兴市| 老河口市| 南和县| 当雄县| 中西区| 黑河市| 南通市| 万州区| 镇平县| 苏州市| 闵行区| 江都市|