天天看點

SDN-openflow1.0抓包分析Wireshark對稱消息控制器/交換機配置消息統計消息障礙消息控制器指令消息 異步消息

目錄

Wireshark

Wireshark啟動

wireshark配置

選擇端口

 選擇篩選器

對稱消息

Hello消息

OFPT_HELLO

ERROR消息

OFPT_ERROR

ECHO消息

OFPT_ECHO_REQUEST

 OFPT_ECHO_REPLY

控制器/交換機配置消息

Features消息

OFPT_FEATURES_REQUEST

OFPT_FEATURES_REPLY

CONFIGS消息

OFPT_SET_CONFIG

統計消息

OFPT_STATS_REQUEST

OFPT_STATS_REPLY

障礙消息

OFPT_BARRIER_REQUEST

OFPT_BARRIER_REPLY

控制器指令消息

OFPT_PACKET_OUT

OFPT_FLOW_MOD

 異步消息

OFPT_PACKET_IN

上篇文章SDN-OpenFlow1.0協定分析對OpenFlow1.0協定進行了分析,本篇文章就抓一些包來看一看。

部落客使用的是opendaylight氮版本,miniedit進行的網絡建構,wireshark進行抓包,一些配置等請檢視本專欄其他文章。

Wireshark

Wireshark啟動

使用

sudo wireshark
           

啟動wireshark,一段時間後打開界面

SDN-openflow1.0抓包分析Wireshark對稱消息控制器/交換機配置消息統計消息障礙消息控制器指令消息 異步消息

打開wireshark

wireshark配置

選擇端口

SDN-openflow1.0抓包分析Wireshark對稱消息控制器/交換機配置消息統計消息障礙消息控制器指令消息 異步消息

選擇抓包接口

部落客的控制器和Mininet在一台虛拟機中,是以選擇的lo,讀者根據自己情況選擇。

 選擇篩選器

SDN-openflow1.0抓包分析Wireshark對稱消息控制器/交換機配置消息統計消息障礙消息控制器指令消息 異步消息

篩選openflow1.0協定的消息

選擇openflow_v1篩選of1.0協定的消息,否則有ICMP、ARP等協定的消息,清單過長。

使用

tshark -g protocols | grep -i openflow
           

檢視你的wireshark支援的openflow協定版本

SDN-openflow1.0抓包分析Wireshark對稱消息控制器/交換機配置消息統計消息障礙消息控制器指令消息 異步消息

wireshark版本

對稱消息

Hello消息

OFPT_HELLO

SDN-openflow1.0抓包分析Wireshark對稱消息控制器/交換機配置消息統計消息障礙消息控制器指令消息 異步消息

OFPT_HELLO資料包

這是由交換機向控制器發送的HELLO消息,對稱消息的一種,用于控制器或交換機在連接配接建立的期間發送一個Hello資料包,用來表示所支援的最高版本的Openflow協定,協商版本号,建立連接配接,連接配接可以從交換機或控制器啟動。

ERROR消息

OFPT_ERROR

SDN-openflow1.0抓包分析Wireshark對稱消息控制器/交換機配置消息統計消息障礙消息控制器指令消息 異步消息

OFPT_ERROR資料包

這是由交換機向控制器發出的ERROR消息,對稱消息的一種。控制器或交換機發送此消息用來訓示正常運作期間的故障。錯誤由消息類型和代碼以及對錯誤的描述來組成。傳回碼為1表示沒有問題,建立連接配接成功,若為0則失敗。

ECHO消息

OFPT_ECHO_REQUEST

SDN-openflow1.0抓包分析Wireshark對稱消息控制器/交換機配置消息統計消息障礙消息控制器指令消息 異步消息

OFPT_ECHO_REQUEST資料包

當沒有其他的資料包進行交換時,交換機會定期循環給控制器發送OFPT_ECHO_REQUEST來確定與控制器的連接配接。

 OFPT_ECHO_REPLY

SDN-openflow1.0抓包分析Wireshark對稱消息控制器/交換機配置消息統計消息障礙消息控制器指令消息 異步消息

 OFPT_ECHO_REPLY資料包

控制器對交換機進行回應,確定連接配接沒有問題。

控制器/交換機配置消息

Features消息

OFPT_FEATURES_REQUEST

SDN-openflow1.0抓包分析Wireshark對稱消息控制器/交換機配置消息統計消息障礙消息控制器指令消息 異步消息

OFPT_HELLO和OFPT_FEATURES_REQUEST資料包

這是控制器發給交換機的兩個資料包,Hello是對稱消息,交換機之前給控制器發了,控制器要回一下,可以看到控制器還支援openflow1.3版本。Request消息用于控制器向交換機請求資訊,在交換Hello資料包并且建立雙方支援的最高版本的Openflow之後,控制器向交換機發送功能請求以檢索緩沖區的數量,資料路徑ID或其他。

OFPT_FEATURES_REPLY

SDN-openflow1.0抓包分析Wireshark對稱消息控制器/交換機配置消息統計消息障礙消息控制器指令消息 異步消息

