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