傳統(tǒng)網(wǎng)絡(luò)的轉(zhuǎn)型
新技術(shù)從來(lái)都是由應(yīng)用驅(qū)動(dòng)并服務(wù)于人們的需求,有什么樣的需求,就會(huì)催生出什么樣的技術(shù)。一個(gè)手機(jī)APP的開(kāi)發(fā)工作可能只需要幾個(gè)人,但它有可能吸引到成千上萬(wàn)的用戶,這些用戶產(chǎn)生的數(shù)據(jù)可不是幾臺(tái)服務(wù)器就能承載的。隨著用戶量的增加,業(yè)務(wù)的擴(kuò)張,這背后可能產(chǎn)生的運(yùn)營(yíng)成本無(wú)法估量。為了最大程度地節(jié)約成本,越來(lái)越多的企業(yè)選擇了將業(yè)務(wù)放在虛擬機(jī)上,以便充分地利用資源,并實(shí)現(xiàn)資源的按需分配和彈性擴(kuò)容。人們的需求使應(yīng)用對(duì)網(wǎng)絡(luò)、存儲(chǔ)、計(jì)算資源的需求越來(lái)越大,這樣的需求最終促使云計(jì)算成為了近年來(lái)IT界最火熱的話題之一。云計(jì)算的核心思想就是將所有資源,包括服務(wù)器、網(wǎng)絡(luò)、存儲(chǔ)等等,虛擬化為一片云,讓用戶不再需要關(guān)心實(shí)際物理資源是如何部署的。而這其中,傳統(tǒng)網(wǎng)絡(luò)也必須轉(zhuǎn)型為新型的云網(wǎng)絡(luò)才能滿足需求。有的企業(yè)選擇自建能滿足計(jì)算虛擬化要求的新型網(wǎng)絡(luò),也有的選擇租用運(yùn)營(yíng)商的資源或者將業(yè)務(wù)直接托管,隨之就有了如今耳熟能詳?shù)母鞣N云。
圖1 什么是云計(jì)算
傳統(tǒng)網(wǎng)絡(luò)在轉(zhuǎn)型為支持大規(guī)模計(jì)算虛擬化的云網(wǎng)絡(luò)時(shí)會(huì)有什么樣的問(wèn)題呢?最典型的問(wèn)題是,在服務(wù)器虛擬化的場(chǎng)景中,虛擬機(jī)遷移后如果位于不同的三層網(wǎng)絡(luò)中,則需要修改服務(wù)器的IP地址,但很多應(yīng)用并不允許隨意修改IP地址。那么最直接的解決方案便是使虛擬機(jī)遷移之后仍然位于同一個(gè)二層網(wǎng)絡(luò)中。隨著網(wǎng)絡(luò)規(guī)模的不斷擴(kuò)大,傳統(tǒng)的二層技術(shù)由于存在收斂時(shí)間過(guò)長(zhǎng),部署復(fù)雜等局限性,已經(jīng)不再適合組建大規(guī)模的二層網(wǎng)絡(luò),于是這期間出現(xiàn)了許多用于實(shí)現(xiàn)大二層網(wǎng)絡(luò)的新技術(shù)。為了屏蔽虛擬機(jī)遷移帶來(lái)的物理網(wǎng)絡(luò)位置變化的影響,這些新技術(shù)的核心思想無(wú)一例外的都是在數(shù)據(jù)平面上使用隧道技術(shù)穿越底層的三層網(wǎng)絡(luò),將物理拓?fù)涑橄鬄榘粚?duì)對(duì)源和目的節(jié)點(diǎn)的邏輯拓?fù)?。而這些技術(shù)所采用的不同的數(shù)據(jù)封裝方式以及控制平面的建立方式,決定了它們?cè)趯?shí)際應(yīng)用中,有的逐漸被淘汰,而有的成為了廣泛應(yīng)用的事實(shí)標(biāo)準(zhǔn)。作為在這期間脫穎而出的隧道技術(shù),VXLAN(Virtual eXtensible LAN,可擴(kuò)展虛擬局域網(wǎng)絡(luò))定義了一個(gè)簡(jiǎn)單高效的數(shù)據(jù)轉(zhuǎn)發(fā)平面,又以其優(yōu)越的兼容性成為了構(gòu)建新型大二層網(wǎng)絡(luò)數(shù)據(jù)平面的主流標(biāo)準(zhǔn)。
圖2 Overlay網(wǎng)絡(luò)模型
解決了數(shù)據(jù)平面的構(gòu)建問(wèn)題,在控制平面的構(gòu)建上又分為了兩個(gè)流派。一個(gè)是主導(dǎo)集中控制模式的新銳派,而另一個(gè)是主導(dǎo)松散控制模式的頑固派。要說(shuō)起這兩個(gè)流派的產(chǎn)生,還得從同一時(shí)期興起的另一項(xiàng)顛覆性的新技術(shù)說(shuō)起,它就是SDN(Software Defined Network,軟件定義網(wǎng)絡(luò))。
傳統(tǒng)網(wǎng)絡(luò)最初只解決了連通的問(wèn)題,當(dāng)初的設(shè)計(jì)者甚至都沒(méi)有想到網(wǎng)絡(luò)的規(guī)模會(huì)大到如今的地步。科技飛速發(fā)展,萬(wàn)物互聯(lián)的時(shí)代正在到來(lái)。伴隨著越來(lái)越多的節(jié)點(diǎn)接入網(wǎng)絡(luò),越來(lái)越多的信息依賴于網(wǎng)絡(luò)來(lái)傳遞,日益龐大的網(wǎng)絡(luò)就像當(dāng)今發(fā)達(dá)城市的交通系統(tǒng)一樣不堪重負(fù)。網(wǎng)絡(luò)的基礎(chǔ)設(shè)施建設(shè)跟不上流量的爆炸性增長(zhǎng),提高網(wǎng)絡(luò)的使用效率自然就成了有效緩解流量日益增長(zhǎng)和網(wǎng)絡(luò)建設(shè)滯后之間矛盾的一種可行思路。如果把數(shù)據(jù)比作車,從車的視角來(lái)看,傳統(tǒng)網(wǎng)絡(luò)可以看做是相對(duì)靜止的。所謂靜止體現(xiàn)在,數(shù)據(jù)的轉(zhuǎn)發(fā)路徑由每個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)上的預(yù)配置決定,從指定的源到指定的目的,總是會(huì)經(jīng)過(guò)固定的路徑。這樣的數(shù)據(jù)轉(zhuǎn)發(fā)方式所帶來(lái)的弊端是,即使某條轉(zhuǎn)發(fā)路徑上出現(xiàn)擁塞,網(wǎng)絡(luò)也無(wú)法動(dòng)態(tài)、智能、自動(dòng)地做出相應(yīng)的調(diào)整。其實(shí)現(xiàn)在大部分行車導(dǎo)航軟件早已有了應(yīng)對(duì)擁堵的方案,能夠在導(dǎo)航過(guò)程中隨時(shí)發(fā)現(xiàn)擁堵,動(dòng)態(tài)地調(diào)整行車路線實(shí)時(shí)躲避擁堵。解決網(wǎng)絡(luò)的擁堵,是不是也能使用類似的方案呢?答案是肯定的。
2006年,斯坦福大學(xué)的學(xué)生提出了將網(wǎng)絡(luò)設(shè)備的轉(zhuǎn)發(fā)與控制分離。所有設(shè)備的控制平面集中到一個(gè)獨(dú)立的控制器上,由控制器使用標(biāo)準(zhǔn)接口指導(dǎo)設(shè)備進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)。這樣不僅極大的簡(jiǎn)化了網(wǎng)絡(luò),更為網(wǎng)絡(luò)的設(shè)計(jì)和管理提供了更多的可能性。受此思想的啟發(fā),業(yè)界進(jìn)一步提出了軟件定義網(wǎng)絡(luò)(Software Defined Network,SDN)的概念??刂破髯鳛樾滦途W(wǎng)絡(luò)的集中式管理平臺(tái),將網(wǎng)絡(luò)中的所有被管資源抽象化,同時(shí)提供北向的標(biāo)準(zhǔn)可編程接口。用戶可以基于這個(gè)平臺(tái)開(kāi)發(fā)各種應(yīng)用軟件,并進(jìn)一步設(shè)計(jì)個(gè)性化的底層的邏輯拓?fù)?,靈活滿足業(yè)務(wù)對(duì)于網(wǎng)絡(luò)資源的各種要求。
圖3 SDN的基本思想
在2012年之前,SDN很大程度上還只是存在于學(xué)術(shù)界,實(shí)際應(yīng)用并不多見(jiàn),直到Google公司在2012年的開(kāi)放網(wǎng)絡(luò)峰會(huì)上首次公開(kāi)展示了其利用SDN技術(shù)構(gòu)建的全球骨干網(wǎng)。在這個(gè)骨干網(wǎng)中,Google利用部署于數(shù)據(jù)中心內(nèi)的集中式控制器收集設(shè)備的路由信息和鏈路狀態(tài)信息,統(tǒng)一匯總到上層的流量工程服務(wù)器。該服務(wù)器能夠根據(jù)業(yè)務(wù)所需帶寬、時(shí)延等要求,為其選擇一條最優(yōu)路徑,并將指導(dǎo)轉(zhuǎn)發(fā)的指令層層下發(fā)到沿途各轉(zhuǎn)發(fā)節(jié)點(diǎn)上。Google在分布于全球的12個(gè)數(shù)據(jù)中心之間,利用SDN技術(shù)調(diào)度流量,使得廣域網(wǎng)帶寬利用率提升至接近100%,故障收斂時(shí)間從9秒減少到1秒。
圖4 Google的全球骨干網(wǎng)
廣域網(wǎng)的鋪設(shè)和改造成本都極其高昂,而Google公司在不改變物理拓?fù)涞那闆r下,利用軟件定義網(wǎng)絡(luò),極大地降低了運(yùn)營(yíng)成本,提高了受益。Google的成功案例橫空出世,在業(yè)界產(chǎn)生了巨大的影響,極大地推動(dòng)了SDN的發(fā)展。自此之后,SDN技術(shù)開(kāi)啟了快速發(fā)展期,各種技術(shù)流派、標(biāo)準(zhǔn)組織和開(kāi)源項(xiàng)目如雨后春筍般不斷涌現(xiàn)。
當(dāng)前各個(gè)廠商的網(wǎng)絡(luò)設(shè)備都有著不同的配置方式,要想通過(guò)同一個(gè)控制器軟件來(lái)統(tǒng)一控制不同廠家的網(wǎng)絡(luò)設(shè)備,采用傳統(tǒng)的網(wǎng)管方式是非常困難的。SDN光有一個(gè)集中控制的指導(dǎo)思想還不夠,還需要選擇一種標(biāo)準(zhǔn)的通信接口,用于控制器指導(dǎo)設(shè)備進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)。于是業(yè)界定義了一種全新的控制器與網(wǎng)絡(luò)設(shè)備之間的通用交互標(biāo)準(zhǔn),使得控制器能夠通過(guò)下發(fā)簡(jiǎn)單的指令指導(dǎo)異構(gòu)的網(wǎng)絡(luò)設(shè)備識(shí)別流量并作出對(duì)應(yīng)的轉(zhuǎn)發(fā)動(dòng)作。在最初發(fā)表轉(zhuǎn)發(fā)和控制平面分離思想的同時(shí),OpenFlow協(xié)議作為控制器與網(wǎng)絡(luò)設(shè)備之間交互的標(biāo)準(zhǔn)也被提出。
OpenFlow對(duì)于SDN來(lái)說(shuō)就好比是x86的指令集對(duì)于計(jì)算機(jī)系統(tǒng)。OpenFlow定義了SDN控制轉(zhuǎn)發(fā)的一種實(shí)現(xiàn)方式,即定義了控制平面與數(shù)據(jù)平面之間的南向接口。
圖5 OpenFlow和SDN的關(guān)系
在所有實(shí)現(xiàn)SDN網(wǎng)絡(luò)轉(zhuǎn)控分離的技術(shù)中,OpenFlow是最為激進(jìn)的技術(shù)。它完全拋棄了傳統(tǒng)的路由交換協(xié)議,只要按照OpenFlow標(biāo)準(zhǔn)實(shí)現(xiàn)的交換機(jī),就能夠被控制器輕松管理。設(shè)備通過(guò)標(biāo)準(zhǔn)的OpenFlow協(xié)議,向控制器上報(bào)它所連接的通信主機(jī)的位置信息,當(dāng)控制器掌握了網(wǎng)絡(luò)中所有的通信節(jié)點(diǎn)位置信息后,便能夠向設(shè)備下發(fā)名為流表的轉(zhuǎn)發(fā)表項(xiàng)指導(dǎo)其轉(zhuǎn)發(fā)。每條流表項(xiàng)提供了非常豐富的流量匹配條件,與同樣豐富的轉(zhuǎn)發(fā)動(dòng)作形成一個(gè)簡(jiǎn)單的組合,能夠十分靈活地實(shí)現(xiàn)各類流量的匹配及轉(zhuǎn)發(fā)。OpenFlow具備的良好的可編程性,可以很方便地定義這種匹配和動(dòng)作的組合,這使它成為了實(shí)現(xiàn)SDN的主流技術(shù)??梢哉f(shuō),SDN能夠發(fā)展得如此迅猛,OpenFlow功不可沒(méi)。
構(gòu)建新型網(wǎng)絡(luò)的新銳派,正是采用了這種集中控制的方式實(shí)現(xiàn)了VXLAN網(wǎng)絡(luò)的控制平面。然而這種方式的革新對(duì)傳統(tǒng)網(wǎng)絡(luò)的沖擊是巨大的,注定了這不會(huì)是一個(gè)平滑演進(jìn)的過(guò)程。OpenFlow的易于實(shí)現(xiàn),使原來(lái)處于領(lǐng)導(dǎo)地位的很多傳統(tǒng)網(wǎng)絡(luò)設(shè)備廠商,可能很容易在傳統(tǒng)網(wǎng)絡(luò)向新型網(wǎng)絡(luò)轉(zhuǎn)型的過(guò)程中,被其他小廠商拉回到起跑線上。于是,為了保住自己的先發(fā)優(yōu)勢(shì),以傳統(tǒng)網(wǎng)絡(luò)設(shè)備廠商為代表的頑固派主導(dǎo)推出了各種松散控制的方式。
為了避免報(bào)文泛洪,這些松散控制的方式均是對(duì)傳統(tǒng)路由交換協(xié)議進(jìn)行的擴(kuò)展,在協(xié)議報(bào)文中增加攜帶主機(jī)的尋址信息,利用現(xiàn)成的協(xié)議交互框架,實(shí)現(xiàn)信息在全網(wǎng)的同步。這種方式構(gòu)建的VXLAN網(wǎng)絡(luò)的控制平面和傳統(tǒng)網(wǎng)絡(luò)的控制平面并無(wú)本質(zhì)區(qū)別,都是依賴設(shè)備之間的協(xié)議交互形成轉(zhuǎn)發(fā)表項(xiàng)。目前應(yīng)用較為廣泛的松散控制模式采用MP-BGP協(xié)議的擴(kuò)展,它被應(yīng)用在名為EVPN(Ethernet Virtual Private Network,以太虛擬專用網(wǎng)絡(luò))的網(wǎng)絡(luò)架構(gòu)中。EVPN為了構(gòu)建基于VXLAN的虛擬網(wǎng)絡(luò),新增了BGP EVPN協(xié)議族,并擴(kuò)展了5種協(xié)議消息。利用BGP本身的協(xié)議交互架構(gòu),設(shè)備之間可以很方便地建立EVPN鄰居,自動(dòng)創(chuàng)建VXLAN隧道以及互相同步尋址信息。而B(niǎo)GP協(xié)議本身的路由反射器功能,還能極大的簡(jiǎn)化拓?fù)?。更因?yàn)镸P-BGP本身能夠依靠MPLS標(biāo)簽建立VPN(這也是EVPN這個(gè)名字的由來(lái)),在EVPN中只需要將MPLS標(biāo)簽替換為VXLAN標(biāo)簽,就能夠在云網(wǎng)絡(luò)中方便地建立基于租戶的專有云,天然迎合了火爆的公有云或虛擬專有云的市場(chǎng)需求。這使得EVPN在各種五花八門的松散控制模型中,成為了構(gòu)建新型網(wǎng)絡(luò)的首選方案。
純粹從技術(shù)的角度,很難說(shuō)集中控制方式和松散控制方式誰(shuí)能夠百分之百優(yōu)于對(duì)方。世界上沒(méi)有最好的技術(shù),只有最適合的技術(shù)。
松散控制模式的優(yōu)勢(shì)主要體現(xiàn)在網(wǎng)絡(luò)健壯性和性能上。當(dāng)網(wǎng)絡(luò)中的某個(gè)節(jié)點(diǎn)故障時(shí),只會(huì)影響節(jié)點(diǎn)本身,不會(huì)對(duì)其他節(jié)點(diǎn)造成影響。SDN作為一種新興技術(shù),其成熟度肯定是不如傳統(tǒng)的路由交換協(xié)議的。雖然控制器可以依靠集群技術(shù)避免簡(jiǎn)單的單點(diǎn)故障(例如服務(wù)器宕機(jī)),但一些軟件代碼級(jí)別的復(fù)雜故障則無(wú)法依靠集群的主備倒換來(lái)規(guī)避。此外,建立一個(gè)分布式的控制平面所需要的設(shè)備性能顯然比建立集中式的要小的多,也因此能夠承載更大規(guī)模網(wǎng)絡(luò)。更何況目前采用專用芯片支持大容量OpenFlow表項(xiàng)的成本較高,大部分廠商還是借用傳統(tǒng)的IP/MAC表的資源來(lái)裝載流表。這使得無(wú)論是從控制器的角度還是從網(wǎng)絡(luò)設(shè)備的角度來(lái)說(shuō),流表規(guī)格都會(huì)是相對(duì)更加需要評(píng)估的問(wèn)題。
回到軟件定義網(wǎng)絡(luò)的核心理念,集中控制模式的優(yōu)勢(shì)就非常明顯。SDN控制器的開(kāi)放平臺(tái),能夠提供標(biāo)準(zhǔn)的北向Java API或Rest API接口供應(yīng)用程序調(diào)用。用戶能夠以自身業(yè)務(wù)為驅(qū)動(dòng),開(kāi)發(fā)出最適合自己的云平臺(tái)或者APP,真正實(shí)現(xiàn)云為網(wǎng)生,網(wǎng)隨云動(dòng)。在性能方面,通過(guò)擴(kuò)展控制器集群一定程度上可以滿足大規(guī)模的組網(wǎng)需求。至于健壯性,則可以通過(guò)某種預(yù)先建立好的松散控制模型作為控制平面的備份來(lái)保證,當(dāng)網(wǎng)絡(luò)設(shè)備檢測(cè)到控制器異常時(shí),可以自動(dòng)從控制器脫管并根據(jù)松散控制方式建立的轉(zhuǎn)發(fā)表項(xiàng)轉(zhuǎn)發(fā)數(shù)據(jù)。
一項(xiàng)技術(shù)的先進(jìn)性,除了體現(xiàn)在能夠提供更優(yōu)質(zhì)的使用體驗(yàn)之外,還體現(xiàn)在是否便于運(yùn)維。不可否認(rèn)SDN給傳統(tǒng)網(wǎng)絡(luò)帶來(lái)了新的生命力,然而新技術(shù)落地的同時(shí),也伴隨著用戶的顧慮——新型網(wǎng)絡(luò)下的運(yùn)維手段會(huì)不會(huì)有所缺失,會(huì)不會(huì)比原來(lái)更復(fù)雜?帶著這個(gè)問(wèn)題,我們先從傳統(tǒng)數(shù)據(jù)中心網(wǎng)絡(luò)運(yùn)維的一個(gè)痛點(diǎn)說(shuō)起。傳統(tǒng)數(shù)據(jù)中心內(nèi)部的流量模型往往涉及等價(jià)多路徑。在多個(gè)等價(jià)的下一跳設(shè)備中,一旦有一臺(tái)設(shè)備發(fā)生轉(zhuǎn)發(fā)故障(例如因器件硬件故障導(dǎo)致的轉(zhuǎn)發(fā)故障,但互聯(lián)鏈路仍然正常),則無(wú)法迅速判斷出哪一臺(tái)設(shè)備存在故障,繼而無(wú)法快速地旁路故障設(shè)備規(guī)避問(wèn)題。SDN網(wǎng)絡(luò)中的控制器因?yàn)橛辛巳忠曇埃阅軌驑?gòu)造特定的業(yè)務(wù)報(bào)文,遍歷探測(cè)所有轉(zhuǎn)發(fā)路徑,及時(shí)發(fā)現(xiàn)故障節(jié)點(diǎn)。
在這個(gè)軟件定義一切的時(shí)代,有了控制器的SDN網(wǎng)絡(luò)必將給業(yè)務(wù)部署以及運(yùn)維帶來(lái)更多的優(yōu)勢(shì),使運(yùn)維手段變得更加豐富。將來(lái)的網(wǎng)絡(luò)工程師,不再需要在網(wǎng)絡(luò)設(shè)備上輸入命令行,而只需要開(kāi)發(fā)個(gè)性化的軟件并加載于控制器這個(gè)“大腦”就能完成任務(wù)。
技術(shù)在不斷完善,將來(lái)的網(wǎng)絡(luò)必將更加智能。讓我們共同期待未來(lái),并為人類的科技進(jìn)步貢獻(xiàn)力量。
聯(lián)系客服