SDN 是什麼?

SDN作為下一代網路體系結構已經達成共識,那麼到底SDN是什麼?其中的OpenFlow和NOS是什麼?SDN Apps又是什麼?和雲計算有什麼關係?


SDN(Software Defined Network)即軟體定義網路,是一種網路設計理念,或者一種推倒重來的設計思想。只要網路硬體可以集中式軟體管理,可編程化,控制轉發層面分開,則可以認為這個網路是一個SDN網路。所以說,SDN並不是一個具體的技術,不是一個具體的協議,而是一個思想、一個框架。狹義的SDN是指的「軟體定義網路」,廣義的SDN的概念還延伸出了:軟體定義安全、軟體定義存儲等等。可以說,SDN是一個浪潮,席捲整個IT產業。

信息中心化是對傳統網路的一大挑戰。Internet的前身,ARPANET,在創建之初就有一個前提:這個網路是個自製的,無中心的系統,網路遭受任何局部損失都不會影響其他部分的正常通訊。所以,所有的RFC都圍繞著這個前提來構建,所有的網路設備也遵循著這一前提來研發。但是SDN將這一前提打破。所謂天下合久必分,分久必合。網路世界也不能免俗。銳捷網路也不落時代地加入這一潮流中。Cloud computing引發的互聯網革命新浪潮將計算和存儲中心化,SDN順應了這一趨勢。通過硬體,軟體平台的支持,信息(網路狀態)被共享到一個邏輯上集中的中心。相對於去中心化的傳統網路,SDN帶來很多很多優勢。

SDN在各國企業中已被廣泛涉及,Nick教授團隊的創業公司屢屢付諸實踐,國內團隊在SDN中也有涉獵並不斷追求發展,銳捷網路、大河互聯和盛科網路就是很好的例子。然而,國內技術尚不成熟,人才也相對缺乏,需要網路工程師潛心鑽研。


折騰SDN這個課題大半年,也給我們公司內部的學員做了一些導論課講解,現在分享這個SDN的內容給知乎的小夥伴們。這裡提供在線的課件,也有相應的導論視頻講解,4個課時花了個把月時間。

大家如果有興趣,可以免費去觀看。這是屬於未來的課程,共享給大家一起來探討。

