軟件定義網(wǎng)絡(luò)(SDN)實(shí)戰(zhàn)教程課件_第1頁
軟件定義網(wǎng)絡(luò)(SDN)實(shí)戰(zhàn)教程課件_第2頁
軟件定義網(wǎng)絡(luò)(SDN)實(shí)戰(zhàn)教程課件_第3頁
軟件定義網(wǎng)絡(luò)(SDN)實(shí)戰(zhàn)教程課件_第4頁
軟件定義網(wǎng)絡(luò)(SDN)實(shí)戰(zhàn)教程課件_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

南向接口協(xié)議第4章4.1南向接口協(xié)議概述4.2

OpenFlow協(xié)議4.3

OF-Config協(xié)議

4.4

NETCONF協(xié)議

4.5

OVSDB協(xié)議4.6

其他南向接口協(xié)議4.1南向接口協(xié)議概述南向接口協(xié)議是控制器與交換機(jī)間信息交互的關(guān)鍵,其設(shè)計(jì)目標(biāo)主要包括:1.收集數(shù)據(jù)平面信息,下發(fā)控制策略,指導(dǎo)轉(zhuǎn)發(fā)行為。2.實(shí)現(xiàn)網(wǎng)絡(luò)配置與管理。3.執(zhí)行路徑計(jì)算,涵蓋鏈路屬性、狀態(tài)和拓?fù)湫畔ⅰ?.1南向接口協(xié)議概述南向接口協(xié)議設(shè)計(jì)目標(biāo)OpenFlow用于OpenFlow交換機(jī)與控制器的信息交互OF-Config用于OpenFlow交換機(jī)的配置與管理NETCONF用于網(wǎng)絡(luò)設(shè)備的配置與管理OVSDB用于OpenvSwitch的配置與管理XMPP用于即時(shí)通信、游戲平臺(tái)、語音與視頻會(huì)議系統(tǒng),openContrail控制器利用xMPP與vRouter進(jìn)行信息交互PCEPPCEP為PCE和PCC之間的通信協(xié)議,實(shí)現(xiàn)路徑計(jì)算I2RSI2RS體系架構(gòu)中的南向接口協(xié)議OpFlex思科ACI體系中的策略控制協(xié)議4.2OpenFlow協(xié)議轉(zhuǎn)發(fā)和控制分離是SDN網(wǎng)絡(luò)的核心特征,它允許網(wǎng)絡(luò)管理和狀態(tài)邏輯上集中,提高了可編程性、可控性和自動(dòng)化能力,使用戶能夠根據(jù)業(yè)務(wù)需求靈活建立網(wǎng)絡(luò)。實(shí)現(xiàn)這一分離的關(guān)鍵在于SDN控制器與數(shù)據(jù)轉(zhuǎn)發(fā)層之間的通信接口標(biāo)準(zhǔn)。2009年,斯坦福大學(xué)的CleanSlate小組開發(fā)了OpenFlow1.0,提供了這一標(biāo)準(zhǔn),并推出了參考交換機(jī)和NOX控制器。OpenFlow允許控制器直接操作網(wǎng)絡(luò)設(shè)備的轉(zhuǎn)發(fā)平面,無論這些設(shè)備是物理的還是虛擬的。OpenFlow迅速獲得業(yè)界關(guān)注,2011年,ONF成立,推動(dòng)SDN和OpenFlow的標(biāo)準(zhǔn)化。隨后,包括Broadcom、Cisco、Juniper、HP在內(nèi)的多家公司參與制定OpenFlow的后續(xù)版本,目前OpenFlow1.3是最廣泛使用的版本。4.2OpenFlow協(xié)議OpenFlow組件由OpenFlow網(wǎng)絡(luò)設(shè)備(OpenFlow交換機(jī))、控制器(OpenFlow控制器)、用于連接設(shè)備和控制器的安全通道(SecureChannel)以及OpenFlow表項(xiàng)組成,如圖所示。4.2.2OpenFlow組件SecureChannelFlowTableOpenFlowSwitchControllerSwitchOpenFlowProtocolSSL4.2.2OpenFlow控制器OpenFlow控制器是SDN控制層的關(guān)鍵組件,主要分為兩類:

