四、SDN數據平面

1 SDN數據平面

1.1 傳統網絡設備

在這裏插入圖片描述

1.2 數據平面的任務

數據平面主要執行網絡控制邏輯:

  • 解析數據包頭
  • 轉發數據包到某些端口
  • 數據平面對數據包的處理,主要通過查詢由控制平面所生成的轉發信息表來完成

1.3 傳統網絡數據平面數據包的處理流程

在這裏插入圖片描述

1.4 傳統網絡數據平面的特點

  • 數據轉發處理都是協議相關的
  • 只支持有限的用戶配置,不支持編程自定義
  • 功能模塊固定,在網絡生產時就已經固定。例如:
    在這裏插入圖片描述

1.5 SDN數據平面

在這裏插入圖片描述

1.6 SDN數據平面的特點

  • 在該SDN數據平面中,包處理流程中的所有模塊,包括解析、轉發和調度,都是可編程、協議無關的
  • 傳統網絡設備中的二層或三層轉發表被抽象成流表
    在這裏插入圖片描述

1.7 OpenFlow轉發模型

1.7.1 SDN數據平面實現的一次嘗試

在這裏插入圖片描述

1.7.2 OpenFlow交換機轉發模型

在該轉發模型中,OpenFlow交換機將傳統網絡數據平面中的各種查找表抽象成一種通用的流表結構。同時將數據轉發處理,抽象成通用的匹配-動作過程(Match-Action過程)
在這裏插入圖片描述
每個流表可以實現:
用戶定義網絡處理功能——>可編程的數據轉發處理

1.7.3 OpenFlow交換機通用轉發模型——代表性和缺點

  • OpenFlow交換機轉發模型是現有通用可編程數據平面中的代表。
  • 目前主流SDN物理交換機和虛擬交換機(Open
    vSwitch)都實現了對OpenFlow的支持

缺點:

  1. 未實現協議無關轉發
  2. 不支持對數據包解析邏輯進行編程

1.8 可編程協議無關交換機架構(PISA架構)

在這裏插入圖片描述
與OpenFlow相比:

  • 設計了可編程解析器,實現了協議無關的數據包解析處理
  • 在入口和出口分別設計了“匹配——動作”邏輯

2 OpenFlow概述

2008年,Nick等在SIGCOMM會議上發表論文“OpenFlow: Enabling Innovation in Campus Networks”,首次提出OpenFlow交換機架構,將OpenFlow協議用於校園網絡的實驗創新

2.1 交換機模型架構

在這裏插入圖片描述
OpenFlow架構三個組成部分:

  • 流表(Flow Table),每個動作(Action)關聯一個流表項(Flow
    Entry),指示交換機如何進行流(Flow)的處理
  • 安全通道(Sccure Channel),OpenFlow交換機通過安全通道與遠
    端控制器連接,負責控制器與交換機之間的交互
  • OpenFlow協議(Protocol),定義了一種南向接口標準,爲控制
    器與交換機之間的通信提供了一種開放標準的方式。

2.2 OpenFlow主要版本及特性

在這裏插入圖片描述
ONF將1.0和1.3版本作爲長期支持的穩定版本,此後一段時間內
後續版本的發展要維持版本的兼容性

2.3 單流表到多級流表的架構

在這裏插入圖片描述
(a)單流表—OpenFlow 1.0:隨着越來越多樣化的網絡需求,流表變得十分臃腫。單流表對硬件的需求越來越高
(b)多級流表+組表—OpenFlow 1.1-1.4:多張流表串聯起來形成流水線,數據包的匹配在流水線的處理過程中完成
(c)出入向匹配—OpenFlow1.5:該版本中增加了入向匹配和出向匹配兩個階段

3 OpenFlow流表

3.1 流表的概念

3.1.1 流的概念

  • 同一時間,經過同一網絡中具有某種共同特徵(屬性)的數據,抽象爲一個流。比如,可以將訪問同一目的地址的數據視爲一個流。
  • 流一般是由網絡管理員定義的,可以根據不同的流執行不同的策略,
  • 在OpenFlow中,數據都是作爲流進行處理的。

3.1.2 流表項的組成(包頭域、計數器、動作表)

在這裏插入圖片描述

3.1.3 流表及其組成

流表:針對特定流的策略表項的集合,負責數據包的查找與轉發。
一張流表包含了一系列的流表項(flow entries)
在這裏插入圖片描述
包頭域
在這裏插入圖片描述
計數器
在這裏插入圖片描述
動作表
用於指示交換機在收到匹配的數據包後應該如何對其進行處理

  • 每個流表項可以對應有零至多個動作,如果沒有定義轉發動作,那麼數據包將被默認丟棄;
  • 同一流表項中的多個動作的執行可以具有不同優先級,但是在數據包的發送上並不保證其順序
  • 如果流表項中出現有OpenFlow交換機不支持的參數值,交換機將向控制
    器返回相應的出錯信息
  • 必備動作(Required Actions) 、可選動作(Optional Actions)
    必備動作:需要所有OpenFlow交換機默認支持
    可選動作:需要交換機告知控制器它所能支持的動作種類

OpenFlow端口類型
動作轉發,與交換機的端口直接相關。OpenFlow交換機的端口是交換機傳遞數據包的網絡接口。交換機通過接口和其他交換機建立邏輯連接。

  • 物理端口
  • 邏輯端口: 是對物理端口的虛擬化,提高可複用性,邏輯端口的數據包要有tunnel_id
  • 保留端口 :指定通用的轉發動作(包括:ALL、CONTROLLER、TABLE、IN_PORT、ANY、LOCAL、NORMAL、FLOOD)
     ALL:轉發給所有出端口,但不包括入端口
     CONTROLLER:封裝數據包並轉發給控制器
     TABLE:對packet_out數據包執行流表操作
     LOCAL:轉發給本地的網絡棧;
     IN_PORT:從入端口發出
     NORMAL:利用交換機的傳統轉發機制處理數據包
     FLOOD:按照最小生成樹從設備出端口洪泛發出

流表動作列表
在這裏插入圖片描述

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