SDN和Openflow詳解+mininet與opendaylight環(huán)境搭建與測試_第1頁
SDN和Openflow詳解+mininet與opendaylight環(huán)境搭建與測試_第2頁
SDN和Openflow詳解+mininet與opendaylight環(huán)境搭建與測試_第3頁
SDN和Openflow詳解+mininet與opendaylight環(huán)境搭建與測試_第4頁
SDN和Openflow詳解+mininet與opendaylight環(huán)境搭建與測試_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

基于OpenFlow的SDN技術(shù)SDN與OpenFlow技術(shù)簡介SDN指的是軟件定義網(wǎng)絡(luò)。你可以這樣去理解SDN:如果將網(wǎng)絡(luò)中所有的網(wǎng)絡(luò)設(shè)備視為被管理的資源,那么參考操作系統(tǒng)的原理,可以抽象出一個網(wǎng)絡(luò)操作系統(tǒng)(NetworkOS)的概念一這個網(wǎng)絡(luò)操作系統(tǒng)一方面抽象了底層網(wǎng)絡(luò)設(shè)備的具體細(xì)節(jié),同時還為上層應(yīng)用提供了統(tǒng)一的管理視圖和編程接口。這樣,基于網(wǎng)絡(luò)操作系統(tǒng)這個平臺,用戶可以開發(fā)各種應(yīng)用程序,通過軟件來定義邏輯上的網(wǎng)絡(luò)拓?fù)?,以滿足對網(wǎng)絡(luò)資源的不同需求,而無需關(guān)心底層網(wǎng)絡(luò)的物理拓?fù)浣Y(jié)構(gòu)。云計算的發(fā)展,是以虛擬化技術(shù)為基礎(chǔ)的。云計算服務(wù)商以按需分配為原則,為客戶提供具有高可用性、高擴(kuò)展性的計算、存儲和網(wǎng)絡(luò)等IT資源。虛擬化技術(shù)將各種物理資源抽象為邏輯上的資源,隱藏了各種物理上的限制,為在更細(xì)粒度上對其進(jìn)行管理和應(yīng)用提供了可能性。近些年,計算的虛擬化技術(shù)(主要指x86平臺的虛擬化)取得了長足的發(fā)展;相比較而言,盡管存儲和網(wǎng)絡(luò)的虛擬化也得到了諸多發(fā)展,但是還有很多問題亟需解決,在云計算環(huán)境中尤其如此。OpenFlow和SDN盡管不是專門為網(wǎng)絡(luò)虛擬化而生,但是它們帶來的標(biāo)準(zhǔn)化和靈活性卻給網(wǎng)絡(luò)虛擬化的發(fā)展帶來無限可能。SDN的最重要特征:將傳統(tǒng)網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)轉(zhuǎn)發(fā)(dataplane)和路由控制(controlplane)兩個功能模塊相分離,通過集中式的控制器(Controller)以標(biāo)準(zhǔn)化的接口對各種網(wǎng)絡(luò)設(shè)備進(jìn)行管理和配置,那么這將為網(wǎng)絡(luò)資源的設(shè)計、管理和使用提供更多的可能性,從而更容易推動網(wǎng)絡(luò)的革新與發(fā)展。OpenFlow是實(shí)現(xiàn)SDN最常用的的一種協(xié)議,OpenFlow的原理和基本架構(gòu)如下圖。其實(shí),這張圖還很好地表明了OpenFlowSwitch規(guī)范所定義的范圍一從圖上可以看出,OpenFlowSwitch規(guī)范主要定義了Switch的功能模塊以及其與Controller之間的通信信道等方面

