最近SD-WAN在業界炙手可熱,越來越多的企業客戶準備或已經上馬SD-WAN。在此風生水起之際,各式各樣的SD-WAN供應商自然輪番出招、應接不暇。筆者在深入接觸了一些國外主流商用SD-WAN廠家的技術方案后,希望能對這些主流商用SD-WAN方案中所采用的最根本的SDN特性進行一些分析,供大家討論。
說實話筆者在深入了解業界主流商用SD-WAN之前,對SD-WAN名字中Software Defined的認知更多的停留在傳統SDN所強調的控制面和轉發面分離的模糊概念上。筆者曾先入為主的以為SD-WAN中采用的轉控分離就是沿襲學術界SDN的經典套路,采用類似Google 基于Openflow 構建的橫跨全球數據中心的B4 SD-WAN 的思路--畢竟Google 的B4 WAN是 SD-WAN的鼻祖啊。
然而在初步接觸了幾大商用SD-WAN廠商的技術方案之后,筆者驟然有種被欺騙的感覺:這些SD-WAN解決方案中所謂的“SDN Controller” 其實就相當于一個大家已經使用了快20年的BGP Route Reflector, 和 SDN 沒什么關系。這完全顛覆了筆者的世界觀,令我非常的失望和不安。
但隨著進一步的深入了解,筆者發現這些所謂的“SDN Controller” 和傳統的BGP Route Reflector 雖有神似,實則不同。具體說來,這些冒牌的"SDN Controller" 雖然沒有像學術界或Google B4 SD-WAN所使用的SDN Controller中轉控分離做的那么理想和純粹,但確實也繼承了SDN的一些神韻。如此一來,SD-WAN的名字也算差強人意。下面就請聽我慢慢道來:
首先我們來講講主流商用SD-WAN方案中這些所謂的"SDN Controller" 和傳統的 BGP Route Reflector 究竟有多么的相似。我們借用全球SD-WAN Top 2 廠商 Viptela 的一張系統架構圖(圖一)來解釋一下。(注:目前Viptela 和 VeloCloud 誰是SD-WAN市場老大還存在爭議,但他們兩個以及絕大多數SD-WAN廠商的系統架構都非常類似。另外有趣的是,這兩個Top 2 Vendors 最近分別被Cisco和VMware收購了, 可見這個市場的熱度, 競爭的激烈, 以及日趨飽和)。
圖一:Viptela SD-WAN 系統架構 (http://packetpushers.net/podcast/podcasts/show-222-viptela-software-defined-wan/)
在圖一中,vSmart Controller 就是Viptela 所謂的 “SDN Controller”, 用來負責與用戶各個站點的CPE設備(圖中的vEdge Routers)進行通信從而交換用戶各個站點之間的路由信息。所以從控制平面來看,各站點的CPE設備彼此之間不再交換路由信息,而是統一發送給中心控制器。之后再由中心控制器將路由信息傳遞給其他的CPE設備。這種集中控制的思想正是SDN的精髓所在。然而如果仔細來看這些CPE設備與中心控制器之間是如何來交換路由信息的話,我們發現目前主流SD-WAN廠商都是采用基于BGP協議的路由交換 。BGP? 是的,您沒有看錯,正是那仙福永享,壽與天齊的BGP,而不是因為SDN炒的火熱的新貴小開OpenFlow(注:通常SD-WAN 廠商都會在BGP的基礎上做些改動和擴展,比如Viptela將改動后的BGP協議稱為Overlay Management Protocol (OMP), 具體細節可以參見他們為OMP申請的專利:https://www.google.com/patents/US9467478。)
看到這里,各位看官可能會有這樣的疑惑:如果CPE設備和中心控制器都是基于BGP的路由交換,那么這和傳統的BGP Route Reflector有什么區別呢?(注:這里附上一個傳統的BGP Route Reflector 的架構圖供您參考,其中心思想就是各個BGP Router之間不再建立網狀的BGP Session來交換路由,而是統一發給中心的BGP Route Reflector ,再由他傳遞給其他所有的BGP Routers??梢娖渑cSD-WAN 里的SDN Controller多么的相似)
圖二:傳統的BGP Route Reflector架構
BGP Route Reflector早就有了, 比今天大家熱炒的SDN早了快20年。這些主流SD-WAN廠商所采用的技術真的算是SDN 嗎,還是掛羊頭賣狗肉,新瓶裝舊酒?
這種疑惑伴隨著筆者許久,直到筆者仔細研究了這些SD-WAN廠商對BGP協議的改動和擴展,以及這些解決方案中對集中式Policy的強調和使用,才發現SD-WAN里的SDN Controller大大超出了傳統BGP Route Reflector的能力范圍。下面是筆者總結的所謂的SDN Controller與傳統BGP Route Reflector的幾個主要區別:
1.目標的不同
傳統的BGP Route Reflector 主要是為了解決iBGP網絡里對BGP Router之間需要Full Mesh互聯的問題。BGP Route Reflector 可以有效的將所需的BGP Session的總量從Full Mesh時的N^2的數量級降低到Hub-Spoke時的N的數量級。這對減少超大規模的BGP網絡的復雜度非常重要。
而反觀 SD-WAN 里的 SDN Controller, 它最主要的目的是提供一個集中管理和配置Overlay網絡的工具。同時SDN Controller除了提供以Hub-Spoke方式的路由交換,還提供了簡化的安全密鑰交換(用于數據平面CPE設備之間IPSec隧道的建立),中心化的Policy 控制,以及VPN 標簽的分配,等等。所以SD-WAN中的SDN Controller的目標和功能遠遠超出了傳統BGP Route Reflector單純的路由交換。
2.路由傳遞實現方式的不同
傳統的BGP Route Reflector在交換路由時,只是簡單的將從一個CPE Router處收到的路由信息原封不動的“反射”給其他所有的CPE Routers, 這也正是Route Reflector (路由反射) 名字的由來。
然而 SD-WAN里的SDN Controller 在收到從一個CPE Router 發出的路由信息之后,在SDN Controller 做了很多的計算和處理,然后才將過濾和處理后的路由信息發給相應的CPE Routers (注意不一定是其它所有的CPE Routers)。通常SDN Controller 所做的處理包括:根據用戶定義的Policy來修改路由的參數,綜合所有已收到的路由信息計算出到達任何用戶子網的最佳路由,將上面計算出的最佳路由信息發送給某些特定的CPE Routers (具體由用戶Policy決定)。從這里我們再次可以看到 SD-WAN里的SDN Controller 比傳統的BGP Route Reflector 要復雜得多,功能也要強大的多。
當然除了以上總結的兩點主要區別以外,他們之間還有其它一些小的區別,比如路由所攜帶的參數信息,最佳路由的算法等,此處不再展開。
如果您能堅持看到這里還沒有睡著或者改刷朋友圈的話,那么恭喜您!-您已經掌握了目前市場上主流SD-WAN廠商所使用的最核心的路由技術及其與SDN這個大帽子的真正關系。當然SD-WAN不僅僅是SDN,我們今天所討論的路由技術也只是SD-WAN所使用的眾多技術中的一個。雖然筆者認為如何在Overlay層面構建路由是SD-WAN最核心的關鍵技術,然而我們不得不承認SD-WAN在Overlay路由基礎之上所提供的多種多樣的功能和服務(比如Application Aware Routing, 集中化和界面化的Policy Control, Zero Touch Provisioning (ZTP), VPN 和 Segmentation )才是SD-WAN真正吸引客戶的地方。關于SD-WAN那些琳瑯滿目,吸引客戶爭先恐后掏出荷包的功能,我們下次再專門找個機會聊一聊。