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

?

基于Open vSwitch的SDN網(wǎng)絡(luò)平臺(tái)構(gòu)建方法

2014-08-06 05:49:34王文濤王奇楓
關(guān)鍵詞:流表PC機(jī)網(wǎng)卡

王文濤,王奇楓,郭 峰,唐 菀

(中南民族大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院, 武漢 430074)

軟件定義網(wǎng)絡(luò)(SDN),是一種新型網(wǎng)絡(luò)架構(gòu),它的核心技術(shù)OpenFlow將網(wǎng)絡(luò)設(shè)備的控制與數(shù)據(jù)平面分離,從而實(shí)現(xiàn)網(wǎng)絡(luò)流量的靈活控制,為核心網(wǎng)絡(luò)及應(yīng)用的創(chuàng)新提供良好的平臺(tái)[1].為此,它吸引了學(xué)術(shù)界與企業(yè)界的重大關(guān)注,一群網(wǎng)絡(luò)管理者、服務(wù)提供商和銷售商建立起開放網(wǎng)絡(luò)基金會(huì)ONF.ONF是一個(gè)非盈利性組織機(jī)構(gòu),它致力于創(chuàng)新和發(fā)展新型網(wǎng)絡(luò)架構(gòu).ONF成立一年,超過80家國內(nèi)外公司加入其中,有Google、Facebook、微軟、華為、中興、百度等[2].

從2006年誕生到現(xiàn)在,國內(nèi)外發(fā)表的文獻(xiàn)數(shù)量呈爆發(fā)式增長,但大部分還是停留在概念及框架設(shè)計(jì)上,例如SDN的綜述、發(fā)展趨勢、安全性、數(shù)據(jù)儲(chǔ)存、昂貴設(shè)備、抽象應(yīng)用等,另外,大部分文獻(xiàn)都采用仿真的方法,沒有在實(shí)際環(huán)境中進(jìn)行測試[3].因此,本文針對(duì)此問題在基于x86架構(gòu)的物理環(huán)境下通過Open vSwitch搭建一個(gè)SDN網(wǎng)絡(luò)測試平臺(tái),并進(jìn)行連通性測試及Internet訪問測試,總結(jié)經(jīng)驗(yàn).

網(wǎng)絡(luò)設(shè)備一般是由控制平面和數(shù)據(jù)平面組合而成,控制平面為數(shù)據(jù)平面規(guī)劃轉(zhuǎn)發(fā)路徑和提供轉(zhuǎn)發(fā)策略,數(shù)據(jù)平面是執(zhí)行控制平面策略的實(shí)體.在傳統(tǒng)網(wǎng)絡(luò)中,控制邏輯與數(shù)據(jù)轉(zhuǎn)發(fā)緊緊地耦合在網(wǎng)絡(luò)設(shè)備上,導(dǎo)致了網(wǎng)絡(luò)控制平面管理的復(fù)雜化,使得網(wǎng)絡(luò)控制層面新技術(shù)更新緩慢,其較低的靈活性和擴(kuò)展性嚴(yán)重阻礙了網(wǎng)絡(luò)的飛速發(fā)展.SDN作為一種控制與轉(zhuǎn)發(fā)平面分離并可編程的網(wǎng)絡(luò)架構(gòu),它的核心思想是把傳統(tǒng)網(wǎng)絡(luò)設(shè)備緊耦合的網(wǎng)絡(luò)架構(gòu)解耦成應(yīng)用層、控制層、基礎(chǔ)設(shè)施層分離的架構(gòu),并實(shí)現(xiàn)集中控制[4].

OpenFlow是一組協(xié)議和API,它起源于斯坦福大學(xué)的Ethane項(xiàng)目,實(shí)現(xiàn)可編程網(wǎng)絡(luò)的思想.從SDN整個(gè)架構(gòu)看,OpenFlow協(xié)議又是控制器與交換機(jī)中的通信協(xié)議.控制器使用OpenFlow協(xié)議對(duì)交換機(jī)中的流表表項(xiàng)進(jìn)行添加、更新與刪除.2009年12月,OpenFlow.org發(fā)布了OpenFlow標(biāo)準(zhǔn)的1.0版本,在2011年2月,OpenFlow.org繼續(xù)發(fā)布標(biāo)準(zhǔn)1.1版,后由ONF負(fù)責(zé).到目前為止,最新的版本為1.4,它發(fā)布于2013年10月.由于標(biāo)準(zhǔn)演進(jìn)得太快,硬件廠商不敢貿(mào)然投資生產(chǎn),影響了OpenFlow的產(chǎn)業(yè)化[5].研究者一般使用仿真環(huán)境或者NETFPGA做實(shí)驗(yàn),但是仿真環(huán)境存在缺陷,NETFPGA又太昂貴.因此,使用PC機(jī)配置成SDN交換機(jī)來搭建SDN網(wǎng)絡(luò)顯得非常有意義,方便研究者在更真實(shí)的SDN網(wǎng)絡(luò)下做研究.

