SDN原理 OpenFlow協議 -1


本文基於SDN原理視頻而成:SDN原理

##OpenFlow

OpenFlow 協議 和 傳統的路由選擇協議 有很多相似的地方,同時在某些地方也具有一定的顛覆性。

路由表,由IP地址和子網掩碼組成。MAC表,由MAC地址組成。 但是OpenFlow協議的流表,卻什么都有。

OpenFlow 相比傳統路由協議來說,更大更廣泛;是一種推倒重來的做法。

###功能

OpenFlow 1.0

OpenFlow 1.3 及 更新的版本 相比1.0,1.3的OpenFlow交換機支持 多流表,多控制器,主表,計量表等等。

主要功能:

  • 用於實現 Controller 和 Switch 的通信,定義了一系列的標准術語。
  • 定義了 Controller 如何來控制 Switch 以及 Switch 如何來反饋 Controller。
  • 定義了 Controller 和 Switch 通信過程中的 消息類型和格式。

###發展 版本

##流表 FlowTable --- OpenFlow的核心

如果拿傳統網絡中的技術來類比流表,那么流表就相當於 路由選路中的路由表,交換機中的MAC地址表;有了流表,交換機才能進行轉發工作。

傳統的路由表,MAC地址表 無法按需更改,不可編程化;現在的OpenFlow協議支持多張流表,一個交換機可能有幾張流表,相比傳統的交換機,多流表增加了交換機工作的復雜性:什么時候選擇什么樣的流表。

在SDN網絡中,經常會發送的一件事情是,有需要來對流表表項進行修改,或者是當一個數據報經過一個OpenFlow的交換機的時候,能夠對它的源/目的IP地址,源/目的MAC地址進行修改,導致它選擇不同的路徑。傳統的流表,無論是靜態路由表還是動態路由表均不支持;而SDN網絡交換機的流表 需要支持 可修改化,可編程化。

因此,介紹流表,從以下五個方面介紹:

  • 流表
  • 流表項
  • 流表匹配
  • 如何生成流表?

在學習過傳統網絡之后,學習以上的五個內容,就是一個不斷進行 對比 的過程。

###問題1:流 Flow

(1)流 一般由網絡管理員來進行定義,根據不同的流執行不同的策略。

(2)流:同一時間,經過同一個網絡,具有相同屬性的數據報集合。

  • 這里的相同屬性,根據不同的情況,可以不同;比如我們可以定義 目的IP地址相同 的數據報集合為一個流,也可以定義 同一個協議為一個流,或者 同一個源IP地址為一個流。

(3)在SDN網絡中,所有的數據都以 流 為基本單位進行處理

目前,一般情況下,我們都以源/目的IP地址,或者是端口號 定義流的相同屬性。

###問題2:流表 Flow Table

注意:流經過一個交換機之后,最后結果和傳統的路由器相類似:轉發,或者丟棄。 但是,如果一個交換機同時擁有多張流表,那么比起傳統路由器 查完唯一的一張路由表 以外,還有第三種選擇:繼續查下一張表。

當一個流來到一個運行OpenFlow協議的交換機的時候,開始查表;基於序號的查找:根據表項的序號來進行查找。每一張Table中都有詳細的表項。

(1)流表就是交換機的一張轉發表;類比於 傳統網絡路由器的路由表,交換機的MAC地址表/CAM表。

(2)流表由一系列連續的表項(路由條目)組成。

(3)除了OpenFlow1.0版本之外,后續版本中,OpenFlow支持多流表

####問題:目前的OpenFlow支持200+流表,那么比起 傳統網絡路由器/交換機只需要找一張表 來看 速度肯定會更慢啊?

快和慢是一個相對的概念,傳統網絡的路由表是僅需要查找一張表,但是它們采用的模式是 ”接力棒模式“ 或者說 分布式交互,路由更新的時間十分緩慢,路由匯聚的時間長;而SDN網絡所有的路徑選擇,生成流表 以及相關的控制措施,都是由控制層來實現的,轉發層只負責轉發,並不需要生成流表,流表由控制器提供。交換機和交換機之間並不需要多的溝通。 因此,看上去SDN網絡交換機的流表更多,需要查找的表項更多,但 整體的時間 是小於 傳統交互式網絡的路由時間 的。

2016/9/5


免責聲明!

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



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