OpenFlow協議Open Flow交換機跟流表(FlowTable)

       Open Flow協議、Open Flow交換機跟流表(FlowTable)

 

傳統網絡:傳統網絡的缺陷或者催生SDN的背景請參考鏈接https://www.cnblogs.com/031602523liu/p/8887740.html

        網絡設備手工維護,依靠傳統網絡管理軟件等方式輔助人工進行維護,運維效率低下,容易出現由於個人能力的差異以及響應等原因, 影響運維的效率, 增加運維的成本;傳統網絡業務割接或者新業務上線週期偏長,往往大的業務割接切換,涉及非常複雜的操作,例如防火牆設備涉及多條策略的調整,出錯概率大;傳統網絡故障定位效率不夠,部分問題定位困難,往往因爲工程師個人經驗以及能力等原因,影響故障處理進度,最終導致嚴重後果,增加運維的負擔。

SDN網絡:

        SDN 網絡的主要特點是集羣化、採用虛擬的軟件定義網絡數據流,通過圖形化的方式簡易的呈現,方便業務的上線以及後期的維護擴容;SDN 自動化運維方式, 與雲平臺進行對接, 實現網絡服務的自動化。對流量路徑、網絡擁賽情況進行實時的自動化優化以及感知,精確感知網絡延時以及丟包情況。同時對更換的備件等進行配置自動化的下發,提升運維效率,避免人爲的操作引起的差錯從而增加運維的成本;SDN 運維過程中,可以通過可視化的圖形界面,清晰的梳理物理網絡結構以及邏輯網絡結構,一眼就能瞭解清楚業務流以及管理數據流向。可以通過 SDN 的雷達檢測網絡故障、 SND 仿真終端的方式模擬數據測試等方式,通過可視化的頁面簡單清晰的進行網絡的維護工作,實現可溯源、可審計等規範的運維;SDN 的架構變化帶來的網絡運維變化同樣非常大,基於 overlay 的網絡統一接入業務、管理、存儲流量、消除基礎網絡的二層環路。整個 overlay 的網絡結構,打破了傳統的網絡壁壘,可實現遠端數據中心大二層互聯互通。在運維過程中,只需通過圖形化的界面,統一調度、維護網絡中的業務數據,即可實現環路檢測、路徑探測、切換業務流等操作,運維即方便快捷。

       智能化、可視化、自動化,是後期 SDN 網絡運行維護的主要方式,降低傳統網絡維護中的成本以及提升網絡運維的效率。

Open Flow協議(數據鏈路層):首先,ODL控制器支持Open Flow協議。在支持SDN的物理網絡中(架構圖如下):

                                                      SDNæ¶æå¾

        控制層和轉發層之間的API叫做“南向接口”,“南向接口”是控制層與轉發層之間的通信通道,以OpenFlow協議爲標準,實現了控制器與交換機之間的信息交互。

        OpenFlow交換機是整個OpenFlow網絡的核心部件,主要管理數據層的轉發。OpenFlowSwitch擁有一個FlowTable(流表),它只按照流表進行轉發,FlowTable的生成、維護和下發由外置的Controller來實現。這裏的FlowTable並非是指IP五元組(IP源地址、IP目的地址、協議號、源端口、目的端口),OpenFlow1.0規範定義了包括輸入端口、MAC源地址、MAC目的地址、以太網類型、VLANID、IP源地址、IP目的地址、IP端口、TCP源端口、TCP目的端口在內的10個關鍵字(十元組)。FlowTable中的每個關鍵字都可以通配,網絡的運營商可以決定使用何種粒度的流,比如運營商只需要根據目的IP進行路由,那麼FlowTable中就可以只有IP目的地址字段是有效的,其它全爲通配。傳統網絡中數據包的流向是人爲指定的,雖然交換機、路由器擁有控制權,卻沒有數據流的概念,只進行數據包級別的交換;而在OpenFlow網絡中,統一的Controller取代路由,決定了所有數據包在網絡中傳輸路徑。

         OpenFlow採用控制和轉發分離的架構,意味着MAC地址的學習由Controller來實現,VLAN和基本的路由配置也由Controller下發給OpenFlowSwitch。對於三層網絡設備,各類路由器運行在Controller之上,Controller根據需要下發給相應的路由器。當一個Controller同時控制多個OpenFlowSwitch時,它們看起來就像一個大的邏輯交換機。

