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