軟件定義網絡基礎---OpenFlow協議


一:OpenFlow協議概述

OpenFlow協議為控制器與交換機之間的通信,提供了一種開放標准的方式。OpenFlow交換機通過安全通道與控制器進行信息交互

二:OpenFlow消息類型

(一)controller-to-switch消息

1.Features消息

在建立傳輸安全會話時,控制器主動向交換機發送Feature_Request消息,請求交換機的特性信息,交換機通過Feature_Reply消息回復所支持的功能特性

2.Configuration消息

可以設置查詢交換機的配置信息,交換機需應答查詢請求

3.Modify-state消息

修改狀態消息主要用於增加、修改、刪除交換機的流表項、組表項及端口狀態

4.Read-state消息

5.Send-packet消息

一般用於響應Packet-in消息的處理,Packet-out信息必須攜帶一個Buffer_id,來定位緩存在交換機上的數據包

6.Barrier消息

用於告知控制器該報文之前的動作均已執行

(二)asynchronous信息(異步)

這類消息的觸發不是由控制器觸發,而是有交換機主動發起的,用於告知控制器新數據包的到達,和交換機狀態的改變

1.Packet-in消息

2.Flow-removed消息

 

 3.Port-status消息

4.Error消息

(三)symmtric消息(對稱)

兩邊都可以發送

1.Hello消息

2.Echo消息

該消息用於測量延遲、帶寬或用於保持活動連接

3.Vendor消息

三:OpenFlow的消息格式 

由OpenFlow頭部和OpenFlow消息體組成

(一)OpenFlow頭部

(二) OpenFlow消息體

與具體的消息類型有關,消息類型是一種枚舉類型,每種消息類型被定義為一個常數

四:OpenFlow協議的主要通信流程

 (一)控制器和交換機連接的建立

(二)雙方建立TLS隧道后,方法發送hello消息進行版本協商

如果協議版本協商成功,則連接建立。否則發送Error消息描述協商失敗原因,並終止連接

(三)協商完成后,控制器和交換機之間發送Features消息,獲取交換機參數

參數包括支持的buffer數目、流表數、Actions等

(四)控制器發送SET_CONFIG消息向交換機發送配置參數

(五)通過GET_CONFIG消息得到交換機修改后的配置信息

(六)控制器與OpenFlow交換機之間,發送PACKET_OUT和PACKET_IN消息。通過PACKET_OUT中內置的LLDP包進行網絡拓撲的探測

(七)控制器通過FLOW_MOD向控制器下發流表操作

 

 五:OpenFlow通信流程詳解

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM