軟件定義網絡(SDN)基礎概念學習筆記(上)

第一章

1. 克服解決傳統網絡

兩大根本原因
  • 傳統網絡、設備的只可配置,不可編程性
  • 網絡分佈式架構與管理帶來的制約
    • 管理平面
    • 控制平面
    • 數據平面
新方案兩種解決辦法
  • 彈性響應上層的網絡可編程
  • 集中統一的控制與管理層
SDN三層網絡架構
1. 應用層:用戶業務系統
2. 控制層:SDN控制器,往上與上層應用交互,往下下發流表、指導轉發行爲
3. 基礎設施層:僅保存數據層的基礎設備
4. 北向接口:提供應用系統(控制層)與SDN控制器(控制層)的各種API接口
5. 南向接口:提供控制層與基礎設施層的控制數據平面接口
SDN三大態勢
- 應用範圍擴大
- 市場規模擴大
- SDN技術融合擴大、加速

2. SDN標準化

四大組織
  • ONF

  • IETF

  • ITU-T

  • ETSI

第二章

1. 主流SDN架構

  • ONF基於OpenFlow的三層架構

  • IETF技術架構

  • NICIRA的Overlay架構

  • ETSI的NFV技術

2. ONF基於OpenFlow的三層架構

四大平面,兩大接口:
  • 應用平面、控制平面、數據平面、管理平面
  • 北向接口、南向接口
數據平面
  • 關鍵技術:SDN Datapath
    • 控制數據平面接口 CDPI
    • 代理轉發引擎 Forwarding Engineer
    • 表和處理功能 Process Function
  • 主要作用:對數據面進行抽象建模
控制平面
  • 組成部分:

    • 北向接口代理 NBI
    • SDN控制邏輯
    • 控制數據平面接口驅動 CDPI Driver
  • 主要任務:

    • 將SDN應用層請求轉換到Datapath
    • 爲SDN應用層提供底層網絡抽象模型
  • 關鍵技術:

    • 控制器(NOS)[NOX,POX,FloodLight,RYU,OpenDayLight,ONOS]
應用平面
  • ​ 關鍵技術:
    • SDN應用邏輯:改造傳統應用交付能力(負載均衡、訪問控制、應用加速)
    • 北向接口驅動 NBI
控制平面
  • 主要任務(靜態工作):
    • 網元初始化配置
    • 制定Datapath控制器
    • 定義控制器及控制範圍
南向接口(CDPI)
  • 功能:轉發行爲控制、設備性能查詢、統計報告、事件通知

  • 關鍵技術:

    • 轉發面開放協議(南向接口協議)

      允許控制器控制交換機的配置及相關轉發行爲。

  • 舉例:南向接口協議 Openflow

北向接口(NBI)
  • 功能:嚮應用層提供抽象的網絡視圖,使應用能直接控制網絡的行爲

  • ​ 關鍵技術:

    • SDN北向接口設計

      控制器將網絡能力封裝後開放接口,供上層業務調用。

  • 舉例:REST API (是北向接口的主流設計)

其他
  • 在現有網絡設備基礎上提供開放的API 屬於IETF提出的I2RS架構的特點

3. 核心思想

三個核心思想:
  • 解耦:將控制平面和數據平面分類
    • 控制平面負責上層控制決策,數據屏幕負責下層數據交換轉發。
    • 控制平面可進行軟件實現、靈活,可滿足多元化需求
    • 數據平面有硬件設備實現,可專注於轉發,簡單通用
  • 抽象
    • 轉發抽象:將各種如MAC表、ACL表、MPLS等抽象成統一的流表
    • 狀態抽象:通過NOS實現下發控制命令、收集設備鏈路狀態,爲上層應用提供全局網絡視圖
    • 配置抽象:網絡行爲表達通過編程語言實現
  • 可編程
    • 北向接口:REST API,JAVA API
    • 南向接口:Openflow,OF-Config,NETCONF,OVSDB
    • 東西向接口
    • 數據平面:DPDK(Intel網絡數據處理框架),P4(斯坦
    • 福)

4. MININET 實驗

mininet創建
  1. 圖形化界面創建:sudo python minideit.py

  2. 命令行創建:

    • sudo mn
    • py net.addhost(‘h3’)
    • nodes
  3. 編寫腳本:

    • gedit
  4. mininet基本命令:

    https://blog.csdn.net/ten_sory/article/details/79593554

