一、軟件定義網絡技術概述
1.1 軟件定義網絡技術產生
1.1.1什麼是sdn
軟件定義網絡(sofware defined network)
1.1.2 爲什麼要sdn
- 傳統網絡及其設備的值可配置、不可編程
- 網絡的分佈式控制與管理架構使得傳統網絡難以管理
1.1.3 sdn特點
- 能夠彈性響應上層變化的網絡可編程
- 引入一個集中統一的控制與管理層
- 解耦網絡設備的管理平面、控制平面與數據平面
1.1.4 sdn架構
應用層:包含了網絡所要承載的多元業務與應用
北向接口:控制器與上傳交互
控制層:全局管控
南向接口:下發流表,指導轉發行爲
基礎設施層:簡單的網絡設備,只承擔轉發功能
1.1.5 sdn優點
1.2 軟件定義網絡的發展
1.2.1 發展歷史
1.2.2 sdn現狀
- 被大規模用於數據中心站點的服務器和設備部署運維,產生了軟件定義數據中心sdn-bc。比如google、facebook、bat。
- 技術融合、擴大
sdn和ipv6、sdn和ai、sdn和5g、sdn和openstack
1.3 軟件定義網絡的標準化
onf:開放網絡基金會
ietf:因特網工程任務組
itu-t:國際電信聯盟電信標準化部門
etsi:歐洲電信標準化協會
標準化的作用:開放架構下的技術,互操作性,和系統兼容性
二、軟件定義網絡的架構和思想
2.1 sdn的基本架構
2.1.1 onf定義的基於OpenFlow的三層架構
- 特點:①轉發與控制的分離②轉發面進行了標準化
- 架構:
- 數據平面功能:負責轉發和處理數據 ,包括控制平面接口代理、轉發引擎表和處理功能
- 控制平面功能:將sdn應用層請求轉換到sdndatepath,爲sdn應用提供底層網絡的抽象模型,對轉發面進行轉發調度和管理。關鍵技術是控制器,又稱爲網絡操作系統,包括:NOX、POX、FloodLight、RYU、OpenDayLight、ONOS
- 應用平面功能:應用交付(負載均衡、訪問控制、應用加速)
- 管理平面功能:網元初始化配置,指定控制器、定義控制器及應用的控制範圍
- 南向接口功能:轉發行爲控制,設備性能查詢,統計報告,事件通知等
- 北向接口功能:嚮應用層提供抽象的網絡視圖,使應用能直接控制網絡的行爲
2.1.2 IETF提出的技術架構
特點:①開放現有網絡設備的能力②標準開放的arp
優點:①充分利用了現有網絡設備和路由協議②快速實現
2.1.3 NICIRA提出的OVERlay架構
特點:①網絡邊緣軟件化②Overlay技術(從傳統網絡抽象出網絡)
優點:①與物理網絡解耦②部署靈活
2.1.4 ETSI的NFV技術架構
特點:①nfv與sdn互補
2.2 SDN定義網絡的核心思想
- 解耦:控制平面和數據平面分離,控制平面負責上層的控制結構,數據平面負責數據轉發
問題:①控制平面的服務能力成爲網絡性能的瓶頸②多控制器如何交互交互路由信息,保持分佈式結點狀態的一致性③控制平面的響應延遲,導致的數據平面可用性問題 - 抽象:抽象爲sdn模型①轉發抽象:將數據平面轉發爲通用的轉發模型②分佈狀態抽象:網絡狀態抽象爲全局網絡視圖③配置抽象:應用層對於網絡行爲的表達通過編程語言了、實現,基於簡化抽象模型,將抽象配置映射爲物理配置。
- 可編程:改命令行配置爲更高級的編程方式
主動網絡:開放網絡結點的編程接口,用戶數據上根據用戶需求執行相應的計算
4D架構:分爲數據平面。發現平面。擴展平面。決策平面。
三、openflow
3.1 SDN數據平面
任務:解析數據包頭,轉發數據包到某些端口,通過查詢由控制平面所生成的轉發信息表
3.2openflow協議和openflow交換機
3.2.1 openflow架構三個組成部分
- 流表:指示交換機如何進行流的處理,每個動作關聯一個流表項
- 安全通道:負責控制器與交換機之間的交互,通過安全通道與遠端控制器連接
- openflow協議:定義了一種南向接口標準,爲控制器與交換機之間的通信提供了一種開放標準的方式。
3.2.2 OpenFlow主要版本和特性
3.2.3 流表
- 流:某種共同特徵的數據,由網絡管理員定義,根據不同的流執行不同的策略,數據都是以“流”爲單位進行處理
- 流表:特定六的策略表項的集合,負責數據包的查找與轉發
- 流表項:在openflow1.0中包括包頭域、計數器,動作表。
- openflow1.0流表組成:
- 包頭域:鏈路層、網絡層、傳輸層大部分表示
- 計數器:統計數據流量相關信息,對每個流表、每個數據流、每個設備端口、每個轉發隊列進行維護,用於統計數據流量的相關信息。
①表項數、數據包查詢次數,數據包匹配次數等②數據包數、字節數、數據流持續時間等③接收到的數據包數,發送數據包數,接收字節數,發送字節數,錯誤發送次數④發送的數據包數、字節數,溢出錯誤次數 - 動作表:應該執行的下一步操作