ScopeofOpenHawSwitchSp^dficstfonControllerOpenFlow^SwitchControllerOpenFlow幾大應(yīng)用場景,包括:1)校園網(wǎng)絡(luò)中對實(shí)驗(yàn)性通訊協(xié)議的支持(如其標(biāo)題所示);2)網(wǎng)絡(luò)管理和訪問控制;3)網(wǎng)絡(luò)隔離和VLAN;4)基于WiFi的移動網(wǎng)絡(luò);5)非IP網(wǎng)絡(luò);6)基于網(wǎng)絡(luò)包的處理。OpenFlow協(xié)議Openflow規(guī)范主要分為如下四大部分OpenFlow的端口(Port)OpenFlow規(guī)范將Switch上的端口分為3種類別:a)物理端口,即設(shè)備上物理可見的端口;b)邏輯端口,在物理端口基礎(chǔ)上由Switch設(shè)備抽象出來的邏輯端口,如為tunnel或者聚合等功能而實(shí)現(xiàn)的邏輯端口;c)OpenFlow定義的端口。OpenFlow目前總共定義了ALLCONTROLLEDRTABLEIN_PORTANY、LOCALNORMAL和FLOOD等8種端口,其中后3種為非必需的端口,只在混合型的OpenFlowSwitch(OpenFlow-hybridSwitch,即同時支持傳統(tǒng)網(wǎng)絡(luò)協(xié)議棧和OpenFlow協(xié)議的Sw讓ch設(shè)備,相對于OpenFlow-onlySwitch而言)中存在。OpenFlow的FlowTable(流表)OpenFlow通過用戶定義的或者預(yù)設(shè)的規(guī)則來匹配和處理網(wǎng)絡(luò)包。一條OpenFlow的規(guī)則由匹配域(MatchFields)、優(yōu)先級(Priority)、處理指令(Instructions)和統(tǒng)計數(shù)據(jù)(如Counters)等字段組成,如下圖所示。IngressPortEtherSourceEtherDstEthfrTypeVianidVianPriorityIPsr<IPdstIPprotoIPToSbitsTCP/UDPSrcPortTCP/UDPDstPort在一條規(guī)則中,可以根據(jù)網(wǎng)絡(luò)包在L2、L3或者L4等網(wǎng)絡(luò)報文頭的任意字段進(jìn)行匹配,比如以太網(wǎng)幀的源MAC地址,IP包的協(xié)議類型和IP地址,或者TCP/UDP的端口號等。目前OpenFlow的規(guī)范中還規(guī)定了Switch設(shè)備廠商可以選擇性地支持通配符進(jìn)行匹配。據(jù)說,OpenFlow在未來還計劃支持對整個數(shù)據(jù)包的任意字段進(jìn)行匹配。所有OpenFlow的規(guī)則都被組織在不同的FlowTable中,在同一個FlowTable中按規(guī)則的優(yōu)先級進(jìn)行先后匹配。一個OpenFlow的Switch可以包含一個或者多個FlowTable,從0依次編號排列。OpenFlow規(guī)范中定義了流水線式的處理流程,如下圖所示。當(dāng)數(shù)據(jù)包進(jìn)入Switch后,必須從FlowTable0開始依次匹配;FlowTable可以按次序從小到大越級跳轉(zhuǎn),但不能從某一FlowTable向前跳轉(zhuǎn)至編號更小的FlowTableo當(dāng)數(shù)據(jù)包成功匹配一條規(guī)則后,將首先更新該規(guī)則對應(yīng)的統(tǒng)計數(shù)據(jù)(如成功匹配數(shù)據(jù)包總數(shù)目和總字節(jié)數(shù)等),然后根據(jù)規(guī)則中的指令進(jìn)行相應(yīng)操作-比如跳轉(zhuǎn)至后續(xù)某一FlowTable繼續(xù)處理,修改或者立即執(zhí)行該數(shù)據(jù)包對應(yīng)的ActionSet等。當(dāng)數(shù)據(jù)包已經(jīng)處于最后一個FlowTable時,其對應(yīng)的ActionSet中的所有Action將被執(zhí)行,包括轉(zhuǎn)發(fā)至某一端口,修改數(shù)據(jù)包某一字段,丟棄數(shù)據(jù)包等。OpenFlow規(guī)范中對目前所支持的Instructions和Actions進(jìn)行了完整詳細(xì)的說明和定義。

OpenFlow對于QoS的支持(即OpenFlow對于QoS的支持(即MeterTable和MeterBands的定義等),對于GroupTable的定義,以及規(guī)則的超時處理等。OpenFlow的通信通道這一節(jié)中,OpenFlow規(guī)范定義了一個OpenFlowSwitch如何與Controller建立連接、通訊以及相關(guān)消息類型等。OpenFlow規(guī)范中定義了三種消息類型Features、a)Controller/Switch消息,是指由Controller發(fā)起、SwitchFeatures、Configuration>Modify-State、Read-State、Packet-out、Barrier和Role-Request等消息。這些消息主要由Controller用來對Switch進(jìn)行狀態(tài)查詢和修改配置等操作。b)異步(Asynchronous)消息,是由Switch發(fā)送給Controller>用來通知Switch上發(fā)生的某些異步事件的消息,主要包括Packet-in、Flow-Removed、Port-status和Error等。例如,當(dāng)某一條規(guī)則因?yàn)槌瑫r而被刪除時,Switch將自動發(fā)送一條Flow-Removed消息通知Controller,以方便Controller作出相應(yīng)的操作,如重新設(shè)置相關(guān)規(guī)則等。c)對稱(Symmetric)消息,顧名思義,這些都是雙向?qū)ΨQ的消息,主要用來建立連接、檢測對方是否在線等,包括Hello、Echo和Experimenter三種消息。