原文鏈接:(微信公眾號PingingLab研究院

《SDN軟體定義網路從入門到精通》導論課

前言

SDN(Software Defined Network)即軟體定義網路,是一種網路設計理念,或者一種推倒重來的設計思想。只要網路硬體可以集中式軟體管理,可編程化,控制轉發層面分開,則可以認為這個網路是一個SDN網路。所以說,SDN並不是一個具體的技術,不是一個具體的協議,而是一個思想、一個框架。狹義的SDN是指的「軟體定義網路」,廣義的SDN的概念還延伸出了:軟體定義安全、軟體定義存儲等等。可以說,SDN是一個浪潮,席捲整個IT產業。

「大物移雲」的時代已經到來,傳統的底層網路架構已經無法滿足人類的需求,設備繁雜配置麻煩迭代緩慢,各種問題層出不窮。下一代網路,需要可編程按需定製、集中式統一管理、動態流量監管、自動化部署等,這就是SDN的出發點。

SDN時代,我們網路工程師/網路運維/IT運維人員對網路部署的方式,需要從「作坊式」的「手碼」配置,慢慢變成採用腳本語言/編程語言等方式對網路進行「編程式」部署,更快更好的響應業務需求。是的,產業鏈在融合、IT技術在融合、軟體和硬體在融合,變則通,不變則亡!

本課程/教案(發布在51CTO學院)是我在開發PingingLab內部數據中心課程的導論課,全程採用「手繪」方式製作課件,單單前面的導論就大概花了一個多月時間,從前期課程架構設計、到中間的繪圖(無數遍修改)、到後期實驗驗證抓包分析等等。總之,這是屬於未來的課程,在此共享給大家,希望給能大家帶來一點幫助。

本章節包含整個SDN課程的前瞻導論課,後續會發布SDN的理論課和實戰課。以下是本導論課程的課堂課件~

在線課程鏈接:《SDN(軟體定義網路)從入門到精通》 導論視頻課程(共4課時)

封面

作者

圖例

如何將兩個主機連接起來?

網線來了

網線不夠長腫么辦?

中繼器來了

中繼器口不夠腫么辦?

集線器來了

怕騷擾怎麼辦?網橋來了

不夠快怎麼辦?交換機來了

不夠遠怎麼辦?路由器來了

布線麻煩怎麼辦?無線AC/AP來了

不夠安全怎麼辦?防火牆來了

網路擁擠怎麼辦?流控來了

問題來了,一個網路到底需要多少設備?

家庭SOHO網路是這樣的

小型創業公司是這樣的

園區網路是這樣的

政務網是這樣的

數據中心網是這樣的

電信網/互聯網是這樣的

來一張全家福?原來這才是互聯網真面目!

有哪些廠商在生產網路設備?

如何對網路設備進行操作?

如何管理這麼多網路設備?

問題一:傳統網路管理和部署非常麻煩

網路設備之間如何協同工作?

如果網路發生變動?如何進行交互?

當流量暴漲拓撲膨脹時

問題二:分散式網路架構瓶頸凸顯

網路帶寬分配如何解決?

流量可視化難!

問題三:流量控制是棘手難題!

能否自定義設備的轉發策略?

能否將這個軟體運行在設備上?

問題四:無法按需,不可編程

SDN是什麼?

SDN是什麼?學術界,怎麼又是斯坦福?跨世紀的繼承!

SDN是什麼?商業界,一馬當先的Google,標杆案例B4網路!

SDN是什麼?運營商NFV/ETSI

SDN到底是什麼?

哪些組織在推動SDN發展?

SDN網路交互方式變革

產業鏈分析(玩家圖譜)

學習SDN的最佳姿勢

THE END

http://weixin.qq.com/r/I-rw6PnEYKQfrb2L968x (二維碼自動識別)

http://weixin.qq.com/r/ZnWpsVPEqg7VrRfS9yB0 (二維碼自動識別)

網路|安全|運維 視頻|書籍|資料 PINGINGLAB研究院~~~~


匆匆2014 盤點業界SDN控制器及SDN組織-IT168 網路通信專區


之前根據自己的經驗和學習狀況回答了如何去研究SDNOpenFlow?,到底What is SDN?

現有的SDN課程中在介紹SDN時,基本都是兩步走:

  • 第一步引用Nick McKeown的觀點,類比PC產業,從「Refactoring Functionality」的角度來定義SDN,直接了當非常容易理解,感覺豁然開朗。

  • 第二步引用Scott Shenker的觀點,從「Redefining Abstractions」的角度來思考SDN,有點形而上的意思,但是仔細研究,發現確實是那麼回事。後來看Larry Peterson在2013sigcomm上做《Zen and the Art of Network Architecture》的演講,才明白「技術是可以用哲學方式思考的」。

關於SDN的確切定義,我最喜歡ONRC的描述,用詞用句非常準確:

  • SDN is changing how we design, build and operate networks to better support growth, agility and innovation. SDN』s key attributes include: separation of the data and control planes; a uniform, vendor-agnostic interface, called OpenFlow, between control and data planes; and a logically centralized control plane that offers a consistent, network-wide view to programers or operators. The logically centralized control plane is realized using a network operating system that constructs and presents a logical map of the entire network to services or control applications implemented on top of it. With SDN, a network operator or third party can introduce a new service or customize network behavior by writing a simple software program that manipulates the logical map of a slice of the network. The rest is taken care of by the network operating system.This view of SDN supports boundless innovation, with a truly modular architecture that allows providers, operators and end users to mix and match the applications, network operating systems, hypervisors and switches they want to best address their requirements. Network managers can finally run applications to manage their network and deliver the unique performance, scale, service and functionality needs for their organization.

而在《SDN白皮書》中是這樣描述SDN體系結構的三個特點: In the SDN architecture,the control and data planes are decoupled,network intelligence and state are logically centralized,and the underlying network infrastructure is abstracted from the applications。後續13年底發布的《SDN體系結構概述》中的描述: The aim of SDN is to provide open interfaces enabling development of software that can control the connectivity provided by a set of network resources and the flow of network traffic though them, along with possible inspection and modification of traffic that may be performed in the network.

國內來看,彎曲評論陳首席之前認為(Logically) Centralized Controller是非常有意思的點(Jennifer在自己的課程中也特別認可這一點) ,衛峰談到SDN的三個本質屬性:1.控制與轉發分離,2.開放的編程介面,3.集中化的網路控制;@wang_russell博客中的一些列文章闡明了對SDN的理解,談到本質屬性,跟衛峰一個觀點。這三種觀點都不敢妄加評論, 大家可以比較分析一下。

下面是我個人的理解:

首要的當然是「控制與轉發的分離」,這裡的分離一方面是指decouple,所謂解耦合,在控制與轉發之間定義了清晰的開放介面,讓控制和轉發都可以獨立演進,在不斷改進的同時還能向後兼容;另一方面這裡的decouple又特指物理位置上的遠離,這一點與PC的控制/處理分離是不同的,與分散式系統的通信類似,依賴於消息。

其次是「控制面的抽象,轉發麵的抽象」,前者是指擺脫之前控制面的功能堆砌,解決一個問題多一個協議,多一個協議多一個控制面功能的尷尬,為了使得網路易用,控制面需要抽象,一旦抽象也能持續演進。與PC的類比來看,控制面的抽象就是控制面的軟體層次化,一方面NOS負責對轉發麵的機器級控制,同時給上層應用提供良好的開放介面,另一方面應用在更高抽象級別上建立模型,這樣一來,控制面本身也是NOS與Apps的分離,也能獨立演進,並且可以借鑒計算機發展以來軟體工程積累的經驗;後者是指對網路數據包處理行為進行通用化,建立通用轉發抽象模型,一個關鍵是通用轉發模型的體系結構,一旦這個定下來,之後就是修修補補和具體實現了。

再次才是「邏輯上的集中控制」,個人認為這一點已經不那麼清晰明確了(也可能是自己的局限性,沒理解透),尤其再加上Logically這個修飾詞,還有Kadoo的local controller的概念,到底(Logically) Centralized Controller在實現層面是怎麼操作的?當網路的規模足夠龐大時,就需要分散式的控制器集群來作為整個網路的控制面,這是一種層次型的分散式協作系統,還是將巨量的任務分成塊來處理?我更願意把最終的控制面理解成一個邏輯上的a big controller,一邊是network global view,另一邊是傳統軟體工程師。

為什麼要弄清楚SDN的本質屬性?其實之前挺不願意去討論「本質屬性」的,因為以我的理解深度可能還沒到這個程度,更多願意分析別人目前在各個方向上的成果,開源項目和產業界的產品策略,但後來發現如果要「保持SDN學習/研究的專註性,保持對各個技術方向的敏銳性」,就必須先弄清楚這個。假如什麼都是SDN,那麼SDN就什麼都不是了。

最後,小結一下SDN體系結構:類似PC的開放分層體系結構,data plane逐步通用化,control plane從data plane分離出來,擺脫之前的協議(功能)堆砌,進行抽象且要實現(Logically) Centralized,在控制面內部再次進行分層:NOS和Apps。

然後之前翻譯的SDN白皮書:Software-Defined Networking: The New Norm for Networks

譯者:@楊澤衛-MeshSr

傳統網路體系結構已經不能適應企業、運營商和網路端用戶的需求。ONF(Open Networking Foundation,開放網路基金會)提出的SDN將會改變當前的體系結構。這種架構將控制面和數據面分離開,邏輯上集中管理網路狀態信息,底層網路硬體設施由上層應用來抽象和定義。採用這種架構,企業和運營商擁有前所未有的可編程能力、自動化和網路控制能力,從而可以構建一個高可擴展性且足夠靈活的網路,以適應自己不斷變化的商業需求。

ONF是一個非盈利性產業聯盟,主導SDN的演進和體系結構關鍵部分的標準化,比如定義了SDN網路設備控制面和數據面交互方式的OpenFlow協議。OpenFlow是第一個SDN專用標準介面,在多個廠商網路設備之間提供高性能和更細顆粒度的流量控制。

基於OpenFlow的SDN已經部署在很多網路設備上,給企業及運營商帶來的好處有:

  • 可集中管理和控制不同廠商的網路設備;

  • 使用抽象自底層網路設施的通用API,作為系統和應用的調用介面,提升了網路的自動化和管理能力;

  • 加快了網路部署新服務和功能的創新速度,不需要像過去一樣配置每一個設備或等待廠商發布新產品;

  • 可供運營商、企業、第三方軟體供應商和網路用戶使用的通用編程環境,給產業鏈上各方提供了更多增收和實現差異化的機會;

  • 通過自動化的集中式網路設備管理,統一的部署策略和更少的配置錯誤,可提升網路的可靠性和安全性;

  • 更細顆粒度的網路控制,具備在會話層級、用戶級、設備和應用級實施簡單清晰且寬泛的控制策略;

  • 網路應用可以利用集中式的網路狀態信息,使得網路行為緊貼用戶需求,從而提供更加良好地網路斷用戶體驗;

SDN網路體系結構的動態靈活性,能夠在技術演進中保護現有基礎設施投資。同時將現有的靜態網路升級成一個可擴展的服務交付平台,能迅速響應不斷變化的商業、網路端用戶和市場需求。

The need for a Newnetwork Architecture(需要一個新的網路體系結構)

移動設備與終端內容的爆發、伺服器虛擬化和雲服務的出現促使產業界重新審視傳統的網路體系結構。大多數過去的網路是分層結構,由樹形結構的乙太網交換機組成。這種靜態體系結構適用於C-S計算模型為主的網路應用,卻無法滿足如今企業數據中心、園區網路和運營商網路的動態計算及存儲需求。加劇新網路體系結構需求的核心計算趨勢有:

  • Changingtraffic patterns:企業數據中心的traffic patterns已經發生巨大變化。其一,過去的CS應用主要是某個客戶端和某個伺服器之間的通信,而如今的應用會訪問不同的資料庫和伺服器,在數據返回網路端用戶之前,除了典型的north-south類型的traffic pattern,還產生大量的east-west(伺服器-伺服器)類型traffic。其二,用戶一直在改變網路traffic pattern,因為他們需要從任意設備、任意地點和任意時間訪問企業的內容與應用。其三,大多數企業數據中心的運維人員都在使用包含私有雲、公共雲及其組合的通用計算模型,會在WAN之間產生額外的流量。

  • The 「consumerizationof IT」:普通消費者持續不斷地用個人移動設備(智能手機、平板電腦和筆記本)訪問企業網路。企業IT面對來自這種需求的壓力,在保護企業數據和知識產權的同時,需要滿足合法託管授權的需求。

  • The riseof cloud services:企業廣泛使用公共雲和私有雲服務,導致這些服務空前增長。企業商業團隊想要按需靈活地訪問企業應用、基礎設施和其他IT資源。企業IT的雲服務計劃需要面對非常複雜的情形:越來越多的安全、compliance(適應性)和auditing(審計)需求,伴隨商業重組、併購以及預定情形一夜之間突然的改變。為了預先滿足這些服務,不論是私有或公有雲,需要彈性靈活的計算、存儲和網路資源,最理想就是一個通用視角和一套通用工具。

  • Big datameans more bandwidth:要完成如今大數據或百萬級數據的處理,需要數萬伺服器的大量並行處理,所有這些伺服器互相之間都要直接連接起來。大數據的持續增長,引發對數據中心網路容量持續增長的需求。超大規模數據中心網路的運營將會面臨一個艱巨的任務:在一個無法想像的超大規模網路中,要維護任意節點之間的不中斷連接。

Limitations ofCurrent Networking Technologies(當前網路技術卻不行)

傳統網路結構已經無法滿足如今的市場需求。面對縮減的預算,企業IT部門採用設備級管理工具與手工操作儘可能充分利用企業網路。運營商面對類似的挑戰,一方面越來越多的移動和帶寬擴展需求,另一方面逐步上升的設備花費和收入的減少,導致收益逐漸縮水。現有網路體系結構的設計本身就無法滿足如今用戶、企業和運營商的需求,導致網路設計人員受限於當前網路:

  • Complexitythat leads to stasis:如今的網路技術由大量相對獨立的協議組成,這些協議用於保證主機在任意距離、任意鏈接速率和任意拓撲結構上的可靠連接。過去數十年,為了滿足商業和技術上的需求,產業界為了獲取高性能、高可靠性、更廣泛的連接性,以及更強勁的安全性能,不斷地提出新的網路協議。

    這些協議又都是獨立定義,每種協議只解決一個特定問題,缺少對基本原理的抽象,導致當前網路主要限制在複雜性上。比如搬移或添加網路設備時,企業IT需要配置多個交換機、路由器、防火牆和web認證入口等,還要用設備級管理工具更新ACL(訪問控制列表)、VLAN、QoS和其他協議機制。還要考慮網路拓撲、廠商交換機模型和軟體版本的影響。考慮到這種複雜性和現在的靜態網路,企業IT必須最小化服務中斷的風險。

    網路的靜態特性與當前的動態伺服器環境明顯格格不入,而且伺服器虛擬化極大增加了需要網路連接的VM(虛擬機)數目,本質上改變了主機物理位置的想像空間。虛擬化之前,應用駐留在某個伺服器,主要是與選中的某個客戶端進行流量交互。而現在,應用分布在多個VM上,VM互相之間也產生流量。而且VM會不斷遷移,以優化和均衡伺服器負載,導致網路流的物理節點一直在快速變化。VM遷移給傳統網路在很多方面帶來挑戰,從地址劃分和命名方式,到分片式的、基於路由的設計基礎概念。

    不僅僅是虛擬化技術,很多企業都運營一個IP聚合網,包括聲音、數據和視頻流量。當前網路針對不同應用提供不同的QoS服務,而具體的實現卻依賴於人工操作,IT需要單獨配置每家廠商的設備,在應用級和會話級進行網路帶寬與QoS參數調整。總之,當前網路的靜態性,已經無法動態適應流量、應用和用戶需求的改變。

  • Inconsistentpolicies:為了實施更廣泛的網路管控策略,IT需要配置數千設備和各種機制。比如,每次新VM的啟動需要數小時,整個網路的ACL重新配置需要數天才能完成。今天複雜的網路,無法對持續增長的移動用戶實施統一的接入、安全、QoS以及其他控制策略,導致企業很容易遭受安全攻擊,缺乏自適應性的規則,引發其他負面的效果。

  • Inabilityto scale:數據中心需求的快速增長,必然引發網路規模的增長。超級複雜的網路運維需要配置和管理數千網路設備。通常IT採用基於traffic pattern預測的鏈路增長方式擴大網路規模,但是如今虛擬化數據中心的traffic pattern非常動態化且不可預知。Mega級的運營商,比如google、yahoo和facebook,要面對難以置信的網路可擴展性挑戰。他們在各自的計算池裡部署了大規模的並行處理演算法和相關數據。網路端用戶應用數的持續增加,導致計算節點的數量暴漲,在計算節點之間交換的數據量能達到千兆位元組級。這種公司級的超大規模網路,需要在數千伺服器(將來可能是百萬級)之間提供高性能且低成本的網路連接,人工配置方式是無法進行規模化擴展的。

    為了保持競爭力,運營商必須給用戶提供高附加值的差異化服務。多租戶(Multi-tenancy)應用場景加劇網路運維任務的複雜性,他們的網路要滿足不同用戶群的差異化應用和性能需求。這項任務的關鍵路徑非常清楚,如果給某個用戶的流量提供定製化性能控制或按需交付,在當前網路實現將非常複雜,特別是運營商規模的網路。他們需要在網路邊緣部署專用設備,增加了資金和運維方面的花費,以及新服務推向用戶的時間。

  • Vendordependence:運營商和企業通過部署新的服務和功能來快速響應不斷變化的商業及用戶需求。然而,這種響應速度會受限於廠商設備的產品周期,等待3年甚至更長的時間。廠商設備缺乏標準的開放介面,也限制了運營商定製網路以適應獨特應用環境的能力。

這種市場需求和網路功能之間的不匹配,帶來一個顛覆網路產業的機會。因此,產業界創建了SDN體系結構,並持續開發相關技術標準。

IntroducingSoftware-Defined Networking

SDN是一種新的網路體系結構,網路的控制面從轉發麵分離出來且直接可編程。控制面的這種變化,從之前緊耦合特定網路設備,到現在卻更接近計算設備,使得底層網路設施成為上層應用和網路服務的通用抽象,網路成為一個邏輯或虛擬的實體。SDN體系結構的邏輯層次如下所示。

從圖中可以看出,網路的智能部分(控制部分)邏輯上集中在軟體實現的SDN控制器上,在控制器上維護一個網路全局視圖。因此,整個網路類似單個包含應用和策略機制的邏輯交換機。利用SDN,企業和運營商能在一個邏輯點上控制整個網路,不受設備廠商的限制,從而簡化網路設計和運營。SDN體系結構也能讓網路設備儘可能的簡單通用,不再需要理解、處理和實現大量的網路協議,只需要從SDN控制器動態接收指令。(從這個點來看,SDN與傳統的處理器最大的不同就是,指令是動態接收的,在網路中需要傳輸一段時間。所以MPI這種多核的通信非常有借鑒意義)

也許最重要的,網路運維人員能像軟體編程一樣配置這個簡單的網路抽象,而不是依靠人工編碼去配置分散的大量網路設備。同時因為SDN控制器的集中智能管控,IT能實時改變網路行為,短時間內部署新的網路應用和服務,在幾小時或幾天就可完成,而不是現在的幾周甚至幾個月。在控制層把網路狀態集中起來,使得網路運營依賴動態自動的軟體程序,就可靈活的配置、管理、部署安全策略和優化網路資源。他們可以直接編寫這些程序,不用等設備廠商在專用網路中的封閉式軟體環境中實現。

除了抽象網路,SDN支持一系列用來實現通用網路服務的API,包括路由、多播、安全、訪問控制、帶寬管理、能耗利用率、任意形式的策略管理,以及商業目標的定製化服務。比如,採用SDN可以在校園網的無線和有線網路之間實施統一的控制策略。再比如,SDN使得可以通過智能服務和自適應系統管理整個網路。ONF正在研究能管理多家廠商設備的開放API,打開一扇門:按需分配網路資源,服務自適應系統,真正意義上的網路虛擬化,安全的雲服務。

而SDN控制層和應用層之間的開放API,使得商業應用能運行在網路抽象之上,充分利用網路的服務和能力,卻不需要關注網路實現的細節。總之,SDN使得網路不必「application-aware」且「application customized」,應用也不必「network-aware」和「network-capability-aware」。只有這兩者之間完全邏輯隔離,計算、存儲和網路資源才能真正做到最優化利用。

Inside OpenFlow

OpenFlow是SDN體系結構中控制和轉發層之間定義的第一個標準化通信介面,允許直接訪問操作網路設備(交換機和路由器等,不論物理還是虛擬設備)的轉發麵,轉發麵的開放介面使得目前單集成的、封閉的和類大型機的網路設備變得參數可配置化。沒有協議能完成OpenFlow這樣的任務,將網路控制部分從網路交換中分離出來,由集中控制軟體完成。

OpenFlow好比是CPU的指令集,如下所示。協議指定了軟體應用編程網路設備轉發麵的基本原語,就像編程計算機系統的CPU指令集一樣。

OpenFlow協議在網路設備和SDN控制軟體兩邊的介面都要實現,採用flow的概念來識別基於預定義規則匹配的網路流量,而SDN控制軟體可以靜態或動態編程這些規則。IT就能通過使用方式、應用和雲資源等參數定義流量通過網路設備的方式。由於OpenFlow允許在Per-flow基礎上進行網路編程,基於OF的SDN體系結構能提供更細顆粒度的網路控制,使得網路能實時響應應用級、用戶級和會話級的變化需求。當前基於IP的路由卻無法提供此級別的控制,兩點之間的所有flow總是沿著相同的路徑,即使是完全不同的應用需求。

OpenFlow協議是SDN的一個關鍵驅動因素,也是唯一允許直接操作設備轉發麵的SDN標準協議。初始應用在乙太網中時,OpenFlow式交換能擴展更多的應用實例。基於OpenFlow的SDN能部署在現有網路上,不論是物理網路還是虛擬網路。支持OpenFlow轉發的網路設備也能進行傳統轉發,這樣企業和運營商很容易逐步引進基於OpenFlow的SDN,即使多廠商設備的網路環境。

ONF負責OpenFlow的標準化,其技術工作組完成協議、配置、互操作性測試和其他任務,確保不同廠商的網路設備和控制軟體之間的互操作性。OpenFlow被傳統設備廠商廣泛採用,典型方式是簡單的固件或軟體更新。基於OpenFlow的SDN體系結構能無縫集成企業或運營商的現有網路基礎設施,給那些最需要SDN功能的網路部分提供簡單的演進路徑。

Benefitsof OpenFlow-Based SDN

對於企業和運營商來說,SDN使得網路可以進行差異化競爭,而不是無法避免的成本消耗。基於OpenFlow的SDN使得IT能適應高帶寬需求和如今應用的動態性,使得網路能適應不斷變化的商業需求,關鍵的一點是減少了運營管理的複雜性。

企業和運營商採用基於OpenFlow的SDN體系結構的好處有:

  • Centralized control of multi-vendor environments,SDN控制軟體能控制任何來自任意廠商的OpenFlow-enabled設備,包括交換機、路由器和虛擬交換機。而不用分別管理不同廠商的一組設備,這樣IT就能利用SDN自適應的管理工具,快速部署、配置和更新整個網路的設備;

  • Reduced complexity through automation,基於OpenFlow的SDN提供靈活的網路自動化和管理架構,可以開發各種自動化的網路管理工具,來取代當前的人工操作。這些自動化工具能減少操作開銷,降低操作錯誤引起的網路不穩定性,且支持新興的IT-as-a-Service與self-service provisioning模型。利用SDN,雲應用能通過智能的自適應性和預測系統來進行管理,從而減少因增加商業靈活性導致的操作開銷;

  • Higher rate of innovation,SDN加速了商業創新的速度,允許IT網路運營商通過顯式編程或重新編程網路,來實時地滿足特定的商業需求和變化的用戶需求。通過虛擬化網路基礎設施,將網路基礎設施抽象成獨立的網路服務。比如,SDN和OpenFlow使得IT有能力在幾小時內改變網路的行為,部署新的網路服務和功能,甚至是潛在的用戶;

  • Increased network reliability and security,SDN使得IT可以在更高級別定義配置網路和制定管理策略,通過OpenFlow分發給網路基礎設施。基於OpenFlow的SDN體系結構減少了單獨配置網路設備的需求,每次網路節點、服務或應用添加/刪除,或策略改變時;減少因為配置和策略不一致引起的網路出錯率;

    因為SDN控制器提供完全可視的網路控制,能確保接入控制、流量引擎、QoS、安全以及其他策略能在有線和無線網路設備之間保持一致性,比如分部辦公室、校園和數據中心。企業和運營商可以獲得很多好處:較少的操作開銷,更多的動態配置能力,更少的出錯機會,一致的配置和策略實施;

  • More granular network control,OpenFlow的flow控制模型允許IT在更細的顆粒度部署網路策略,包括會話級、用戶級、設備級和應用級,在更高級別抽象和自動化部署。這種級別的控制使得雲服務商支持多用戶租賃,且能在用戶共享網路基礎設施時保持流量隔離、安全和彈性的資源管理;

  • Better user experience,通過集中的網路控制和網路應用的狀態信息,SDN能更好的適應動態用戶需求。比如,運營商能通過自動化和可視方式給視頻服務提供最好的解決方案。在目前的網路環境,用戶必須明確地選擇配置方案,比如網路支持或不支持,會導致網路延遲和中斷,從而降低用戶體驗。在基於OpenFlow的SDN網路中,視頻App能實時檢測網路中的可用帶寬,自動調整適用於視頻的網路解決方案;

Conclusion

移動用戶、伺服器虛擬化、IaaS趨勢,以及快速響應變化商業環境的需求,帶來巨大的網路需求,而如今的網路體系結構卻無法滿足。SDN這個新的動態網路體系結構把傳統網路轉變為多樣的服務導向平台。

通過分離網路控制面和數據面,基於OpenFlow的SDN體系結構從應用中抽象底層基礎設施並使用起來,使得網路像計算機基礎設施一樣,可大規模編程和管理。SDN促進了網路虛擬化,使得IT團隊能用一種通用方法和工具來管理他們的伺服器、應用、存儲和網路資源。不論是運營商環境、企業數據中心和校園網,採用SDN都能提高網路的可管理性、可擴展性和靈活性。

ONF培育了一個圍繞SDN的活躍生態系統:橫跨大小基礎設施設備商,包括應用開發人員,軟體公司,系統和半導體廠商,計算機公司,加上各種網路端用戶。OpenFlow交換機制已經被包含進一些網路基礎設施中,包括物理上的和虛擬化的,以及SDN控制器軟體。網路服務和商業應用已經預留SDN控制器介面,在他們之間提供更好的集成和協調。

網路的未來將依賴越來越多的軟體,軟體可以加速網路創新的步伐,正如其在計算和存儲領域發揮的作用。SDN致力於把今天的靜態網路轉變為靈活的、可編程平台,能夠智能地完成:資源動態分配,規模化地支持龐大的數據中心,支持動態地虛擬化,更高級的自動化和安全的雲環境。伴隨這麼多優勢和驚人的工業界衝勁,SDN必將成為網路的新標準。

如下是ON.LAB給出的SDN簡史:

The roots of SDN can be traced back to projects such as RCP and 4D. Martin Casado invented SANE and Ethane in 2007 while doing his PhD, co-advised by Nick McKeown (Stanford) and Scott Shenker (Berkeley). Some of the basic SDN ideas can be traced back to SANE and Ethane (separation of control plane from forwarding, programmatic control, or flow-based). The technology really took off at Nicira, where the first versions of NOX and OpenFlow were created, and later the ONIX distributed controller.


傳統網路就像真人在踢足球,每個人自己思考下一步把球傳到哪兒,然後自己用頭或者腳傳出去。SDN就像你在打實況足球,球員怎麼傳球都是集中由你來控制。這就叫控制面和轉發麵的分離,並且控制面集中起來。集中後的控制面叫做控制器,類似遊戲手柄。控制器之上就是軟體,來操作控制器具體怎麼處理。就像你聰明的大腦來控制遊戲手柄。open flow就是控制器與網路設備溝通時的語言。


有很多人在詢問這個問題,為此,SDNLAB特別整理了一篇非常全的關於【SDN是什麼】的文章,SDN你必須知道的十大問題——SDN是什麼?, 收集整理了 盛科 @張衛峰 、ZTE中興通訊中心研究院系統架構部總工程師汪軍、南京疊鍶 @楊澤衛、知名網友 @KkBLuE 、Bigswitch研發專家吳鑫、北郵北京-小武、Pica8@賈彥民等對SDN的理解,整理了十幾篇這些高手對SDN的理解的優質文章,讓大家從不同角度、立體的認識SDN。小編也對這些文章進行了一些歸納和介紹。

1. 深入思考SDN的核心本質:從SDN=OpenFlow回到軟體定義網路

作者盛科張衛峰@盛科張衛峰,在SDN領域,衛峰總有很深刻的思考,這篇文章主要談論SDN的本質,其實很多人接觸SDN都很糾結這個單詞首字母的組合,顧名思義但又不能確定自己思考的是否正確,衛峰總撰寫了自己關注SDN以來對其認識的四個階段:從SDN=OpenFlow到SDN的三個本質屬性,再到狹義SDN、廣義SDN、超廣義SDN,最後一個階段又回到了SDN字面意軟體定義網路。或許這篇文章可以解決糾結SDN概念的小夥伴的很多問題,但他的價值就單單如此嗎?

2. SDN落地的實踐與思考:帶著問題找方案,別管定義啦

這篇同樣是衛峰總的作品,呼應上篇的核心本質,寫了關於SDN落地的思考,分析列舉SDN在不同領域的應用案例,歸納了SDN落地的一些阻力,又特針對OpenFlow的局限性進行了分析,最後也提出了自己對SDN落地的建議。衛峰總豐富的工作經歷和見聞讓這篇文章絕對是乾貨中的乾貨,閱讀時記得多喝水哦。

3. OpenFlow/SDN本質論

作者汪軍是ZTE中興通訊中心研究院系統架構部總工程師。文章分成了三個部分:SDN的需求及驅動力、SDN本質、SDN博弈。「SDN一點也不神奇,它是來自於IT領域的一種必然需求,是過去60多年來IT越來越去硬體化,以軟體獲得功能靈活性的一種必然趨勢。」文章雖寫於2012年,但仍很具參考價值。

4. 再思考SDN

這篇文章也是出自汪軍,介紹了SDN的兩種實現方式即OpenFlow完全控制的網路架構和部分廠商推出的設備可編程的架構,分析了兩種方式的優劣,並且結合產業鏈的博弈對SDN的應用場景進行了剖析,最後著重介紹了數據中心SDN的應用價值。作者從技術的角度對SDN從定義到實現進行了辯證性的分析,不容錯過。

5. SDN瞎子摸象

作者是南京疊鍶楊澤衛@楊澤衛-MeshSr,「技術是可以用哲學方式思考的」,「保持SDN學習/研究的專註性,保持對各個技術方向的敏銳性」,必須對SDN的本質屬性進行定位,「假如什麼都是SDN,那麼SDN就什麼都不是了」,「SDN的體系結構:類似PC的開放分層體系結構,data plane逐步通用化,control plane從data plane分離出來,擺脫之前的協議(功能)堆砌,進行抽象且要實現(Logically) Centralized,在控制面內部再次進行分層:NOS和Apps」。如此精彩的內容的確值得一讀。

6. 好吧SDN

作者@ KkBLuE知行合一,對於SDN的概念性的內容,並未進行咬文嚼字。作為務實的傑出代表,Kk對要接觸SDN的小夥伴提供了很多建議,看完文章不會有看技術文章看的頭大的感覺,雖然沒有長篇累牘的對SDN進行介紹,不過該懂的都get到了。正如文中所說「理智的看待SDN,一定要保持冷靜的態度,不要以為革命了,自己就能擺脫傳統,所有SDNer都在相信,SDN確實改變現狀,但是,如果讓你說說改變了什麼,你可曾說的明白呢?」,看看這個系列,你對學習SDN,理性看待SDN或許會有更清晰的思路,don』t wait,值得一讀。

7. SDN和NFV?

作者@ KkBLuE知行合一,用「為人性僻耽佳句,語不驚人死不休」這句話來形容KkBlue神的文風個人感覺比較貼切,可能高手就是這樣,能將深奧晦澀的技術問題用如此詼諧幽默的語句表達出來,或許正如Kk說的「糾結於概念,只是初級的學習階段,不如理解一下如何實現,達到的效果和未來的發展,似乎對自己有些幫助」。

8. 簡書SDN NFV系列文章

據了解,作者是來自Bigswitch的一位研發專家,吳鑫。他對SDN有很獨特的認識,認為「任何互聯網底層的創新都是自頂向下的」,《那些讓傳統網路捉襟見肘的新需求》、《SDN控制器究竟在幹啥》、《SDN究竟要不要管物理交換機》、《Proactive vs. Reactive》、《又一個大坑:SDN App Store》,幾篇文章以詼諧幽默的語句表達了作者自己對SDN的觀點。

9. SDN淺談

作者對SDN的特點概括為硬體標準化、軟體平台化、信息中心化。以PC生態圈類比,分析了網路設備發展的現狀和問題。從信息中心化的特點分析了SDN相較傳統網路的優勢,他認為SDN的集中控制可以使很多網路問題變得簡單,並且列舉了一些SDN的應用場景佐證。

10. SDN常見問題答疑

這篇文章以問答的方式歸納了一些關於SDN的常見問題,對理解SDN很有價值。

11. 親們,我們能為SDN做什麼?

作者@北京-小武,大家都在談,都在討論SDN的技術,但是我們能在SDN里做什麼?或者高尚點說我們能為SDN的發展做些什麼?讓小武告訴我們能為SDN做些什麼,或許能找到一些研究的點呢。

12. SDN,請別忽悠我

作者Pica8賈彥民@賈彥民,或許是因為互聯網信息的爆炸式傳播,讓SDN從誕生之日就變成網路界眾人樂此不疲的談資,SDN的應用案例似乎卻不慍不火,文章前半部分從三個方面分析了其原因:SDN是模式遷移(Paradigm Shift)的大動作、SDN的實現面臨諸多挑戰、網路向SDN的變遷(Migration)尚沒有可行的廉價的解決之道。接著對SDN的應用提出了自己的四點看法:不能迷信SDN、不能為SDN而SDN、利用開源(Open Source)的力量、以做互聯網產品的精神做SDN。本文雖沒有花太多精力解釋SDN是什麼,但對於SDN應用的思考絕對有參考價值。


如果你學習openflow,研究SDN,也許這兩個網站有點幫助:http://www.muzixing.com

http://www.sdnlab.com,有很多相關的知識!


恰好我現在手上的工作跟SDN有點關係,我來試著答一下吧。

(寫完才發現自己語文水平不行,好多術語都不知道中文翻譯,有些句子也沒有寫通順.....看得懂英文的還是先看英文版吧

http://yangsuli.blogspot.com/2012/11/what-is-softwae-defined-network.html

我會慢慢把下面的答案修正成規範的中文。)

SDN是用系統化,軟體化,抽象化的方法管理網路控制面(network control plane)的解決方案。

網路的實現分為data plane和control plane兩個部分。data plane關注數據的傳輸,control plane則關注網路的管理(ACL, middleboexes, DPI等等)。network data plane的分層設計簡單優美,取得了極大的成功;但是network control plane的管理,長期以來都是通過ad-hoc的方式在每個路由器節點上手工配置來實現的。而現在人們對網路control plane上功能要求越來越多,這種落後的方式不再能夠滿足需要。

於是學術界提出了(並且正在繼續提出)將網路control plan管理系統化,抽象化的一攬子解決方案,這就是所謂software defined network(SDN)。大致劃分一下,SDN的精髓主要把control plane管理的複雜度以三種方式抽象出來:

1. 分布狀態抽象(distributed state abstraction)

網路的狀態分布在大量路由器上,這就造成了處理上的困難。分布狀態抽象將處理大量路由器上大量狀態的複雜度抽象出來,向外部提供一個集中管理它們的方式。這樣其他部分就不用處理一個一個路由器查詢狀態的問題,它們處理的是一個集中化的任務。這就是分布狀態抽象(為集中狀態)

2. 網路虛擬化 (network virtualization)

SDN希望能夠讓網路管理員輕鬆的寫出網路控制程序(network controller),表達出自己管理網路的實際需要。注意現在他們只關心自己對網路的要求,而不需要關心這些要求是怎樣實現的。所以網路控制程序不需要看到整個網路的複雜拓撲,相反,它看到的網路只要複雜到能實現它的需求就可以了。例如你想實現一個訪問許可權(ACL)的功能,你看到的網路只需要有互相連接的主機就可以了,雖然實際上這些主機可能是由很多路由器形成很複雜的拓撲連接起來的。

換句話說,你看到的網路只是一個虛擬的網路,這就是網路虛擬化。

3. 轉發抽象 (forwarding abstraction)

SDN不僅需要管理路由器上的狀態,還需要向路由器發送指令,讓它們對網路中的包執行指定的操作。由於路由器不同,怎樣設置路由器的細節也就不同。轉發抽象把這些硬體上的差異抽象出來,向外界提供一個統一的對路由器進行操作的界面。

OpenFlow就是干這件事的。它提供了一個操作不同公司生產的不同路由器的統一規範。

但是OpenFlow只是干這件事的其中一種方法,學術界還提出過其它很多方法,只不過OpenFlow被工業界接受得最廣泛而已。

總結一下,SDN就是以抽象方式管理network control plane。SDN絕不僅僅是OpenFlow。SDN也不一定跟雲計算有關係,雖然數據中心由於其network複雜,通常有很強烈的使用SDN的需要。


之前一直再搞SDN,現在正學下ios,發現SDN就是把MVC設計模式放到網路控制中,其中View就是當前的網路拓撲等各種狀態,Model就是各個app所需要維護的邏輯,而後SDN中的Controller就是將各個APP映射到View的控制器


SDN是軟體定義網路,旨在實現使網路設備的數據層和控制層的徹底分離,比如:你的交換機全都是虛擬化的,你可以通過協議隨時改變網路拓撲、控制網路流量等而不需更改物理層面的設置,因為真正跑業務的交換機都是虛擬的,運行在物理交換機之上。

在SDN中很關鍵的一點就是要實現控制的通信協議,目前比較流行的是OpenFlow,OpenFlow在得到了OVS(一種開源的虛擬機換機)的支持後已經得到了很廣泛的應用,OpenFlow是通過多級流表來做控制的,具體細節請谷歌學術相關論文。


很久很久以前。。。有一個村子。。。

村裡的每一戶,都有一個男人和一個女人。。。

每一戶,都以搬磚為生。。。

從不同的地方,搬到不同的地方。。。

男人負責搬磚,女人負責告訴男人往哪搬。。。

每個家庭,都服從村委會的指揮。。。

村委會根據磚廠老闆的需求,跑去告訴每家每戶該怎麼搬。。。

最開始,大家搬磚搬得挺開心的,一切都很順利。

可是,磚頭越來越多,村子規模大了,村戶也多了。。。

每次搬磚計劃有變動,村委會都要挨家挨戶通知,實在太累了。。。

而且,因為村委會不能及時通知到位,影響了搬磚效率,磚廠老闆們也很不開心。。。

於是,村委會請來了一個名叫「傻大妞(SDN)」的姑娘。。。

這個傻大妞說:

於是,傻大妞把每個家庭的女人們都趕回了娘家。。。

然後告訴每個家庭的男人們,以後只能說普通話(以前每家每戶男人女人都說的是自己的方言)。。。以後只需要聽她和她團隊的。。。

傻大妞還告訴村委會,搬磚方案直接告訴她的團隊就行。另外,指導村委會成立招商團隊,專門對接各大磚廠。

於是,全新的搬磚方法開始運作了。。。

因為傻大妞全面接管了男人們。。。 所以村委會省事了很多。。。命令直接傳達給傻大妞。。。

效率得到提升,磚廠老闆們更開心了,想往哪搬,就往哪搬。。。

故事愉快滴結束了。。。

不過,好像也不是每個人都那麼愉快。。。

被fired掉的女人們▼

好了。。。不知道大家看懂沒有。。。

今天我們說的傻大妞,就是現在風頭正勁的「SDN」

關於SDN的定義,有很多種說法,比較流行的定義是下面這個:

SDN是一種新興的控制與轉發分離並直接可編程的網路架構。

它的核心理念是,希望應用軟體可以參與對網路的控制管理,滿足上層業務需求,通過自動化業務部署簡化網路運維。

其實說通俗一點,就是把「傳統軟硬體網路」給軟體化、抽象化了。

簡單來說,就是把現在複雜的傳統網路設備全部對上層應用不可見。上層管理層,只需要像配置軟體程序一樣,對網路進行簡單的部署,就能夠讓網路實現所需要的功能。不再需要和以前一樣,一個一個去配置網路上所有節點的網路設備。

SDN架構示意圖:

對比我們剛才的搬磚故事:

村子:通信網路

磚頭:數據

每一戶家庭:網路中的每一個網路設備

男人:網路設備的轉發功能

女人:網路設備的控制功能

磚廠老闆:上層用戶

村委會:網路服務提供商

SDN帶來的好處,顯而易見:

1 控制和轉發分離(男人和女人拆開),各個硬體廠家不能夠再針對每個硬體設計和安裝對應的軟體系統(淘汰了方言),使得硬體可以通用化。打破了壟斷,降低了設備成本。

2 SDN控制器進行統一管理(傻大妞團隊統一接管男人),實現了集中控制,降低網路維護難度(村委會不用挨家挨戶一個一個跑),縮短網路部署周期(磚廠老闆們靈活調運磚頭),降低運維成本。

對於那些女人們(傳統硬體設備商),傻大妞(SDN)確實並不是一個好消息,而對於磚廠老闆們(用戶)和村委會(服務提供商),傻大妞(SDN)肯定是很受歡迎的選擇。

所以,幾家歡喜幾家愁咯。。。

SDN雖然看上去很強大,但仍然處於發展期,很多技術細節還不夠成熟。

不過,SDN所代表的開放網路架構,肯定是未來網路的趨勢。

這樣的趨勢,不可阻擋。

好啦,相信大家已經知道SDN是什麼意思啦! 當然,SDN還有很多關聯的概念,例如OpenFlow、ONF、OpenDaylight,這期我們都沒有提及。不用心急,等以後我們再一個一個詳細介紹哈。

如果覺得回答對你有幫助,請一定不要忘記關注鮮棗課堂的公眾號哦!

http://weixin.qq.com/r/3jkmPtnEXoQhrZ1d92zM (二維碼自動識別)


最近恰好寫了兩篇文章,分別關於SDN和openflow:

  • SDN淺談 -覓珠人

  • Openflow簡介

SDN與雲計算的沾邊的是其controller。因為網路中的大部分運算都被集中起來,因此需要一個強有力的controller(可能是一個cloud computing cluster)來提供運算能力。

另外,正如 @鄭軍 所說的那樣,enable SDN後,cloud的靈活性會大大上一個台階。


SDN是在網路設施之上構建的虛擬層,而像虛擬機(比如VimWare, VirturlBox)是在計算機硬體之上的虛擬層,雲計算應該是和虛擬化技術有比較大的關係吧。

http://www.36kr.com/p/101506.html?mobilet=1334894670574


OpenFlow一種通信協議,試圖解決以往IP領域交換機與路由器頑疾的,詳見: http://en.wikipedia.org/wiki/OpenFlow

SDN Software Defined Networking,OpenFlow最主要的特性,消除傳統網路設備的廠家鎖定的問題,所有的網路設備真正融合起來。

優勢包括:

一、完全意義的網路標準化,會導致CISCO設備和JUNIPER設備使用的是相同的「軟體」,互操作完全沒有問題了;

二、更靈活的網路配置與管理,因為都是軟配置了,策略一旦定義好,通過全局下發就能生效,不用象現在如果是異型廠家設備組網配置管理那個費勁樣了;

再說說跟雲計算的關係吧,這是兩個領域,但是可以相輔相成,因為更好的網路特別是感知能力提升與靈活性提升必然會增強雲計算的特性,如:靈活擴展、可靠等。


簡單說說自己的理解,可能比較偏向於技術與協議。

SDN(軟體定義網路)是一個概念,結合NFV(網路功能虛擬化),實現了所有網路架構的大一統,是互聯網的顛覆性架構。

SDN的核心思想:把網路上所有的信息都集中到一個核心控制器(Controller)上處理,控制器可以針對信息編程,直接處理整體網路的邏輯。此時控制器全知全能,它知道任何事,可以實現任何協議,對於網路來說,控制器就是上帝。

SDN的核心優勢:邏輯簡單。擴展性無與倫比,寫新協議非常快,可以閃電般的完成下一代的網路進化。麻麻說我再也不用考慮STP、OSPF、TRILL、BGP這些亂七八糟的協議了……

SDN更多優勢:你可以切分網路平面來做數據隔離;你可以引入CDN思想來提高性能;你可以針對Controller數據編寫DPI的app;你可以在上面玩機器學習;這都是傳統網路比不了的。

OpenFlow是一個標準,也即SDN的具體實踐,做法很簡單,將所有的報文抽出關鍵欄位,抽象為流(flow),而所有流都交給Controller控制。

OpenFlow技術細節,詳見我的翻譯稿:OpenFlow 1.3核心概念翻譯與理解

雲計算,現在對網路的主流解決方案已經逐漸往SDN靠攏,當然,至今大部分的方案都是概念,要過兩年才會成為產品,但無法否認的是,兩年之後,SDN將會在雲計算中一統天下。


最高贊的答案已經說的很好了,說幾句自己的看法。

SDN的起源,是《OpenFlow: enabling innovation in campus》,第一次提出了OpenFlow交換機的概念,核心是可編程性。既然OpenFlow交換機可編程,那麼控制器就是一個理所當然的存在,用於指揮變成「小白」的交換機。

之所以OpenFlow會火,是因為它帶來了無限的靈活性。運營商想,以後我有什麼需求都自己編程就好了,不需要給大廠商滋滋滋的送錢啦。控制器的管理還相當方便,再也不用雇CCIE了。

但是OpenFlow的旅程又不是一帆風順的,性能和可擴展性是它最大的軟肋。OpenFlow取締了傳統路由器和交換機「自治聯盟」的實現方式,一切都是控制器欽定的。那麼控制器和交換機的溝通壓力就很大,對於WAN這種跨域的實現來說,控制器和交換機之間的延遲會達到幾百毫秒,很多決定很難及時作出。其次,控制器指揮那麼多交換機,自己肯定壓力山大。從性能角度說,因為沒有協議限制,你會發現OpenFlow轉發真心慢,各種優化都無法實現。

這些問題都不是一定不可以解決的,但是運營商往往意識到,雖然現在不用給大廠商送錢了,自己得花錢組個SDN團隊解決這些問題,一點都不省錢啊。

所以現在我的態度是,SDN給出了一個很好的思路。但是我們仍然要尊重傳統網路。畢竟沒有它,我們不可能在這指點江山激揚文字。說SDN「顛覆」了傳統網路還為時尚早,更多是為網路發展提供了一個可能的改進思路。說句吐槽的話,OpenFlow的初衷明明是「enable innovation」而不是拿這個投入生產啊,出了差錯,你們是要負責任的。


SDN,簡單說就是以前整個網路環境中的設備很分散,數據包(人,車)每經過一個路口,都走事先規定的岔道(節點),但是不知道前方路況就走下去(轉發)。一直循環,直到走到終點。而現在這個數據包(人,車)要根據路網中心(搜集全網節點信息的統一平台)獲取的道路(到下個節點間)信息來確定,而最終決策這個道路(到下個節點)選擇與數據包(人,車)速度(速率)與數據包(人,車)多少(流量)等是網路工程師事先編好的程序(控制器)執行處理,網路工程師可以在全局考慮全路段的數據包(人,車)情況,而這個程序的具體實施過程要運行在openFlow之類的環境之上,網路工程師不需要了解具體每部實施的細則,具體細則由openFlow之類環境決定。


SDN作為下一代網路體系結構已經達成共識,那麼到底SDN是什麼?

軟體定義網路。關於它的定義已經有很多了,有一個說法叫盲人摸象,來自不同陣營的人有不同的解讀。簡單理解就是一種網路架構的創新,將控制與轉發分離,並提供開放的可編程介面,具體定義概念可以百度。

其中的OpenFlow和NOS是什麼?

openflow一般有三層含義。可以指openflow交換機,openflow協議,或者乾脆表示南向那一坨。但是,不特別說明的話,一般指的還是 openflow協議,即sdn的南向介面。應該指出,南向介面並非只有openflow,但它是目前用的最多的。

SDN Apps又是什麼? 前面提到南向介面。sdn還有北向介面。這裡的南北是相對於控制器來說的。基於北向介面開發的就是sdn的app,功能不一,取決於需求。比如可以實現按需預約帶寬,為不同需求的用戶搭建虛擬化網路等等。

和雲計算有什麼關係? sdn是網路層技術,雲計算不算太懂,但我一直感覺是一個很空泛的概念,更多的是利用網路云為用戶提供計算服務吧,應該屬於應用層面的技術,不是網路架構。兩者應該沒直接關係。



軟體定義網路,顧名思義,即可編程網路。網路的主要功能就是傳遞數據,從二層轉發,三層轉發,一直到VPN等高級應用,都在不斷的解決數據通信時的特殊場景。從傳統的網路轉發中看,每增加一種新需求,就要增加或擴展一種特性,而從提出草案到真正的商用,需要相當長的時間。網路節點間的控制協議越來越多,越來越複雜。

SDN存在的目的就是簡化現有的網路結構,通過抽象出來的數據原始描述作為可編程最小元素,對這些所有的元素排列組合,定製轉發邏輯,使轉發層面集群,按照定製的規則轉發數據。

所以按照這個思路,控制轉發分離是一個主要思路。實際上這種結構也同樣有它的問題,比如,大集群的時候,對於控制器來說壓力很大,同樣需要分布開,另外如何處理這麼多的連接也是個問題,怎麼做帶內管理?這些都是需要解決的問題。

為什麼現在SDN還沒有特別的殺手級應用呢?其實我個人覺得原因有兩點:

1 傳統網路發展這麼多年,網路協議棧設計的十分複雜了,從電信號,鏈路層,處於2.5層的vlan,mpls,三層的ip,傳輸層的TCP/IP等,更不要說一些控制協議(看看openflow定義的匹配項即知),實在太多了。實際上of也是僅僅針對傳統的一種折中方案,去盡量適應,因此在很多的處理上都是力不從心,只能應用在相對簡單的場景中,比如數據中心。在運營商的網路中使用,感覺還看不到時間表。

2 現階段傳統網路做的真的很全面,現在基本看不到非sdn才能做的東西,當然,這個界限也是很模糊的。比如傳統路由器也可以功能虛擬化,比如一個vrf就是一個虛擬路由器,我可以將傳統網路設備虛擬成很多nfv資源,一樣可以實現所謂sdn的效果。很多廠家就是這麼做的。也被稱之為SDN。

所以你看,SDN不過是個概念罷了。


推薦閱讀:

TAG:雲計算 | OpenFlow | SDN |