1.開源控制器:NOX/POX:最早的SDN控制器,POX是跨平臺(tái)的Python版本。ONOS:面向企業(yè)級(jí)應(yīng)用的穩(wěn)定和靈活的操作系統(tǒng)。OpenDaylight:模塊化開源框架,與多種平臺(tái)集成。4.2.2OpenFlow控制器2.商用控制器:由VMware、Cisco、H3C等廠商提供,常結(jié)合OpenFlow和其他協(xié)議。開源控制器通常專注于研究和教育,而商用控制器則面向?qū)嶋H部署,提供更全面的網(wǎng)絡(luò)管理功能。4.2.2OpenFlow交換機(jī)OpenFlow交換機(jī)由硬件表項(xiàng)和軟件通道構(gòu)成,分為:1.純OpenFlow交換機(jī):僅支持OpenFlow。2.混合OpenFlow交換機(jī):支持OpenFlow和傳統(tǒng)轉(zhuǎn)發(fā)。支持多實(shí)例,每個(gè)實(shí)例獨(dú)立控制流量。轉(zhuǎn)發(fā)通過以下接口:1.物理接口:實(shí)際硬件端口。2.邏輯接口:如聚合、隧道。3.保留接口:專用于OpenFlow。4.2.2OpenFlow表項(xiàng)OpenFlow協(xié)議最初只有單播表項(xiàng),后來增加了組表和計(jì)量表等,增強(qiáng)了轉(zhuǎn)發(fā)和QoS功能。OpenFlow流表匹配報(bào)文并執(zhí)行操作,由以下組成:-匹配域:確定哪些報(bào)文匹配該表項(xiàng)。-優(yōu)先級(jí):高優(yōu)先級(jí)的表項(xiàng)先匹配。-處理指令:定義匹配報(bào)文的處理動(dòng)作。-統(tǒng)計(jì)數(shù)據(jù):如計(jì)數(shù)器,用于跟蹤流量。OpenFlow設(shè)備可以有多個(gè)流表,表項(xiàng)結(jié)構(gòu)隨版本更新而增強(qiáng)。4.2.2OpenFlow表項(xiàng)Instruction處理MeterMeter對(duì)匹配到流表項(xiàng)的報(bào)文進(jìn)行限速對(duì)匹配到流表項(xiàng)的報(bào)文進(jìn)行限速Apply-ActionsApply-Actions立即執(zhí)行Action立即執(zhí)行ActionClear-ActionsClear-Actions清除動(dòng)作集(ActionSet)中的所有Action。清除動(dòng)作集(ActionSet)中的所有Action。流表項(xiàng)動(dòng)作指令表如下:4.2.3OpenFlow安全通道OpenFlow設(shè)備與Controller之間通過建立加密的OpenFlow信道進(jìn)行消息交互,實(shí)現(xiàn)表項(xiàng)下發(fā)、查詢和狀態(tài)上報(bào)等功能。通常使用TLS加密,也支持TCP傳輸。若采用TLS,交換機(jī)啟動(dòng)時(shí)會(huì)通過6633端口(默認(rèn)OpenFlow端口)與控制器建立連接并交換證書進(jìn)行認(rèn)證。這意味著交換機(jī)需要配置至少兩個(gè)證書以確保安全通信。

