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