FlowTable的下發可以是主動的,也可以是被動的。

主動模式:Controller將自己收集的FlowTable信息主動下發給OpenFlowSwitch,隨後OpenFlowSwitch可以直接根據FlowTable進行轉發。

被動模式:OpenFlowSwitch收到數據包後,首先在本地的FlowTable上查找轉發目標端口,如果沒有匹配,則把數據包轉發給Controller,由控制層決定轉發端口,並下發相應的FlowTable。被動模式的好處是網絡設備無需維護全部的FlowTable,只有當實際的流量產生時才向Controller獲取FlowTable記錄並存儲,當記錄老化時可以刪除相應的FlowTable,故可以大大節省存儲器空間。

Open Flow交換機:

       OpenFlow交換機由 安全通道、流表、OpenFlow協議 三部分組成。 

        安全通道
安全通道是連接OpenFlow交換機和控制器通信的接口。控制器通過這個接口來控制和管理OF交換機,同時OF交換機通過這個接口將事件傳給控制器,發送數據包,並接收來自控制器下發數據包。

控制器和交換機必須通過安全通道進行通信,而且進行通信的數據包必須按照OpenFlow協議規定的格式執行。

流表(FlowTable):
        流表是數據轉發的依據,與交換機的mac地址轉發表和IP地址路由表類似,流表中保存了網絡中各個層次的網絡配置信息,因此可以進行更加豐富的轉發規則。交換機收到來自主機的數據包後,會在本機查詢對應的動作,和對應的輸出端口。

流表有很多流表項,每一條流表項都是一個轉發規則。流表項的結構如下: 包頭域用於數據包匹配;計數器用於統計匹配數據包個數;動作用於指示匹配數據包如何處理;流表由控制器下發給交換機。

       下發模式有兩種:主動模式、被動模式。

FlowVisor
FlowVisor是建立在OpenFlow協議上的網絡虛擬化工具。它將物理網絡劃分爲不同的邏輯網絡,從而實現虛網劃分。它讓管理員通過定義流規則來管理網絡,而不是修改路由器和交換機的配置。

FlowVisor部署在標準OpenFlow控制器與OpenFlow交換機之間,並對兩者是透明的。它將物理網絡劃分爲多個虛網,使每個控制器控制一個虛網,並保證各虛網相互隔離。

FlowVisor的設計原則是:

FlowVisor對控制器和交換機是透明的,它們都感知不到FlowVisor的存在
各虛網之間相互隔離,即使是廣播包,各虛網的流量也相互隔離
劃分虛網的策略是靈活、模塊化、可擴展的
        OpenFlow消息在進行傳輸時,FlowVisor會根據配置策略對OpenFlow消息進行攔截、修改、轉發等操作。這樣,控制器就只能控制其被允許控制的流,但是控制器並不知道它所管理的網絡被FlowVisor進行過分片操作。 同樣,交換機發出的消息經過FlowVisor過濾後,也會被髮送到相應的控制器。

Controller
         OpenFlow將控制層與數據轉發層分離,其中OpenFlow交換機實現了數據轉發功能,而OpenFlow控制器則實現了控制層功能。Controller通過OpenFlow協議提供的標準數據接口,對OpenFlow交換機中的流表進行控制、管理,實現了對整個網絡的集中控制。 
         在Controller中,可以用python等程序對其功能進行定義,比如下發流表,對Packet_in包進行處理等。

參考文章:https://www.cnblogs.com/031602523liu/p/8887740.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章