第三章

1. SDN數據平面架構

傳統數據轉發特點
  • 協議相關,只能轉發特定幾種協議數據包
  • 功能模塊固定,僅支持有限的用戶配置
SDN數據平面架構
  • 包處理流程中的所有模塊實現可編程性

2. SDN數據平面轉發模型

  • Openflow交換機轉發模型

Openflow交換機轉發模型

缺點:未實現協議無關;不支持對數據包解析邏輯進行編程

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

    特點:

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

2. Openflow

Openflow架構 三個組成部分
  • 流表:只是交換機如何進行流的處理
  • 安全通道:控制器與交換機之間的交互,通過安全通道與遠端控制器連接
  • Openflow協議:定義南向接口標準
主要版本和特性

主要版本和特性

單流表到多流表的變化

單流表到多流表的變化

3. 流表

流表:針對特定流的策略表項的集合,負責數據包的查找與轉發。
Openflow1.0流表組成
  • 包頭域:12個字段,4-7層的大部分標識

    • 4層

在這裏插入圖片描述

  • 計數器:統計數據流量相關信息

    • 流表:表項數、數據包查詢次數、數據包匹配次數
    • 數據流:數據包數、字節數、數據流持續時間
    • 設備端口:收到的數據包數、發送數據包數、接收字節數、發送字節數、錯誤發送的次數
    • 隊列:發送的數據包數、字節數、溢出錯誤次數
  • 動作表:應該執行的下一步操作

    • 每個流表項對應零到多個動作,如果沒有定義轉發動作,數據包丟棄
    • 多個動作可以具有不同優先級
    • 出現Openflow不支持的參數值,則返回錯誤信息
  • 動作:

    • 必備動作:
      • 轉發(ALL、CONNTROLLER、TABLE、IN_PORT、ANY、LOCAL)
      • 丟棄
    • 可選動作:
      • 轉發 (NOMAL、FLOOD)
      • 排隊
      • 修改域
  • 端口:

    • 物理端口、邏輯端口

    • 保留端口:指定通用的轉發動作

      ALL、CONNTROLLER、TABLE、IN_PORT、ANY、LOCAL、NOMAL、FLOOD

保留端口

數據包處理流程

數據包處理流程

流表項結構變化

流表項結構變化

組表:由多個組表項組成,提供更高級的數據包轉發特性,可實現負載均衡、容災備份、組播和聚合
計量表:由多個計量表項組成,實現簡單的QoS功能

4. SDN交換機

交換芯片
  • 通用CPU、專用集成電路芯片(ASIC)、現場可編程門陣列(FPGA)、網絡處理器(NP)
Openflow交換芯片-NDM
SDN交換機
  • SDN物理交換機

    • 基於ASIC的SDN品牌交換機

      CISCO Nexus 9500、NEC IP8800、ARISTA、JUNIPER等

    • 基於ASIC的SDN白盒交換機

      big switch、盛科 V30等

    • 基於NP的SDN交換機

    • 基於FPGA的SDN交換機

      斯坦福 NetFPGA

  • SDN虛擬交換機/軟件交換機

    • Open vSwitch (OVS)
    • Cisco Netxus 1000V
交換機選型參數
  • 背板帶寬(機架式交換機):背板帶寬越高,所能處理數據能力越強

    計算方法:端口數×相應端口速率×2(全雙工)

  • 端口密度、端口速率、支持模塊類型、帶寬類型

  • 時延、功耗、支持Openflow版本、機架單元、網管功能

3. Open vSwitch

Open vSwitch是一個產品級質量的多層虛擬交換機

重要概念:
  • Bridge代表一個以太網交換機
  • 交換機包含端口:Normal、Internal、Patch、Tunnel
  • 一個端口可以有一個或多個接口
  • 包通過流轉發的
特性*

特性

總體結構

總體結構

三個重要組件:

  • ovsdb-server:OVS數據庫服務進程
  • ovs-vswitchd:OVS核心組件,負責保存和管理控制器下的所有流表
  • Forwarding Path:OVS的內核模塊,緩存某些常用流表,並負責數據包轉發
OVS提供的命令

提供的命令

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