SDN 如何影響行業生態?淺談 SDN 5 年成長歷程
目前 SDN(Software-Defined Networking,軟件定義網絡)已成為整個 ICT 行業都在關注的話題,在本文中首先我想談談對 SDN 誕生的幾個概念,以及經過 5 年研發後對 SDN 的看法。
Control plane Abstraction
一直以來,網絡管理難都是我們無法不解決的問題。例如一台交換器所需要的系統管理員工作量比一個節點運算還要高一個級數。相比其它電腦科學技術,很難通過新功能為網絡技術帶來進步。要架設高效率的系統,就需要將「網絡管理難」這個問題分成小部分處理。
Data surface 的運行速度達到納秒級,而且完全是本地的。Control plane 負責決定如何配置轉發狀態(包括算法或手動方式)。這個過程的處理時間由幾十秒到幾天不等,並且依賴外部。因此,Control plane 從本質上來說是非本地的。
這種分層方式是互聯網取得成功的原因,並且讓各個 Layer 都能獨立創新。例如,在網絡中部署一項新的光學技術後,網絡中其它功能都將保持不變,無須重寫整個網絡的 stack。這就是為什麼互聯網可以在速度、規模和多樣性方面幾乎不變下地提高了 6 – 7 級。
作為 SDN 社區的成員,我們將 Data surface 進行抽象化的做法是對的。另一方面,由於 Control plane 只是基於各種協議,因此對 SDN 的需求不斷上升。
在我們的定義中,SDN 採用兩種在 Control plane 上的方式:(1)提供系統的網絡全視圖;(2)採用 OpenFlow 等轉發網絡操作系統(這些模型在網絡控制層的伺服器上運行)。這種定義帶來了重大變化,原因在於控制機制現在只不過是使用網絡操作系統的 API 算法。
如今,網絡管理和演進變得越來越簡單。Data surface 完全在交換器中運作,而 Control plane 在使用商用硬件和第三方軟件的網絡伺服器上運作。此外,可以獨立對 Control plane 進行測試,無須依賴底層硬件。這讓網絡呈現 IT 化。
虛擬化:SDN 的殺手級應用
我們不斷探索新的、更高級的 modularization 類型。我們曾認為,控制程序將計算出所有網絡交換器轉發的配置數據。此外,我們還曾經認為 Data surface 非常簡單,而且交換器在角色和功能上變得相同。
操作人員通過控制程式下發送對網絡需求和策略。然而,控制程式不應該負責實行這些需求。這是因為 modularization 的目的是讓每個應用程式的內容變得簡單。
我們正在推出一種新的、純邏輯的虛擬拓撲和新的 SDN 層。操作人員可以通過交換器來發表項目需求和策略。SDN Hypervisor 層將這些需求進行轉化後,發送給交換器(可當做虛擬拓撲的編譯器)。
我們已經簡化了控制程序的編寫方式。同時,我們使用編譯器編寫程序就更加困難了。
新的 SDN 層就是指網絡 Hypervisor 及其虛擬拓撲。首先,根據拓撲來編寫控制程序。然後網絡 Hypervisor 把虛擬拓撲的訊息融入網絡全視圖。最後,網絡操作系統把全視圖的配置發給交換器。
實行網絡 Hypervisor 後,虛擬化成為 SDN 的殺手級應用。使用多租戶技術的雲端中心(如Rackspace、Amazon)正在把大量客戶由網絡遷移到雲端中。為確保 Data Center 能夠提供能滿足客戶的策略、需求的虛擬拓撲,網絡 Hypervisor 需要編制數千條底層配置信息,以滿足各租戶的需求。SDN 出現之前,對數千個虛擬網絡進行動態更改是不可能的。通過簡化網絡管理,虛擬化為我們帶來了進步。
一般而言,虛擬拓撲僅僅是實行轉發的邏輯網絡。融入高級功能後,虛擬拓撲能夠要求對應用層面進行傳送(例如允許誰和誰通話),並且允許網絡 Hypervisor 實行這些策略。
如今,操作人員可以通過抽象化的方式下發送需求,網絡 Hypervisor 可完全自行決定如何滿足這些需求。這一點非常重要。
起初,我們認為交換器在角色和功能上是相似的。目前,網絡使用訊息來讓主機與網絡進行通訊,或者讓訊息與路由器或交換器進行通訊。收到訊息後,交換器首先會問:「主機需要我把這條訊息發到哪裡?」之後,各個交換器會根據這個問題的答案來查找轉發站,決定下次發送路徑。
SDN 為操作員會提供一個清晰的編寫程序的方式來控制網絡。然而,SDN 不會分離主機網絡和路由器通訊埠。發送訊息的方式仍於路由器或交換器之間。
將 MPLS 融入 SDN
多協定標籤交換(MPLS)在區分 DMZ 和核心方面起作用。訊息到達第一個路由器時,Border Route r會問:「主機在做什麼?」,然後在訊息中加入標籤,這個標籤只有在本地網絡中有意義。網絡核心無須了解,只是說:「從現在起,MPLS 標籤足以讓我了解如何轉發」。
早在 5 年前,我們就應該把 MPLS 融入 SDN,讓 Border Router 來讀取並將 MPLS 標籤嵌入訊息,讓核心路由器來讀取訊息。
融入 MPLS 後,整個網絡被分解成各個小塊。在 modularization 的網絡中,每項任務只執行一次:DMZ 完全負責主機通訊埠;網絡核心通過標籤來管理訊息路由器通訊埠;SDN 管理操作員通訊。
我們提出分離 DMZ 和網絡核心的理由是讓網絡核心專注於由訊息發送,而連接控制和隔離功能則由 DMZ 來完成。顯然,網絡核心必須由訊息發送,包括 multicast 和服務質量(QoS),而其他工作由 DMZ 來完成。
經過簡化後,網絡核心只負責一項任務,即在 DMZ 之間發送訊息。這樣一來,網絡核心的工作性能得以大幅提升。
試想一下,一但 DMZ 和網絡核心都分離了,為什麼不讓主機靠近 DMZ 呢?要實行這點,就要在主機上安裝可信任的硬件和軟件(如網絡通訊埠)以及大量分散式系統和安全措施。不過,我們可以想像把網絡部署在只看見由主機生成的標籤的位置。
過去,網絡完全由硬件交換器組成。如今,軟件交換器成為了常見的網絡組成部分。在部署包括 DMZ 和核心部分的網絡時,所有 Border Switch 都應該是交換器。這是我們的觀點。
Data Center 已經在使用虛擬交換器和 Hypervisor。Verizon、AT&T 等大型互聯網服務供應商的所有 bandwidth 都經過 DMZ。為了轉移這些流量,他們要花多少錢才能買到足夠的網絡核心設備呢?答案是他們需要花 15 萬美元,還不及一台中型路由器的價格。至於其他企業的網絡,我認為在 DMZ 利用軟件轉發並不是行不通的。
當然硬件轉發和軟件轉發在速度上存在着兩個級別,我認為可以用軟件來滿足 DMZ 進行轉發的需求,提高 DMZ 軟件的靈活性讓大眾更受益;無需在網絡核心實行軟件交換,因為核心只負責進行流量轉發,而硬件就能實行轉發。
DMZ 的軟件令網絡更有可能演進和多樣化。整個網絡中,只有 DMZ 的軟件需要了解該範圍的協議,其他網絡部分無須了解協議。只需更改 SDN 控制程序,就能更新網絡(如 IPv4 到 IPv6)。一切就這麼簡單。
可以在一個範圍之中並行運行多個架構。「在一個主機中能夠支持運行多個架構」這種想法看似很先進,但需要的改變都非常簡單,都在我們的技術範圍內。關鍵在於要說服人們,讓他們覺得實行這個想法是值得的。
DMZ 軟件的功能
最後我還要提一點。一直以來我們都認為網絡 Data surface 是平的,很簡單。但現在我們應該改變這種看法。
互聯網 Data surface 只是實行「盡力而為」的數據轉發。而實際上,很多 Middleware 或網絡設備都能擴大數據,讓它們實行各種功能,如防火牆、LAN 優化、VPN、Workload 和入侵檢測。Data surface 一點也不簡單。大中小型和超大型網絡中,Middleware 的數量遠遠比得上路由器和交換器的數量。
有4個重要的事實值得我們注意:第一,大多數訊息是由多個 Middleware 來處理的,這些 Middleware 檢查各個訊息並作出決定,例如「這個訊息的內容與我的關係」、「需要檢查訊息,明確是否有人在攻擊我」,或者「需要實行防火牆以控制連結」;第二,Middleware 通常部署在 DMZ;第三,Middleware 通常使用 x86 處理器,但並非所有情況都如此;第四,Middleware 的處理流程比單純的訊息轉發流程要複雜得多。
接受這 4 個事實後,還需要面對一個絕對無法回避的結論:SDN 應該加強 Middleware 功能。DMZ 的軟件代表了從硬件到軟件的徹底轉變。SDN 控制下的 DMZ 軟件帶來了有趣的轉變。
SDN 的本質就是在這個轉變中。
SDN 對 Control plane 實行更細緻的改變,讓交換器、網絡操作系統和控制程序各司其職。虛擬化讓控制程序和物理網絡得以實現。作為虛擬拓撲,SDN 平台能完全控制,例如把功能放在 DMZ,讓網絡核心進行流量轉發。
Software Switch 並非是容易事,需要採取新的技術來制定軟件架構。新產品將會很快出現,如目前尚不存在的高密度通訊埠 Software Switch。新的市場參與者將填補市場的空白,Software Switch 正在進行中。如果擔心時間問題,你可以算算目前的 Middleware 導致的 delay。總之,要利用 Software Switch 這一個趨勢,就像虛擬 Data Center 範圍一樣。這場轉變正在改變網絡行業的性質,促進創新,強化競爭並改善客戶體驗。