1 SDN網(wǎng)絡(luò)的組成

一個(gè)簡單的SDN網(wǎng)絡(luò)由控制器、交換機(jī)、主機(jī)構(gòu)成,其結(jié)構(gòu)如圖1所示.

圖1 簡單SDN網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 Simple structure of SDN network

控制器是軟件定義網(wǎng)絡(luò)的大腦,是SDN網(wǎng)絡(luò)的策略控制點(diǎn),南向接口用于向交換機(jī)傳遞信息,北向接口用于承載業(yè)務(wù)邏輯的應(yīng)用程序.目前支持OpenFlow的控制器有NOX、POX、SNAC、Beacon、Trema、Maestro和Floodlight[6].

Floodlight是一款非常流行的控制器,它是基于斯坦福大學(xué)的Beacon控制器之上開發(fā)的.Floodlight是一款A(yù)pache授權(quán)、基于Java的OpenFlow控制器.Floodlight核心架構(gòu)是模塊化的,包括拓?fù)涔芾?、設(shè)備管理、路徑計(jì)算、網(wǎng)頁訪問基礎(chǔ)設(shè)施、計(jì)數(shù)存儲(chǔ)和面向狀態(tài)存儲(chǔ)的廣義存儲(chǔ)抽象.這些組件可以看成是可加載的、帶有輸出狀態(tài)接口的服務(wù).這個(gè)控制器本身擁有一些可擴(kuò)展的REST API集合和事件通知系統(tǒng).這些API允許應(yīng)用程序獲得和設(shè)置控制器狀態(tài),并利用Java事件監(jiān)聽器預(yù)定控制器發(fā)出的事件[7].

Floodlight可以看成是一個(gè)以Java/Jython為中心的開發(fā)環(huán)境,擁有豐富的開發(fā)工具箱.由于Floodlight的圖形界面直觀,因此本文采用Floodlight作為控制器.

每個(gè)OpenFlow交換機(jī)都有一張流表,對(duì)包進(jìn)行查找和轉(zhuǎn)發(fā).交換機(jī)可以通過OpenFlow協(xié)議經(jīng)過一個(gè)安全通道連接到控制器,對(duì)流表進(jìn)行查找和管理.交換機(jī)對(duì)每一個(gè)包在流表中進(jìn)行查找,如果匹配則執(zhí)行相關(guān)動(dòng)作,否則通過安全通道將包轉(zhuǎn)發(fā)到控制器,讓控制器來決策如何處理無匹配流表的包,并添加和刪除流表項(xiàng)[8].

Open vSwitch是一個(gè)虛擬交換軟件,它被設(shè)計(jì)用來使大規(guī)模網(wǎng)絡(luò)通過編程擴(kuò)展自動(dòng)化,支持標(biāo)準(zhǔn)管理接口和協(xié)議.環(huán)境搭建中,PC機(jī)上裝Open vSwitch軟件,將PC配置成一臺(tái)OpenFlow交換機(jī)[9].

2 SDN網(wǎng)絡(luò)的詳細(xì)設(shè)置

本文搭建的SDN網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)如圖2所示,其中包括一臺(tái)充當(dāng)控制器的PC機(jī),三臺(tái)充當(dāng)OpenFlow交換機(jī)的PC機(jī),一個(gè)普通家用路由器,用于控制器與交換機(jī)之間的通信.兩臺(tái)筆記本,其中一臺(tái)充當(dāng)主機(jī)1,另外一臺(tái)在不同的測試中分別充當(dāng)主機(jī)2、主機(jī)3、主機(jī)4.

2.1 將PC機(jī)配置成OpenFlow交換機(jī)

