OpenFlow簡單介紹

1.OpenFlow交換機的基本構成

未命名文件.png

1.1 流表

OpenFlow流表由流表項構成,流表項的結構隨着OpenFlow版本的不斷演進不斷變化,不同協議所包含的流表項結構不同,具體各版本如下表所示:

版本 包含內容
1.0 頭字段(Header Filed)、計數器(Counters)、行動(Actions)
1.1 匹配字段(Match Filed)、計數器)(Counters)、指令(Instruction)
1.2 同OpenFlow1.1
1.3 匹配字段(Match Filed)、優先級(Priority)、計數器(Counters)、指令(Instruction)、超時(Timeouts)、Cookies
1.4 同OpenFlow1.3
1.5 同OpenFlow1.5

1.2 組表

OpenFlow交換機只含有一個組表,組表中包含許多組表項,每條組表項的結構如下:

組ID(Group identier) 組類型(Group Type) 計數器(Counters) 動作桶(Action Buckets)

1.3 Meter表

Meter表項用於關聯流表項,對匹配流表項的報文實施QOS策略

Meter identifier Meter Bands Counters

其中Meter帶又有如下組成:

Bands Type Rate Counters| Type Specific arguments

1.4 匹配字段

OpenFlow流表項的匹配域支持豐富的匹配字段,OpenFlow1.0支持匹配的數據包頭的12個字段,到OpenFlow1.3,已經擴展到39個字段,並規定了OpenFlow交換機必須實現的13個字段(之後補充

OpenFlow1.0的12個字段如下:

Ingress Port Ether Source Ether Des Ether Type VLAN ID VLAN Priority IP Source IP Des IP Protocol IP TOS TCP/UDP Source Port TCP/UDP Des Port

1.5 指令集

當報文匹配上流表項時,執行表項包含的指令集,指令集類型如下所示:

指令 說明 可選/必選
Write-Action 添加指定動作到動作集 必選
GoTo-Table 轉到另一個流表處理 必選
Meter 指示報文關聯指定的Meter流表項 可選
Apply-Actions 應用動作列表中的動作 可選
Clear-Actions 清空動作集 可選
Write-Metadata 寫入元數據 可選

1.6 動作集

當流表項的指令集中不包含GoTo-Table時,立即執行相關聯的動作集,動作類型如下表所示:

動作類型 說明 可選/必選
Output 將報文轉發到特性的OpenFlow端口 必選
Drop 滿足條件時丟棄 必選
Group 將報文轉交組表處理,動作由組表類型定義 必選
Set-Queue 將報文指定隊列ID,用於實施QOS 可選
Push-Tag/Pop-Tag 適用於對VLAN頭,MPLS頭,PBB頭進行操作 可選
Set-Field 識別匹配字段類型並修改字段的值 可選
Change-TTL 修改IPV4,IPV6,MPLS中的TTL 可選

1.7 動作列表

動作列表存在於特定協議報文中,它與動作集的區別在於,動作列表中的動作按照列表順序依次執行,且可以包含多個同類型動作,這些動作的執行效果可以疊加。

1.8 OpenFlow端口

OpenFlow端口分爲三類:物理端口,邏輯端口,保留端口

  • 物理端口爲OpenFlow交換機的硬件接口
  • 邏輯端口通常由協議設置,如聚合口,隧道口
  • 保留端口由轉發動作定義,例如轉發到控制器

1.9 OpenFlow報文的處理流程

OpenFlow流水線將交換機內的一組流表串聯起來,定義了每個流表怎樣用於報文處理。

報文處理流程.png

1.10 安全信道

安全信道是控制器和其管理的每一臺OpenFlow交換機間的可靠連接,具體流程如圖所示:

安全通道流程.png

1.11 協議報文

1.同步消息

  • 可由交換機或控制器主動發起,並需要接受對方的應答。主要用於建立檢測對方是否在線等。

  • 包括Hello、Echo、Vendo三種子消息

2.異步消息

  • 由OpenFlow交換機發起,用來通知交換機上發生的某些異步事件。消息是單向的,不需要控制器應答。主要用於交換機向控制器通知收到報文、狀態變化、出現錯誤等事件信息

  • 包括Packet-In、Flow-removed、Port-status、Error四種子消息

3.控制器向交換機連接

  • 由控制器發起,對OpenFlow交換機進行狀態查詢和修改配置等操作;OpenFlow交換機接收並處理可能發送或不需要發送的應答消息

  • 包括Modify-state、Read-state、Packet-Out、Barrier request/reply等四類子消息

2.OpenFlow演進

2.1 OpenFlow協議的功能演進

OpenFlow各個協議版本之間的主要區別

版本 主要功能
OF 1.0 單表、IPV4
OF 1.1 多級流表、組表、MPLS、VLAN
OF 1.2 多控制器、IPV6
OF 1.3 Meter表、版本協商能力
OF 1.4 流表同步、協議消息完善
OF 1.5 數據包類型識別流程(以太網數據包、PPP數據包)egress Table
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章