4.2.4OpenFlow信道建立OpenFlow協(xié)議支持三種消息類型:ControllertoSwitch、Asynchronous、SymmetricControllertoSwitch消息:由Controller發(fā)起、Switch接收并處理。包括Features、Modify-State、Read-State、Flow-Mod、Packet-out等。Asynchronous消息:由Switch發(fā)送給Controller,通知發(fā)生的異步事件,如Packet-in、Flow-Removed、Port-Status和Error等。Symmetric消息:雙向?qū)ΨQ消息,用于建立連接和檢測對(duì)方是否在線,包括Hello和Echo。4.2.4OpenFlow信道建立OpenFlow控制器和交換機(jī)建立連接的過程:1.TCP連接建立:通過6633端口進(jìn)行TCP三次握手。2.Hello報(bào)文交換:交換機(jī)和控制器發(fā)送Hello報(bào)文進(jìn)行版本協(xié)商。3.功能請(qǐng)求與響應(yīng):控制器請(qǐng)求獲取交換機(jī)信息,交換機(jī)響應(yīng)功能詳情。4.Echo?;睿褐芷谛园l(fā)送EchoRequest和EchoReply以保持連接活躍。4.2.4OpenFlow信道建立信道連接斷開模式分為FailSecuremode和FailStandalonemode。安全通道重連有兩種模式:并行模式和串行模式。并行模式:允許Switch與多個(gè)Controller建立連接,各自進(jìn)行?;詈椭剡B。只有當(dāng)與所有Controller的連接斷開后,Switch進(jìn)入FailOpen狀態(tài)。串行模式:Switch一次只與一個(gè)Controller連接,連接斷開后立即嘗試重連,三次嘗試后仍無法建立連接則進(jìn)入FailOpen狀態(tài)。4.2.5OpenFlow消息處理OpenFlow流表下發(fā)分為主動(dòng)和被動(dòng)兩種機(jī)制。主動(dòng)模式:Controller主動(dòng)下發(fā)流表給網(wǎng)絡(luò)設(shè)備,設(shè)備根據(jù)流表進(jìn)行轉(zhuǎn)發(fā)。被動(dòng)模式:設(shè)備收到無匹配的數(shù)據(jù)包時(shí),將其轉(zhuǎn)發(fā)給Controller,后者決定如何轉(zhuǎn)發(fā)并下發(fā)相應(yīng)的流表。

實(shí)際中,通常結(jié)合使用兩種模式。4.2.5OpenFlow消息處理

