本文轉(zhuǎn)載自微信公眾號“ 標(biāo)哥說天下”(ID:bgstx001),作者:李宗標(biāo)。
息縣ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!SDN,Software Defined Network,軟件定義的網(wǎng)絡(luò),這些年方興未艾,愈演愈烈。但是,筆者以為,SDN 也有愈演愈劣的趨勢。而且,現(xiàn)在業(yè)界關(guān)于什么叫 SDN,也是眾說紛壇,莫衷一是。筆者在此試圖梳理一下,SDN 到底是什么!
一、SDN 發(fā)展的三條主線
SDN 從誕生到發(fā)展,有三條非常關(guān)鍵的主線。
第一條主線的主角是斯坦福大學(xué)。2008年,斯坦福大學(xué) Nick McKeown 教授等人提出了 OpenFlow 的概念,并基于OpenFlow 為網(wǎng)絡(luò)帶來的可編程的特性,進(jìn)一步提出了SDN(Software Defined Network,軟件定義網(wǎng)絡(luò))的概念。2009年,SDN 概念入圍Technology Review年度十大前沿技術(shù),自此獲得了學(xué)術(shù)界和工業(yè)界的廣泛認(rèn)可和大力支持。2009年12月,OpenFlow 規(guī)范發(fā)布了具有里程碑意義的可用于商業(yè)化產(chǎn)品的1.0版本。
第二條主線的主角是 Google。Google 的 B4 網(wǎng)絡(luò) SDN 改造,給業(yè)界打了一針巨大無比的雞血。 Google的改造分為三個階段。第一階段在2010年春天完成,第二階段是到 2011年中完成,第三個階段在2012年初完 成,整個B4網(wǎng)絡(luò)完全切換到了 OpenFlow 網(wǎng)絡(luò)。經(jīng)過改造之后,鏈路帶寬利用率提高了3倍以上,接近100%。這個給業(yè)界帶來無法形容的沖擊和震撼。筆者以為,SDN 開始爆發(fā)性發(fā)展,自此方始!
第三條主線的主角是 Cisco。2012年6月,思科推出了ONE(Open Network Environment)戰(zhàn)略。2013年4月,思科與其他公司一起發(fā)起成立了Open Daylight 開源組織,開發(fā) SDN 控制器。思科這兩件事情,其主旨都在“重新定義 SDN”。在此之前,SDN 還是與 Openflow 基本畫上等號的,Cisco 站住來說,SDN 不等于 Openflow,這個我們從 ONE 的架構(gòu)與 ODL 的架構(gòu)可見一斑,如下圖所示:
圖1 Cisco onePK 架構(gòu)
圖2 ODL 架構(gòu)
圖1 是“onePK(One Platform Kit)”,是為了支撐 Cisco 的 ONE 戰(zhàn)略。圖2 是 ODL 的架構(gòu)。這些架構(gòu),我們只需要關(guān)注圖中紅框的部分。onePK 紅框部分,都是 Cisco 的設(shè)備,Cisco 的意思是:我家的設(shè)備就是 SDN,我給你包裝一個 API(onePK) 就行了。ODL 紅框部分的意思是:SDN 的協(xié)議,除了 OpenFlow,也可以是其他協(xié)議(NETCONF, BGP 等等)
這三條主線非常有意思。斯坦福大學(xué)(Nick McKeown 教授等人)發(fā)明了 SDN,試圖重新定義網(wǎng)絡(luò),Google 則將 SDN 推向了第一個高潮,而 Cisco 則希望將 SDN 轉(zhuǎn)個方向,重新定義 SDN!
如果說,斯坦福大學(xué)發(fā)現(xiàn)了一股清流,Google 則是掀起了一股巨浪,而 Cisco 就是攪渾這一池春水!
(注:與思科一起成立 ODL 的公司有:IBM、微軟、Big Switch、博科、思杰、戴爾、愛立信、富士通、英特爾、瞻博網(wǎng)絡(luò)、NEC、惠普、紅帽和VMware)
二、SDN 的三大流派
恰恰來說,前面所說的三條主線,演化為了 SDN 的三大流派。
1、軟件定義網(wǎng)元
我們?nèi)匀惶子?SDN 的命名方法,把軟件定義網(wǎng)元命名為:Softeware Defined Network Element(SDNE)。網(wǎng)元指的就是交換機、路由器等等這些網(wǎng)絡(luò)設(shè)備。
這一流派源于斯坦福大學(xué)的 OpenFlow。斯坦福大學(xué)提出的 SDN 概念,以 OpenFlow 協(xié)議為基礎(chǔ),強調(diào)控制面與轉(zhuǎn)發(fā)面分離,強調(diào)集中控制。
但是,集中控制,這個詞,如果摳字眼的話,其含義是有分歧的。
一種含義是控制器心中有整個網(wǎng)絡(luò),基于這張網(wǎng)絡(luò)做路徑規(guī)劃/計算,然后再針對每一個網(wǎng)元下發(fā)轉(zhuǎn)發(fā)規(guī)則。
一種含義是,雖然一個控制器可以管理(控制)整個網(wǎng)絡(luò)中的所有(相關(guān))網(wǎng)元,但是這個控制器心中只有一個個獨立的網(wǎng)元,而不是一張網(wǎng)絡(luò)。控制器是每個網(wǎng)元自身做交換規(guī)則配置。比如我們在Neutron 實現(xiàn)模型中所描述的計算節(jié)點中的 br-ex 和 br-int。
這兩種含義,都是一個控制器管理(控制)所有(相關(guān))網(wǎng)元,也即集中控制。但是,后一種含義,其實只是離散地單個網(wǎng)元的控制。
軟件定義網(wǎng)元(SDNE),就是屬于后一種含義。由于 OpenFlow 自身協(xié)議的缺陷和相關(guān)硬件的轉(zhuǎn)發(fā)性能問題,其應(yīng)用場景非常有限?,F(xiàn)在基于 OpenFlow(或者其他類似的協(xié)議)做 SDNE,并不是主流?;蛘呤且恍┬」?創(chuàng)業(yè)公司,或者是大公司在極度有限的場景內(nèi),在推出 SDNE 相關(guān)產(chǎn)品。
SDNE 流派,從表面上看,是繼承了 SDN 的純正地位,實際上已經(jīng)對正統(tǒng)的 SDN 做了裁剪。
這一流派雖然力量不大,但是仍然是現(xiàn)在業(yè)界延續(xù) SDN 香火的主要力量。
2、軟件定義網(wǎng)管
軟件定義網(wǎng)管,Software Defined Network Management System,SDNMS。這一流派源于 Cisco 那個所謂的“重新定義 SDN”。Cisco 又是推出 ONE 戰(zhàn)略,又是整一個 ODL 開源,雖然 ODL 開源號稱也支持 OpenFlow,但是 Cisco 的本質(zhì)是把傳統(tǒng)設(shè)備做個包裝,換個馬甲,搖身一變?yōu)?SDN。
話又說來,當(dāng)設(shè)備還是那個設(shè)備時,無論它是軟的(VNF)還是硬的(PNF,傳統(tǒng)路由器/交換機),其業(yè)務(wù)發(fā)放,除了象網(wǎng)管一樣,做個配置,又能做什么?
筆者在一個微信群里,看到有人轉(zhuǎn)發(fā)一篇文章,如下圖所示:
圖3 某廠的 SDN 宣傳資料
在該篇文章中,其宣稱:控制器只負(fù)責(zé)業(yè)務(wù)下發(fā),不負(fù)責(zé)轉(zhuǎn)發(fā)表項的計算。轉(zhuǎn)發(fā)表項的計算使用成熟度高的標(biāo)準(zhǔn) BGP-EVPN 協(xié)議完成。
這就是當(dāng)前業(yè)界拿著網(wǎng)管當(dāng)作控制器當(dāng)作 SDN 來大肆宣傳的典型案例?,F(xiàn)在業(yè)界這種聲音非常大,非常主流。他們在宣傳時,還有一個經(jīng)典的理論:網(wǎng)管的架構(gòu)不好,網(wǎng)管的接口抽象的不好。(說的好像它的架構(gòu)就很好,它的接口就很抽象似的。)
我們不比較是網(wǎng)管與那個所謂的控制器,誰的架構(gòu)好,誰的接口抽象。
我們要認(rèn)清一點:
兩個軟件系統(tǒng),做的事情(功能)是一樣的,架構(gòu)好壞,接口是否抽象,那是純軟件設(shè)計/開發(fā)的事情,那取決于設(shè)計開發(fā)這個系統(tǒng)的“人”,而不是冠一個 SDN 的名頭,架構(gòu)啥的就能自動變好。
這個基本邏輯要清楚!如果連這樣的邏輯都沒有......
這個業(yè)界主流聲音,有兩大可怕的后果:(1)思想上,混淆了 SDN 的概念;(2)行動上,浪費大量的人力物力,重新做一遍網(wǎng)管。
對于那些沒有網(wǎng)管產(chǎn)品的公司/組織來說(比如某些公司,比如絕大多數(shù)開源組織),重新做一遍網(wǎng)管,沒有任何問題,因為它們本來就沒有網(wǎng)管。而對于那些已經(jīng)有巨形網(wǎng)管產(chǎn)品的公司來說,這樣的想法,是要命的!
3、軟件定義網(wǎng)絡(luò)優(yōu)化
軟件定義網(wǎng)絡(luò)優(yōu)化,Software Defined Network Optimization,SDNO。SDNO 與 SDN Orchestrator 的簡稱重復(fù)了,請您注意不要搞混
這一流派,起源于 Google,與 Google 稍有不同的是,Google 采用的網(wǎng)元是 OpenFlow 網(wǎng)元(交換機),而這一流派采用的是傳統(tǒng)的網(wǎng)元。這一流派也有一點 Cisco 的影子。不過 Cisco 流派的本質(zhì)是網(wǎng)管,而這一流派的本質(zhì)還是網(wǎng)絡(luò)優(yōu)化,所以我們還是把這一流派歸為 Google 流派。
前文說過,由于 OpenFlow 的限制,OpenFlow 網(wǎng)元(交換機)的應(yīng)用場景并不多,所以這一流派采用傳統(tǒng)網(wǎng)元,并沒有什么不好,反而是非常正確。
網(wǎng)絡(luò)優(yōu)化,指的是網(wǎng)絡(luò)流量優(yōu)化,在滿足 QoS 的前提下,盡量提高網(wǎng)絡(luò)的利用率。
這一流派細(xì)分為兩點:(A)靜態(tài)最優(yōu)路徑計算;(B)動態(tài)路徑調(diào)優(yōu)。
靜態(tài)最優(yōu)路徑計算,就是先期計算一條路由的最優(yōu)路徑(一般是最短路徑)。但是這個方法一個是沒有全局的觀念,一個是沒有動態(tài)調(diào)優(yōu)的能力,而且傳統(tǒng)的路由協(xié)議,也基本上具有這樣的能力,所以這一點,我們就不展開講述了。不過需要指出的是,這一小流派,也是有一定的市場,他們往往拿著這一小點跟網(wǎng)管 PK,說它們不僅僅是做個網(wǎng)管,還做個路徑計算。唉,不知道怎么說他們?yōu)楹茫?1)這是一個純算法的編程,不是 SDN 獨有的;(2)網(wǎng)管早已具備這樣的能力。
好了,不吐槽了,我們來看看動態(tài)路徑調(diào)優(yōu)。我們先舉一個例子,如下圖所示:
圖4 動態(tài)路徑調(diào)優(yōu)示例
圖中,一條流的路徑,原本規(guī)劃是:R1-R2-R3。但是,當(dāng)這條路徑擁塞時,會動態(tài)調(diào)整為一條較為空閑的路徑:R1-R4-R3。
這就是動態(tài)路徑調(diào)優(yōu)的一個簡單的示意。
從技術(shù)高大上的角度而言,動態(tài)路徑調(diào)優(yōu),是這三個流派中技術(shù)含量最高的。但是,偏偏就是流派在SDN 業(yè)界的聲音最小。
這一流派的鼻祖 Google,當(dāng)年偶露一小手,就名動江湖,為什么這一流派卻難成氣候呢?是其他公司都傻嗎?也不完全都傻,^_^
這一流派有很多技術(shù)難點需要克服:流量實時監(jiān)控與預(yù)測;大象流老鼠流的區(qū)分與預(yù)測;流的 QoS 的定義。這些技術(shù)難點,都難以克服。筆者就不展開描述這些技術(shù)難點了,您只需要關(guān)注一個詞“預(yù)測”,就能想象有多難!比如上圖中的例子,當(dāng)你把一個流調(diào)整到 R1-R4-R3 路徑時,突然間風(fēng)云突變,R1-R2-R3 路徑變空閑了,R1-R4-R3 變擁塞了。唉,被公司開除了,你都不知道找誰說理去!
但是,這些那點為什么 Google 就能克服呢? Google 有什么黑科技嗎?網(wǎng)上有一篇文章講的非常好,“不要為了 SDN 而 SDN - Google 的 SDN 和你沒關(guān)系”(https://www.douban.com/group/topic/47582532/),建議您閱讀一下。筆者這里簡略摘抄幾條:
(1)昂貴的跨國鏈路和海纜:相對于國內(nèi)的傳輸鏈路,海纜和跨國鏈路會是天價。
(2)N年的MPLS-TE部署經(jīng)驗
(3)數(shù)據(jù)等級的分類:Google B4的海纜和跨國鏈路的平均利用率能維持在95%以上,這是一個極為驚人的數(shù)字。但在這個數(shù)字背后,我們可以讀出什么?
A. 內(nèi)部數(shù)據(jù)已經(jīng)有嚴(yán)格的等級區(qū)分了:什么樣的數(shù)據(jù)是高優(yōu)先級,什么是中、低優(yōu)先級已經(jīng)明確定義了。從服務(wù)器入口開始對應(yīng)用就開始標(biāo)識、限速;
B. 各等級流量大小明確:從入口開始,每一種業(yè)務(wù)會有多少流量已經(jīng)非常清楚了,這樣才能匯總出整體各個等級的流量,才可以指定匯總的CoS等級規(guī)劃。否則流量CoS是木有辦法做的,這也是國內(nèi)常常沒有辦法做CoS的原因;
C. 中低優(yōu)先級的犧牲成就了高利用率:CoS不能產(chǎn)生帶寬,能維持高利用率是因為高優(yōu)先級流量的輕載,然后用中低優(yōu)先級去填充,那么故障、高優(yōu)先級有突發(fā)流量等狀況發(fā)生時低優(yōu)先級一定會被延遲或者丟棄;
總結(jié)起來就是三點:(1)需求強烈;(2)經(jīng)驗足,技術(shù)好;(3)流量狀況自己能夠掌握。
對不起,滿足這三點的,好像就是只有 Google 一家公司。Google 的網(wǎng)絡(luò),跑著是自己家的流量,那么這些流量它自己就可以規(guī)劃,而我們要面對的是一個未知的網(wǎng)絡(luò),誰知道這個網(wǎng)絡(luò)里的流量是什么情況,誰知道這個網(wǎng)絡(luò)里的流應(yīng)該是什么等級?Google 恰恰是沒有黑科技,而是從源頭上來講,我們(除了 Google 以外所有人)與 Google 所面對的復(fù)雜度是完全不可同日而語的。
另外,網(wǎng)絡(luò)動態(tài)調(diào)優(yōu),還有一個悖論:不在現(xiàn)網(wǎng)做大量測試,就沒法穩(wěn)定,沒法商用;但是,沒有一個現(xiàn)網(wǎng)能允許一個不穩(wěn)定的程序在其上面做大量測試。這就形成了一個死循環(huán)。而 Google 恰巧也能打破這個死循環(huán),因為它的流量成本非常高,“昂貴的跨國鏈路和海纜:相對于國內(nèi)的傳輸鏈路,海纜和跨國鏈路會是天價”。高昂的成本能夠促使其下定決心來打破這個死循環(huán),很遺憾,我們好像找不到還有誰家有動力打破這個死循環(huán)。
第三點,Google 是自己研發(fā)。自己最懂自己的網(wǎng)絡(luò),這一點,也是無法比擬的。正是有這三點保證,Google 能夠偶露崢嶸,而其他公司要想做到,幾乎不大可能。這也正是這一流派,看起來很美,其實非常勢微的原因。
(筆者猜想,這同時也是 Google 為什么在露一手以后,極少在 SDN 業(yè)界發(fā)音的原因。他也找不到第二個相同的 story 了。事了拂衣去 深藏功與名!)
4、小結(jié)
我們上一張“SDN 成熟度”圖譜,這個圖譜,是鄙人定義的。如下圖所示:
圖5 SDN 成熟圖圖譜
橫坐標(biāo)表示“通用硬件成熟度”,縱坐標(biāo)表示“流量優(yōu)化(全局網(wǎng)絡(luò))成熟度”。
我們先講 SDNE(軟件定義網(wǎng)元),由于 OpenFlow 自身的限制,SDNE 當(dāng)前還是只能局限在有限的場景中應(yīng)用,所以我把它的通用硬件成熟度,歸結(jié)為“0.1”。而 SDNE 流派,如果拋開 OpenFlow 不談,其實它也是個網(wǎng)管,也是控制器心中沒有全網(wǎng)(全網(wǎng)在人的心中),也是僅僅做個配置而已,所以我把它的“流量優(yōu)化(全局網(wǎng)絡(luò))成熟度”歸結(jié)為“0”。
以 SDNE 為參照物,那么很自然地,我們就可以把 SDNMS(軟件定義網(wǎng)管)這一流派歸結(jié)為(0, 0)這一維度,既沒有通用硬件成熟度,也沒有流量優(yōu)化(全局網(wǎng)絡(luò))成熟度。
SDNO-1,靜態(tài)網(wǎng)絡(luò)優(yōu)化,比 SDNE 稍微好一點,畢竟做了一些靜態(tài)全局最優(yōu)路徑計算,所以我把歸結(jié)為(0, 0.1)這一維度。
我們再看看偉大的 Google,其實也才屬于(0.1, 0.2)這一維度。它使用的是 OpenFlow 交換機,所以通用硬件成熟度是 0.1,而它的動態(tài)流量優(yōu)化是建立在“流量盡在掌握”的前提下做的,所以我只把它的流量優(yōu)化(全局網(wǎng)絡(luò))成熟度歸結(jié)為 0.2。
圖中,我把兩個成熟度為“1”的地方,都畫了個圓圈,其實我是比較委婉,我本來是想畫個紅叉的。
在當(dāng)前階段,動態(tài)流量優(yōu)化幾乎不可能,也許將來大數(shù)據(jù)、人工智能技術(shù)成熟以后,這一塊可以突破。
而統(tǒng)一硬件成熟度這一塊,OpenFlow 已經(jīng)沒有希望,現(xiàn)在替換 OpenFlow 的相關(guān)軟硬件技術(shù)也有,不過筆者以為,那也是不解決問題。硬件成熟度要想達(dá)到“1”,短期內(nèi),也是幾乎不可能。
兩個不可能,鄙人覺得,可以給我們一些啟示:
作為產(chǎn)品規(guī)劃,大公司可以冷靜下來了,當(dāng)前現(xiàn)狀,SDN 不適合去大張旗鼓做一個產(chǎn)品,而是應(yīng)該轉(zhuǎn)為純理論研究。至于小公司/創(chuàng)業(yè)公司,在 SDNE(軟件定義網(wǎng)元)這一領(lǐng)域可以賺點錢,這無可厚非,盡管去發(fā)展。
至于那個 SDNMS(軟件定義網(wǎng)管),如果您當(dāng)前沒有這個網(wǎng)管,那么您就做,如果您需要的話,而如果您想繼續(xù)鼓吹這就是 SDN,那就鼓吹吧,畢竟這個世界需要謊言。如果您當(dāng)前已經(jīng)有一個巨型網(wǎng)管產(chǎn)品,筆者奉勸一句:停下來吧,不要再重做一遍網(wǎng)管!!!
至于 SDNO-1,靜態(tài)網(wǎng)絡(luò)優(yōu)化,它的體量還不足以成為一個產(chǎn)品,也就是一個模塊,建議集成到網(wǎng)管中里面吧,不要拿這個來說事,給自己重新做一遍網(wǎng)管找個理由了!
不要以狼性為幌子,做公司的罪人!不要以行動的勤奮,掩蓋思考的懶惰!補充一句,我一直都沒有提 SDN 協(xié)同器。那么 SDN 協(xié)同器應(yīng)該劃歸為哪一個維度呢?你猜......
三、SDN 的本質(zhì)
在我心中,SDN 的本質(zhì),如下圖所示:
圖6 SDN 的本質(zhì)
在我心中,SDN 的本質(zhì),只需要達(dá)到(1, 0.1)即可,不需要達(dá)到(1, 1),當(dāng)然,能達(dá)到更好。
一個通用的硬件,加上一個靜態(tài)最優(yōu)路徑算法,就是我心中的 SDN 的本質(zhì)。至于 Google 的那個海纜價格太貴,那是個別需求,不影響大局。
我以前說過,SDN 的本質(zhì)是“淘寶 + 百度”,有人把我這個觀點理解為“SDN 就是白盒化”,對不起,您誤解了我的觀點。
分析一個技術(shù)的本質(zhì),首先要看這個技術(shù)的經(jīng)濟效益體量。如果一個技術(shù)的經(jīng)濟效益體量也就產(chǎn)生三毛二毛的利潤,那么這個技術(shù),我們沒必要去分析其本質(zhì)。專業(yè)化產(chǎn)生封閉,標(biāo)準(zhǔn)化產(chǎn)生分工,而社會化大分工,巨大提高社會生產(chǎn)率。復(fù)雜化、專業(yè)化,會產(chǎn)生個別企業(yè)的高利潤,而標(biāo)準(zhǔn)化、簡單化,社會化大分工,會產(chǎn)生全民的高收益。
SDN 的本意,以 OpenFlow 為基礎(chǔ)(我們假設(shè) OpenFlow 行得通),推導(dǎo)出標(biāo)準(zhǔn)化的硬件和簡單化的軟件。我們想象一下這個場景:硬件已經(jīng)標(biāo)準(zhǔn)化,那就是唾手可得(這是我說從淘寶買硬件的原因),通信協(xié)議基礎(chǔ)包,屆時肯定是開源了,只需要在其基礎(chǔ)上做個性化需求即可(這是我說在百度上搜索軟件的原因)。
至于淘寶上是否買到假貨,百度上是否搜到盜版,對不起,那不是 SDN 的事情,OpenFlow當(dāng)前有各種各樣的問題,那是技術(shù)本身的問題,這不影響 SDN 的本質(zhì)。
SDN 的本質(zhì)如果能實現(xiàn),那必然是全社會的電信生產(chǎn)效率巨大提高,全民付出的電信資費極度降低。
當(dāng)前的科學(xué)證明,宇宙中的速度不能超過光速。對于科學(xué),我們需要保持敬畏!SDN 的本質(zhì)能否實現(xiàn),從科學(xué)角度講,是可能的,還是不可能,這同樣需要思考!另一個層面的思考!