軟件定義網(wǎng)絡(luò)(Software-defined networking,SDN),一種新的網(wǎng)絡(luò)架構(gòu)。SDN 提出的控制與轉(zhuǎn)發(fā)平面分離、網(wǎng)絡(luò)狀態(tài)集中控制、支持軟件編程等理念并不是什么新鮮事,但是長久以來一直沒有非常突破性的進展。
目前 SDN 引起廣泛關(guān)注得益于網(wǎng)絡(luò)需求側(cè)翻天覆地的變化:云計算業(yè)務(wù)(服務(wù)器虛擬化技術(shù)為代表)成為主流,移動互聯(lián)網(wǎng)催生的大數(shù)據(jù)技術(shù)日益普及,包括網(wǎng)絡(luò)在內(nèi)的資源快速配置、彈性擴容、按需調(diào)用需求強烈。傳統(tǒng)模式的弊端顯現(xiàn):網(wǎng)絡(luò)設(shè)備硬件、操作系統(tǒng)和網(wǎng)絡(luò)應(yīng)用三部分緊耦合在一起,組成一個封閉系統(tǒng),這三部分相互依賴、每一部分的創(chuàng)新和演進都要求其余部分做出同樣的升級。
越來越多的網(wǎng)絡(luò)新協(xié)議和新算法使得網(wǎng)絡(luò)控制平面變得越來越復(fù)雜,但是現(xiàn)在的網(wǎng)絡(luò)用戶卻對網(wǎng)絡(luò)的易用性有更高的要求,希望網(wǎng)絡(luò)具有更多的可編程能力,從而自動化、智能化網(wǎng)絡(luò)管理。正如 SDN 的倡導(dǎo)者 Scott Shenker,U.C. Berkeley Professor 所言,網(wǎng)絡(luò)發(fā)展目前還處于“管理復(fù)雜性”階段,這樣的架構(gòu)嚴(yán)重阻礙了網(wǎng)絡(luò)創(chuàng)新進程的開展。
SDN Solutions
如何解決從“管理復(fù)雜性”階段轉(zhuǎn)變到“提取簡單性”階段呢?最先取得成功商用經(jīng)驗的是互聯(lián)網(wǎng)企業(yè)Google。
Google 的 SDN 實踐
Google 基于 SDN 技術(shù)改造其骨干網(wǎng) G-scale(Backbone Network,也稱WAN網(wǎng))。WAN網(wǎng)的主要任務(wù)是負(fù)責(zé)全球12個數(shù)據(jù)中心之間的互聯(lián),數(shù)據(jù)流量的內(nèi)容包括:1. 用戶數(shù)據(jù)備份,例如視頻、圖片、語音等;2. 跨數(shù)據(jù)中心存儲訪問,例如計算資源和存儲資源分布不同;3. 大規(guī)模的數(shù)據(jù)同步。WAN 網(wǎng)成本高昂(包括很多海底光纜),而且存在數(shù)據(jù)流量大但是鏈路帶寬利用率低的問題:為了實現(xiàn)負(fù)載均衡,同時避免大流量都被分發(fā)到同一個鏈路上導(dǎo)致丟包,Google不得不使用過量鏈路,提供比實際需要多得多的帶寬,實際鏈路帶寬利用率只有30%~40%,而且仍不可避免有的鏈路很空閑,有的鏈路產(chǎn)生擁塞,設(shè)備必須支持很大的包緩存,成本高。
為了增強網(wǎng)絡(luò)的可管理性,Google 首先在帶寬分配和路徑計算方面嘗試。解決思路是當(dāng)一個新的數(shù)據(jù)要開始傳輸時,應(yīng)用程序會評估所需要耗用的帶寬,為它選擇一條最優(yōu)路徑(如負(fù)載最輕但非最短路徑,雖不丟包但延時大),然后把這個應(yīng)用對應(yīng)的策略通過控制器(Controller)下發(fā)到定制的交換機中,跟選擇的路徑綁定在一起,從而整體上使鏈路帶寬利用率達(dá)到最優(yōu)。
SDN 架構(gòu)中最顯著的一個特點就是采用集中式控制器(Controller):
SDN 世界的兩大山頭
SDN 技術(shù)體系目前還處于激烈競爭階段,相關(guān)新產(chǎn)品和新技術(shù)層出不窮,如果要梳理大致可以分為兩個流派:
ONF(Open Networking Foundation,開放網(wǎng)絡(luò)基金會 )
董事會成員:德國電信(DT)、Facebook、 Google, Microsoft、Verizon、Yahoo!、日本 NTT 電信、高盛公司
特點:面向用戶
傳統(tǒng)巨頭大聯(lián)盟(通過Linux基金會(Linux Foundation)合作)
成員:思科(Cisco)、IBM、 微軟、Big Switch、博科、思杰、戴爾、愛立信、富士通、英特爾、瞻博網(wǎng)絡(luò)、微軟、NEC、惠普、紅帽和VMware
協(xié)作項目:OpenDaylight(20130408)
特點:大廠控制“嫌疑”
SDN 標(biāo)準(zhǔn)化組織
IETF(Internet Engineering Task Force,互聯(lián)網(wǎng)工程任務(wù)組)
相對 ONF 而言,更多是由網(wǎng)絡(luò)設(shè)備廠商主導(dǎo),已經(jīng)發(fā)布了多篇 RFC 文稿,內(nèi)容涉及需求、框架、協(xié)議、轉(zhuǎn)發(fā)但愿模型及 MIB 等。
ETSI NFV(Network Functions Virtualisation)
成員:歐洲電信標(biāo)準(zhǔn)協(xié)會(European Telecommunications Standards Institute,ETSI)包括 AT&T, 英國電信(BT), 德國電信等
特點:主要工作成果是 “網(wǎng)絡(luò)功能虛擬化白皮書”,對NFV的定義、應(yīng)用場景、基本功能,以及SDN等技術(shù)的關(guān)系等內(nèi)容進行描述。
ITU-T (國際電信聯(lián)盟通信標(biāo)準(zhǔn)化組織)
由 ITU-T 指定的國際標(biāo)準(zhǔn)通常被稱為建議(Recommendations),2012年開始 SDN 與電信網(wǎng)絡(luò)結(jié)合的標(biāo)準(zhǔn)研究。
SDN Architecture
SDN在應(yīng)用中大體上可以可以劃分為三層體系結(jié)構(gòu):
- 應(yīng)用層(Application Layer)
- 控制層(Control Layer)
- 基礎(chǔ)設(shè)施層(Infrastructure Layer)
不同層次之間通過接口通訊:
- 北向接口(Northbound interface)
- 南向接口(Sorthbound interface)
控制層( Control Layer )
控制層是 SDN 控制器管理網(wǎng)絡(luò)的基礎(chǔ)設(shè)施,可以根據(jù)需要靈活選擇多種控制器。
在這一層中,控制器中包含大量業(yè)務(wù)邏輯,以獲取和維護不同類型的網(wǎng)絡(luò)信息、狀態(tài)詳細(xì)信息、拓?fù)浼?xì)節(jié)、統(tǒng)計詳細(xì)信息等。
由于 SDN 控制器是用于管理網(wǎng)絡(luò)的,所以它必須具有用于現(xiàn)實世界網(wǎng)絡(luò)使用情況的控制邏輯,如交換、路由、二層VPN、三層VPN、防火墻安全規(guī)則、DNS、DHCP和集群,網(wǎng)絡(luò)供應(yīng)商和開源社區(qū)需要在自己的 SDN 控制器中實現(xiàn)自己的服務(wù)。這些服務(wù)會向上層(應(yīng)用層)公開自己的API(通常是基于 REST ,這使網(wǎng)絡(luò)管理員可以方便地使用應(yīng)用程序上的 SDN 控制器的配置、管理和監(jiān)控網(wǎng)絡(luò)。
目前市場上的 SDN 控制器解決方案大致可以分為兩類:大型網(wǎng)絡(luò)設(shè)備廠商提供商業(yè)方案,例如 Cisco Open SDN controller, Juniper Contrail, Brocade SDN controller, 和來自 NEC 公司的 PFC SDN controller ;社區(qū)組織提供的開源方案,例如 OpenDaylight, Floodlight, Beacon, Ryu 等等。
Commercial Solutions:
Cisco Open SDN Controller
Juniper Contrail
Brocade SDN controller
PFC SDN controller(From NEC)
Open Source Solutions:
Beacon:由斯坦福大學(xué)開發(fā),Java語言編寫
Floodlight:源于Beacon,Big Switch Networks開發(fā),Java語言編寫,Apache許可證
OpenDaylight:
Ryu:由 NTT 開發(fā),Python 編寫,能夠與 OpenStack 平臺整合,控制器API豐富
Mul: 由 Kulcloud 開發(fā),內(nèi)核采用 C 語言實現(xiàn)的多線程架構(gòu)
NodeFlow: 由 Cisco 開發(fā),基于 Node.js 的 OpenFlow 控制器,JavaScript 編寫
Trema: 由 NEC 開發(fā),Ruby/C 編寫
NOX: 由 Nicira 開發(fā),C++/Python編寫,業(yè)界第一款 OpenFlow 控制器
POX: 由 Nicira 開發(fā),是 NOX 的純 Python 實現(xiàn)版本,目的是提供跨平臺部署的便利性
基礎(chǔ)設(shè)施層( Infrastructure Layer )
基礎(chǔ)設(shè)施層,由各種網(wǎng)絡(luò)設(shè)備構(gòu)成。它可以是數(shù)據(jù)中心的一組網(wǎng)絡(luò)交換機和路由器??刂茖迂?fù)責(zé)管理底層物理網(wǎng)絡(luò),物理層的實現(xiàn)可以是支持 OpenFlow 的硬件交換機,隨著虛擬化技術(shù)的完善,SDN 交換機可以是軟件形態(tài),例如 Open vSwitch (OVS) 就是一款基于開源技術(shù)實現(xiàn)的、能夠與服務(wù)器虛擬化(Hypervisor)集成,具備交換機的功能,可以實現(xiàn)虛擬化組網(wǎng)。另外,OVS 支持傳統(tǒng)的標(biāo)準(zhǔn)管理接口,例如 NetFlow 、sFlow 等,監(jiān)測虛擬環(huán)境中的流量情況,詳見 《淺談基于數(shù)據(jù)分析的網(wǎng)絡(luò)態(tài)勢感知》 。
應(yīng)用層( Application Layer )
應(yīng)用層對于開發(fā)者來說是開放區(qū)域,鼓勵開發(fā)盡可能多的創(chuàng)新應(yīng)用。包括網(wǎng)絡(luò)的可視化:拓?fù)浣Y(jié)構(gòu)、網(wǎng)絡(luò)狀態(tài)、網(wǎng)絡(luò)統(tǒng)計等;網(wǎng)絡(luò)自動化相關(guān)應(yīng)用:網(wǎng)絡(luò)配置管理,網(wǎng)絡(luò)監(jiān)控,網(wǎng)絡(luò)故障排除,網(wǎng)絡(luò)安全策略等。SDN 應(yīng)用程序可以為企業(yè)和數(shù)據(jù)中心網(wǎng)絡(luò)提供各種端到端的解決方案。
例如,Brocade 應(yīng)用實例:
- Brocade Flow Optimizer
- Brocade Virtual router
- Brocade Network advisor
HPE 應(yīng)用實例:
- HPE Network Optimizer
- HPE Network protector
- HPE Network visualizer
- NEC UNC for HP SDN VAN Controller
- Aricent SDN Load balancer
- TechM smart flow steering
- TechM server load balancer
南向接口( Southbound interface )
控制層到基礎(chǔ)設(shè)施層(網(wǎng)絡(luò)交換機)通訊需要經(jīng)過南向接口,目前主要的協(xié)議是 OpenFlow , NetConf,OVSDB 。 OpenFlow 協(xié)議是事實上的國際行業(yè)標(biāo)準(zhǔn),NOX 、Onix 、Floodlight 等都是基于 OpenFlow 控制協(xié)議的開源控制器。作為一個開放的協(xié)議,OpenFlow 突破了傳統(tǒng)網(wǎng)絡(luò)設(shè)備廠商各自為政形成的設(shè)備能力接口壁壘。
北向接口( Northbound interface )
北向接口:應(yīng)用層 通過 API 的方式 與 SDN 控制器通訊。與南向接口不同,現(xiàn)在北向接口還缺少業(yè)界公認(rèn)的標(biāo)準(zhǔn),實現(xiàn)方案思路有的從用戶角度出發(fā)、有的從運營商角度出發(fā)、有的從產(chǎn)品能力角度出發(fā)。技術(shù)風(fēng)格上,部分傳統(tǒng)的網(wǎng)絡(luò)設(shè)備廠商傾向于在現(xiàn)有的設(shè)備上提供編程接口供業(yè)務(wù)App調(diào)用,許多上層應(yīng)用的開發(fā)者也比較傾向于采用 REST API 接口的形式。
審核編輯:郭婷
評論
查看更多