OpenFlow消息


☞Openflow消息總共分為三大類:
   1、Controller‐to‐Switch
        控制器至交換機消息此類消息由控制器主動發出
    Features 用來獲取交換機特性
    Configuration 用來配置Openflow交換機
    Modify‐State 用來修改交換機狀態(修改流表)
    Read‐Stats 用來讀取交換機狀態
    Send‐Packet 用來發送數據包
    Barrier 阻塞消息
 2、Asynchronous
   異步消息此類消息由交換機主動發出
    Packet‐in 用來告知控制器交換機接收到數據包
    Flow‐Removed 用來告知控制器交換機流表被刪除
    Port‐Status 用來告知控制器交換機端口狀態更新
    Error 用來告知控制器交換機發生錯誤
 3、Symmetric
   對稱消息,可以由控制器或交換機主動發起
    Hello 用來建立Openflow連接
    Echo 用來確認交換機與控制器之間的連接狀態
    Vendor 廠商自定義消息

☞Openflow消息格式

  Openflow協議數據包由Openflow Header和Openflow Message兩部分組成

   Openflow header的結構:

    

   Openflow Message結構與具體消息類型有關:

   Openflow消息類型:

    

☞Openflow Channel

  openFlow Channel是指交換機跟Controller之間的連接通道,可以是外帶管理通道(交換機面板上跟Console口在一起的那個單獨的Ethernet端口,物理上跟業務端口分離),也可以是帶內管理口(復用業務端口),現在常見的都是帶外管理口,主要原因是簡單,用帶內口需要配置交換芯片和協議棧。
  openFlow Channel連既可以是TCP連接,也可以是加密的TLS連接,由設備商或者用戶自行決定用哪種。使用TCP/TLS連接主要是為了保證可靠性。如果交換機連接了多個Controller,那么會創建多條TCP/TLS連接。

☞Controller角色和選舉

  一台openFlow交換機可以同時連接到多個Controller,這些Controller有三種角色,分別是Master、Slave和Equal。
  Master----一台交換機連接到的所有Controller中,只有一個Master,它對交換機擁有完全的操作控制權。
  Slave-----一台交換機所連接到的所有Controller中,可以有多個Slave,它們對交換機只有讀取交換機狀態和被動收取交換機消息的權限,不能對交換機進行配置,一旦Master宕掉,其中一台Slave就會被選舉為Master。每個Slave可以接收不同的消息類型,從而在多個Slave之間進行負載分擔。
  Equal----又的網絡中可能希望有多個Controller都能對交換機進行配置,以便進行負載分擔。這種情況下這些Controller可以被配置為Equal角色,一台交換機允許同時連接到多個Equal角色的Controller,這些Controller對交換機擁有和Master一樣的功能。
  這些角色初始的時候都是管理員配置的。當Master出故障后,Slave可以通過選舉的方式變為Master。交換機沒有決定權。OpenFlow標准並沒有定義如何進行選舉。


免責聲明!

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



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