軟件定義網絡基礎---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通訊流程詳解

相關文章
相關標籤/搜索