下圖展示了OpenFlow和Sw讓ch之間一次典型的消息交換過程,出于安全和高可用性等方面的考慮,OpenFlow的規(guī)范還規(guī)定了如何為Controller和Sw讓ch之間的信道加密、如何建立多連接等(主連接和輔助連接)。SwitchControllerSwitchFEATUREffPW-FEATUREffPW-延LCONFIG■9-_FLOW^ODECHO_REQU4I一-My。一REPLy3.Opendaylight與Mininet環(huán)境搭建控制器使用OpenDaylight(以下簡寫為ODL),是現(xiàn)在主流的控制器項目,功能比較完善。模擬OpenFlow設(shè)備使用Mininet,遠(yuǎn)比基于KVM的虛擬機(jī)應(yīng)用更高效、更簡潔,且更容易理解。1環(huán)境準(zhǔn)備主要的最簡單的環(huán)境準(zhǔn)備是:一臺PC及安裝VMwarestation(或VirtualBox)工作站用來承載VM2ODL獲取安裝可直接通過地址鏈接下載ODL的VM鏡像:,下載此鏡像后,可用VMwarestation或者virtualbox直接打開此VM,使用并啟動ODL打開VM后,先進(jìn)入OpenDaylight目錄:cdopendaylight/opendaylight/distribution/opendaylight/再進(jìn)入OpenDaylight啟動目錄:cdtarget/distribution.opendaylight-package/opendaylight執(zhí)行:run.sh在瀏覽器中(VM環(huán)境或本地環(huán)境)輸入http://[VMIP]:8080可轉(zhuǎn)到如下登錄界面,其中[VMIP]替換為控制器IP。登錄用戶名:admin,密碼:admin,登錄進(jìn)入ODL的Web界面查看并可對ODL操作。如下圖:*SDNHubadmin%LogIn3Mininet獲取安裝Mininet主要是虛擬出OpenFlow交換機(jī)以及host主機(jī)節(jié)點(diǎn),并且能通過自定義來構(gòu)造用戶想要的拓?fù)洹L摂MOpenFlow交換機(jī)主要是使用基于OpenvSwitch的應(yīng)用。從下載Mininet的VM鏡像,打開此鏡像后,用戶名為mininet,密碼為mininet。登錄進(jìn)入Mininet虛擬機(jī),之后即可通過mn命令來創(chuàng)建拓?fù)洹?,環(huán)境測試和openflow協(xié)議分析這個section是繼環(huán)境搭建完成以后,在此基礎(chǔ)上熟悉平臺操作,以及通過wireshark抓包工具分析OpenFlow(以下簡寫為OF)協(xié)議。.打開wireshark并創(chuàng)建拓?fù)浒凑照鹿?jié)一搭建平臺,啟動ODL,并^T開wireshark0進(jìn)入裝有Mininet的VM,通過mn命令指定網(wǎng)絡(luò)拓?fù)浼爸付ù薕DL控制器。Mininet創(chuàng)建網(wǎng)絡(luò)拓?fù)涿睿?sudomn--topolinear,2--switchovsk--controller=remote,ip=03,port=6633此命令通過Mininet模擬創(chuàng)建一個含有兩個交換機(jī)(OpenvSwitch,以下簡寫為OVS)和兩個主機(jī)的網(wǎng)絡(luò)拓?fù)洌渲?3為ODL的IP,6633為ODL的默認(rèn)端口,網(wǎng)絡(luò)拓?fù)淙缦聢D所示:.查看網(wǎng)絡(luò)在Mininet中通過操作網(wǎng)絡(luò)命令,可以查看OVS間及OVS與主機(jī)間的連接關(guān)系,也可以查看Mininet是否遠(yuǎn)程連接控制器。例如,通過nodes命令可以查看網(wǎng)絡(luò)中所有的節(jié)點(diǎn)。mininet>nodesavailablenodesar-e:hlsis2cOnininet>通過net命令可以查看并確認(rèn)網(wǎng)絡(luò)連接關(guān)系是否與預(yù)期一致以及節(jié)點(diǎn)信息,且可以了解具體的連接端口信息。n1ninet>netKlo:sl-etlil:hl-cihOsl^ethZ:s2-&th2sZlo:s2-ethl:hZ-cthOs2-ethZ:sl-ethZhlhl-eth0;sl-ethlh乙b£-eth0:sZ-ethlnininet>通過下面的dump命令可以看出,交換機(jī)通過遠(yuǎn)程方式連接到控制器,且能看到控制器的IP和PORTmininet>dump<Remo+eContro11er-eG:192,168.5.203:pid-2005><UUSSwitchsi'lo'127,0.0.1l-etlil:Hotigjsl-cth2:Honcpid=201&><DUSSuitchsZ;Id;1ZjsZ-ethl;HoTiejsZ-cthZ;Nonepid=2GZl><HoxtM:hl-ethO:1G,0.0.1pid=Z01Z><Host>12:hZ-ethO:1G.0.0.2pid-Z013>nininet>.抓包并分析協(xié)議通過wireshark抓包可以直接看到控制器與OVS交換機(jī)的通信過程,下面分析該流程中的OF消息此專題應(yīng)用的是直接支持OpenFlow協(xié)議的wireshark官網(wǎng)StableRelease(1.12.1版本。建立連接控制器與交換機(jī)之間的OpenFlow協(xié)議是應(yīng)用于TCP傳輸層上,所以解析應(yīng)用層。他們首先發(fā)送hello消息,建立初始化連接,協(xié)商使用的OpenFlow協(xié)議版本。由下圖可知,ODL與Mininet之間應(yīng)用的是OpenFlow1.0版本協(xié)議(其他1.2、1.3協(xié)議會在協(xié)議OpenFlow后面標(biāo)識)。51155.204681L92.16fi.52O4192.168,5,203OpenFlow64Type:OFPI^I-ELIC51355.206109192.168.5,203MOpenFlow64Type:OFPT_FELLC514$5.210867152.1€8t5,20304OpenFlow64Type:0FPT_FEATLRE5_REQLE5T51655.211&LQ19Z.l?a.52(M1翌?1跖,5?203OpenFlow2^2Type;OFP7_FEATURE5_REPLy51755.2161001931配52Q3192.1(3.5.204OpenFlow68Type;OFPT_5ET_CONFIG51855.21631719Z.1C8.5.203192.1M.5.204OpenFlow64Type:0FPILCET.CONFIG_ftEQUEST52055.219443m168.5,20403OpenFlow68Type:0FPT_G£T_CONFIG_REPLY52455,24876c1S316E.120403openFlow64Type:OFPT_|-ELLC52655.253516[奠.16乳工20204OpenFlow64Type:OFPT^bELLO5275S.255S441t8,5,203192.168.5,204OpenFlow64Type:0FPTLFEATlres.request55.2564200403OpenFlow232Type:OFPTLFEATLRES-REPLY53055.257832152.160.5,201皿16隊5.204OpenFlow68Type:OFPT_SET_CONF1G53155.2579691^,204OpenFlow64Type:0FPT_CET_CONFIGJiEqu巨5T53355.258148192.168520304OpenFlow1"Type:OFP7_FLDW_MODS345工”8并2lQ.16a.52O403OpenFlow68Type:OFPT_GET_CONFIG_1?EPLY53555.2B9B5403192.168.5,204OpenFlow128Type:OFPTLFLDW_MOO

