一. 什么是SDN?
SDN字面意思是軟件定義網(wǎng)絡(luò),其試圖擺脫硬件對(duì)網(wǎng)絡(luò)架構(gòu)的限制,這樣便可以像升級(jí)、安裝軟件一樣對(duì)網(wǎng)絡(luò)進(jìn)行修改,便于更多的APP(應(yīng)用程序)能夠快速部署到網(wǎng)絡(luò)上。
如果把現(xiàn)有的網(wǎng)絡(luò)看成手機(jī),那SDN的目標(biāo)就是做出一個(gè)網(wǎng)絡(luò)界的Android系統(tǒng),可以在手機(jī)上安裝升級(jí),同時(shí)還能安裝更多更強(qiáng)大的手機(jī)APP。
過去30年里,IP網(wǎng)絡(luò)一直是全分布式的,戰(zhàn)功卓著,解決了各種客戶需求,今天SDN是為了未來更好更快的實(shí)現(xiàn)用戶需求。并不是有什么需求通過傳統(tǒng)方法不能做到,只是SDN做得更快、更好、更簡(jiǎn)單。
SDN的本質(zhì)是網(wǎng)絡(luò)軟件化,提升網(wǎng)絡(luò)可編程能力,是一次網(wǎng)絡(luò)架構(gòu)的重構(gòu),而不是一種新特性、新功能。SDN將比原來網(wǎng)絡(luò)架構(gòu)更好、更快、更簡(jiǎn)單的實(shí)現(xiàn)各種功能特性。
二.SDN解決什么問題?
IP網(wǎng)絡(luò)的生存能力很強(qiáng),得益于其分布式架構(gòu)。看看IP的歷史,當(dāng)年美國(guó)軍方希望在遭受核打擊后,整個(gè)網(wǎng)絡(luò)能夠自主恢復(fù),這樣就不能允許網(wǎng)絡(luò)集中控制,不能存在中心結(jié)點(diǎn),否則在這個(gè)中心節(jié)點(diǎn)丟一顆核彈,整個(gè)網(wǎng)絡(luò)就掛了。但正是這種全分布式架構(gòu)導(dǎo)致了許多問題: 看看現(xiàn)在的IP網(wǎng)絡(luò)管理多復(fù)雜,舉個(gè)運(yùn)營(yíng)商部署VPN的例子:要配置MPLS、BFD、IGP、BGP、VPNV4、要綁定接口…且需要在每個(gè)PE上配置;當(dāng)新增加一個(gè)PE時(shí),還需要回去修改每個(gè)涉及到的PE。 現(xiàn)在各廠家的網(wǎng)絡(luò)設(shè)備都太復(fù)雜了。如果您準(zhǔn)備成為某個(gè)廠商設(shè)備的百事通,你需要掌握的命令行超過10000條,而其數(shù)量還在增加。如果你準(zhǔn)備成為IP骨灰級(jí)專家,你需要閱讀網(wǎng)絡(luò)設(shè)備相關(guān)RFC 2500篇,如果一天閱讀一篇,你知道要看多久能看完?6年多!而這只是整個(gè)RFC的1/3,其數(shù)量還在增加。 此外,這些協(xié)議標(biāo)準(zhǔn)都是在解決各種各樣的控制面需求,而這些需求都是需要經(jīng)過需求提出、定義標(biāo)準(zhǔn)、互通測(cè)試、現(xiàn)網(wǎng)設(shè)備升級(jí)來完成部署,一般要個(gè)3~5年才能完成部署。這樣的速度,已經(jīng)Hold不住網(wǎng)絡(luò)上運(yùn)營(yíng)業(yè)務(wù)的OTT們的各種快速網(wǎng)絡(luò)調(diào)整需求,必須想辦法解決這個(gè)問題。 很幸運(yùn),現(xiàn)在已經(jīng)找到了解決以上問題的方法。沒錯(cuò),就是SDN !它是目前系統(tǒng)性的解決以上問題的最好方法,SDN的理想與現(xiàn)實(shí),有何差距?
三.傳統(tǒng)網(wǎng)絡(luò)概念和結(jié)構(gòu)體系
傳統(tǒng)網(wǎng)絡(luò)數(shù)據(jù)控制與轉(zhuǎn)發(fā)
傳統(tǒng)網(wǎng)絡(luò)是分布式控制的架構(gòu),每臺(tái)設(shè)備都包含獨(dú)立的控制平面,數(shù)據(jù)平面。
這里的分布式控制指在傳統(tǒng)IP網(wǎng)絡(luò)中,用于協(xié)議計(jì)算的控制平面和報(bào)文轉(zhuǎn)發(fā)的數(shù)據(jù)平面位于同一臺(tái)設(shè)備中。 路由計(jì)算和拓?fù)渥兓?,每臺(tái)設(shè)備都要重新進(jìn)行路由計(jì)算過程,并稱為分布式控制過程。 在傳統(tǒng)IP網(wǎng)絡(luò)中,每臺(tái)設(shè)備都是獨(dú)立收集網(wǎng)絡(luò)信息,獨(dú)立計(jì)算,并且都只關(guān)心自己的選路。 這種模型的弊端就是所有設(shè)備在計(jì)算路徑時(shí)缺乏統(tǒng)一性。 傳統(tǒng)網(wǎng)絡(luò)的管理平面、控制平面、數(shù)據(jù)平面:
管理平面:管理設(shè)備(SNMP)
控制平面:路由協(xié)議(IGP、BGP)
數(shù)據(jù)平面:轉(zhuǎn)發(fā)表(FIB)
OSS:Operation Support System,運(yùn)營(yíng)支撐系統(tǒng)。
NMS:Network Management Server,網(wǎng)絡(luò)管理服務(wù)器。 ? ?
傳統(tǒng)網(wǎng)絡(luò)架構(gòu)
傳統(tǒng)網(wǎng)絡(luò)分為管理平面、控制平面和數(shù)據(jù)平面。 ? 管理平面主要包括設(shè)備管理系統(tǒng)和業(yè)務(wù)管理系統(tǒng),設(shè)備管理系統(tǒng)負(fù)責(zé)網(wǎng)絡(luò)拓?fù)洹⒃O(shè)備接口、設(shè)備特性的管理,同時(shí)可以給設(shè)備下發(fā)配置腳本。業(yè)務(wù)管理系統(tǒng)用于對(duì)業(yè)務(wù)進(jìn)行管理,比如業(yè)務(wù)性能監(jiān)控、業(yè)務(wù)告警管理等。 控制平面負(fù)責(zé)網(wǎng)絡(luò)控制,主要功能為協(xié)議處理與計(jì)算。比如路由協(xié)議用于路由信息的計(jì)算、路由表的生成。
數(shù)據(jù)平面是指設(shè)備根據(jù)控制平面生成的指令完成用戶業(yè)務(wù)的轉(zhuǎn)發(fā)和處理。例如路由器根據(jù)路由協(xié)議生成的路由表對(duì)接收的數(shù)據(jù)包從相應(yīng)的出接口轉(zhuǎn)發(fā)出去。
傳統(tǒng)網(wǎng)絡(luò)局限性:
流量路徑的靈活調(diào)整能力不足。
網(wǎng)絡(luò)協(xié)議實(shí)現(xiàn)復(fù)雜,運(yùn)維難度較大。
網(wǎng)絡(luò)新業(yè)務(wù)升級(jí)速度較慢。
傳統(tǒng)網(wǎng)絡(luò)通常部署網(wǎng)管系統(tǒng)作為管理平面,而控制平面和數(shù)據(jù)平面分布在每個(gè)設(shè)備上運(yùn)行。 ? 流量路徑的調(diào)整需要通過在網(wǎng)元上配置流量策略來實(shí)現(xiàn),但對(duì)于大型網(wǎng)絡(luò)的流量進(jìn)行調(diào)整,不僅繁瑣而且還很容易出現(xiàn)故障;當(dāng)然也可以通過部署TE隧道來實(shí)現(xiàn)流量調(diào)整,但由于TE隧道的復(fù)雜性,對(duì)于維護(hù)人員的技能要求很高。 ? 傳統(tǒng)網(wǎng)絡(luò)協(xié)議較復(fù)雜,有IGP、BGP、MPLS、組播協(xié)議等,而且還在不斷增加。設(shè)備廠家除標(biāo)準(zhǔn)協(xié)議外都有一些私有協(xié)議擴(kuò)展,不僅設(shè)備操作命令繁多,而且不同廠家設(shè)備操作界面差異較大,運(yùn)維復(fù)雜。 ? 傳統(tǒng)網(wǎng)絡(luò)中由于設(shè)備的控制面是封閉式的,且不同廠家設(shè)備實(shí)現(xiàn)機(jī)制也可能有所不同,所以一種新功能的部署可能會(huì)造成周期較長(zhǎng);且如果需要對(duì)設(shè)備軟件進(jìn)行升級(jí),還需要在每臺(tái)設(shè)備上進(jìn)行操作,大大降低了工作效率。
四.SDN概述
SDN軟件定義網(wǎng)絡(luò)。
2006年,以斯坦福大學(xué)教授Nike Mckewn為首的團(tuán)隊(duì)提出了OpenFlow的概念,并基于OpenFlow技術(shù)實(shí)現(xiàn)網(wǎng)絡(luò)的可編程能力(OpenFlow只是實(shí)現(xiàn)SDN的一個(gè)協(xié)議),是網(wǎng)絡(luò)像軟件一樣靈活編程,SDN技術(shù)應(yīng)運(yùn)而生。 SDN的定義是其字面意思,控制與轉(zhuǎn)發(fā)分離,管理與控制分離只是滿足SDN的一種手段,OpenFlow只是滿足SDN的一種協(xié)議 ?
SDN的分類
SDN的分類區(qū)別在于其實(shí)現(xiàn)的是控制與轉(zhuǎn)發(fā)分離,還是管理與控制分離。
SDN分類: ?
控制與轉(zhuǎn)發(fā)分離 (超廣義)
管理與控制分離 (廣義)
主要特征: ? SDN控制器既不是網(wǎng)管,也不是規(guī)劃工具。網(wǎng)管沒有實(shí)現(xiàn)轉(zhuǎn)控分離:網(wǎng)管只負(fù)責(zé)管理網(wǎng)絡(luò)拓?fù)洹⒈O(jiān)控設(shè)備告警和性能、下發(fā)配置腳本等操作,但這些仍然需要設(shè)備的控制平面負(fù)責(zé)產(chǎn)生轉(zhuǎn)發(fā)表項(xiàng)。 ?
轉(zhuǎn)控分離:網(wǎng)元的控制平面在控制器上,負(fù)責(zé)協(xié)議計(jì)算,產(chǎn)生流表; 而轉(zhuǎn)發(fā)平面只在網(wǎng)絡(luò)設(shè)備上。
集中控制:設(shè)備網(wǎng)元通過控制器集中管理和下發(fā)流表,這樣就不需要對(duì)設(shè)備進(jìn)行逐一操作,只需要對(duì)控制器進(jìn)行配置即可。
開放接口:第三方應(yīng)用只需要通過控制器提供的開放接口,通過編程方式定義一個(gè)新的網(wǎng)絡(luò)功能,然后在控制器上運(yùn)行即可。
規(guī)劃工具的目的和控制器不同:規(guī)劃工具是為了下發(fā)一些規(guī)劃表項(xiàng),這些表項(xiàng)并非用于路由器轉(zhuǎn)發(fā),是一些為網(wǎng)元控制平面服務(wù)的參數(shù),比如IP地址,VLAN等。控制器下發(fā)的表項(xiàng)是流表,用于轉(zhuǎn)發(fā)器轉(zhuǎn)發(fā)數(shù)據(jù)包。
五.SDN網(wǎng)絡(luò)架構(gòu)
SDN是對(duì)傳統(tǒng)網(wǎng)絡(luò)架構(gòu)的一次重構(gòu),由原來分布式控制的網(wǎng)絡(luò)架構(gòu)重構(gòu)為集中控制的網(wǎng)絡(luò)架構(gòu)。
SDN網(wǎng)絡(luò)體系架構(gòu)的三層模型
應(yīng)用層:這一層主要是體現(xiàn)用戶意圖的各種上層應(yīng)用程序,此類應(yīng)用程序稱為協(xié)同層應(yīng)用程序,典型的應(yīng)用包括OSS(Operation support system 運(yùn)營(yíng)支撐系統(tǒng))、Openstack等。傳統(tǒng)的IP網(wǎng)絡(luò)同樣具有轉(zhuǎn)發(fā)平面、控制平面和管理平面,SDN網(wǎng)絡(luò)架構(gòu)也同樣包含這3個(gè)平面,只是傳統(tǒng)的IP網(wǎng)絡(luò)是分布式控制的,而SDN網(wǎng)絡(luò)架構(gòu)下是集中控制的。 控制層:控制層是系統(tǒng)的控制中心,負(fù)責(zé)網(wǎng)絡(luò)的內(nèi)部交換路徑和邊界業(yè)務(wù)路由的生成,并負(fù)責(zé)處理網(wǎng)絡(luò)狀態(tài)變化事件。 轉(zhuǎn)發(fā)層:轉(zhuǎn)發(fā)層主要由轉(zhuǎn)發(fā)器和連接器的線路構(gòu)成基礎(chǔ)轉(zhuǎn)發(fā)網(wǎng)絡(luò),這一層負(fù)責(zé)執(zhí)行用戶數(shù)據(jù)的轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)過程中所需要的轉(zhuǎn)發(fā)表項(xiàng)是由控制層生成的。 北向接口:應(yīng)用層和控制層通信的接口,應(yīng)用層通過控制開放的API,控制設(shè)備轉(zhuǎn)發(fā)功勇。 南向接口:控制層和數(shù)據(jù)層通信的接口,控制器通過OpenFlow或其他協(xié)議下發(fā)流表。
SDN網(wǎng)絡(luò)部署方式
1.?Underlay的網(wǎng)絡(luò) 所有的轉(zhuǎn)發(fā)行為都由控制器通過OpenFlow協(xié)議或定制的BGP協(xié)議將轉(zhuǎn)發(fā)表下發(fā)給轉(zhuǎn)發(fā)器,轉(zhuǎn)發(fā)器僅僅執(zhí)行動(dòng)作,沒有單獨(dú)控制面。 2. Overlay的網(wǎng)絡(luò)
這種網(wǎng)絡(luò)的轉(zhuǎn)發(fā)器一般都是傳動(dòng)設(shè)備,不支持OpenFlow,或者私有定制協(xié)議不能部署時(shí),就要用隧道技術(shù),基礎(chǔ)網(wǎng)絡(luò)還是傳統(tǒng)網(wǎng)絡(luò)形式,通過路由協(xié)議打同各個(gè)節(jié)點(diǎn),但是在服務(wù)器接入點(diǎn),才用隧道技術(shù)將數(shù)據(jù)報(bào)文進(jìn)行封裝或者解封裝。
對(duì)傳統(tǒng)網(wǎng)絡(luò)來說見到的就是普通數(shù)據(jù)報(bào)文,轉(zhuǎn)發(fā)即可。隧道技術(shù)實(shí)際上就是報(bào)文的馬甲,迷惑網(wǎng)絡(luò)設(shè)備,讓設(shè)備以為時(shí)自己人,但實(shí)際上報(bào)文的心是虛擬化的心。現(xiàn)一般采用Vxlan,GRE,NVGRE等隧道技術(shù),而這些新增的協(xié)議,也需要升級(jí)現(xiàn)有網(wǎng)絡(luò)設(shè)備才能支持(不支持上述協(xié)議的網(wǎng)絡(luò)設(shè)備)。穿馬甲索然能夠在不進(jìn)行大改造的情況下增加新的功能,但無疑會(huì)降低網(wǎng)絡(luò)性能。
六.SDN的價(jià)值
網(wǎng)絡(luò)業(yè)務(wù)快速創(chuàng)新
SDN的可編程性和開放性,使得我們可以快速開發(fā)新的網(wǎng)絡(luò)業(yè)務(wù)和加速業(yè)務(wù)創(chuàng)新。如果希望在網(wǎng)絡(luò)上部署新業(yè)務(wù),可以通過針對(duì)SDN軟件的修改實(shí)現(xiàn)網(wǎng)絡(luò)快速編程,業(yè)務(wù)快速上線。
SDN網(wǎng)絡(luò)關(guān)鍵的地方是在網(wǎng)絡(luò)架構(gòu)中增加了一個(gè)SDN控制器,把原來的分布式控制平面集中到一個(gè)SDN控制器上,由這個(gè)集中的控制器來實(shí)現(xiàn)網(wǎng)絡(luò)集中控制。SDN網(wǎng)絡(luò)架構(gòu)具備3個(gè)基本特征:轉(zhuǎn)控分離、集中控制、開放接口。 ? SDN通過在網(wǎng)絡(luò)中增加一個(gè)集中的SDN控制器,可以簡(jiǎn)化網(wǎng)絡(luò)和快速進(jìn)行業(yè)務(wù)創(chuàng)新。但是其本質(zhì)的技術(shù)原理是通過SDN控制器的網(wǎng)絡(luò)軟件化過程來提升網(wǎng)絡(luò)可編程能力。通信平面仍包含管理平面、控制平面和數(shù)據(jù)平面,SDN網(wǎng)絡(luò)架構(gòu)只是把系統(tǒng)的三個(gè)平面的功能進(jìn)行了重新分配,傳統(tǒng)網(wǎng)絡(luò)控制平面是分布式的,分布在每個(gè)轉(zhuǎn)發(fā)設(shè)備上,而SDN網(wǎng)絡(luò)架構(gòu)則是把分布式控制平面集中到一個(gè)SDN控制器內(nèi),實(shí)現(xiàn)集中控制,而管理平面和數(shù)據(jù)平面并沒有太多什么變化。 ? SDN網(wǎng)絡(luò)具備快速網(wǎng)絡(luò)創(chuàng)新能力,如果這個(gè)新業(yè)務(wù)有價(jià)值則保留,沒有價(jià)值可以快速下線。不像傳統(tǒng)網(wǎng)絡(luò)那樣,一個(gè)新業(yè)務(wù)上線需要經(jīng)過需求提出、討論和定義開發(fā)商開發(fā)標(biāo)準(zhǔn)協(xié)議,然后在網(wǎng)絡(luò)上升級(jí)所有的網(wǎng)絡(luò)設(shè)備,經(jīng)過數(shù)年才能完成一個(gè)新業(yè)務(wù)。SDN使得新業(yè)務(wù)的上線速度從幾年提升到幾個(gè)月或者更快。
簡(jiǎn)化網(wǎng)絡(luò)
SDN的網(wǎng)絡(luò)架構(gòu)簡(jiǎn)化了網(wǎng)絡(luò),消除了很多IETF的協(xié)議。協(xié)議的去除,意味著學(xué)習(xí)成本的下降,運(yùn)行維護(hù)成本下降,業(yè)務(wù)部署快速提升。這個(gè)價(jià)值主要得益于SDN網(wǎng)絡(luò)架構(gòu)下的網(wǎng)絡(luò)集中控制和轉(zhuǎn)控分離。 ? 因?yàn)镾DN網(wǎng)絡(luò)架構(gòu)下的網(wǎng)絡(luò)集中控制,所以被SDN控制器所控制的網(wǎng)絡(luò)內(nèi)部很多協(xié)議基本就不需要了,比如RSVP協(xié)議、LDP協(xié)議、MBGP協(xié)議、PIM組播協(xié)議等等。原因是網(wǎng)絡(luò)內(nèi)部的路徑計(jì)算和建立全部在控制器完成,控制器計(jì)算出流表,直接下發(fā)給轉(zhuǎn)發(fā)器就可以了,并不需要協(xié)議。未來大量傳統(tǒng)的東西向協(xié)議會(huì)消失,而南北向控制協(xié)議比如Openflow協(xié)議則會(huì)不斷的演進(jìn)來滿足SDN網(wǎng)絡(luò)架構(gòu)需求
網(wǎng)絡(luò)設(shè)備白牌化
基于SDN架構(gòu),如果標(biāo)準(zhǔn)化了控制器和轉(zhuǎn)發(fā)器之間的接口,比如OpenFlow協(xié)議逐漸成熟,那么網(wǎng)絡(luò)設(shè)備的白牌化將成為可能,比如專門的OpenFlow轉(zhuǎn)發(fā)芯片供應(yīng)商,控制器廠商等,這也正是所謂的系統(tǒng)從垂直集成開發(fā)走向水平集成。 ? 垂直集成是一個(gè)廠家供應(yīng)從軟件到硬件到服務(wù)。水平集成則是把系統(tǒng)水平分工,每個(gè)廠家都完成產(chǎn)品的一個(gè)部件,有的集成商把他們集成起來銷售。水平分工有利于系統(tǒng)各個(gè)部分的獨(dú)立演進(jìn)和更新,快速進(jìn)化,促進(jìn)競(jìng)爭(zhēng),促進(jìn)各個(gè)部件的采購(gòu)價(jià)格的下降。
業(yè)務(wù)自動(dòng)化
SDN網(wǎng)絡(luò)架構(gòu)下,由于整個(gè)網(wǎng)絡(luò)歸屬控制器控制,那么網(wǎng)絡(luò)業(yè)務(wù)網(wǎng)自動(dòng)化就是理所當(dāng)然的,不需要另外的系統(tǒng)進(jìn)行配置分解。在SDN網(wǎng)絡(luò)架構(gòu)下,SDN控制器可以自己完成網(wǎng)絡(luò)業(yè)務(wù)部署,提供各種網(wǎng)絡(luò)服務(wù),比如L2VPN、L3VPN等,屏蔽網(wǎng)絡(luò)內(nèi)部細(xì)節(jié),提供網(wǎng)絡(luò)業(yè)務(wù)自動(dòng)化能力。
網(wǎng)絡(luò)路徑流量?jī)?yōu)化
通常傳統(tǒng)網(wǎng)絡(luò)的路徑選擇依據(jù)是通過路由協(xié)議計(jì)算出的“最優(yōu)”路徑,但結(jié)果可能會(huì)導(dǎo)致“最優(yōu)”路徑上流量擁塞,其他非“最優(yōu)”路徑空閑。當(dāng)采用SDN網(wǎng)絡(luò)架構(gòu)時(shí),SDN控制器可以根據(jù)網(wǎng)絡(luò)流量狀態(tài)智能調(diào)整網(wǎng)絡(luò)流量路徑,提升網(wǎng)絡(luò)利用率。
編輯:黃飛
?
評(píng)論
查看更多