FloodLight使用感受

來源:互聯網
上載者:User

標籤:

一個使用java語言編寫的基於Openflow協議的SDN控制器。

基本架構同webserver一樣,有一個維護交換器串連資訊的底層模組,當有交換器同控制器串連時,floodlight會將此串連儲存到串連池中,並通過NIO的方式同交換器進行通訊。

控制器還包含其他交換器資料包儲存處理模組,比如網路拓撲模組(計算最短通訊路徑)、鏈路發現模組(使用LLDP協議發現網路的拓撲的變化)、裝置管理模組(負責完成MAC地址同IP地址之間的映射)、儲存模組(負載儲存每台交換器的儲存狀態,比如儲存的流表項等)、RESTAPI模組(負責通過RESTAPI的形式,完成流表項的管理)、webui模組(提供一個web介面,查詢控制器狀態)。

floodlight通過配置資訊決定載入哪些模組,模組同時會註冊其會理哪些訊息。

Floodlight總體上有兩個主要功能:

  1. 處理交換器串連並將OpenFlow訊息轉換為事件(events)以使其他模組能夠監聽處理。比如發現交換器、鏈路失效、連接埠失效、接收到資料包等訊息。
  2. 決策某些特定OpenFlow訊息(例如,PacketIn, FlowRemoved, PortStatus等),並將其按順序轉寄到配置的監聽模組。然後每個模組決定是否處理此訊息並傳遞到下一個監聽者或者停止處理訊息。

能夠處理的事件訊息,需要處理OpenFlow訊息的模組實現IOFMessageListener介面。

事件中有交換器的串連資訊,可通過對交換器進行操作,同時還可通過全域方法擷取其他交換器的資訊,並對其進行操作。

 

總體感覺,其與webserver的模式很像。

  1. 有維護用戶端串連的模組,java的servlet(控制器維護交換器的串連,netty)
  2. 有處理用戶端請求的模組,將request和response發送到controller中(控制器將交換器的變化抽象成事件,發送給相應模組處理,模組處理時可以對交換器進行操作)

不足:目前控制器的自訂模組網路編程模式依然需要編寫大量的代碼,是一種面向電腦語言的程式便攜模式,而不是面向網路的。導致實現自訂模組的編寫工作量巨大,開發週期長,並且不易調試並發現流表項決策的錯誤。

FloodLight使用感受

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.