• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于OpenFlow的SDN架構(gòu)研究與仿真分析

      2016-12-26 02:14:31翔,王
      電子科技 2016年12期
      關(guān)鍵詞:流表表項(xiàng)交換機(jī)

      邱 翔,王 宇

      (空間無線電技術(shù)研究院 神州學(xué)院,陜西 西安 710000)

      ?

      基于OpenFlow的SDN架構(gòu)研究與仿真分析

      邱 翔,王 宇

      (空間無線電技術(shù)研究院 神州學(xué)院,陜西 西安 710000)

      隨著網(wǎng)絡(luò)設(shè)備支持協(xié)議的增多,變得日趨復(fù)雜,難以滿足多元化網(wǎng)絡(luò)服務(wù)的需求。軟件定義網(wǎng)絡(luò)(SDN)是一種新型網(wǎng)絡(luò)架構(gòu),其以控制面與數(shù)據(jù)面分離為主要特征,簡化了網(wǎng)絡(luò)設(shè)備,并提供了編程接口,使得網(wǎng)絡(luò)更加靈活、高效。文中在研究了SDN架構(gòu)與其主要實(shí)現(xiàn)方式OpenFlow技術(shù)的基礎(chǔ)上,搭建了基于Mininet與POX的仿真平臺(tái),在該環(huán)境下研究OpenFlow的流表產(chǎn)生與下發(fā)過程,分析其通信流程,驗(yàn)證了軟件如何“定義網(wǎng)絡(luò)”。

      SDN;OpenFlow;Mininet;POX

      隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大與應(yīng)用類型的不斷增加,網(wǎng)絡(luò)正變得越來越復(fù)雜與臃腫。對于不同廠商的網(wǎng)絡(luò)設(shè)備,其中運(yùn)行著各自不同的封閉的控制軟件,有各種不同的專用接口,在這種控制軟件與底層硬件緊緊耦合在一起的環(huán)境中,難以進(jìn)行基于真實(shí)流量的大規(guī)模網(wǎng)絡(luò)創(chuàng)新實(shí)驗(yàn)。因此網(wǎng)絡(luò)急需變革[1-2]。這種情況下,軟件定義網(wǎng)絡(luò)(SDN)的概念應(yīng)運(yùn)而生[3-4]。軟件定義的網(wǎng)絡(luò)是一種新型的網(wǎng)絡(luò)體系結(jié)構(gòu),通過將網(wǎng)絡(luò)控制與網(wǎng)絡(luò)轉(zhuǎn)發(fā)解耦合構(gòu)建開放可編程的網(wǎng)絡(luò)體系結(jié)構(gòu)。本文在研究SDN架構(gòu)與OpenFlow[5]技術(shù)的基礎(chǔ)上,搭建了用于研究的仿真平臺(tái),通過仿真平臺(tái)研究了OpenFlow通信流程與流表的原理。

      1 SDN架構(gòu)

      SDN核心思想是通過管控軟件化、集中化,使網(wǎng)絡(luò)變得更加開放、靈活、高效。其最主要的特征就是將網(wǎng)絡(luò)的數(shù)據(jù)轉(zhuǎn)發(fā)與控制功能解耦和,形成數(shù)據(jù)層面與控制層面,即將網(wǎng)絡(luò)設(shè)備如路由器中的軟件控制的功能剝離,使底層網(wǎng)絡(luò)設(shè)備僅僅具有數(shù)據(jù)的轉(zhuǎn)發(fā)功能,而將網(wǎng)絡(luò)的各種控制工作全部交給控制層面。在控制層面中通過開發(fā)的API接口來開發(fā)各種應(yīng)用。SDN的核心架構(gòu)如圖1所示[6]。

      數(shù)據(jù)層面負(fù)責(zé)數(shù)據(jù)的轉(zhuǎn)發(fā)工作,網(wǎng)絡(luò)設(shè)備根據(jù)控制層下發(fā)的轉(zhuǎn)發(fā)規(guī)則進(jìn)行轉(zhuǎn)發(fā)??刂茖邮荢DN的核心層,一般表現(xiàn)為一個(gè)軟件平臺(tái),其享有對數(shù)據(jù)層的網(wǎng)絡(luò)設(shè)備的集中的控制權(quán),其算法、邏輯、規(guī)則均可配置。通過控制層面開放的API可以開發(fā)用戶所需要的各種功能。

      圖1 SDN核心結(jié)構(gòu)

      作為一種概念,SDN并沒有規(guī)定實(shí)現(xiàn)的途徑,目前也沒有一個(gè)統(tǒng)一的實(shí)現(xiàn)標(biāo)準(zhǔn)。而作為引出SDN概念的OpenFlow技術(shù),以其良好的靈活性、規(guī)范性已被看作SDN 通信協(xié)議事實(shí)上的標(biāo)準(zhǔn),類似于TCP/IP 協(xié)議作為互聯(lián)網(wǎng)的通信標(biāo)準(zhǔn)。該實(shí)現(xiàn)方案主要由OpenFlow交換機(jī)與控制器兩部分組成。OpenFlow 交換機(jī)根據(jù)流表來轉(zhuǎn)發(fā)數(shù)據(jù)流,代表著數(shù)據(jù)轉(zhuǎn)發(fā)平面;控制器通過全網(wǎng)絡(luò)視圖來實(shí)現(xiàn)管控功能,其控制邏輯表示控制平面。

      2 OpenFlow技術(shù)

      在當(dāng)前所有SDN實(shí)現(xiàn)方式之中,OpenFlow是應(yīng)用廣泛,技術(shù)上也是相對成熟的一種。OpenFlow起源于斯坦福大學(xué)的Clean Slate[7]項(xiàng)目組。OpenFlow當(dāng)初被提出來是為了方便在校園網(wǎng)中進(jìn)行網(wǎng)絡(luò)創(chuàng)新實(shí)驗(yàn)活動(dòng)[8]。

      OpenFlow架構(gòu)包括控制器,OpenFlow交換機(jī)與安全通道,如圖2所示[9]。

      OpenFlow交換機(jī)負(fù)責(zé)數(shù)據(jù)轉(zhuǎn)發(fā)功能, OpenFlow 的交換機(jī)包括一個(gè)流表,執(zhí)行分組查找和轉(zhuǎn)發(fā),和到一個(gè)外部控制器的OpenFlow通道。

      圖2 OpenFlow架構(gòu)

      安全通道是連接OpenFlow 交換機(jī)和控制器的接口,控制器通過這個(gè)接口,按照OpenFlow 協(xié)議規(guī)定的格式來配置和管理OpenFlow 交換機(jī)。

      控制器使用OpenFlow 協(xié)議,通過安全通道,使用OpenFlow協(xié)議定義的標(biāo)準(zhǔn)信息可以添加、更新和刪除流表中的表項(xiàng),主動(dòng)或者被動(dòng)響應(yīng)數(shù)據(jù)包。在交換機(jī)中的每個(gè)流表中包含的一組流表項(xiàng);每個(gè)流表項(xiàng)包含匹配字段,計(jì)數(shù)器和一組指令,用來匹配數(shù)據(jù)包。

      流表是OpenFlow交換機(jī)中的匹配規(guī)則,類似于路由器的路由表,每個(gè)流表由多條流表項(xiàng)組成,一個(gè)流表項(xiàng)包括一個(gè)頭域,一個(gè)動(dòng)作集與一組計(jì)數(shù)器,其結(jié)構(gòu)如圖3所示。

      頭域含12 個(gè)字段,包括:進(jìn)入接口,Ethernet源地址、目標(biāo)地址、類型,vlan id,vlan 優(yōu)先級,IP 源地址,目標(biāo)地址,IP協(xié)議類型,IP ToS 位,TCP/UDP 目標(biāo)端口,源端口。通過這些字段OpenFlow交換機(jī)可以匹配目前網(wǎng)絡(luò)中的大部分?jǐn)?shù)據(jù)包,從而OpenFlow網(wǎng)絡(luò)已經(jīng)淡化了層的概念,相應(yīng)的也淡化了路由器與交換機(jī)的概念,從鏈路層到傳輸層的各種數(shù)據(jù)包都可以正確地匹配轉(zhuǎn)發(fā),在OpenFlow網(wǎng)絡(luò)中轉(zhuǎn)發(fā)設(shè)備統(tǒng)稱為OpenFlow交換機(jī)。

      圖3 流表結(jié)構(gòu)

      動(dòng)作域包含了一系列動(dòng)作,包括轉(zhuǎn)發(fā)、修改、丟棄等,當(dāng)進(jìn)入交換機(jī)的數(shù)據(jù)包經(jīng)過解析與頭域中字段匹配成功后,便會(huì)執(zhí)行動(dòng)作字段指定的動(dòng)作。如果沒有動(dòng)作,則默認(rèn)為丟棄。多個(gè)行動(dòng)的執(zhí)行需要依照優(yōu)先級順序依次進(jìn)行,但對包的發(fā)送不保證順序,另外交換機(jī)可以對不支持的行動(dòng)返回錯(cuò)誤。

      計(jì)數(shù)器可以針對交換機(jī)上每張流表(Per Table)、每個(gè)流(Per Flow)和每個(gè)端口(Per Port)以及每個(gè)隊(duì)列(Per Queue)上個(gè)特殊信息進(jìn)行維護(hù),用于統(tǒng)計(jì)流量的部分信息,例如活動(dòng)表項(xiàng)數(shù)、查找次數(shù)、發(fā)送報(bào)文數(shù)、接收報(bào)文數(shù)、出錯(cuò)報(bào)文數(shù)等。計(jì)數(shù)器為眾多統(tǒng)計(jì)信息進(jìn)行計(jì)數(shù),并提供特定容量的計(jì)數(shù)器。特定的容量用不同長度的位數(shù)進(jìn)行量化。

      Openflow匹配流程為:當(dāng)數(shù)據(jù)包進(jìn)入OpenFlow交換機(jī)后,交換機(jī)提取數(shù)據(jù)包頭部字段,與流表中各流表項(xiàng)進(jìn)行匹配,如果匹配成功,則根據(jù)后面的動(dòng)作集執(zhí)行相應(yīng)操作;如果匹配失敗,則交換機(jī)會(huì)將數(shù)據(jù)包的部分或者全部發(fā)送給控制器,由控制器決策。

      3 仿真平臺(tái)搭建與仿真分析

      3.1 搭建仿真平臺(tái)

      研究SDN的環(huán)境通常由開源的軟件包搭建[10-15],目前應(yīng)用比較廣泛的主要是Mininet這款輕量化的開源軟件,搭載一個(gè)優(yōu)良的控制器從而組成便于研究的SDN環(huán)境,本文選用POX控制器。在該環(huán)境中,Mininet軟件負(fù)責(zé)生成需要研究的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)以及生成的網(wǎng)絡(luò)結(jié)構(gòu)中各個(gè)交換機(jī)、主機(jī)以及鏈路的相關(guān)參數(shù)的設(shè)定,如交換機(jī)的dpid、主機(jī)的Mac地址等,POX控制連接到Mininet生成的網(wǎng)絡(luò),通過POX上預(yù)留的API開發(fā)相應(yīng)的組件以達(dá)到預(yù)期目的。

      安裝完成后,首先啟動(dòng)Mininet,通過啟動(dòng)參數(shù)設(shè)定控制器為遠(yuǎn)程控制器,Mininet會(huì)生成一個(gè)包含一臺(tái)交換機(jī)與兩臺(tái)主機(jī)的網(wǎng)絡(luò)拓?fù)?,然后啟?dòng)POX控制器,根據(jù)Mininet與POX界面打印出的信息可以得知Mininet與POX已經(jīng)正確連接。

      3.2 仿真分析

      在仿真環(huán)境下,通過POX的開放接口,編寫一個(gè)組件,以研究流表的生成與下發(fā)以及OpenFlow網(wǎng)絡(luò)的工作原理[15]。仿真分析用的拓?fù)浣Y(jié)構(gòu)如圖4所示,該拓?fù)浣Y(jié)構(gòu)包含一臺(tái)OpenFlow交換機(jī)s1與兩臺(tái)主機(jī)H1與H2,H1與H2的IP與MAC設(shè)置如圖4所示。

      在POX中編寫的組件定義的規(guī)則為:

      If desmac is broad:

      Flood

      Elseif desmac is h1:

      Forward to port 1

      Elseif desmac is h2:

      Floward to port 2

      Other

      Pass

      圖4 實(shí)驗(yàn)用網(wǎng)絡(luò)拓?fù)?/p>

      啟動(dòng)POX與Wireshark,啟動(dòng)Mininet,待控制器與交換機(jī)經(jīng)過3次握手建立穩(wěn)定的TCP連接后,查看Wireshark界面,可以看到交換機(jī)與控制的定時(shí)的of_ehco_request與of_ehco_reply信息,該消息是為了保持交換機(jī)與控制器之間的連接。

      這時(shí)候交換機(jī)與控制器建立連接,沒有任何數(shù)據(jù)進(jìn)入交換機(jī),因此交換機(jī)內(nèi)部的流表此時(shí)為空。

      在Mininet界面內(nèi),令H1pingH2,查看Wireshark中的信息。

      圖5 Wireshark抓包結(jié)果

      該操作的整個(gè)流程為:

      (1) 從H1執(zhí)行ping操作,首先H1會(huì)查詢自己的ARP表,發(fā)現(xiàn)沒有沒有目的地址H2即10.0.0.2的MAC地址,于是H1會(huì)先緩存ping數(shù)據(jù),先向全網(wǎng)絡(luò)廣播一個(gè)ARP數(shù)據(jù)包以尋找H2的MAC地址,ARP數(shù)據(jù)包進(jìn)入交換機(jī),OpenFlow模塊會(huì)解析數(shù)據(jù)頭域;此時(shí)交換機(jī)中無流表項(xiàng),觸發(fā)packet_in事件,即圖5中403行,其詳細(xì)信息如圖6(a),可見這是一個(gè)廣播的ARP請求包;

      (2) 控制器解析該數(shù)據(jù)包之后,判斷為一個(gè)廣播包,控制器根據(jù)提取出的文件包的源MAC,目的MAC,源IP地址與目的IP地址等,通過of.ofp_flow_mod()方法生成一個(gè)添加流的消息,其匹配規(guī)則就是數(shù)據(jù)包提取出的各項(xiàng)匹配字段,設(shè)置其軟超時(shí)與硬超時(shí)均為0,表示該流表不會(huì)自動(dòng)刪除,定義其動(dòng)作為泛洪,然后按照OpenFlow協(xié)議封裝該信息,通過packet_out事件發(fā)送往交換機(jī),交換機(jī)將該條規(guī)則安裝到自己的流表中,按照該條規(guī)則,泛洪廣播包。即圖5中的第404行的flow_add事件,詳細(xì)信息如圖6(b)所示;

      圖6 packet_in事件與流表下發(fā)

      (3)H2收到該廣播包后發(fā)現(xiàn)自己的MAC地址符合要求,于是發(fā)送以H1地址00:00:00:00:00:01為目的地的ARP-reply的應(yīng)答包,而此時(shí)交換機(jī)中沒有對應(yīng)的匹配條目,于是再次觸發(fā)packet_in事件,而根據(jù)控制器中組件中的規(guī)則,判斷出其目的地址為H1的MAC地址后,控制器下發(fā)流規(guī)則,更新流表,即再次觸發(fā)flow_add事件;

      (4)H1收到H2的ARP應(yīng)答之后獲得H2的MAC地址,添加H2的MAC地址后發(fā)送封裝好的ICMP報(bào)文,同樣進(jìn)入交換機(jī)經(jīng)過解析再次觸發(fā)packet_in事件,在Wireshark中查看其詳細(xì)信息,可以看到這是一個(gè)ICMP協(xié)議的ping請求;

      (5) 交換機(jī)再次將數(shù)據(jù)包發(fā)送到控制器,然后控制器添加流規(guī)則,下發(fā)流表,定義其轉(zhuǎn)發(fā)到H2,H2收到ICMP報(bào)文后,也發(fā)送一個(gè)應(yīng)答,同樣經(jīng)過packet_in與flow_add之后發(fā)送到H2,這時(shí)一個(gè)ping的通信流程已經(jīng)完成。同時(shí),交換機(jī)中增加了相應(yīng)的流表。

      在Mininet中再次進(jìn)行H1pingH2,會(huì)發(fā)現(xiàn)此次所用的時(shí)間比第一次大幅度減少,這是因?yàn)榻粨Q機(jī)中已經(jīng)存在對應(yīng)的流表項(xiàng),可以直接對數(shù)據(jù)進(jìn)行處理而無需觸發(fā)packet_in事件也無需控制器再下發(fā)流表,因此時(shí)間大幅縮短。

      圖7 交換機(jī)中增加的流表項(xiàng)

      4 結(jié)束語

      SDN架構(gòu)以數(shù)據(jù)面與控制面分離為特征,是一種集中式的網(wǎng)絡(luò),具有更大的靈活性,作為當(dāng)前SDN架構(gòu)主要實(shí)現(xiàn)方式的OpenFlow技術(shù)也成為了研究的熱點(diǎn)。介紹了SDN架構(gòu)與OpenFlow技術(shù),基于Mininet與POX搭建了研究OpenFlow的仿真平臺(tái),研究了OpenFlow中流表的生成與下發(fā)機(jī)制,以及控制器對底層網(wǎng)絡(luò)的可控制編程操作,體現(xiàn)了網(wǎng)絡(luò)的“軟件定義”,從而為下一步的開發(fā)研究提供了參考。

      [1] Nick F, Jennifer R, Ellen Z. The road to SDN: an intellectual history of programmable networks[J]. ACM SIGCOMM Computer Communication Review, 2014, 44(2): 87-98.

      [2] 王文東,胡延楠.軟件定義網(wǎng)絡(luò):正在進(jìn)行的網(wǎng)絡(luò)變革[J].中興通訊技術(shù),2013(1):39-43.

      [3] 張順淼,鄒復(fù)民.軟件定義網(wǎng)絡(luò)研究綜述[J].計(jì)算機(jī)應(yīng)用研究,2013,30(8):4-6.

      [4] 鄧書華,盧澤斌,羅成程,等. SDN 研究簡述[J].計(jì)算機(jī)應(yīng)用研究,2014,31(11):3208-3213.

      [5] Nick Mc Keown, Tom Anderson, Hari Balakrishnan, et al. OpenFlow: enabling innovation in campus networks [J]. ACM SIGCOMM Computer Communication Review, 2008, 38(2):69-74.

      [6] Open Networking Foundation. Software-defined networking: the new norm for networks[M].USA:ONF White Paper, 2012.

      [7] Greenberg A, Hjalmtysson G, Maltz D A, et al. A clean slate 4D approach to network control and management[J]. ACM SIGCOMM Computer Communication Review, 2005,35(5):41-54.

      [8] 左青云,陳鳴,趙廣松,等.基于OpenFlow的SDN技術(shù)[J].軟件學(xué)報(bào),2013,24(5):1078-1097.

      [9] OpenFlow Consortium. OpenFlow switch specification v1.1.0[EB/OL].(2009-08-11)[2015-06-12] http://www.openflowswitch.org.

      [10] 雷葆華,王峰,王茜,等.SDN核心技術(shù)剖析和實(shí)戰(zhàn)指南[M].北京:電子工業(yè)出版社,2013.

      [11] 尹雪蓉,宋耀光,倪巍. 云計(jì)算環(huán)境下OpenFlow網(wǎng)絡(luò)研究與實(shí)驗(yàn)探索[J]. 實(shí)驗(yàn)室研究與探索, 2013(12): 22-25.

      [12] 盧冀,李艷, 郝志安,等. 基于Mininet的SDN架構(gòu)仿真研究[J]. 計(jì)算機(jī)與網(wǎng)絡(luò), 2014, 40(5): 57-59.

      [13] 韋世紅,盧威.基于OpenFlow 的未來互聯(lián)網(wǎng)試驗(yàn)網(wǎng)[J].計(jì)算機(jī)應(yīng)用系統(tǒng),2013(5):21-24.

      [14] 王麗君,劉永強(qiáng),張健.基于OpenFlow 的未來互聯(lián)網(wǎng)試驗(yàn)技術(shù)研究[J].電信網(wǎng)技術(shù),2011,8(6):1-4.

      [15] 趙聯(lián)祥.SDN 架構(gòu)下的Open Flow 原理探討[J].電信技術(shù), 2013(2):70-72.

      Research and Simulation on SDN Architecture Based on OpenFLow Technology

      QIU Xiang,WANG Yu

      (China Acadeny,Xi’an Institute of Space Radio Technology,Xi’an 710000,China)

      More and more protocols are added to network device which make the network more and more complex and hard to meet needs of so many services. The Software Defined Networking (SDN) is a new network architecture with the feature of control plane and data plane separated.SDN simplifies network devices and provides programmable interface so that network performs flexibly and efficiently. This paper researches the SDN architecture and its main technical method OpenFlow and establishes simulation platform with Mininet and POX; then we research the process of generation and sending of flow table and analyse communication process in OpenFlow to demonstrate how software defines network.

      SDN; OpenFlow; Mininet; POX

      10.16180/j.cnki.issn1007-7820.2016.12.024

      2016- 02- 25

      邱翔(1991-),男,碩士研究生。研究方向:計(jì)算機(jī)網(wǎng)絡(luò)。

      TN915.07;TP393

      A

      1007-7820(2016)12-085-04

      猜你喜歡
      流表表項(xiàng)交換機(jī)
      一種改進(jìn)的TCAM路由表項(xiàng)管理算法及實(shí)現(xiàn)
      基于時(shí)序與集合的SDN流表更新策略
      基于ARMA模型預(yù)測的交換機(jī)流表更新算法
      基于緩存策略的OpenFlow流表存儲(chǔ)優(yōu)化方案研究
      電子測試(2018年21期)2018-11-08 03:09:34
      修復(fù)損壞的交換機(jī)NOS
      簡析yangUI流表控制
      軟件定義網(wǎng)絡(luò)中一種兩步式多級流表構(gòu)建算法
      使用鏈路聚合進(jìn)行交換機(jī)互聯(lián)
      SDN數(shù)據(jù)中心網(wǎng)絡(luò)基于流表項(xiàng)轉(zhuǎn)換的流表調(diào)度優(yōu)化
      PoE交換機(jī)雷擊浪涌防護(hù)設(shè)計(jì)
      岐山县| 独山县| 木里| 盘锦市| 吴江市| 中山市| 祁阳县| 金阳县| 古浪县| 黄大仙区| 太原市| 本溪市| 游戏| 兰考县| 阿拉善左旗| 八宿县| 万宁市| 张家界市| 安顺市| 盘锦市| 封丘县| 宁武县| 平塘县| 肃宁县| 榕江县| 山阴县| 鄄城县| 广饶县| 琼海市| 枣阳市| 石狮市| 象山县| 衡东县| 连南| 赤水市| 遵义市| 武汉市| 阿勒泰市| 杭锦后旗| 阜宁县| 鄂温|