SDN+白盒 是賭博還是革命?
博主想借這篇文章瞎子摸象,聊聊white box,目的是拋磚引玉。回顧2014年SDN領域的重大事件,Juniper的OCX應該排得進前三,它非常強烈的向市場傳遞出一個信號:white box的大潮真的來了。如何讓這個大潮來得更猛烈,如何讓我們這些押注SDN+white box的賭徒們分得一杯羹,是一個十分讓人興奮的話題。
首先明確一下這篇文章里所說的white box是指bare metal switch + ONIE,不預裝其他任何軟件。用戶可以選擇在交換機上安裝怎樣的操作系統。用服務器做類比就是裸機+BIOS,上面可以跑windows也可以跑linux。這里還請大家不要糾纏于定義的細節。另外,本文也不會討論virtual switch,只討論physical switch。
按照SDN宏偉藍圖最初的構想,在SDN+white box的產業鏈上本來應該有這樣四個關鍵的環節:交換芯片,交換機硬件軟件,控制器,應用開發。但SDN發展這么多年,根本沒有發展成這個樣子。博主觀察到的現有企業大概是這樣幾類:1) 交換芯片,2) 交換機硬件 and/or 交換機軟件, 3) 交換機軟件 + 控制器,4) 控制器。博主在這里斗膽預測:單純的控制器廠商會越來越無足輕重,第3類廠商會從第1、2類廠商那里獲得越來越多的話語權,并逐步成為整個產業鏈的核心。至于為什么不會有真正意義上做SDN應用的廠商存活下來,博主在之前的文章中已經有所涉及(當然,系統集成商會永遠存在)。那些錢多任性的大鱷當然什么都做啦。
博主做出以上預測的理由從本質上來說只有兩點,第一:在現階段,掌握交換機硬件比掌握控制器有更大的話語權。第二:只有將控制器和交換機軟件進行整體設計和施工才能讓SDN真正落地。
第一點不難理解。交換芯片和交換機是硬件,控制器是軟件。不管控制器多么復雜,它的研發成本和周期比起交換芯片和交換機來說都不在一個數量級上。單就這一點而言,新一代開源控制器的出現對整個行業的影響力遠遠不及新一代轉發芯片的出現。
更重要的是,不管哪家客戶膽大到樂意去嘗試SDN,他們在貨比三家時一定會在三個問題內問道:你家的SDN方案有哪些硬件交換機支持?這些硬件交換機用的什么芯片和CPU?靠譜不?對SDN控制平面的關心反倒在次要的位置上。這也是為什么所有SDN解決方案提供商都會在最顯眼的地方把“Hardware Compatibility List”列出來,并且這個list里面每增加一款硬件設備,都會請媒體做一次報道。于是這個市場里面就產生了這樣四個陣營:
1)那些主流的交換機大廠。他們根本不屑于與任何SDN控制器廠商合作出方案,而是索性自己把控制器和解決方案都做了,不過這個控制器只能控制他們自家的交換機。只是他們會砸錢在多種渠道上打造開放的公關形象。
2)控制器廠商和第二梯隊的交換機廠商合作推出完整的SDN解決方案。之所以強調完整,是因為如果你的解決方案中有一個環節還需要客戶自己想辦法的話,這個生意八成會黃掉。這個陣營是推動是SDN發展的中堅力量,其中的交換機廠商是這樣pitch客戶的:我們的交換機支持張三李四等控制器廠商的datacenter/WAN/TAP解決方案。如果你不用那些解決方案,也沒問題,因為我們采用的是最主流的交換芯片+ONIE,上面可以裝載任何廠家的操作系統和南向API agent。控制平面可以用SDN控制器也可以跑傳統的2/3層協議。控制器廠商會這樣pitch客戶:我們有完善的datacenter/WAN/TAP解決方案,可以和王五趙六等數家廠商的交換機兼容,有開放南向接口和行業通用的北向接口。這樣的合作至少給20年不變的網絡界帶來兩個東西:開放和競爭。博主真心認為這種模式是SDN繼續發展壯大的正途。
3)第二梯隊的交換機廠商。這些交換機廠商硬件研發流程成熟,往往會根據重復出現的應用案例定制自己的交換機軟件甚至是交換芯片,并且能夠取得一定的市場份額。這類企業目前面臨的最大問題恐怕是沒有完整的解決方案,需要客戶在他們的交換機基礎之上,進行控制器的深度定制開發。但實際情況是絕大多數SDN控制器廠商都在努力完善與datacenter/WAN/TAP相關的解決方案。與控制器廠商合作轉型到第二個陣營,會讓這個陣營的交換機廠商獲得快速的壯大。
4)單純的控制器提供方。他們的客戶絕大多數是科研機構和學校。大多數需求是控制mininet或者由openflow交換機搭成的小規模testbed。對于這個陣營的企業,如果不和交換機廠家聯合推出完整的SDN解決方案并轉型進入第二個陣營,要有大作為會十分困難。
接下來,博主會簡要討論一下為什么SDN控制器和交換機軟件一定要整體設計和施工才會讓SDN落地。具體的分析會細分成不同的話題在之后的文章中陸續討論。SDN中心控制的思路確實極大的簡化了網絡管理的復雜程度,不過博主愚鈍,曾經天真的以為可以將所有的網絡控制邏輯都放在控制器里面,交換機只負責轉發和packet-in就好了。但這種極端的想法讓博主四處碰壁,很久之后才幡然悔悟:要根據具體的問題來決定究竟將控制邏輯放在控制器里還是offload到交換機上。比如之前博主講到的ARP,將2層的ARP控制邏輯放在控制器上(主要是“種樹”),而將3層的ARP控制邏輯offload到交換機上(主要是default gateway),目前看來就是一個不錯的選擇。需要認真作出取舍的設計決定還有很多: ICMP, DHCP, LLDP, LACP, NAT,動態路由協議等等。現在面對每一個控制平面甚至是數據平面的feature,博主都會問自己:究竟該把這個feature放在控制器上還是offload到交換機上會帶來更多的repeatable use cases?這個思維訓練讓博主受益匪淺。
總結一下博主的觀點:控制器廠商和交換機廠商合作推出完整的SDN解決方案是white box革命的關鍵;交換機軟件和控制器整體設計和施工是SDN落地的關鍵。