SDN學習筆記

2022-07-19 19:24:16 字數 3019 閱讀 5671

sdn是一種框架和思想,核心訴求是通過軟體控制網路,實現業務的自動化部署,為方便軟體來控制網路,希望控制面和**面是分離的。

例如,傳統的交換機內部,由交換機負責具體的網路流量往****,在sdn中,有乙個控制器進行流量**的計算,然後將結果傳送給交換機,交換機只進行簡單的**,從分布式的控制**過程稱為集中式的控制,使得控制和**平面相分離。

網路開放可程式設計、數控分離(資料平面和控制平面相分離,為開放可程式設計提供架構基礎)、邏輯上集中控制、網路業務的自動化應用程式控制。

可以抽象為資料平面或者**平面,可以是交換機、虛擬交換機、路由器等。資料平面通用抽象模型將不同協議的匹配表整合起來,形成多欄位匹配表,解決了網路協議堆砌的問題

傳統網路中,現有的分層協議可以看作一種資料平面的抽象模型,但是控制平面依然只是網路功能和網路協議的堆砌,缺少合適的抽象模型

控制面跟資料**面之間的介面,傳統網路的南向介面存在於各個裝置商的私有**中,對外不可見,如存在於交換機內部

可以有多個,可以是主從關係,也可以是對等關係,乙個控制器控制多台裝置,乙個裝置也可以被多台控制器控制,向上提**用程式的程式設計介面,向下控制硬體裝置。

傳統網路裡,指交換機控制面跟網管軟體之間的介面,在sdn中,指控制器跟應用程式之間的介面

為使用者提供服務,包括負載均衡、安全、網路運**況監測等,並以應用軟體的形式表現出來,代替傳統的網管軟體來對網路進行控制和管理,可以跟控制器位於同一臺伺服器,也可以執行在別的伺服器上通過通訊協議來跟控制器通訊。

狹義的sdn南向協議具有對資料平面程式設計的能力,可以指導資料平面裝置的**操作等網路行為,關鍵在於是否具有確切的資料平面可程式設計能力(如openflow)。

廣義的sdn南向協議主要分為三種型別。第一種是僅具有對資料平面配置的南向協議(如of-config、ovsdb、net-conf);第二種是應用於廣義sdn,具有部分可程式設計能力的協議(如opflex);第三種是本來就存在,其應用範圍很廣,不限於應用在sdn控制平面和資料平面之間傳輸控制信令的協議(如pcep、xmpp)。

openflow交換機

openflow交換機可以分成流表和安全通道兩部分。

在openflow協議中,交換機是策略的執行者,而網路相關的策略需要控制器下發

openflow表

流表組表組表用於定義一組動作,且這組動作可以被多個流表項共同使用,從而實現組播、負載均衡、容災備份和聚合等功能。

meter表

meter表用於計量和限速,可以針對流制定對應的限速規則,從而實現豐富的qos功能,注意不是針對埠的。

控制器和交換機的通訊通道,支援以下三類報文:

pof協議和p4協議對此進行了改進

of-config協議是一種交換機配置協議,主要功能包括進行交換機連線的控制資訊,埠和佇列資源的配置及埠等資源的狀態修改等。

of-config協議可以看作是openflow協議的一種補充

ovsdb與of-config協議類似,都是交換機配置協議,兩者區別在於:ovsdb僅用於ovs(open vswitch)的配置,而of-config可以用於所有支援openflow的軟體或者硬體的交換機

是一種產生於sdn之前的網路配置協議,netconf是許多網路協議的配置協議,能統一管理和配置sdn裝置和傳統網路裝置,既保證了現有網路裝置的可用性,又支援sdn裝置的裝置

不是專門為sdn設計,可以統一管理傳統裝置和sdn裝置,可以用於做openflow的補充協議,或者用於sdn和傳統網路混合組網的管理

pcep用於為流量工程提供路徑計算服務,把路徑計算的控制邏輯從**裝置中抽離到遠端,實現了部分資料平面和控制平面的分離,將openflow和pcep協議結合使用實現openflow網路和傳統網路的統一管理和排程

pof協議的設計思想借助了計算機的設計思想,控制器相當於作業系統,而**元件(交換機)相當於cpu執行相關的指令

pof協議的缺點控制流程複雜,丟失了部分效能,需要定義一套通用指令集,實現複雜的指令排程

協議無關資料報處理程式語言,關注的是資料平面的可程式設計

思想:是一門資料平面程式語言,當出現一種新的協議,通過p4語言編寫程式,利用p4編譯器將程式編譯並寫入交換機中,使得交換機能夠擁有處理該協議的功能。

上圖為openflow switch通用硬體模型架構,其中網路資料處理流程為:資料報從埠進入$\rightarrow$通用模型中的資料報解析模組對資料報頭進行分析$\rightarrow$選擇對應的流表進行處理$\rightarrow$在流表內部,與每個流表項進行比較,若匹配成功,則按照對應的動作處理

流水線處理

採用多級流表,資料報在進入流水線之前,被分配乙個空的操作指令集,進入第0個流表開始處理,通用硬體模型將資料報協議內容與每個流表項進行匹配,將匹配成功的流表項中的操作指令寫入操作指令集中,或者傳輸給下乙個流表

流表單個流表的處理過程

組表組表項操作型別(group type)

meter表

網路處理控制指令

操作指令

完成對資料報的丟棄、複製、**和修改等操作

專用指令

如table-miss表項中的table-miss指令定義了在流表中匹配不成功時處理網路資料報的行為,匹配所有的匹配域,優先順序為零,使得table-miss表項能被所有的資料報匹配

也稱為開放交換機,網路交換機硬體和作業系統解耦合的結果

本質上,解決網路可程式設計的因素在於資料平面的可程式設計

參考資料

楊澤衛, 李呈. 重構網路: sdn 架構與實現[j]. 2017.

segmentfault對應博文:

SDN,該怎麼學習?

似乎經過乙個學期的實驗室的學習,自己一直都在學習著sdn相關知識,但是一直很少對某些技術做些總結和歸納。sdn目前對於大家應該不算陌生,這裡不做具體說明,前面的部落格已經做了詳細的講解。sdn系統的學習需要了解sdn的框架,了解傳統的tcp ip技術,了解框架下各個元件之間的聯絡。我以北向介面開始說...

SDN 簡述對SDN的認識

sdn 即軟體定義網路 software defined network sdn只是一種架構,一種思想,具體的實現多種多樣,openflow只是其中一種。sdn的三個本質屬性 a.認為只要符合控制跟 分離 b.有開放的程式設計介面 c.集中式的控制就可以認為是sdn。基於這樣一種理念,某個產品或者方...

SDN 簡述對SDN架構的認識

sdn的全稱是software defined networking,即軟體定義網路。sdn是在物理上網路控制平面和 平面 資料平面 相分離 控制平面控制多個裝置 網路底層抽象 邏輯上控制集中 可程式設計的新型網路架構。在sdn架構中,我們無須了解底層網路的情況,通過集中化控制平台 編排器就可對網路...