SDN (Software-defined networking) 是利用 Data link Layer 層中的 OpenFlow 協定1,將 Forwording 的硬體和控制行為分離,而得設置 Programmable network (程式化的網路行為), 比起用 ACL 和路由協定,能作更複雜的管理2。
資料來源2
SDN 將網路架構簡化為封包轉送硬體與網路決策控制器 (decision-making network controller) 二個單元,其中封包轉送硬體由
(1) 包含了條目 (entry) 以及對於活躍的流程 (active flows) 所必須採取的行動的流程表 (flow table);
(2) 以及能夠與控制器經由安全的通道溝通對於尚未在流程表上的新條目所必須採取行動的階層 (layer) 所構成。
1. 現存的 SDN 架構 ForCES 與 OpenFlow 為前最具影響力的主流 SDN 介面,二者皆遵守 SDN 的基本精神,也就是將資料傳輸與控制單元分離以及使得兩者經由安全通道交換訊息;但二者在架構、封包轉送模式與通訊協定介面上有顯著的不同。
2. ForCES 由 IETF ForCES(Forwarding and Control Element Separation) Working Group 所提出,將網路元件內部重新定義為控制單元以及封包轉送單元分離的架構,但網路元件依然被視為一個個體;如此一來不但網路元件巨觀上與傳統網路元件極為類似,控制單元的決策亦可由第三方軟體來控制。
ForCES 定義了一個稱為稱為 Forwarding Element(FE),實施 ForCES 通訊協定的邏輯個體 (logic entity),負責利用其下層的硬體處理封包;一個負責執行控制訊號函數的邏輯個體稱為 Control Element(CE),告訴 FE 如何處理封包;另外一個在 FE 上、被 CE 根據 ForCES 通訊協定所控制的函數區塊稱為 Logical Function Block(LFB),允許 CE 控制 FE 的組態。
3. OpenFlow
在 OpenFlow 的架構中,封包轉送裝置稱為 OpenFlow Switch,包含了一個或多個流程表,流程表由流程條目 (flow entry) 所組成,由它們決定屬於一個流程的封包應該如何處理與轉送。流程條目由
(1) 配對區域 (match fields):配對流入封包位於標頭區 (header) 的資訊。
(2) 計數器 (counters):蒐集特定流程的資料,例如接收封包數、封包大小、流程持續時間等。
(3) 採取的動作:封包符合配對的話應該採取處理封包的動作所組成。
當 OpenFlow Switch 接收到一個封包時,它會解開封包的標頭區並根據流程表進行配對,若配對未通過則進行至下一個流程表,直到通過配對並決定應該採取的動作為止;如果該封包沒有通過任何一個流程表的配對,所採取的動作將由表上無名流程條目 (table-miss flow entry) 決定,這個條目尚包含的動作可能是丟棄封包、將封包經由 OpenFlow 的頻道 (channel) 傳給控制元件等。
其它
SDN 是由 SUN 在1995年首次提出。
OpenFlow 是由 2008 年在史丹褔大學開使。
IBM 的控制器為 PNC (Programmable Network Controller)
Cisco 的 OF 控制器為 Cisco XNC
Cisco ONE (Cisco Open Network Environment) 提供開放 API 讓開發人員可使用自已熟悉的語言開發符合企業網路管理的應用3
Microsoft 的網路虛擬化協定 NVGRE (Network Virtualization using Generic Routing Encapsulation)
IBM 的網路虛擬化協定 DOVE (Distributed Overlay Virtual Ethernet)
VMware 的網路虛擬化協定VXLAN (Virtual eXtensible Local Area Network)
Nicira 被 VMware 收購,而其創辨人參與了 OF 的制定和發展,SDN 解決方案為 NVP (Network Virtualization Platform) ,NTT、AT&T、ebay 皆是其客戶3
資料來源:
- 1.SDN Wiki ↩
- 2.軟體定義網路架構簡介 ↩
- 3.3種SDN架構的産品策略 ↩