




已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
基于OpenFlow的SDN技術1. SDN與OpenFlow技術簡介SDN指的是軟件定義網(wǎng)絡。你可以這樣去理解SDN:如果將網(wǎng)絡中所有的網(wǎng)絡設備視為被管理的資源,那么參考操作系統(tǒng)的原理,可以抽象出一個網(wǎng)絡操作系統(tǒng)(Network OS)的概念這個網(wǎng)絡操作系統(tǒng)一方面抽象了底層網(wǎng)絡設備的具體細節(jié),同時還為上層應用提供了統(tǒng)一的管理視圖和編程接口。這樣,基于網(wǎng)絡操作系統(tǒng)這個平臺,用戶可以開發(fā)各種應用程序,通過軟件來定義邏輯上的網(wǎng)絡拓撲,以滿足對網(wǎng)絡資源的不同需求,而無需關心底層網(wǎng)絡的物理拓撲結構。 云計算的發(fā)展,是以虛擬化技術為基礎的。云計算服務商以按需分配為原則,為客戶提供具有高可用性、高擴展性的計算、存儲和網(wǎng)絡等IT資源。虛擬化技術將各種物理資源抽象為邏輯上的資源,隱藏了各種物理上的限制,為在更細粒度上對其進行管理和應用提供了可能性。近些年,計算的虛擬化技術(主要指x86平臺的虛擬化)取得了長足的發(fā)展;相比較而言,盡管存儲和網(wǎng)絡的虛擬化也得到了諸多發(fā)展,但是還有很多問題亟需解決,在云計算環(huán)境中尤其如此。OpenFlow和SDN盡管不是專門為網(wǎng)絡虛擬化而生,但是它們帶來的標準化和靈活性卻給網(wǎng)絡虛擬化的發(fā)展帶來無限可能。 SDN的最重要特征:將傳統(tǒng)網(wǎng)絡設備的數(shù)據(jù)轉發(fā)(data plane)和路由控制(control plane)兩個功能模塊相分離,通過集中式的控制器(Controller)以標準化的接口對各種網(wǎng)絡設備進行管理和配置,那么這將為網(wǎng)絡資源的設計、管理和使用提供更多的可能性,從而更容易推動網(wǎng)絡的革新與發(fā)展。OpenFlow是實現(xiàn)SDN最常用的的一種協(xié)議,OpenFlow的原理和基本架構如下圖。其實,這張圖還很好地表明了OpenFlow Switch規(guī)范所定義的范圍從圖上可以看出,OpenFlow Switch規(guī)范主要定義了Switch的功能模塊以及其與Controller之間的通信信道等方面。OpenFlow幾大應用場景,包括:1)校園網(wǎng)絡中對實驗性通訊協(xié)議的支持(如其標題所示);2) 網(wǎng)絡管理和訪問控制;3)網(wǎng)絡隔離和VLAN;4)基于WiFi的移動網(wǎng)絡;5)非IP網(wǎng)絡;6)基于網(wǎng)絡包的處理。2. OpenFlow協(xié)議Openflow規(guī)范主要分為如下四大部分1. OpenFlow的端口(Port)OpenFlow規(guī)范將Switch上的端口分為3種類別:a) 物理端口,即設備上物理可見的端口;b) 邏輯端口,在物理端口基礎上由Switch設備抽象出來的邏輯端口,如為tunnel或者聚合等功能而實現(xiàn)的邏輯端口;c) OpenFlow定義的端口。OpenFlow目前總共定義了ALL、CONTROLLER、TABLE、IN_PORT、ANY、LOCAL、NORMAL和FLOOD等8種端口,其中后3種為非必需的端口,只在混合型的OpenFlow Switch(OpenFlow-hybrid Switch,即同時支持傳統(tǒng)網(wǎng)絡協(xié)議棧和OpenFlow協(xié)議的Switch設備,相對于OpenFlow-only Switch而言)中存在。2. OpenFlow的FlowTable(流表)OpenFlow通過用戶定義的或者預設的規(guī)則來匹配和處理網(wǎng)絡包。一條OpenFlow的規(guī)則由匹配域(Match Fields)、優(yōu)先級(Priority)、處理指令(Instructions)和統(tǒng)計數(shù)據(jù)(如Counters)等字段組成,如下圖所示。在一條規(guī)則中,可以根據(jù)網(wǎng)絡包在L2、L3或者L4等網(wǎng)絡報文頭的任意字段進行匹配,比如以太網(wǎng)幀的源MAC地址,IP包的協(xié)議類型和IP地址,或者TCP/UDP的端口號等。目前OpenFlow的規(guī)范中還規(guī)定了Switch設備廠商可以選擇性地支持通配符進行匹配。據(jù)說,OpenFlow在未來還計劃支持對整個數(shù)據(jù)包的任意字段進行匹配。所有OpenFlow的規(guī)則都被組織在不同的FlowTable中,在同一個FlowTable中按規(guī)則的優(yōu)先級進行先后匹配。一個OpenFlow的Switch可以包含一個或者多個FlowTable,從0依次編號排列。OpenFlow規(guī)范中定義了流水線式的處理流程,如下圖所示。當數(shù)據(jù)包進入Switch后,必須從FlowTable 0開始依次匹配;FlowTable可以按次序從小到大越級跳轉,但不能從某一FlowTable向前跳轉至編號更小的FlowTable。當數(shù)據(jù)包成功匹配一條規(guī)則后,將首先更新該規(guī)則對應的統(tǒng)計數(shù)據(jù)(如成功匹配數(shù)據(jù)包總數(shù)目和總字節(jié)數(shù)等),然后根據(jù)規(guī)則中的指令進行相應操作比如跳轉至后續(xù)某一FlowTable繼續(xù)處理,修改或者立即執(zhí)行該數(shù)據(jù)包對應的Action Set等。當數(shù)據(jù)包已經(jīng)處于最后一個FlowTable時,其對應的Action Set中的所有Action將被執(zhí)行,包括轉發(fā)至某一端口,修改數(shù)據(jù)包某一字段,丟棄數(shù)據(jù)包等。OpenFlow規(guī)范中對目前所支持的Instructions和Actions進行了完整詳細的說明和定義。另外,OpenFlow規(guī)范中還定義了很多其他功能和行為,比如OpenFlow對于QoS的支持(即MeterTable和Meter Bands的定義等),對于GroupTable的定義,以及規(guī)則的超時處理等。3. OpenFlow的通信通道這一節(jié)中,OpenFlow規(guī)范定義了一個OpenFlow Switch如何與Controller建立連接、通訊以及相關消息類型等。OpenFlow規(guī)范中定義了三種消息類型:a) Controller/Switch消息,是指由Controller發(fā)起、Switch接收并處理的消息,主要包括Features、Configuration、Modify-State、Read-State、Packet-out、Barrier和Role-Request等消息。這些消息主要由Controller用來對Switch進行狀態(tài)查詢和修改配置等操作。b) 異步(Asynchronous)消息,是由Switch發(fā)送給Controller、用來通知Switch上發(fā)生的某些異步事件的消息,主要包括Packet-in、Flow-Removed、Port-status和Error等。例如,當某一條規(guī)則因為超時而被刪除時,Switch將自動發(fā)送一條Flow-Removed消息通知Controller,以方便Controller作出相應的操作,如重新設置相關規(guī)則等。c) 對稱(Symmetric)消息,顧名思義,這些都是雙向對稱的消息,主要用來建立連接、檢測對方是否在線等,包括Hello、Echo和Experimenter三種消息。下圖展示了OpenFlow和Switch之間一次典型的消息交換過程,出于安全和高可用性等方面的考慮,OpenFlow的規(guī)范還規(guī)定了如何為Controller和Switch之間的信道加密、如何建立多連接等(主連接和輔助連接)。3. Opendaylight與Mininet環(huán)境搭建控制器使用OpenDaylight(以下簡寫為ODL),是現(xiàn)在主流的控制器項目,功能比較完善。模擬OpenFlow設備使用Mininet,遠比基于KVM的虛擬機應用更高效、更簡潔,且更容易理解。1 環(huán)境準備主要的最簡單的環(huán)境準備是:一臺PC及安裝VMware station(或VirtualBox)工作站用來承載VM。2 ODL獲取安裝可直接通過地址鏈接下載ODL的VM鏡像:/wk/index.php?title=OpenDayLight_Tutorial,下載此鏡像后,可用VMware station或者virtualbox直接打開此VM,使用并啟動ODL。打開VM后,先進入OpenDaylight目錄:cd opendaylight/opendaylight/distribution/opendaylight/再進入OpenDaylight啟動目錄:cd target/distribution.opendaylight-package/opendaylight執(zhí)行:run.sh在瀏覽器中(VM環(huán)境或本地環(huán)境)輸入http:/VM_IP:8080可轉到如下登錄界面,其中VM_IP替換為控制器IP。登錄用戶名:admin,密碼:admin,登錄進入ODL的Web界面查看并可對ODL操作。如下圖:3 Mininet獲取安裝Mininet主要是虛擬出OpenFlow交換機以及host主機節(jié)點,并且能通過自定義來構造用戶想要的拓撲。虛擬OpenFlow交換機主要是使用基于Open vSwitch的應用。從/download/下載Mininet的VM鏡像,打開此鏡像后,用戶名為mininet,密碼為mininet。登錄進入Mininet虛擬機,之后即可通過 mn命令來創(chuàng)建拓撲。4.環(huán)境測試和openflow協(xié)議分析這個section是繼環(huán)境搭建完成以后,在此基礎上熟悉平臺操作,以及通過wireshark抓包工具分析OpenFlow(以下簡寫為OF)協(xié)議。1. 打開wireshark并創(chuàng)建拓撲按照章節(jié)一搭建平臺,啟動ODL,并打開wireshark。進入裝有Mininet的VM,通過mn命令指定網(wǎng)絡拓撲及指定此ODL控制器。Mininet創(chuàng)建網(wǎng)絡拓撲命令:1sudomn-topolinear,2-switchovsk-controller=remote,ip=03,port=6633此命令通過Mininet模擬創(chuàng)建一個含有兩個交換機(Open vSwitch,以下簡寫為OVS)和兩個主機的網(wǎng)絡拓撲,其中03為ODL的IP,6633為ODL的默認端口,網(wǎng)絡拓撲如下圖所示:2. 查看網(wǎng)絡在Mininet中通過操作網(wǎng)絡命令,可以查看OVS間及OVS與主機間的連接關系,也可以查看Mininet是否遠程連接控制器。例如,通過nodes命令可以查看網(wǎng)絡中所有的節(jié)點。通過net命令可以查看并確認網(wǎng)絡連接關系是否與預期一致以及節(jié)點信息,且可以了解具體的連接端口信息。通過下面的dump命令可以看出,交換機通過遠程方式連接到控制器,且能看到控制器的IP和PORT。3. 抓包并分析協(xié)議通過wireshark抓包可以直接看到控制器與OVS交換機的通信過程,下面分析該流程中的OF消息。此專題應用的是直接支持OpenFlow協(xié)議的wireshark官網(wǎng)StableRelease(1.12.1)版本。3.1建立連接控制器與交換機之間的OpenFlow協(xié)議是應用于TCP傳輸層上,所以解析應用層。他們首先發(fā)送hello消息,建立初始化連接,協(xié)商使用的OpenFlow協(xié)議版本。由下圖可知,ODL與Mininet之間應用的是OpenFlow1.0版本協(xié)議(其他1.2、1.3協(xié)議會在協(xié)議OpenFlow后面標識)。3.2 能力請求響應該消息主要響應能力請求feature request消息,回復連接此控制器的交換機的一些基本設置信息,包括交換機的能力以及它的一些端口的信息等。3.3 config請求回應get config reply消息用于回應get config request消息,交換機通過該消息回應配置信息,一般是交換機的接口配置等信息。3.4 stats狀態(tài)信息stats reply消息用于回應stats request信息,主要是交換機回應給控制器的狀態(tài)信息。3.5 flow mod消息flow mod消息涉及到流表項的匹配信息等,下圖顯示的flow mod匹配項的類型信息。3.6 packet_in、packet_out消息在這部分流程中,當交換機收到數(shù)據(jù)包后查找流表無匹配項時,將數(shù)據(jù)包封裝在packet_in消息發(fā)給controller,由controller通過packet_out消息下發(fā)決策,使發(fā)送和接收數(shù)據(jù)包的兩主機間進行通信。以上幾種消息類型,可以參照OpenFlow標準協(xié)議中的類型,如下圖:我們可以用wireshark觀察到當?shù)谝淮斡衟ing包從h1發(fā)到h2時,控制器如何自動添加相應的表項到交換機。同時,可以進入ODL的web界面查看發(fā)現(xiàn)設備的拓撲,如圖所示:4. SDN與OpenFlow學習資料1. SDN 聯(lián)合播報 (/sdn-guide) 吐血推薦,初學SDN的最好選擇,網(wǎng)站的資料很全,有大牛的博客。每天都有更新很好的文章。2. Opendaylight的官方網(wǎng)址(/)3. Wiki上Opendaylight的一個技術幫助文檔(/wk/index.php?title=OpenDayLight_Tutorial)4. Wiki上Openflow的一個技術幫助文檔(/wk/index.php/OpenFlow_Tutorial#Mininet_Brief_Intro), 一步一步講解很細。5. SDNLAB(/) 很不錯的中文SDN網(wǎng)站,重點看技術專欄這一版塊。6. Mininet的官方網(wǎng)址(/),里面有mininet的命令手冊。7. Mininet的中文使用教程 (http:/www
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年海洋潛標系統(tǒng)合作協(xié)議書
- 如何充分發(fā)揮時間優(yōu)勢備考信息系統(tǒng)項目管理師試題及答案
- 2025年社交媒體平臺輿情監(jiān)測與危機公關輿情處理流程優(yōu)化報告
- 公共政策對教育公平的實現(xiàn)路徑探討試題及答案
- 企業(yè)風險預測模型的構建與應用
- 機電工程創(chuàng)新技術開發(fā)試題及答案
- 項目啟動前的準備工作試題及答案
- 公共圖書館服務提升方案評估報告:2025年圖書館讀者服務體驗優(yōu)化研究
- 公共政策的管理與評估框架試題及答案
- 2025年能源與資源行業(yè)能源系統(tǒng)優(yōu)化配置技術研究報告
- 澳大利亞建筑規(guī)范
- 2024年紫金礦業(yè)集團股份限公司校園招聘歷年高頻500題難、易錯點模擬試題附帶答案詳解
- 消化道出血護理查房7
- 太陽能光伏發(fā)電設備采購合同
- 江蘇省常州市教育學會2023-2024學年下學期八年級數(shù)學考試卷
- DZ∕T 0214-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 銅、鉛、鋅、銀、鎳、鉬(正式版)
- 2024年新教科版六年級下冊科學期末綜合測試卷(十九)
- 精神科進修匯報
- 2023年新高考天津卷歷史高考真題解析(參考版)
- 人工智能在文化遺產(chǎn)數(shù)字化保護中的應用
- GB/T 41666.4-2024地下無壓排水管網(wǎng)非開挖修復用塑料管道系統(tǒng)第4部分:原位固化內(nèi)襯法
評論
0/150
提交評論