軟體定義網路(SDN)的定義、架構與實現方案

戴致禮 Travis Tai

  • 恆逸教育訓練中心-資深講師
  • 技術分類:網路管理與通訊應用

 

 

到底SDN是甚麼?以上的答案是節錄於開放網路基金會在其官方網頁裡,對SDN的定義所發表的正式說明,各位看倌乍看一定不知其所以然,且讓小弟我娓娓道來,為您說明白講清楚。

軟體定義網路(SDN, Software-Defined Networking)是目前網路領域的熱門話題,被業界普遍視為未來網路的演進方向。 SDN的確切定義是什麼?業界眾說紛紜,莫衷一是,不同的標準化組織以各自的角度發表了對應的參考架構,在目前這波SDN浪潮中,在2011年成立的開放網路基金會(ONF, Open Networking Foundation)無疑是潮流的領導者,如下圖所示,ONF所提出的SDN架構共分為三層,由上往下分別為最上層的應用服務層(Application Layer)包含各種不同的業務與應用、中間的控制層(Control Layer)主要是由SDN控制器(SDN Controller)來負責集中控管底層的 “SDN交換機” 所組成的基礎設施層(Infrastructure Layer)。 控制層好比是人的大腦,基礎設施層好比是人的四肢,在大腦的控制下做各種動作;基礎設施層的SDN交換機只負責處理資料封包的轉發動作,而其轉發路徑必須依據由SDN控制器統一下發的規則來決定,因此過去在傳統網路設備所個別進行的鏈路發現、路由計算等的運算,在邏輯上都可以集中在SDN控制器統一進行,分離控制平面與轉發平面,實現對網路設備的集中式控制。

SDN之所以會引起業界的廣泛關注?最關鍵的原因是以雲端運算(Cloud Computing)、巨量資料(Big Data)為代表的新興業務所爆發的應用需求推動了網路的這次變革,再加上實體伺服器的虛擬化技術更提供了爆發性的成長。 在目前資料中心網路的建置環境中,這些新興的業務應用將不再侷限在單台實體伺服器中執行,而可能是部署在多台伺服器內的虛擬機器(Virtual Machines)上,例如:用於Hadoop巨量資料處理的MapReduce演算法,在過程中是須要先分散到多台伺服器執行運算,並經過mapper和reducer多次資料的聚合才能組合而成,而每次的聚合都將導致伺服器(或虛擬機器)之間大量的資料交換,因此導致了水平方向資料流的大幅增加與變化; 然而以三層式網路架構(Core、Distribution、Access)為基礎的傳統資料中心,主要是將伺服器的應用服務以垂直方向(也就是今天所謂的“南北向”)的資料流提供給終端用戶的運作模式,再也無法滿足因巨量資料的處理所改變的伺服器之間水平方向(也就是今天所謂的“東西向”)的流量模式所帶來的巨大挑戰,更遑論可隨之而作動態的即時調整。


SDN實現方案

從現今業界實現SDN架構的作法來看,可分成以下兩種方案:

  • 第一種是以開放協定為基礎的方案:
    以開放協定為基礎的解決方案是以開放網路基金會ONF所提出的SDN架構為主,提倡SDN控制器在南向API介面上使用開放的OpenFlow標準通訊協定來控管底層的SDN交換機; OpenFlow最早是由史丹佛大學的Nick Mckeown教授等研究團隊在2008年所發表的論文 “OpenFlow:Enabling Innovation in Campus Networks” 中提出,並在2011年的12月由ONF接手OpenFlow技術後續的制定,其特色就是修改了傳統網路架構的控制模式,將網路的管理權限交由控制層的SDN控制器(Controller)軟體負責,採用集中控管的方式。 如同本文章前面的比喻 - 控制器軟體就像是人類的大腦,基礎設施層的SDN交換機就像是人類的四肢,而OpenFlow技術則用於在控制層與基礎設施層間建立傳輸通道,就像是人類的神經一樣,負責大腦與四肢的溝通。 繼OpenFlow version 1.0於2009年12月發佈正式的規格後,迄今已陸續更新至2016年9月的version 1.6。
  • 第二種是以重疊(Overlay)網路為基礎的方案:
    以重疊網路為基礎的解決方案並不是最近才被提出,例如:VLAN(虛擬區域網路)就是其中的典型代表,然而由於VLAN數量的不足(理論上最多只能有4096個VLAN,因為在802.1Q協定中只定義了12 個位元的VLAN ID欄位)大大限制了多租戶(Multi-Tenancy)雲端業務的規模; 在目前以重疊網路為基礎的SDN方案中,採用了VXLAN、NVGRE等的隧道(Tunneling)技術,它是以現行的IP網路為基礎,在其上部署重疊的邏輯網路(Overlay Logical Network),使得原本邏輯上屬於相同租戶的多台伺服器(或虛擬機器),雖然在實體位置上彼此分開,但是可以透過Layer 2 over Layer 3隧道的建立來進行網路通訊; 換句話是利用重疊在三層IP網路之上的虛擬網路傳遞二層資料封包,實現了可以跨越三層實體網路進行通訊的二層邏輯網路(也就是業界所謂“大二層”的網路虛擬化概念),並進而使得分開在不同位置的伺服器主機上實施虛擬機器的線上移轉(vMotion)與高可用性的容錯機制(Fault Tolerance)成為可能。

以VXLAN(Virtual Extensible LAN)的隧道技術來實施SDN,主要是由業界廠商所支持,例如:VMware推出的NSX架構(源自於VMware在2012年7月高價收購Nicira公司的NVP平台技術),與Cisco推出的ACI(Application Centric Infrastructure)架構。 在這裡將VXLAN header的封包格式表示如下:

另外以下圖來示範某租戶分布在不同實體位置的兩台主機(主機A與主機B),透過VXLAN隧道(VNID為10)的建立來進行網路通訊。 基於篇幅限制,無法做詳細的介紹,您可到思科官方網站查詢相關技術文件或是在下列的CLDACI課程中了解更多細節喔!