博主想借這篇文章瞎子摸象,聊聊white box,目的是拋磚引玉。回顧2023年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落地的關鍵。
黑盒測試難還是白盒測試難?
要回答這個問題,我還真覺得有點難。要分析黑盒測試與白盒測試,就先要看看這兩種不同的測試方式各自的特點。黑盒測試 1.不是特別關注待測系統的內部設計和實現 2.側重輸入的資料和輸出 3.關注功能上的覆蓋 4.要求測試者對業務要熟悉 黑盒測試的入門門檻低,沒學過計算機和軟體的人也可以做。事實上,從我了解...
雜談隨感 2 創新是革新還是革命?
通常來自於乙個系統內部,來自於現有系統的既得利益者,來自於系統內深諳其道的人,來自於系統內深根細作的人。革新者的首要目標是維持現有系統的存在和現有系統大多數人的利益,其二才是革新,革新的目標也是維持現有系統長期存在和發展,乙個對現有系統不熟悉的人,是無法提出和實施有效的革新的,這是乙個1 1 2的鬥...
什麼是 黑盒測試 白盒測試 靜態測試?
單元測試 看源 分析程式內部邏輯結構 整合測試 對設計的檢測 系統測試 測試功能 交接測試 即確認測試 測試是否符合使用者需求 黑盒測試法 一般用來確認軟體功能的正確性和可操作性,目的是檢測軟體的各個功能是否能得以實現,把被測試的程式當作乙個黑盒,不考慮其內部結構,在知道該程式的輸入和輸出之間的關係...