需要使用Open vSwitch配置成交換機(jī)的PC機(jī)至少需要2張物理網(wǎng)卡;如果需要做單交換機(jī)測試,如圖1所示,連接2臺(tái)物理主機(jī),一般需要3張或3張以上的網(wǎng)卡,其中一張網(wǎng)卡(eth0)用于連接控制器,其余網(wǎng)卡用于連接主機(jī).控制器和交換機(jī)的主要參數(shù)見表1.

Open vSwitch 中的Bridge(網(wǎng)橋)相當(dāng)于是一個(gè)以太網(wǎng)交換機(jī),一個(gè)主機(jī)可以創(chuàng)建多個(gè)Bridge.S1、S2、S3都只創(chuàng)建一個(gè)Bridge,相當(dāng)于把S1、S2、S3分別作為一臺(tái)獨(dú)立的OpenFlow交換機(jī),配置成OpenFlow交換機(jī)的PC機(jī)都是4張物理網(wǎng)卡,每臺(tái)PC機(jī)使用Open vSwitch的命令創(chuàng)建一個(gè)網(wǎng)橋,名字叫br0,并將另外3張物理網(wǎng)卡添加為該網(wǎng)橋的3個(gè)端口.此時(shí),S1、S2、S3的eth0相當(dāng)于是普通交換機(jī)的console口,如圖3所示.

圖2 總體拓?fù)浣Y(jié)構(gòu)圖Fig.2 Major topology structure

參數(shù)類型不同設(shè)備C0控制器S1交換機(jī)S2交換機(jī)S3交換機(jī)IP192.168.3.176/24192.168.3.171/24192.168.3.172/24192.168.3.173/24eth0c8:9c:dc:54:eb:1600:11:11:48:2d:2d00:11:11:34:ef:c800:11:11:34:e9:e2eth1-00:e0:4c:51:6e:ec00:58:1c:f7:ee:c900:05:8c:20:dd:96eth2-00:e0:4c:51:6f:4000:58:1c:f7:ea:b2e0:05:c5:73:08:74eth3-00:e0:4c:72:e1:e100:58:1c:f7:ed:a300:e0:4c:84:d6:89CPUintel core i3 550(3.2GHz×4)Intel Pentium4(2.8GHz)Intel Pentium4(2.8GHz)Intel Pentium4(2.8GHz)內(nèi)存2GB1GB1GB1GB系統(tǒng)ubuntu12.04ubuntu12.04ubuntu12.04ubuntu12.04Open vSwitch版本1.4.61.4.61.4.61.4.6

圖3 OpenFlow交換機(jī)物理網(wǎng)卡設(shè)置Fig.3 OpenFlow switches physical network cards config

將eth0的IP地址配置成普通路由器LAN口網(wǎng)段的一個(gè)IP地址,將控制器的IP地址設(shè)置為192.168.3.176/24,與控制器相連的網(wǎng)卡,即所有交換機(jī)的eth0的IP地址全部設(shè)置為192.168.3.×/24.

以交換機(jī)1為例,其步驟如下:

(1)使用如下命令配置eth0的IP地址:

sudo ifconfig eth0 192.168.3.171/24 up

(2)使用如下命令增加網(wǎng)橋:

sudo ovs-vsctl add-br br0

(3)將eth1、eth2、eth3加入到br0中:

sudo ovs-vsctl add-port br0 eth1

sudo ovs-vsctl add-port br0 eth2

sudo ovs-vsctl add-port br0 eth3

2.2 連接控制器

本設(shè)計(jì)采用的是Floodlight控制器,在配置好控制器的IP地址之后,其步驟如下:

(1)運(yùn)行Floodlight控制器

java -jar floodlight/target/floodlight.jar

(2)在配置成OpenFlow交換機(jī)的PC上執(zhí)行命令連接到控制器

sudo ovs-vsctl set-controller br0 tcp:192.168.3.176:6633

(3)查看br0當(dāng)前的信息(如圖4)

sudo ovs-vsctl show

(4)在運(yùn)行控制器的主機(jī)上用瀏覽器打開鏈接地址http://localhost:8080/ui/index.html,可以查看連接上的交換機(jī)及與交換機(jī)相連的主機(jī)的情況.

圖4 OpenFlow交換機(jī)連接控制器Fig.4 OpenFlow switches connect controller

2.3 測試