OFPT_FEATURES_REPLY資料包

交換機向控制器發出,告知控制器自身的資訊,這個是交換s1進行的響應,同樣還有s2和s3的。 。

Datapath unique id:交換機辨別符。

        n_buffers:一次最多緩存的資料包數量。

        n_tables:表示交換機支援的流表數量。每個流表可以設定不同的通配符和不同數量的流表項。控制器和交換機第一次通信的時候,控制器會從OFPT_FEATURES_REPLY消息中找出交換機支援多少流表,如果控制器還想了解大小、類型和流表查詢的順序,就發送一個OFPT_STATS_REQUEST消息,交換機必須按照資料包周遊流表的順序把這些流表回複給控制器,并且精确比對流表排在通配流表前。

CONFIGS消息

OFPT_SET_CONFIG

SDN-openflow1.0抓包分析Wireshark對稱消息控制器/交換機配置消息統計消息障礙消息控制器指令消息 異步消息

OFPT_SET_CONFIG資料包

控制器發出的消息,用于對交換機進行配置。

統計消息

OFPT_STATS_REQUEST

SDN-openflow1.0抓包分析Wireshark對稱消息控制器/交換機配置消息統計消息障礙消息控制器指令消息 異步消息

OFPT_STATS_REQUEST資料包

控制器想了解更多交換機的資訊時發出。

OFPT_STATS_REPLY

SDN-openflow1.0抓包分析Wireshark對稱消息控制器/交換機配置消息統計消息障礙消息控制器指令消息 異步消息

OFPT_STATS_REPLY資料包

障礙消息

OFPT_BARRIER_REQUEST

SDN-openflow1.0抓包分析Wireshark對稱消息控制器/交換機配置消息統計消息障礙消息控制器指令消息 異步消息

OFPT_BARRIER_REQUEST資料包

控制器向交換機發送該消息,詢問之前的指令是否正确運作。

OFPT_BARRIER_REPLY

SDN-openflow1.0抓包分析Wireshark對稱消息控制器/交換機配置消息統計消息障礙消息控制器指令消息 異步消息

OFPT_BARRIER_REPLY資料包

交換機向控制器報告指令運作結果。

控制器指令消息

OFPT_PACKET_OUT

SDN-openflow1.0抓包分析Wireshark對稱消息控制器/交換機配置消息統計消息障礙消息控制器指令消息 異步消息

OFPT_PACKET_OUT資料包

控制器響應交換機,用于指令交換機将某一資料包進行轉發。可以看到動作是Output,端口号是2,也就是指令交換機從端口2将資料包轉發出去。

OFPT_FLOW_MOD

SDN-openflow1.0抓包分析Wireshark對稱消息控制器/交換機配置消息統計消息障礙消息控制器指令消息 異步消息

OFPT_FLOW_MOD

        Cookie為流表項辨別符

        Command是flow-mod的類型

        Idle time-out是流表項的空閑逾時時間

        hard time-out是流表項的最大生存時間

        Priority為流表項的優先級,交換機優先比對高優先級的流表項;

        Buffer Id為交換機中的緩沖區ID,flow-mod消息可以指定一個緩沖區的ID,該緩沖區的資料包會按照此flow-mod消息的action清單處理。如果是手動下發的流,buffer_id應填-1,即0xffff,告訴交換機這個資料包并沒有緩存在隊列中。

        Out port為删除流表的flow_mod消息提供的額外的比對參數。

        Flags為flow-mod指令的一些标志位,可以用來訓示流表删除後是否發送flow-removed消息,添加流表時是否檢查流表重複項,添加的流表項是否為應急流表項。

                當OFPFF_SEND_FLOW_REM 被設定的時候,表項逾時删除會觸發一條表項删除的資訊。

                當OFPFF_CHECK_OVERLAP 被設定的時候,交換機必須檢查同優先級的表項之間是否有比對範圍的沖        突。

                當OFPFF_EMERG_被設定的時候,交換機将表項當作緊急表項,隻有當與控制器連接配接斷的時候才啟用。

 異步消息

OFPT_PACKET_IN

SDN-openflow1.0抓包分析Wireshark對稱消息控制器/交換機配置消息統計消息障礙消息控制器指令消息 異步消息

OFPT_PACKET_IN資料包

如果由動作集訓示或者由于表遺漏或TTL錯誤,交換機可以向控制器發送在PACKET_IN資訊中接收到的包。       

        Buffer Id是packet-in消息所攜帶的資料包在交換機中的緩存ID

        Total_length為data段的長度

        In port資料包進入交換機的入端口号

        Reason為packet-in事件的産生原因(OFPR_NO_MATCH和OFPR_ACTION)

部分消息在抓包時沒有展現,可以檢視文章

SDN-OpenFlow1.0協定分析

更多SDN相關内容,請檢視:SDN-自學筆記

有問題請下方評論,轉載請注明出處,并附有原文連結,謝謝!如有侵權,請及時聯系。

繼續閱讀