OpenFlow報(bào)文上送控制器過程如下:控制器和交換機(jī)建立連接,Packet-in事件觸發(fā)前提。交換機(jī)收到數(shù)據(jù)包,如無匹配,發(fā)送Packet-in報(bào)文給控制器。控制器收到Packet-in消息后,發(fā)送Flow-Mod消息給交換機(jī),寫入流表項(xiàng)??刂破鞲鶕?jù)報(bào)文特征信息下發(fā)流表項(xiàng)或發(fā)送Packet-out消息給交換機(jī),執(zhí)行相應(yīng)動(dòng)作4.3OF-Config協(xié)議OF-CONFIG是一種OpenFlow交換機(jī)配置協(xié)議,用于配置控制器信息和交換機(jī)資源。它要求連接安全可靠,支持多個(gè)配置點(diǎn)對(duì)多個(gè)交換機(jī)進(jìn)行配置。OF-CONFIG使用XML描述數(shù)據(jù)結(jié)構(gòu),傳輸協(xié)議采用NETCONF。相比實(shí)時(shí)性要求高的OpenFlow南向協(xié)議,OF-CONFIG對(duì)實(shí)時(shí)性要求較低。OF-Config協(xié)議分為Server和Client兩部分,Server運(yùn)行OpenFlow交換機(jī)端,Client運(yùn)行在OpenFlow配置點(diǎn)上。通過Client可以遠(yuǎn)程配置交換機(jī)的控制器信息、端口、隊(duì)列等特性。最新的1.2版本支持多個(gè)控制器信息、端口和隊(duì)列的配置,遠(yuǎn)程改變端口狀態(tài)和特性,安全鏈接證書配置,發(fā)現(xiàn)交換機(jī)能力,以及配置隧道協(xié)議如VXLAN、NV-GRE等。4.3OF-Config協(xié)議4.4.1NETCONF協(xié)議簡介NETCONF是一種用于網(wǎng)管和網(wǎng)絡(luò)設(shè)備之間通信的網(wǎng)絡(luò)配置協(xié)議。它基于XML,通過RPC機(jī)制實(shí)現(xiàn)客戶端和服務(wù)器之間的通信。NETCONF支持網(wǎng)絡(luò)自動(dòng)化和按需管理,具有分層框架、互操作性、安全機(jī)制等優(yōu)點(diǎn)。該協(xié)議還支持?jǐn)?shù)據(jù)存儲(chǔ)、事務(wù)驗(yàn)證回滾等功能,適用于云化網(wǎng)絡(luò)的需求。4.4.2NETCONF基本網(wǎng)絡(luò)架構(gòu)網(wǎng)絡(luò)管理系統(tǒng)的主要元素包括客戶端(Client)和服務(wù)器(Server):-客戶端通過NETCONF協(xié)議對(duì)網(wǎng)絡(luò)設(shè)備進(jìn)行系統(tǒng)管理,并發(fā)送RPC請(qǐng)求以查詢或修改參數(shù)值。-服務(wù)器負(fù)責(zé)維護(hù)被管理設(shè)備的信息數(shù)據(jù),并響應(yīng)客戶端的請(qǐng)求。-NETCONFServer解析客戶端請(qǐng)求并返回響應(yīng),同時(shí)利用Notification機(jī)制向客戶端發(fā)送設(shè)備的告警和事件通知,報(bào)告設(shè)備的狀態(tài)變化。4.4.3NETCONF基本會(huì)話建立過程N(yùn)ETCONF協(xié)議使用RPC通信模式,Client和Server之間建立安全的、面向連接的會(huì)話后進(jìn)行通信。基本流程如下:1.Client觸發(fā)NETCONF會(huì)話建立,完成SSH連接建立和認(rèn)證。2.Client和Server完成會(huì)話建立和能力協(xié)商。3.Client發(fā)送RPC請(qǐng)求給Server,進(jìn)行交互操作,例如修改配置或查詢狀態(tài)。4.客戶端關(guān)閉NETCONF會(huì)話,SSH連接關(guān)閉。4.4.4NETCONF協(xié)議框架NETCONF協(xié)議采用了分層結(jié)構(gòu),包括安全傳輸層、消息層、操作層和內(nèi)容層:1.安全傳輸層提供了客戶端和服務(wù)器之間的通信路徑,首選使用SSH協(xié)議。2.消息層定義了RPC和通知消息的框架,客戶端發(fā)送RPC請(qǐng)求,服務(wù)器回應(yīng)RPC結(jié)果。3.操作層定義了基本操作,作為RPC的調(diào)用方法,使用XML編碼的參數(shù)調(diào)用這些方法。4.內(nèi)容層由數(shù)據(jù)模型定義,包括Schema模型和YANG模型,用于描述設(shè)備的管理數(shù)據(jù)內(nèi)容。4.4.5NETCONF報(bào)文結(jié)構(gòu)一個(gè)完整的NETCONFYANG請(qǐng)求報(bào)文結(jié)構(gòu)如下圖所示。4.4.6NETCONF通信模式Client向Server發(fā)送的請(qǐng)求和Server回應(yīng)的消息都使用XML編碼。其中包括以下基本的RPC元素:-`<rpc>`:封裝Client發(fā)送給Server的請(qǐng)求。-`<rpc-reply>`:封裝Server對(duì)請(qǐng)求的應(yīng)答消息。-`<rpc-error>`:如果處理請(qǐng)求時(shí)出錯(cuò)或有警告,則在<rpc-reply>內(nèi)封裝此元素發(fā)送給Client。-`<ok>`:如果處理請(qǐng)求時(shí)沒有錯(cuò)誤或警告,則在<rpc-reply>內(nèi)封裝此元素發(fā)送給Client。4.4.7配置數(shù)據(jù)庫(Datastores)NETCONF定義了配置數(shù)據(jù)庫,其中包括:-<running/>:保存設(shè)備當(dāng)前活動(dòng)狀態(tài)的完整配置。-<candidate/>:存放將要提交到<running/>的配置數(shù)據(jù),管理員可在此進(jìn)行操作,不會(huì)直接影響設(shè)備。-<startup/>:存放設(shè)備啟動(dòng)時(shí)加載的配置數(shù)據(jù),相當(dāng)于已保存的配置文件。4.5.1OVSDB協(xié)議OVSDB(OpenvSwitchDatabaseManagementProtocol)是一種管理層面的南向接口協(xié)議,用于管理開源的軟件交換機(jī)(OpenvSwitch,OVS)的數(shù)據(jù)庫。它定義了一套R(shí)PC接口,允許遠(yuǎn)程管理OVS數(shù)據(jù)庫,使用JSON-RPC作為通信協(xié)議。OVSDB的基本概念包括UUID、OVS、JSON、JSON-RPC和Durable。4.5.2OVSDB與OVS、控制器OVSDB管理協(xié)議是SDN網(wǎng)絡(luò)中管理OVS和硬件交換機(jī)的主要協(xié)議。在SDN架構(gòu)中,OVS充當(dāng)服務(wù)端,控制器是客戶端,負(fù)責(zé)配置和數(shù)據(jù)交互。通過OVSDB,控制器可以對(duì)OpenFlow通道、控制器和管理服務(wù)器連接、端口、隧道接口、隊(duì)列和QoS策略進(jìn)行管理,同時(shí)收集統(tǒng)計(jì)信息。4.5.3OVSDB與JSONOVSDB管理協(xié)議通信使用JSON格式,遵循JSON-RPCV1.0版本。JSON是一種結(jié)構(gòu)化數(shù)據(jù)序列化的文本格式,支持字符串、數(shù)字、數(shù)組等數(shù)據(jù)類型。OVSDB的JSON實(shí)現(xiàn)有限制:字符串不能包含Null字節(jié),僅支持UTF-8編碼。OVSDB使用簡化術(shù)語:字符串、ID、版本、布爾值、數(shù)字、整數(shù)、JSON值、非空J(rèn)SON值和錯(cuò)誤。4.5.4OVSDB數(shù)據(jù)模式用JSON對(duì)象表示OVSDB數(shù)據(jù)庫模式名稱值可選性說明“name”<id>必選數(shù)據(jù)庫整體標(biāo)識(shí)“version”<version>必選數(shù)據(jù)庫模式版本“cksum”<string>可選實(shí)現(xiàn)定義的校驗(yàn)和“tables”{<id>:<table-schema>,...}必選體現(xiàn)表名和表模式的JSON對(duì)象OVSDB表模式常由下列格式的JSON對(duì)象表示名稱值可選性說明“columns”{<id>:<column-schema>,...}必選包含的表格的UUID、版本信息等“maxRows”<integer>可選表格的最大行數(shù)“isRoot”<boolean>可選表格內(nèi)是否存在強(qiáng)依賴關(guān)系“indexes”[<column-set>*]可選用于標(biāo)識(shí)表格列OVSDB列模式通常由下列格式的JSON對(duì)象表示名稱值可選性說明“type”<type>必選列的類型“ephemeral”<boolean>可選數(shù)據(jù)是否持久化“mutable”<boolean>可選數(shù)據(jù)是否可修改4.5.5OVSDB整體架構(gòu)OVS有三個(gè)關(guān)鍵組件:OVSDB-Server、OVS-vSwitchd和OVS內(nèi)核模塊。1.OVSDB-Server:存儲(chǔ)OVS的配置信息,提供給控制器和OVS-vSwitchd使用的OVSDB操作接口。2.OVS-vSwitchd:管理流表,執(zhí)行控制器下發(fā)的流表規(guī)則,提供OpenFlow協(xié)議接口。3.OVS內(nèi)核模塊:緩存流表,處理數(shù)據(jù)包轉(zhuǎn)發(fā)請(qǐng)求,向OVS-vSwitchd請(qǐng)求處理指令。4.5.6OVSDB協(xié)議RPC方法OVSDBRPC方法使用JSON-RPCV1.0規(guī)范,請(qǐng)求包括方法名、參數(shù)和請(qǐng)求ID,響應(yīng)包括結(jié)果對(duì)象、錯(cuò)誤對(duì)象和匹配ID。

請(qǐng)求示例:{"method":"echo","params":["HelloJSON-RPC"],"id":1}

響應(yīng)示例:{"result":"HelloJSON-RPC","error":null,"id":1}OVSDBServer需支持所有RPC方法,OVSDBClient需支持“Echo”及其他必要方法。4.5.7OVSDB數(shù)據(jù)庫操作OVSDB數(shù)據(jù)庫操作包括Insert、Select、Update、Mutate、Delete、Wait、Commit、Abort、Commen、Assert操作。4.6.1其他南向接口協(xié)議(XMPPXMPP(Exten

溫馨提示

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

評(píng)論

0/150

提交評(píng)論