在SDN網(wǎng)絡(luò)中,流表是交換機(jī)轉(zhuǎn)發(fā)策略控制的核心數(shù)據(jù)結(jié)構(gòu).交換芯片通過流表表項(xiàng)來決策進(jìn)入交換機(jī)的網(wǎng)絡(luò)流量采取合適的行為,因此可以通過兩臺(tái)主機(jī)之間的通信結(jié)果和查看交換機(jī)上的流表來判定SDN網(wǎng)絡(luò)是否搭建成功.

每個(gè)交換機(jī)都有一個(gè)datapath_id(簡稱:DPID)與之相對(duì)應(yīng),控制器通過DPID向交換機(jī)發(fā)送信息.DPID是由64位組成,前16位全為0,后48位是加入到交換機(jī)端口的網(wǎng)卡中MAC地址最小的一個(gè),即eth1、eth2、eth3中MAC最小的.如S1中,最小的為00:e0:4c:51:6e:ec,見表1與表2.

表2 交換機(jī)的主要參數(shù)

2.3.1 測試主機(jī)1與主機(jī)2的連通性

當(dāng)主機(jī)1 ping 主機(jī)2的時(shí)候,可以看到交換機(jī)1多了兩條信息,分別是從端口1到端口2和端口2到端口1的流表(見表3).兩臺(tái)主機(jī)(見表4)也因?yàn)樵诮粨Q機(jī)有了這兩條流表而能夠相互通信,見圖5與圖6.

表3 主機(jī)在同一臺(tái)交換機(jī)下的交換機(jī)流表Tab.3 The main flows of switches when hosts are connected to the same switch

表4 主機(jī)參數(shù)Tab.4 The main parameters of the hosts

圖5 主機(jī)1 ping通主機(jī)2Fig.5 Host1 ping host2

圖6 主機(jī)2 ping通主機(jī)1Fig.6 Host2 ping host1

2.3.2 測試主機(jī)1與主機(jī)3的連通性

主機(jī)1和主機(jī)3通信,同樣可以看到OpenFlow交換機(jī)上有4條流表,交換機(jī)1和交換機(jī)2分別有2條,每個(gè)交換機(jī)中都有一條流表是用來使兩臺(tái)交換機(jī)之間通信.交換機(jī)1的流表表示為從端口1(eth1)和端口3(eth3)進(jìn)出,交換機(jī)2的流表表示從端口1(eth1)和端口2(eth2)進(jìn)出.結(jié)合圖2與表5,從交換機(jī)上的信息可以看到端口號(hào)并不是與物理網(wǎng)卡號(hào)相對(duì)應(yīng),這與網(wǎng)橋有關(guān),端口號(hào)是物理網(wǎng)卡MAC地址按從小到大排序,這并不影響實(shí)驗(yàn)結(jié)果的正確性.

表5 主機(jī)連接到相鄰交換機(jī)的各交換機(jī)流表Tab.5 The main flows of switches when hosts are connected to the adjacent switches

表6 主機(jī)連接到不相鄰的交換機(jī)的各交換機(jī)流表Tab.6 The main flows of switches when hosts are connected to the nonadjacent switches

2.3.3 測試主機(jī)1與主機(jī)4的連通性

與主機(jī)1和主機(jī)3通信類似,同樣可分別在交換機(jī)1、交換機(jī)2、交換機(jī)3上看到2條流表,一共6條.

2.3.4 測試主機(jī)1連接Internet

由于主機(jī)1的IP地址是10.0.0.1/8,所以它能訪問的IP地址有10.0.0.1/8 ~ 10.255.255.255/8.在設(shè)置Internet時(shí)增加一個(gè)路由器,WAN口設(shè)置為網(wǎng)絡(luò)服務(wù)提供商提供的IP地址,LAN口的網(wǎng)關(guān)地址設(shè)置成10.255.255.254/8.于是在主機(jī)1配置時(shí)將默認(rèn)網(wǎng)關(guān)地址設(shè)置為10.255.255.254,主機(jī)1就可以通過這個(gè)新增的路由器上網(wǎng).

圖7 主機(jī)1通過網(wǎng)關(guān)10.255.255.254/8上網(wǎng)Fig.7 Host 1 access Internet through gateway 10.255.255.254/8

3 結(jié)語

