SDN是業(yè)務(wù) OpenFlow是技術(shù)
很多人都不了解OpenFlow和軟件定義網(wǎng)絡(luò)(SDN)之間的差異。這并不奇怪,因為這兩種技術(shù)是如此地緊密相關(guān)。然而,它們又是不可替換的。OpenFlow是配置網(wǎng)絡(luò)交換機(jī)的一種協(xié)議,采用的過程類似于API。而SDN則是描述網(wǎng)絡(luò)基礎(chǔ)設(shè)施內(nèi)部可編程接口的一個術(shù)語,這樣的接口可以讓網(wǎng)絡(luò)服務(wù)的配置高度自動化。SDN正在被市場營銷人員所濫用,用來指稱各種不同的技術(shù)。
事實上,SDN的定義很清晰。一個SDN網(wǎng)絡(luò)有三個架構(gòu)層:物理網(wǎng)絡(luò)、SDN應(yīng)用和SDN控制器。我們來仔細(xì)分析一下這三個層。
物理網(wǎng)絡(luò)。這是網(wǎng)絡(luò)的最底層,由各種物理設(shè)備構(gòu)成,形成所有IT基礎(chǔ)設(shè)施的基礎(chǔ)。我們之所以使用術(shù)語“交換機(jī)”,是因為OpenFlow改變了以太網(wǎng)交換機(jī)的工作方式。就本文而言,你還要考慮物理基礎(chǔ)設(shè)施的虛擬交換機(jī)部分。
SDN應(yīng)用。這是SDN設(shè)計中最容易看到的層,是交付各種服務(wù),如交換機(jī)/網(wǎng)絡(luò)虛擬化、防火墻和流量均衡器(注意:基于OpenFlow的負(fù)載均衡器叫做流量均衡器)等的各種應(yīng)用所在的層。這些應(yīng)用有點兒類似于我們今天在專用硬件上所使用的軟件。網(wǎng)絡(luò)中的大部分創(chuàng)新都將出自SDN應(yīng)用。
SDN控制器。SDN控制器是中間件,是整個SDN架構(gòu)的關(guān)鍵所在。該控制器必須與網(wǎng)絡(luò)中的所有物理和虛擬設(shè)備相集成。該控制器通過與物理網(wǎng)絡(luò)設(shè)備相應(yīng)的SDN軟件中去抽象各種物理設(shè)備。控制器與網(wǎng)絡(luò)設(shè)備之間是高度集成的。在OpenFlow環(huán)境中,控制器將使用OpenFlow協(xié)議和NETCONF協(xié)議與交換機(jī)進(jìn)行通信(OpenFlow是API,它發(fā)送流數(shù)據(jù)給交換機(jī),而NETCONF則是網(wǎng)絡(luò)配置API)。
在現(xiàn)有的各種SDN方式中,一般是廠商提供應(yīng)用,控制器是單一產(chǎn)品。舉例說,Nicira/VMware將其應(yīng)用于控制器打包成一個專利的應(yīng)用堆棧。思科則將其控制器打包成OnePK產(chǎn)品,嵌入思科設(shè)備上的IOS軟件中。我預(yù)計思科不久也會發(fā)布一款主控制器。Big Switch最近發(fā)布的商用版本SDN控制器可提供在控制器上運行的兩個應(yīng)用:Big Virtual Switch和Big Tap。
顯然,控制器是網(wǎng)絡(luò)架構(gòu)中的關(guān)鍵。它必須為各種應(yīng)用提供API,才能讓應(yīng)用呈現(xiàn)其有用的功能,所以爭奪SDN市場統(tǒng)治地位的最激烈的戰(zhàn)爭也將在這里發(fā)生。
SDN API:新的戰(zhàn)場
SDN架構(gòu)有兩種不同的網(wǎng)絡(luò)API:北向的和南向的。OpenFlow是南向的API。OpenFlow是工業(yè)標(biāo)準(zhǔn)API,可在以太網(wǎng)交換機(jī)中配置幀轉(zhuǎn)發(fā)硅片,定義網(wǎng)絡(luò)的流量路徑。除此之外,負(fù)責(zé)監(jiān)管OpenFlow協(xié)議的標(biāo)準(zhǔn)組織開放網(wǎng)絡(luò)基金會(ONF),發(fā)布了一個叫OF-CONFIG的設(shè)備配置API。OF-CONFIG采用NETCONF XML數(shù)據(jù)格式來定義語言。
思科的OnePK也是南向的API。圍繞著OpenFlow是否足以滿足所有的聯(lián)網(wǎng)需求有過太多的討論,尤其是關(guān)于從包交換網(wǎng)絡(luò)向流量網(wǎng)絡(luò)遷移的問題。在這樣的遷移中潛藏著一些尚未解決的問題,例如在現(xiàn)有協(xié)議STP和OSPF之間需要有互操作性等。
北向API在SDN架構(gòu)中提供一種機(jī)制,為企業(yè)提供服務(wù)或者應(yīng)用。每個應(yīng)用都會為網(wǎng)絡(luò)設(shè)備形成流量表視圖,然后向控制器發(fā)出分發(fā)網(wǎng)絡(luò)設(shè)備的請求。
例如一個虛擬交換應(yīng)用可在物理和虛擬交換機(jī)網(wǎng)絡(luò)中構(gòu)建所有節(jié)點的網(wǎng)絡(luò)圖/數(shù)據(jù)庫。在多租戶以太網(wǎng)中,該應(yīng)用可形成一組流規(guī)則,仿真以太網(wǎng)VLAN,同時又保持每個租戶流量的完全隔離。這些流規(guī)則包含入口和出口流量值,還有源和目的MAC地址。
從服務(wù)到控制器的北向API目前尚未有定義。我認(rèn)為有三個原因。首先,由于實用案例還不夠多,不足以激勵大廠商進(jìn)行投資。其次,目前市面上只有為數(shù)不多的控制器存在,它們尚未證明自己是可用于生產(chǎn)流量的健壯平臺。第三,不同的應(yīng)用可能需要不同的控制器API。例如防火墻應(yīng)用可能需要高性能、低延遲的數(shù)據(jù)交換,而一個監(jiān)控應(yīng)用則可能只需要在流量通過時讀取一下而已。
網(wǎng)絡(luò)行業(yè)內(nèi)部各自的選擇取向是不同的。ONF內(nèi)部有些論壇會為在不久的將來提交一些指南,而IETF已經(jīng)發(fā)表了來自網(wǎng)絡(luò)工作組(Network Working Group)有關(guān)這一課題的一份草案。
缺乏標(biāo)準(zhǔn)API意味著軟件開發(fā)者必須決定他們要為哪個平臺開發(fā)應(yīng)用。舉例說,F(xiàn)5應(yīng)該為思科還是為Big Switch的控制器開發(fā)?如果一家安全公司正在為OpenFlow開發(fā)防火墻,那它們是應(yīng)該選擇惠普的OpenFlow控制器還是IBM的?北向API肯定會在某個時點上標(biāo)準(zhǔn)化,但其格式、性能和數(shù)據(jù)結(jié)構(gòu)卻可能并未得到很好的理解。因此這個話題的討論還會很多。
尋找彼此適應(yīng)的位置
在考察OpenFlow和SDN之異同時,還須考慮它們各自在基礎(chǔ)設(shè)施中的位置。OpenFlow是技術(shù)-to-技術(shù)的服務(wù),因為它連接的是控制器和網(wǎng)絡(luò)設(shè)備。對于用戶或業(yè)務(wù)來說,它是不可見的。與之相反,SDN則是業(yè)務(wù)-to-技術(shù)接口。SDN向用戶和企業(yè)展現(xiàn)服務(wù),然后控制器將這些服務(wù)轉(zhuǎn)變成抽象概念,翻譯成網(wǎng)絡(luò)上的動作。現(xiàn)在我們已接近這樣一個時點,可以討論網(wǎng)絡(luò)的這場革命了。在今天的網(wǎng)絡(luò)中我們還沒有SDN。今天的“網(wǎng)絡(luò)管理”平臺還不足以提供可見性和對網(wǎng)絡(luò)運營者的控制。這些平臺大部分都會由于SNMP協(xié)議的限制而失靈,因為后者只是從網(wǎng)絡(luò)中抽取數(shù)據(jù)的一種標(biāo)準(zhǔn)方法而已(盡管已經(jīng)有一些工具嘗試著從命令行界面抽取數(shù)據(jù))。
SDN擁有一組物理和虛擬網(wǎng)絡(luò)的完整抽象。南向API在OpenFlow和NETCONF上有很好的定義基礎(chǔ),開發(fā)者確信這些產(chǎn)品是可以不受限于單一廠商的。在未來數(shù)月內(nèi),市場將會朝著融合北向API的方向發(fā)展。SDN廠商會尋找更多的營銷賣點和創(chuàng)新概念。這些創(chuàng)新將會以控制器和應(yīng)用的形式出現(xiàn)。
已經(jīng)有廠商宣布其物理設(shè)備和虛擬交換機(jī)可支持OpenFlow,例如Open vSwitch和思科Nexus 1000V。市場的下一步行動將是確認(rèn)OpenFlow控制器和應(yīng)用能否向企業(yè)交付各種服務(wù)。正如前面所提到的,Big Switch宣布了其OpenFlow控制器自帶的兩個應(yīng)用。惠普也宣稱它的一些應(yīng)用將在2013年交付。隨著越來越多的應(yīng)用出現(xiàn),SDN的采納過程也將加速。