深入思考SDN的核心本質:從SDN=OpenFlow回到軟件定義網絡

SDN的概念從提出到現在已經過了4年多了,但是關於SDN最基本的問題,“什麼是SDN”的爭論和探討從來都沒停止過,就像一些哲學家經常思考的“我是誰”,“我從哪裏來”,“我要去哪裏”一樣。有人跟我說,越討論越迷糊,有時候覺得清楚了,再跟不同的人討論,又迷糊了。因爲工作的關係,在過去一年的時間內,我到處去跟各個運營商,互聯網公司,電商,設備商,普通企業,高校,研究所的不同人進行交流,曾經跟一個朋友自嘲說除了ONF的執行總裁Dan Pitt,可能我是世界上跟別人講SDN講得最多的了。在這個過程中我不斷反思,不斷歸納總結,現在我當然不敢說我的想法就一定是對的,但是我認爲我有必要把我的看法分享出來,供大家參考,是否認同不要緊,但是希望能對大家所有啓發。

我對SDN的認識可以分爲四個階段,最後一個階段是在第三個階段基礎上的頓悟。

第一階段:SDN=OpenFlow?

跟很多其他人一樣,我最初接觸SDN是從OpenFlow開始的,那個時候甚至都沒去思考什麼是SDN的問題,本能的就認爲OpenFlow就是SDN,SDN就是Openflow,其實潛意識中,就是把SDN看作是一個具體的技術和協議,在將近有半年的時間裏,都處於這種認識,因爲那個時候還沒有接觸實際案例,也沒有廣泛去網上了解關於SDN的技術文章,這是最原始的第一階段。實際上,就算是現在很多人嘴裏面說SDN不等於Openflow,但是潛意識裏面還會自覺不自覺地將SDN往Openflow靠攏。爲什麼呢?因爲Openflow是大多數人唯一看得到的具體化的SDN的實現形式(實際上當然還有別的實現形式,但是很多人並沒有看到或者看到了也沒意識到)。

第二階段:SDN的三個本質屬性

後來隨着對各種SDN產品瞭解和網上諸多技術文章的閱讀,逐漸意識到,SDN只是一種架構,一種思想,具體的實現多種多樣,OpenFlow只是其中一種。我自己總結出SDN的三個本質屬性,認爲只要符合控制跟轉發分離、有開放的編程接口、集中式的控制就可以認爲是SDN。基於這樣一種理念,某個產品或者方案,哪怕沒有使用Openflow,只要它符合這三個原則,也可以認爲是SDN。比如Juniper的Open Contrail,不支持Openflow,但是也是SDN。在很長一段時間內,我都堅定不移地認爲這是最符合SDN思想的定義。包括我開始寫《深度解析SDN》那本書的期間,也是這樣認爲。

第三階段:狹義SDN、廣義SDN、超廣義SDN

後來突然看到阿里巴巴推出了自己的SDN方案,在2013 GITC會議期間,我詳細聽了阿里巴巴專家的介紹,發現他們這種SDN跟我理解中的控制跟轉發分離並不相同,他們自己也說他們的SDN不是大家一般所理解中的SDN,他們的SDN是通過軟件控制腳本,讓這些腳本向遠程的交換機發送命令(不清楚是NetConf還是直接的命令行)來控制交換機,交換機上仍然運行了傳統的二三層協議,控制跟轉發並沒有分離,分離的是管理和控制。剛看到這個方案的時候,我馬上就問自己,這算不算SDN?我反覆思考了這個問題,他們爲什麼要這麼做,而不是使用更徹底的控制跟轉發分離?我個人理解是他們網絡中已經有了大量傳統的交換機,他們不可能把這些交換機都替換掉,但是又想通過軟件自動化來代替手動操作,所以就採取了這樣一種折衷的做法。這種做法有沒有價值?肯定是有,否則他們不會這麼幹。那算不算SDN?我一時陷入了迷茫。幾經思考之後,我認爲,其實SDN並沒有確切的定義,只要能實現網絡自動化,能夠滿足特定場景的需求,哪怕這種做法對別的用戶沒有意義,它也應該算SDN。只是從通用的角度來看,這種SDN靈活性比不上控制與轉發分離的那種架構,但是不可否認的是,它能解決特定客戶特定場景的需求。認識到這一點之後,我在對外宣講的PPT中,將SDN定義歸爲三類,第一類是狹義SDN(等同於Openflow),第二類是廣義SDN(控制與轉發分離),第三類是超廣義SDN(管理與控制分離)。而且我認爲,第二類定義中的SDN,是最通用,最有價值的一種。

第四階段:返璞歸真,回到軟件定義網絡

在跟中國電信研究院的專家們一次交流中,我講了我對SDN的看法之後,研究院的王老師向我提出了一個問題:從SDN的字面意思來看,根本看不出控制與轉發分離的意思,你怎麼看這個問題?雖然我當時噼裏啪啦講了一堆,回答了這個問題。但是回來之後,我又深入的思考了一下王老師的這個問題,很慚愧,這麼一個明顯的問題,我之前居然都沒去思考過。思考的過程中,我突然有種醍醐灌頂的感覺,就像佛語經常說的那樣:看山是山->看山不是山->看山還是山。無論是控制與轉發分離,還是管理與控制分離其實都不是SDN的本質定義,SDN的本質定義就是軟件定義網絡,也就是說希望應用軟件可以參與對網絡的控制管理,滿足上層業務需求,通過自動化業務部署簡化網絡運維,這是SDN的核心訴求,控制與轉發分離不是。但爲了滿足這種核心訴求,不分離控制與轉發,比較難以做到,至少是不靈活。換句話說,控制與轉發分離只是爲了滿足SDN的核心訴求的一種手段,如果某些場景中有別的手段可以滿足,那也可以,比如管理與控制分離。

作者簡介:張衛峯,盛科張衛峯 ,熟悉二三層路由交換、PTN/IPRAN技術、芯片設計,對SDN/OpenFlow技術也有深刻的研究和理解。著有《深度解析SDN》。新浪微博ID:@盛科張衛峯 

原文鏈接: SDN的深入思考(1):SDN的核心本質到底是什麼?(責編:周小璐)

發佈了178 篇原創文章 · 獲贊 7 · 訪問量 32萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章