初步剖析SDN架构
第一章?概述
1.1 SDN概念
SDN(Software Defined Network)——軟件定義網絡。為了擺脫傳統網絡對于網絡硬件的依賴,方便對網絡進行調整、改變和升級,SDN應運而生。
SDN是一種將網絡控制功能與轉發功能分離、實現控制可編程的新興網絡架構。這種架構將從控制層從網絡設備轉移到外部計算設備,使得底層的基礎設施對于應用和網絡服務而言是透明的、抽象的,網絡可被視為一個邏輯的或虛擬的實體。
1.2 SDN特征
轉控分離:網元的控制平面在控制器上,負責協議計算,產生流表;而轉發平面只在網絡設備上。
集中控制:設備網元通過控制器集中管理和下發流表,這樣就不需要對設備進行逐一操作,只需要對控制器配置即可。
開放接口:第三方應用只需要通過控制器提供的開放接口,通過編程方式定義一個新的網絡功能,然后在控制器上運行即可。
SDN控制器不同于網管和規劃工具,網管仍然需要設備的控制平面負責產生轉發表項,并沒有實現SDN的轉控分離;規劃工具下發的規劃表項是參數,而SDN控制器下發的表項是流表,用于轉發器轉發數據包。
1.3 SDN的發展趨勢
SDN產業發展趨勢
第二章 SDN架構剖析
2.1 SDN網絡架構
SDN是對傳統網絡架構的一次重構,由原來的分布式控制的網絡架構重構為集中控制的網絡架構,SDN網絡架構如圖1-1所示。
圖 1-1 SDN網絡架構
應用層:這一層主要是各種上層應用程序。
控制層:這一層是系統的控制中心,負責網絡的內部交換路徑和邊界業務路由的生成。
轉發層:這一層主要是轉發器和連接器構成的轉發網絡。其中轉發表項由控制層生成。
2.2 SDN架構工作原理
控制器收集網元資源信息,收集拓撲信息,生成SDN網絡內部交換路由。
網元資源信息包括轉發器注冊信息、上報資源過程、MPLS標簽信息、VLAN資源信息、接口資源信息等;
拓撲信息包括節點對象、接口對象、鏈路對象等;
控制器收集拓撲信息的目的是為了根據網絡資源,計算合理的路徑信息,通過流表的方式下發給轉發器。
通常控制器作為服務端,轉發器主動向控制器發起控制協議簡歷,通過認證后,控制協議建立連接。
2.3 SDN三種模型解析
2.3.1?網絡虛擬化模型
市場上最簡單的SDN模型就是網絡虛擬化模型,因初創公司Nicira流行,但是該公司在2012年被VMware收購。網絡虛擬化的主要目標是消除LAN分區限制(這種限制存在于虛擬LAN(VLAN)標準中),通過在一些基于以太網的虛擬網絡架構中實現多播解決可擴展性的問題。
2.3.2 “漸進式”方法
第二種SDN模型可以稱之為“漸進式”模型。這種模型的目標就是為了加強網絡軟件控制和運營而產生,但是是在當前網絡技術的邊界之內。為了實現這一點,網絡服務提供商可能需要對標,比如VXLAN、GRE、BGP和MPLS,并且用這些標準將網絡分區,成為虛擬社群,并且管理流量和服務質量。提供商可能需要將自身的解決方案結合到同一套管理接口中,這套接口可以為云服務環境所用,通過DevOps工具或者云虛擬接口。
2.3.3 OpenFlow模型
最后這種SDN模型就是OpenFlow模型,也是和SDN屬于最緊密相關的一個。OpenFlow取代了交換機或者路由器中傳統的、基于發現的轉發表創建,取而代之的是集中控制轉發,也意味著一個集中控制器項目對應每一個設備的轉發表。這樣做為中央控制節點提供了完整的規則,例如網絡如何分段或者虛擬化,流量如何管理等。任何控制器和支持OpenFlow兼容版本的交換機的結合都可以用于這種SDN模型。最后這種SDN模型最大的好處就是這種模型是基于SDN的概念來建立的。
2.4?模型分析
云提供商糾結于VLAN的分段限制,或者面臨著VLAN的多播問題,首先可能關注虛擬化網絡的SDN模型。這種模型也能夠覆蓋漸進式SDN模型,盡管協調管理接口人存在很多問題。在數據中心網絡設備中投資體量巨大的提供商可能更傾向于這種方式來避免冗余成本。未來的主流發展方向應該會傾向于OpenFlow,因此應該關注支持OpenFlow的服務和設備提供商,尤其是在部署新設備的時候。
第三章?傳統架構和SDN架構
3.1?傳統架構數據的控制與轉發
傳統網絡是分布式控制的架構,每臺設備都包含獨立的控制平面、數據平面。
分布式控制是指在傳統IP網絡中,用于協議計算的控制平面和報文轉發的數據平面位于同一臺設備中。路由計算和拓撲變化后,每臺設備都要重新進行路由計算過程,并稱為分布式控制過程。在傳統IP網絡中,每臺設備都是獨立收集網絡信息,獨立計算,并且都只關心自己的選路。這種模型的弊端就是所有設備在計算路徑時缺乏統一性。
3.2?傳統網絡架構
??????? 傳統網絡架構包含:管理平面、控制平面、數據平面。
管理平面:主要包括設備管理系統和業務管理系統,設備管理系統負責網絡拓撲、設備接口、設備特性的管理,同時可以給設備下發配置腳本。業務管理系統用于對業務進行管理,比如業務性能監控、業務告警管理等。
控制平面:主要功能為協議處理與計算。比如路由協議用于路由信息的計算、路由表的生成。
數據平面:是指設備根據控制平面生成的指令完成用戶業務的轉發和處理。例如路由器根據路由協議生成的路由表對接收的數據包從相應的出接口轉發出去。
3.3 SDN架構的優勢
3.3.1?硬件標準化/軟件平臺化
這概念說新穎不新穎,軟件行業從OS誕生的那一天,就已經這么做了。但是網絡設備行業一直沒有形成這樣的標準。我個人猜測原因應該是大廠商對于市場的壟斷,各個網絡設備廠商推出自己的設備時都將軟硬件緊密的聯系在一起,使用該公司的設備后就必須使用相應的軟件,這樣就可以套牢用戶,使得用戶不會輕易換其他廠商的設備。但是SDN可以形成一個生態系統,從而可以很好的解決這一問題。
3.3.2?簡化網絡
SDN的網絡架構簡化了網絡,因為網絡內部的路徑計算和建立全部在控制器完成,控制器計算出流表,直接下發轉發器,因此消除了很多網絡內部協議,比如RSVP、LDP、MBGP、PIM組播協議等。未來大量的東西向協議會消失,取而代之的則是南北向控制協議不斷演進來滿足SDN的網絡架構需求。
3.3.3?配置管理簡便
在之前的課程設計中,查看過大型網絡下防火墻在生產環境下實際配置,我發現這玩意兒不是一個好配置的主。動輒成百上千的address, policy, VPN等無論是CLI還是WebUI配置都是一種折磨。配置麻煩是傳統網絡設備的一大問題。另一個問題是服務器動態遷移帶來的網絡管理問題。這個問題是服務器虛擬化革命帶來的,現在的網絡設備對此基本無解,因此SDN網絡架構的優勢就體現出來了,可以統一配置,減少工作量。
3.3.4 Debug便捷
沒做過網絡設備的人可能不知道網絡軟件的Debug有多么辛苦。一般軟件Debug步驟:
1. 信息搜集
2. 縮小問題空間,直至找到根本原因
3. 重復1
對于網絡軟件而言,信息搜集是一道坎,你要能拿到網絡拓撲下面各個相關網絡設備的配置和問題出現時的日志。這絕對不是一件容易的事兒。不信你問工程師。他們每天要死要活地抓日志,一次很難成功,兩次,三次成功都算蒼天有眼。就算成功抓到了需要的日志,想想AT&T給你個路由震蕩的問題,一個大網絡拓撲下數十臺設備,數兆的配置信息,數十兆的日志。相關的,不相關的,反正都拋給你,你需要的量的時間進行查找原因,真的會有奔潰的狀態。
SDN因為集中控制,所以可以,指定相關的網絡設備同時打開需要的debug開關,將日志收集到中央云上。
運行一組predefined analysis tool分析問題的所在;建立一個virtualized environment,replay packets。
最后,可能有80%的問題都能找到一個前例;剩下那20%,到工程師手上,也是小范圍的有價值的數據,甚至分析報告。
3.4?傳統網絡架構演變SDN網絡架構
3.4.1?業務流量的明確劃分
將原有業務按照一個應用對應一個區域的方式劃分,在使用SDN后,將會變成一個服務體系作為一個區域劃分。在每個區域中劃分多個工作組來準確區分業務模塊,更加清晰地了解業務之間的訪問關系。
3.4.2?無限定的橫向擴展
在現有的SDN網絡中,通過使用選播網關的方式將網關部署在各個葉節點上。即使有新設備加入網絡,無論處于任何區域,都可以準確的進入相對應邏輯位置。
3.4.3?控制平面和轉發平面解耦合
在傳統的網絡交換設備中,控制平面和轉發平面是緊密耦合的,被集成到單獨的設備盒子中。各個設備的的控制平面被分布到網絡的各個節點上,很難對全網的網絡情況有全局把控。因此SDN網絡一個重要的理念就是把每臺單獨網絡設備中的控制平面從物理硬件中抽離出來,交給虛擬化的網絡層處理,整個虛擬化的網絡層加載在物理網絡上,屏蔽底層物理轉發設備的差異,在虛擬空間內重建整個網絡。
3.4.4?集中化的網絡控制
將控制平面進行集中控制,中央控制器可以獲取網絡資源的全局信息并根據業務需要進行資源的全局調配和優化,如服務質量負載均衡功能等。同時集中控制后,全網的網絡設備都由中央控制器去管理,使得網絡節點的部署以及維護更加敏捷。
第四章?總結
傳統網絡已經經過半個世紀的發展,有很多人也為之努力,凝聚了無數人的智慧和心血,但是其架構存在天生的缺陷和不可修改性,導致在很多應用場景上都存在心有余而力不足的表現,并且只會越來越復雜。
SDN雖然誕生沒多久,但是其已經表現出非常強大的生命力。傳統網絡在安全、可靠性、可維護性和性能上還有存在很大的優勢,但是隨著SDN相關設備的更迭與發展,一定會慢慢縮小與傳統網絡架構的距離,這種優勢也勢必會越來越弱,而SDN的優勢時傳統網絡架構所不能及的,所以SDN憑借自身的優勢一定會不斷占領傳統網絡的領地,成為主流的網絡架構。
總結
- 上一篇: 悦虎144固件,华强北二代悦虎144固件
- 下一篇: Posix消息队列