SDN現狀
(一)SDN現狀
SDN誕生的背景
SDN技術其實要從更往前一點的技術說起,也就是傳統(現在主流)TCP/IP協議,得益於TCP/IP的巨大成功,出現 IP over Everything、Everything over IP,以至於大學時期計算機網絡課程的內容的基本上就是圍繞着TCP/IP協議在講。直到SDN的出現。
那個時候講網絡的典型模型,總是會有一個這樣的結構。
圖 2
TCP/IP模型下的網絡通信
基本上就是在講應用的數據如何一層一層地封裝、一層一層的解封裝最后傳到應用的手中。也都會舉那個的著名的郵差的例子,協助理解在這樣一個分層的架構中數據的處理過程。在這個過程中,每一層都有每一層的處理機制。三層設備代表着路由器、二層設備代表為交換機。路由的重點在如何選路、如何轉發,並就以此展開,各種路由協議之間差異。交換的重點在數據幀的轉發、組播、廣播、接入的安全。每一層都有每一層任務,每一層都有不同處理規則。而所有不同廠家、不同類型的設備之間都通過標准的協議進行交互。
而在這種背景下,網絡的設計方案也按照設備功能的不同划分出不同的層級。每個層級都由大量專門的硬件設備實現特定的轉發任務。交換機負責二層的轉發,端口的連接、准入、二層廣播。路由器負責與其他網絡的連接、選路、NAT等操作。除此之外網絡中還存在着大量FW、IPS、IDS等專用硬件設備,執行某一類特定的任務。
如果有新業務需求需要增加新的流量類型、或者要修改協議的解析方式、則要么更換設備、要么添加新的設備。所以網絡功能升級往往都是以年為單位,層級化組網、扁平化組網、新增二層特性等等。設備廠家通過在網絡中加入新的設備來推動用戶網絡的更新換代。
圖 3
08年某網絡廠家的數據中心外聯區網絡設計方案
這種情況帶來的是像思科這樣的廠家在一波IT發展的浪潮中迅速崛起。各個廠家爭相在自己的設備中加入各種獨有的特性,響應使用的需求,同時屏蔽其他的競爭對手。也讓思科這樣的廠家一時分光無限,賺取巨額的利潤。
但是這樣的架構帶來的問題也非常突出。
1.傳統的網絡中同一層面上所有的節點都是平等,需要建立特定(二層、三層)的鄰居關系之后在設備之間以廣播或者組播的方式傳遞設備內部的轉發表,才能實現基礎的互聯互通。
圖 4
這種去中心化的結構中每一台設備都是智能的,保證了網絡不會因為單個設備的實效而網絡整體失效。但是帶來的問題也非常顯著。所有交換機和路由器都需要管理和單獨配置,大量復雜和重復的工作。這種方式當網絡規模小時還能勉強接受,而一旦中型網絡中有上百台設備需要配置,而大型網絡中有上萬台設備需要配置時,維護工作就變得不可接受了。而每當網絡中路由信息發生變更的時候,則要迎來整網的收斂,更新的信息要以廣播或者組播的方式洪泛全網。當然,通過良好的規划,能夠將這一范圍控制在盡量小的范圍內。但是協議交互帶來的效率低下的問題無法解決,想要靈活地實現網絡的調整,幾乎完全不現實。
有一些網絡管理軟件的廠家也宣稱能夠極大地簡化這一工作量,一定程度上實現設備的自動發現、配置批量下發。此類軟件往往通過標准的snmp、或者是telnet、ssh,通過模塊化的配置管理命令和文件實現管理功能。在面臨多個廠家、多個種類型的設備混合組網的情況下,效果往往要打折扣,因為硬件廠家的相對封閉,基本很難完全獲取所有設備的配置和狀態信息。更別提自動實現流量選路優化、路由變更、地址池增刪等自動化的管理功能。
圖 5
某網管軟件的網絡設備管理功能
不同廠家的之間CLI配置命令不同,甚至同一廠家,不同軟件版本之間的配置都有差異。網管提供的信息也不同。想彌補這之間的差異,要靠大量的人力和經驗。
除此之外,還有一個非常突出的問題是,在一個大型的網路中,用戶很難對網絡中流量的走向、流量的類型有一個直觀的認知。網管人員很難知道其關心的數據究竟是怎么在網絡中穿梭的,只能靠假設和盡量減少路由的復雜程度,對路由信息進行削減。這直接導致網絡故障難以定位,逐步排查問題非常困難,費時費力。
2.傳統設備為了滿足轉發性能的需求,大量的功能(例如二層、三層數據包的處理、加密解密等)都是直接通過硬件芯片來完成。這樣能設計出轉發性能非常強勁,而且延遲非常低的網絡設備。但是ASIC芯片的功能出廠之后就已經被固定了。想要加入新的功能、新的業務只能重新設計芯片,一般ASIC從設計、定型整個生命周期為5-10年,想設計一塊新的ASIC芯片快一點也至少需要2年。這中間新的業務需求都只能憋着。
圖 6
理解CPU與ASIC的關系,對理解交換機的控制和數據層面非常有幫助,國外有一篇博客寫得很通俗易懂。提煉出來就是:
圖 7
- ASIC芯片收到包之后,會先讀取二層幀中的以太網類型字段,從而得出包的類型,不同類型的包通過不同的協議進行解析。如:arp、IPv4、IPv6、IPX等。
- 如果遇到諸如以太網類型為0x0800(IPv4數據包)、目的地址為路由器的地址或者組播地址(如:224.0.0.5)的數據包時,ASIC芯片會將數據包通過內部的PCIe總線轉發給CPU,CPU再對數據包進行處理。
- 這個時候CPU會根據包中的信息進行相應的操作,如:更新路由表、ARP表、回應報文等。回應的報文也同樣再通過ASIC芯片轉發出去。
- 如果是一般的數據包,需要通過三層或者二層轉發去目的地時,則ASIC芯片會直接通過查詢路由表、MAC地址表然后從交換機上相應的端口轉發出去。
- 整個過程中CPU充當交換機的大腦,也就是傳統交換機的控制層面,用來運行內置的各種復雜的協議和功能。而ASIC則是根據已知的規則執行轉發操作,充當的是交換機內部的數據層面。
當然,詳細展開的話的,其實還有很多內容,包括用來各種表所用的內存的類型、協議的識別等。但其實理解了這個之后,對了解SDN控制和數據層面的分離就很容易了。
博客原文地址如下,有興趣的可以去看看 :
http://thenetworksherpa.com/data-control-plane-separation-sortof/
3.廠家對用戶的鎖定
雖然標准的TCP/IP、OSPF、spanning-tree 等能夠滿足一般網絡最基本的通訊需求,實現各個廠家的設備互聯互通。看似一片和諧、非常開放。但額外的功能的都是要付錢的而且很容易被廠家綁定。比如:思科將交換機和路由器內部軟件的版本分為lan base、ip base、ip service、Advance IP service等,不同的版本支持的功能特性又不同,如lan base僅支持基本的二層轉發的功能,連靜態路由都不支持,而ip base版本支持一些基本常用的路由協議如rip,igrp等,而ip service版本則支持cisco擁有的全部路由協議如ospf,eigrp,IS-IS等。
圖 8
這一塊隱性的開銷容易被忽視
除此之外,還有支持語音的IP voice、支持安全特性的security等等版本的軟件。如果一個企業幾個分支之間需要通過隧道互聯,而且企業內部有一些話機需要路由器作為小型的語音的網關的話,則需要付出昂貴的license費用,並且各個分支都必須要用到同一廠家的設備。特別是有一個細節是,在相當長的一段時間內,使用思科路由器的VPN一類安全加密功能時,不能選使用諸如:AES128、AES256之類的加密算法,只能使用加密性較差的DES。當時我還一度以為是配置錯誤,后來才了解到是因為美國對中國的出口技術限制,導致在中國公開銷售的ios內將這一部分的功能屏蔽,即使有錢也無法使用。這還是只是整個IT行業的冰山一角,由此可以知道,傳統的網絡廠家,在保證技術優勢的情況下,給終端用戶帶來的極大的不便和高昂的成本。
這種為新功能、兼容性買單的現象對於有及大量設備采購需求的運營商來說尤為突出。
SDN的介紹
所以當最開始openflow協議想要建立一種標准的設備的控制協議時,立即獲得大家的親睞,特別是深受其苦的運營商。
SDN的理念很簡單,核心是:1、控制層面和數據層面的分離,實現集中化的控制;2、開放的可編程接口,以靈活實現業務需求;3、實現網絡配置和管理的自動化。
在一個典型的SDN架構中,通常包含以下角色:
圖 9
網絡設備:既包括了傳統網絡廠家的交換機、路由器(如:cisco、huawei、juniper等),也包括了各種軟件的插件(如:linux bridge、ovs、dvr等),這些設備依舊承擔流量的轉發工作。
控制器:這是SDN的精髓了,傳統設備的控制層面的功能全部被集中到了控制器,每一個網絡設備不再單獨運行各種協議、計算路徑等,只需要接收控制器下發轉表和配置。控制器用來與網絡設備通信的協議,則被稱為南向協議,包括:openflow、OF-CONFIG、POF、OVS DB、snmp等,主要用於將網絡設備運行所需要的各種配置下發給網絡設備。基於控制器的功能開發的各種上層應用,則是通過北向接口與控制器進行通信。
應用:可以是網絡管理軟件、也可以說各種業務系統、編排等。
這很好的解決了上面的問題:
1、所有的設備可以通過南向協議進行統一配置,底層的差異被抹去。
2、新的業務需要新的協議或者處理方式,可通過開放的編程接口靈活實現
3、底層的差異被抹掉后,廠家無法再控制用戶,用戶咸魚翻身。
由此可以看出,SDN並不是說的不要物理設備了,也不是一單純的部署一個neutron或者ODL控制器.其核心的理念是:業務通過網絡開放的接口來實現全網的統一控制,最終實現網絡配合業務的敏捷和高自動化。其上面的業務可以有很多種,可以是網絡直播、可以是自動選路、也可以是雙十一開始前的自動巡檢。其下的設備也可以包括傳統的路由器、Openflow交換機、OpenvSwitch等。而很多SDN的廠家都在中間搞事情。
(二)SDN領域的相關組織和發展現狀
1、ONF
開放網絡基金會(Open Networking Foundation)2011年由 德國電信, Facebook, Google, Microsoft, Verizon, 和 Yahoo!創立,這其中絕大多數的成員都是用戶單位。ONF主要工作就是制定了openflow、OF-Config這兩個的用於SDN控制器和網絡設備之間通信的標准協議。SDN控制器使用openflow協議可以直接向轉發設備推送轉發規則,使得全網的設備都能具備可編程性以能夠及時響應業務的需求。由此也可以看出ONF組織把重點放在了控制平面與數據平面之間的交互上。除此之外,ONF組織還通過技術顧問組和芯片廠商顧問委員會來推動SDN相關的標准交換機和芯片的發展。
這些都與ONF的目標息息相關,該組織的核心訴求可以用一句話來概括:通過推動SDN標准的落地,來實現使用“標准”的協議在“標准”的硬件上,通過編程接口實現各種網絡的功能,最終擺脫硬件廠家的束縛(重點)。這里面標准的協議就是openflow,標准交換機即良好支持sdn的白牌交換機。其中白牌交換機的核心即使其中的SDN芯片,其要求具備超高的轉發性能,同時可編程,這是傳統的ASIC芯片和np芯片都無法同時滿足的要求。
如果這一目標最終成真,將徹底地改變計算機網絡這一行業。那么任意廠家生產的白牌交換機都將能完全滿足這些大型用戶的使用需求,傳統網絡廠家這么多年建立起來競爭壁壘將不復存在,這也是這些企業大力推進SDN標准化的原因之一。當然這也絕對是傳統的網絡設備廠家(如,思科、juniper等)願意見到的,並直接導致了ODL這一組織的崛起。
圖 11
ONF組織主要支持的ONOS是一個開源的SDN控制器平台,
“而獲得ONF支持的ONOS(開放網絡操作系統)則被運營商們寄予眾望。ONOS,是由最早創造發明SDN技術的斯坦福、伯克利等知名大學聯合運營商、設備制造商發起的非營利性開源社區組織,其目標是創建一個運營商級的開源SDN網絡操作系統,滿足運營商網絡遷移到SDN的需求。有分析師指出,很多運營商願意接受ONOS,因為它可以為運營商提供敏捷和靈活性,並且有可能使其擺脫設備供應商的束縛。”
2、OpenDaylight
網絡行業的巨頭們自然不會願意看到ONF在SDN領域一統江湖,那他們將在行業內變得毫無話語權,最終淪為低附加值的代工工廠,但是又無法逆SDN的潮流而行。因此另起爐灶建立了另一個開源的SDN項目:ODL(Open Daylight)。與ONF不同,OpenDaylight是由思科和IBM 聯合其合作伙伴建立。其初創成員包括:微軟、博科、思科、思傑、戴爾、愛立信、富士通、IBM、英特爾、瞻博網絡、微軟、NEC、惠普、紅帽和VMware等。我們可以看到這些成員都是設備供應商。這其中一個重要角色就是思科,思科不僅占據着組織重要的話語權,並且因為在控制器中強行加入思科自己控制器的代碼而與Big switch產生分歧,最終直接導致Big switch這一曾經ODL組織的鉑金會員的退出。
ODL的訴求是盡量在現有交換機設備的基礎上,實現網絡控制和轉發層面的分離,以及網絡功能的接口化和可編程化。所以在ODL的架構中,SDN控制器的南向協議不僅支持了標准的openflow協議,還包括其他協議以及部分廠家的專用接口等。各個廠家也都在自己的交換機中加入有自己特色的東西,而非純的openflow實現。
因此ODL架構在保留底層硬件設備復雜性的同時,盡可能地將網絡功能抽象成網絡應用的接口,供用戶使用,而不需用戶去關心底層復雜的配置。
ODL組織也在積極推動着SDN技術的快速發展,其因為有各大廠家的強力加持,發展速度非常的快,幾乎3個月就能推出一個新的版本。
圖 12
ODL擁有一套模塊化、可插拔靈活地控制平台作為核心,這個控制平台基於Java開發,理論上可以運行在任何支持Java的平台上,其官方文檔推薦的最佳運行環境是最新的Linux(Ubuntu 12.04+)及JVM1.7+。
ODL控制平台引入了SAL,SAL北向連接功能模塊,以插件的形式為之提供底層設備服務,南向連接多種協議,屏蔽不同協議的差異性,為上層功能模塊提供一致性服務,使得上層模塊與下層模塊之間的調用相互隔離。SAL可自動適配底層不同設備,使開發者專注於業務應用的開發。
類似淘寶這樣地超大型網絡,也花費了大量的精力在底層設備的適配上。不同廠家、不同設備、甚至不同軟件版本都有着配置的差異。這其中涉及到ovsdb、openflow、OF-Config、snmp、SSH、CLI等等。只有花費大量的經歷完成底層操作可行后,才能實現底層設備的抽象化。業務的調整、上線不需要關心底層的差異。並最終實現網絡的自動化運維、管理。
這些工作對於一般小的企業來說基本等於不可能,甚至對於一些運營商來說都難以實現。這也是為什么當前ODL穩定性差,BUG較多的原因之一。如今各個核心的網絡廠家都參與進來之后,從源頭開始解決這一問題后,情況也許能夠有改觀,但是這里面的坑不是一時半會能夠填完的。
圖 13
ONF和ODL之間的爭鋒,其實代表了兩種SDN思路之間的對抗,究竟會誰勝誰敗現在還很難說。ONF強調統一的協議和統一的硬件,消除專用的系統和設備,開放網絡能力平台,是理想情況下SDN該有的形態。而現實是各個網絡廠家們明顯會押注在ODL上,缺少傳統硬件廠家的支持,ONF能夠發展到什么地步還不清楚。從架構上來說,一旦openflow從標准到技術到設備完全普及之后,顯然ONF的架構將比ODL這種解決方案的架構更加優秀。但是目前看來未來一段時間內主流的解決方案將是ODL。
3、 IETF
IETF是互聯網工程任務組(Internet Engineering Task Force)的簡寫。IETF成立於1985年年底,是全球互聯網最具權威的技術標准化組織,主要任務是負責互聯網相關技術規范的研發和制定,當前絕大多數國際互聯網技術標准出自IETF。
早在SDN提出之前,IETF就對很多類似SDN的方法和技術進行了探索研究,與ONF相比較,IETF的相關工作更多的是由網絡設備廠商主導,聚焦於SDN相關功能和技術如何在網絡中實現的細節上。
在IETF第85次會議上召開了IRS BoF會議,關於IRS問題的描述、需求、應用場景和架構模型等方向的草案文稿已超過10篇,會議討論同意成立IRS WG,並將研究組命名為I2RS(Interface to the Routing System)。I2RS的研究草案提出的支持的SDN體系架構如圖7-3所示。
I2RS主張在現有的網絡層協議基礎上,增加插件(plug-in),並在網絡與應用層之間增加SDN Orchestrator進行能力開放的封裝,而不是直接采用OpenFlow進行能力開放,目的是盡量保留和重用現有的各種路由協議和IP網絡技術。I2RS的路由系統需要發布網絡拓撲和狀態,通過網絡元數據進行計算選路,並將相關結果傳遞給各設備的控制平面。I2RS接口的使用者可能是管理應用、網絡控制器或者對網絡定制的用戶應用,目前I2RS工作組還沒有形成RFC和工作組文稿。
4、ETSI
2012年10月,AT&T、英國電信BT、德國電信、Orange等7家運營商在歐洲電信標准協會(ETSI)發起成立了一個新的網絡功能虛擬化標准工作組NFV ISG(Network Functions Virtualisation Industry Specification Group),目前已有52家網絡運營商、電信設備供應商、IT設備供應商,以及技術供應商參加。
NFV的研究和標准化進度分兩個階段,2013年為第一階段,主要是定義針對部分網絡的功能虛擬化標准,如IMS和EPC核心網絡,並從基本網絡功能、網絡設備的虛擬化開始着手。NFV的第一次會議於2013年1月15日至17日召開,這次會議明確了NFV的工作目標是制定支持虛擬功能硬件和軟件基礎設施的要求和架構規范,以及發展網絡功能的指南,第一批規范將於2013年年底前完成。第二個階段到2014年年底結束,將涵蓋所有的核心網和接入網絡中網元的功能虛擬化標准。
ETSI NFV的重點是網絡功能的虛擬化,並且在架構中體現了更多的運營商的思路,包括在南向協議中加入了ForCES、PCE-P等協議。
http://www.c-fol.net/news/content/31/201604/20160428083652.html
http://www.sdnlab.com/3991.html
中國電信CTNet-2025網絡架構白皮書