天天看點

基于OpenFlow 的SDN工作流程基于OpenFlow 的SDN工作流程

基于OpenFlow 的SDN工作流程

1.SDN體系結構

主流SDN架構如圖1所示,為3+2結構,即3層+2接口,分别是應用層、控制層、資料層、北向接口、南向接口。

基于OpenFlow 的SDN工作流程基于OpenFlow 的SDN工作流程

2.基于OpenFlow的SDN工作流程

OpenFlow 協定作為 SDN 事實上的協定标準基本實作了 SDN 的原型設計思想,是 SDN 領域的重要執行個體,占有舉足輕重的地位,是以,對 OpenFlow 協定工作流程分析是對 SDN 安全模型脆弱性分析的重要基礎。

資料平面由交換機等基礎網絡元素組成 SDN 資料通路,控制平面主要由邏輯中心的控制器構成。當資料平面接收到資料分組後,對其分組頭進行解析,并比對交換機流表,如果沒有對應的表項,由控制器根據全網視圖、邏輯政策等生成流規則,完成轉發。具體工作場景及工作過程如圖 2 所示。

基于OpenFlow 的SDN工作流程基于OpenFlow 的SDN工作流程

發送者要與接收者通信時,基本通信流程主要包括以下步驟。

Step1  發送者連接配接到網絡并向SDN 交換機傳輸相應資料分組。

Step2  SDN 交換機接收資料分組并解析分組頭後,在自身流表中查詢該資料分組有無對應流規則。如果比對成功,則直接轉發至相應端口;如果比對失敗,則進行下一步驟。

Step3  SDN 交換機根據相應資料分組産生Packet-in 事件,以TCP 協定或TLS 協定(安全傳輸層協定)将Pakcet-in 資料分組發送至控制器。

Step4  SDN 控制器接收Packet-in 資料分組後,根據相關應用産生相應轉發政策,并下發至相應SDN 交換機。

Step5  SDN交換機将流規則加入流表,并将相應資料分組轉發至指定接口,進而完成資料轉發。

在以上通信過程中,尤其值得注意的是安全傳輸層協定(TLS),TLS 協定能夠為控制器和交換機在OpenFlow 下提供安全傳輸通道,在安全傳輸通道下,資料分組消息均采用加密認證技術,使控制器與交換機之間能夠進行安全通信。為了便于後續章節對SDN 安全的分析,下面以TLS 1.2協定标準為例概述其基本工作過程,如圖3 所示。

基于OpenFlow 的SDN工作流程基于OpenFlow 的SDN工作流程

Step1  SDN 交換機向控制器送出請求(switch hello)以提供協定版本(如TLS 1.2)、用于生成“對話秘鑰”的随機數、支援的加密方法和壓縮方法等。

Step2  控制器回應交換機請求,其中,controller hello 确定加密通信協定版本等;certificate 向交換機發送控制器證書;controller key exchange 要求交換機繼續提供預設資訊;certificate request 請求驗證用戶端證書合法性;controller hello done 表示消息結束。(通常控制器将以上資訊合并發送)

Step3  交換機收到controller hello 後會首先回應控制器(switch key exchange),其中,certificate為自身證書資訊;certificate verify 驗證控制器端證書;change cipherspec 表明交換機已協商好加密套件狀态。

Step4  控制器完成加密套件狀态。

Step5  控制器與交換機進行加密傳輸。通過以上步驟可以看出TLS 協定握手認證過程較為繁瑣,是以,OpenFlow 1.3 将TLS 設定為可選擇選項,從一定程度上增加了SDN 的風險性,後續章節會進行具體分析,在此不再贅述。

參考文獻:王濤, 陳鴻昶, 程國振. 軟體定義網絡及安全防禦技術研究[J]. 通信學報, 2017(11):137-164.

繼續閱讀