從SDN網(wǎng)絡(luò)的搭建可以看出,交換機(jī)和控制器之間的通信是與主機(jī)間的通信相對(duì)獨(dú)立的,主機(jī)訪問不到控制器,但是控制器可以通過交換機(jī)返回的信息來控制多個(gè)主機(jī)間的通信.本文實(shí)現(xiàn)了在硬件平臺(tái)上搭建SDN網(wǎng)絡(luò)測試平臺(tái),相對(duì)于NETFPGA有著價(jià)格低廉的優(yōu)勢,為進(jìn)一步研究SDN網(wǎng)絡(luò)做了很好的鋪墊,為將來更深層次的網(wǎng)絡(luò)測試如流量工程、負(fù)載均衡等[10,11]打下堅(jiān)實(shí)的基礎(chǔ).

參 考 文 獻(xiàn)

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

[2] Shah S A, Faiz J, Farooq M, et al. An architectural evaluation of SDN controllers [C]// IEEE. 2013 IEEE International Conference on IEEE. Budapest: ICC, 2013: 3504-3508.

[3] 陳 陽. OpenFlow網(wǎng)絡(luò)中虛擬化機(jī)制的研究與實(shí)現(xiàn)[D]. 北京: 北京郵電大學(xué), 2013.

[4] 肖佩瑤, 畢 軍. 基于OpenFlow架構(gòu)的域內(nèi)源地址驗(yàn)證方法[J]. 小型微型計(jì)算機(jī)系統(tǒng), 2013, 34(9): 1999-2003.

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

[6] Nadeau T D, Gray K. SDN: Software Defined Networks [M]. 北京: 人民郵電出版社, 2013: 71-113.

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

[8] Cahn A, Hoyos J, Hulse M, et al. Software-defined energy communication networks: from substation automation to future smart grids [C]// IEEE. 2013 IEEE International Conference on IEEE. Vancouver: SmartGridComm, 2013: 558-563.

[9] Gurbani V K, Scharf M, Lakshman T V, et al. Abstracting network state in Software Defined Networks (SDN) for rendezvous services [C]// IEEE. 2012 IEEE International Conference on IEEE. Ottawa: ICC, 2012: 6627-6632.

[10] 王文濤,郭 峰,王奇楓,等.N次隨機(jī)丟包的被動(dòng)隊(duì)列管理算法[J].中南民族大學(xué)學(xué)報(bào):自然科學(xué)版,2014,33(2):100-105.

[11] 王文濤,鄭 芳,王奇楓,等.基于ONE平臺(tái)的機(jī)會(huì)網(wǎng)絡(luò)路由協(xié)議仿真分析[J].中南民族大學(xué)學(xué)報(bào):自然科學(xué)版,2014,33(3):110-114.

猜你喜歡
流表PC機(jī)網(wǎng)卡
在DDS 中間件上實(shí)現(xiàn)雙冗余網(wǎng)卡切換的方法
基于時(shí)序與集合的SDN流表更新策略
Server 2016網(wǎng)卡組合模式
基于緩存策略的OpenFlow流表存儲(chǔ)優(yōu)化方案研究
電子測試(2018年21期)2018-11-08 03:09:34
簡析yangUI流表控制
軟件定義網(wǎng)絡(luò)中一種兩步式多級(jí)流表構(gòu)建算法
基于PC機(jī)與單片機(jī)的多機(jī)通信技術(shù)及抗干擾方法
基于三菱FXPLC的感應(yīng)淬火機(jī)床與PC機(jī)的串行通信實(shí)現(xiàn)
VC.NET下實(shí)現(xiàn)dsPIC單片機(jī)與PC機(jī)的通信
電子制作(2017年23期)2017-02-02 07:16:47
挑戰(zhàn)Killer網(wǎng)卡Realtek網(wǎng)游專用Dragon網(wǎng)卡
昌宁县| 永年县| 萨迦县| 海林市| 紫金县| 惠水县| 镇巴县| 绥德县| 铜陵市| 阳曲县| 大姚县| 西贡区| 洛川县| 桐柏县| 平塘县| 彭水| 廉江市| 卓资县| 阿坝| 丘北县| 石林| 马尔康县| 乐亭县| 清河县| 定日县| 遂昌县| 安义县| 顺平县| 紫金县| 保亭| 丹江口市| 屏南县| 安顺市| 哈尔滨市| 延庆县| 山东省| 察哈| 平顺县| 阿合奇县| 新丰县| 梧州市|