能力請求響應(yīng)該消息主要響應(yīng)能力請求featurerequest消息,回復(fù)連接此控制器的交換機(jī)的一些基本設(shè)置信息,包括交換機(jī)的能力以及它的一些端口的信息等。OpenFlcw1.0.000CO.000COType:j后》L&ngtTransaction10:lflB2S6r5Jd*DacapdthuniqueID:n_buffer?:”6n_tat>te5;2S5-t1ICxGOOOOOOO0-Flow?*??,…,*??r*??-labltsratlscics:False.▼***.-*r.._*.*.**t**0*.*Port±tatistic5:False-一t-?*+-…*0,*--croupsta.tlstics;False?...??■...<h**..■canrcaaaembleIPfragments:Fais看0>F由l£包o*Sw1rctiwillblockloopir>gports:iacdcn?;0xM0C"Q0..…..h.…*…t*..*.…一.…0-outputtoswftctipo-rt:False>SettheSOZ.lqvlahid;False*s?ctlie0O2.1qpriorityiraise-Scriptheeo^.lqheaderifalse-Eihtrnetsourceaddress:False-EtherretdestSnjtioaaddress;Falsp?IPsourcejddress:Falx-IFdestlnailonJddress:F^l^e-WTOS(&STPf^ld.6Mti)!True-tcp/ucpsourceport!True-TCP/UPPtJtSCinaUQnport;Tryt-Outputtoqu@uR:Raise*p(rtdat^1?Port42iPortdac3config請求回應(yīng)getconfigreply消息用于回應(yīng)getconfigrequest消息,交換機(jī)通過該消息回應(yīng)配置信息,一般是交換機(jī)的接口配置等信息。stats狀態(tài)信息statsreply消息用于回應(yīng)statsrequest信息,主要是交換機(jī)回應(yīng)給控制器的狀態(tài)信息。flowmod消息flowmod消息涉及到流表項的匹配信息等,下圖顯示的flowmod匹配項的類型信息。openFlov.l.Q?0Mg。!■"rNg;3。1Ge工)Type:[OfPTjLOwjwi0[>(14)L^rhgThi72TransdtticnID:1436217S50*11<j<ards:41駛工。工inport:0Ethernetsourceaddress;00:00:(K)_00:OO:OO(OO:0□:00:DO:DO:OD)Ether〃吧tdesrinationaddress:00:00:00.00:00r00((K>;00:00:00:00:QO)inputvlaisid;0InpuTVLANpriwicy:0Pdddir^g:0oataretdissectedyetCookie:0x0000000000000000conrni-ard:DeletealTmtthingflows(S)Idledn>€>ouc:0hardtime-out:0Priorliy:0BufftrId:0x00^00440Outport:6SS1SFlag:03.6packet_in、packet_out消息在這部分流程中,當(dāng)交換機(jī)收到數(shù)據(jù)包后查找流表無匹配項時,將數(shù)據(jù)包封裝在packet_in消息發(fā)給controller,由controller通過packet_out消息下發(fā)決策,使發(fā)送和接收數(shù)據(jù)包的兩主機(jī)間進(jìn)行通信。193.66656210.0.&.110.0.0,2OpenFlow172Type:193.674867Ie;f2;l+;3b;f2;3&7e;82;dl8;Ga;7c;feOperFlow122Typw;193.676395le:f2:14:3b:fl:367e:82:48:ca:7c:feOp電nFlow122Type:293.676563Ie;f2:14;3b;f2;367e;82;d8:ca:7c:'FeOpenFlow176Type;193.67914S03192,168,5.204OpenFloitf136Type:193.6793081924168.5,203192.168.5,204OpenFlow64Type:193.679775192.168.5,2041^2,168.5,203OpenFlow64Type:193.688289&3192.L68.5.204OpenFlow152Type:193.688443&3192.168.5,204OpenFlow64Type:193.688912192.168.S.2G4192.168.5,203QpenFJow64Type;J93.69270OpenFlow178Type:193.70384116.C.&.OpenHow178Type:193.70439510,0,0.2OpenFlow172Type:193.712097W.&.9.lOpenFlw172Type:以上幾種消息類型,可以參照OpenFlow標(biāo)準(zhǔn)協(xié)議中的類型,如下圖:

TypeDescriptionH畫C&r^tralIer*>SwitchfollowingtheTCPhandshake,thecontrollersendsitsversionnunnbertotheswitch.HelloSwitch-Controllertheswftdireplieswithitssupportedversionnumber.Feature專RequestContrallcn>Switchthecontrolleraskito魏uwhichpartsareavailable.SetConfigControIIen>SwitchinthlEea$erthectmtraller獨(dú)kftheswitchto4電r>dflowexpiratians.FeaturesRerWSwitch^Controllertheswitchreplieswithalistofports,portspeeds,andsupportedtablesandactions.PortStatusSwitch->Contr&lkrenablestheswitchidinformThatconuollerofch

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論