最近二狗子在網上衝浪的時候,不小心將 CDN 搜尋成了 SDN,結果跳出來了一大堆相關的知識點。
好學的二狗子當然不會隨隨便便糊弄過去,於是認認真真學習了好久,終於瞭解了 SDN 是什麼。
原來,SDN 的全稱是 Software Defined Networking,是一類將網路控制平面與資料平面分開,以實現網路資源的自動化設定和基於策略的管理技術。網際網路發展以來,企業網路結構的組成和管理對於許多公司來說都是一項巨大的挑戰。硬體設施曾經在網路世界中佔據統治地位,但是基於物理硬體的傳統網路很少能滿足現代公司的要求,直到出現了 SDN。
SDN 即軟體定義網路,它描述了一種網路架構,可以使用軟體對單個硬體元件進行集中、智慧的管理和控制,使用 OpenFlow 等開放協定允許存取網路裝置,如交換機、路由器或防火牆等。其核心技術 OpenFlow 通過將網路裝置的控制面與資料面分離開來,從而實現了網路流量的靈活控制,使網路變得更加智慧,為核心網路及應用的創新提供了良好的平臺。簡而言之,SDN 概念代表了基礎設施及其設定的分離。
控制平面:控制平面決定資料包在端對端的路徑上應該如何路由,即路由。
資料平面:資料平面決定資料包在每個路由器上該如何從 Input Port 轉發到 Output Port 中,即轉發。
雖然控制面和資料面分離,但資料平面仍然是網路裝置中的一部分。對於 SDN 來說,它的任務是專門轉發封包,因此它需要很少的計算能力。此外,SDN 技術能夠有效降低裝置負載,協助網路運營商更好地控制基礎設施,降低整體運營成本,成為最具前途的網路技術之一。
傳統網路世界水平是標準開放的,每個網元可以和周邊網元進行互聯。而在計算機的世界裡,不僅水平是標準和開放的,同時垂直也是,從下到上有硬體、驅動、作業系統、程式設計平臺、應用軟體等等,程式設計者可以很容易地開發各種應用。從某個角度和計算機對比,在垂直方向上,網路是 「相對封閉」 和 「沒有框架」 的,在垂直方向創造應用、部署業務是相對困難的。但 SDN 將整個網路(不僅僅是網元)的垂直方向變得開放、標準化、可程式化,從而讓人們更容易、更有效地使用網路資源。
控制層上執行的 SDN 軟體需要控制平面和資料平面之間的特定通訊介面,以便將適當的封包流量指令傳送到嵌入式網路元件。對此最著名的解決方案就是上面提到過的 OpenFlow。OpenFlow 由開放網路基金會 (ONF)管理,是軟體定義網路架構中控制層和資料層之間的第一個標準化介面。
在很多 SDN 網路中,它取代了網路裝置的單獨介面,也減少了對硬體廠商的依賴。
OpenFlow 是迄今為止最常見的,但絕不是唯一用於管理 SDN 的協定。一些替代方案例如 NETCONF (RFC 6241)、BGP(邊界閘道器協定)、XMPP(可延伸通訊和表示協定)、OVSDB(開放 vSwitch 資料庫管理協定)和 MPLS-TP(MPLS 傳輸協定)等。Cisco 和 Nicira 的一些專有協定也會用於某些架構。
一旦硬體和軟體之間的通訊建立起來,管理員可以通過控制層和各自的 SDN 軟體快速輕鬆地獲得網路的整體檢視,並通過基於軟體的中央控制來管理網路裝置。這讓資料流的管理效率比在各元件本身控制邏輯的網路中要高得多。路由和拓撲資訊不再以片段的形式分佈在所有路由器上,而是匯聚在一箇中心位置,大大增加了虛擬化和資源的可延伸性。
一般來說,SDN 網路體系結構主要包括 SDN 應用和服務(應用平面)、北向介面、SDN 控制器(控制平面)、南向介面和網路裝置(資料平面)五個部分。
資料平面由物理和虛擬的各種網路裝置組成。資料平面的主要職責是轉發。在以前的傳統網路中,控制平面和資料平面都在同一個裝置中。但是對於 SDN,網路裝置只有資料平面。所以,這些網路裝置的主要作用只是轉發資料。這也提供了一種非常有效的轉發機制。
SDN 控制器是 SDN 架構的中心,也是 SDN 架構元件中最重要的元件之一。換句話說,SDN 控制器是系統的大腦。所有資料平面裝置的控制都是通過 SDN 控制器完成的。它還控制應用層的應用程式,通過介面與 API 通訊進而控制這些上層和下層。
應用層包含組織使用的典型網路應用或功能。這些應用程式通過呼叫 SDN 控制器的北向介面,實現對網路資料平面裝置的設定、管理和控制。
這三層使用各自的北向和南向 API 進行通訊。應用程式通過其北向介面與控制器通訊,控制器和網路裝置使用南向介面(例如 OpenFlow)進行通訊。
在數位網路變得越來越龐大和複雜的同時,虛擬化程度以及對最大靈活性和可延伸性的需求也在不斷提高。SDN 相對於傳統網路的優勢可以總結如下:
無需設定單個裝置或作業系統
整個網路的維護和管理成本低
降低硬體和運營成本
實現資源的實時動態分配和監控
對硬體制造商的依賴性低
SDN 還促成了軟體定義廣域網 ( SD-WAN ) 技術的出現,SD-WAN 採用 SDN 技術的虛擬覆蓋方面。SD-WAN 將組織在其 WAN 中的連線抽象化,建立一個虛擬網路,該網路可以通過控制器尋找適合傳送流量的相關連線。
SDN 的主要採用者包括服務提供商、網路運營商和一些大型企業,如 Facebook 和谷歌等。不過 SDN 的背後仍然存在著一些挑戰。
安全:集中式 SDN 控制器會出現單點故障,如果被攻擊者作為目標,可能會對網路造成極大的影響。
定義不明確:SDN 面臨的另一個挑戰是業界對軟體定義網路確實沒有統一的定義。不同的供應商提供了不同的 SDN 方法,包括以硬體為中心的模型和虛擬化平臺到超融合網路設計和無控制器的方法。
由於其相對於經典網路的眾多優勢,SDN 對於很多場景都比較適用,包括:
開發運維。SDN 可以通過自動化應用程式更新和部署來促進 DevOps 。該策略可以包括在部署 DevOps 應用程式和平臺時自動化 IT 基礎架構元件。
校園網路。校園網路比較難以管理,尤其是在不斷需要統一 Wi-Fi 和乙太網的情況下。SDN 控制器可以提供集中管理和自動化、改進安全性和整個網路的應用級服務質量。
網路服務提供商。SDN 可幫助服務提供商簡化和自動化其網路的設定,以實現端到端網路和服務管理與控制。
資料中心安全。SDN 支援更有針對性的保護並簡化防火牆管理。通常,企業依靠傳統的外圍防火牆來保護資料中心。但是,公司可以通過新增虛擬防火牆來建立分散式防火牆系統進而保護虛擬機器器。SDN 集中控制和自動化還讓管理員能夠檢視、修改和控制網路活動,以降低違規風險。
近年來,許多網路提供商都採用了 SDN ,通過消除製造商特定的限制並大大簡化了網路管理,優化了硬體虛擬化的基本方法。雖然傳統網路在安全、可靠性、可維護性和效能上還有很大的優勢,但是隨著 SDN 相關裝置的發展,SDN 依靠自己的優勢,一定會不斷佔領傳統網路的領地。網路運營商應為 IT 行業的未來發展和挑戰做好充分的準備。
【實操日記】使用 PyQt5 設計下載遠端伺服器紀錄檔檔案程式