解讀:OpenFlow的宣傳攻勢和軟件定義網絡
雖然OpenFlow網絡在最近幾個月一直是宣傳的熱點,甚至還在Las Vegas的Interop 2011上享受到明星般追捧,但它是一個協議概念——軟件定義網絡——有可能使虛擬化和云網絡實現真正的變革。
在一個由軟件定義的網絡中,交換機和路由器采用了一些集中軟件管理元素方式的某種形式。在OpenFlow的環境中,控制平臺是從數據轉發平臺分離出來的。一個集中的控制器維護著網絡的實時,整體的情況,將網絡路徑定義為“流”,并將這個數據流分發到各個交換機和路由器上。通過這些流,控制器可以協調所有網絡設備間的數據傳輸,從而在虛擬環境和云網絡中實現所需要的自動化和細致動態分配管理。
“OpenFlow是軟件定義網絡的一個示例,”Gartner Inc.的副總裁和著名分析師Mark Fabbi說道。“這個概念已經提出10多年了。如果您了解Juniper的QFabric,它也是軟件定義網絡的一個實例,因為它的網絡核心中也有交換機和基于結構的功能。然后,這所有的設備都與一個控制器通信,而控制器會確定路徑及其所使用的服務。”
這種方法與目前的分布式且不對等控制平臺的網絡形成了鮮明的對比。交換機和路由器都各自維護著一些路由表或MAC地址表,其中包括相關網絡因素的數據,并且它們能夠根據這些數據做出傳輸決定。這種方法在一定程度上很有效的。但是,由于虛擬化的出現,IT基礎架構比過去變得更加動態,而網絡需要適應這種情況。
OpenFlow和軟件定義網絡:整合OSI協議層
OpenFlow和軟件定義網絡的一個主要目標是:使網絡更好地響應和適應其他IT基礎架構。目前的網絡是靜態的。雖然它們關注于OSI模式的2層和3層協議,但是這種模式并不支持服務器虛擬化。
“之前,網絡人們關心的總是關于數據包。這真的就是與數據包有關的嗎?網絡只考慮2層和3層協議,但是事實上所有的OSI協議層都必須更好地整合才能了解網絡狀況,”Forrester Research高級研究分析師Andre Kindness說道。
虛擬化已經使IT基礎架構變得更加動態,因此網絡必須響應這種改變。當服務器管理員將一臺服務器上的虛擬機遷移到另外一臺服務器時,網絡必須能夠自動地調整VLAN、QoS政策和ACL。
“目前,遷移一臺虛擬機一般會花費2天的時間,這是因為它不是自動化的,”Kindness說道。“它可以在服務器中實現自動化,但是一旦涉及網絡,如果需要修改網絡,那么網絡工程師必須在VM遷移之前先修改好這部分網絡。”
基本上,網絡與應用程序還是分離的,網絡還僅限于管理數據包,Kindness說道。軟件定義網絡就是要“提高服務器和網絡的效率,并嘗試將它們整合在一起。它會觀察各種類型硬件的工作負載,然后決定數據包的流向。它關注于整體效率,并盡可能以最佳方式利用資源,”他說道。
軟件定義網絡:如何實現?
OpenFlow并非是軟件定義網絡的唯一實現方式。Arista Networks與VMware一起合作創建了具備自己風格的軟件定義網絡,這種網絡更善于響應虛擬化服務器基礎架構的變化。通過向VMware開放它的交換固件,Arista的交換機可以自動適應新虛擬機的初始化或在基礎架構中遷移虛擬機。
“我們一直在做致力于Open vSwitch與我們的交換OS整合到一起的內部開發,”Arista的市場副總裁Doug Gourlay說道。“我們所做的工作就是將諸如vSphere的設備變成網絡控制器。當您使用vSphere時,它可以控制VLAN、QoS政策和ACL,所有這些操作都必定是在虛擬機中進行的。我們說服自己,對于我們的網絡設備可以實現一些部分,我們將采用vSphere。當您在vCenter中創建一個虛擬機和當您需要遷移該虛擬機時,對于網絡所需要做的一切,我們都可以通過一個在我們交換機和vSphere之間定義和規定的API自動實現。”
正如之前所提到的,Juniper的QFabric架構在某種程度上是一個軟件定義網絡,但是這個架構現在還未實現。Juniper已經發布了QFabric的數據轉發設備,即QFX3500,但是類似于軟件定義網絡控制器的QF/Interconnect核心設備和管理裝置QF/Director只有到今年年底才會發布。
雖然基于OpenFlow的產品市場正處于發展初期,但是OpenFlow架構的開放方式與Juniper的架構是截然相反的。使用QFabric來建立一個軟件定義網絡需要使用所有的QFabric產品。而使用OpenFlow建立一個軟件定義網絡,則只需要使用任意供應商的一個支持OpenFlow的OpenFlow控制器和交換機。
目前仍然沒有任何主流網絡供應商發布支持OpenFlow的交換機產品,雖然今年在Interop上許多供應商演示了這個技術。NEC Corp.是第一個發布這種產品的供應商。NEC是一個主要專注于日本本國市場的網絡供應商,它已經與大學研究者合作一起進行了5年的OpenFlow支持研發。這項工作隨著在Interop上發布NEC的可編程流(ProgrammableFlow)生產線而達到頂峰。該產品在展會中獲得了Interop最佳產品稱號。
NEC的可編程流(ProgrammableFlow)目前由2個主要產品組成。第一個是支持OpenFlow的交換機PF5240,它有48個Gigabit Ethernet (GbE)端口和4個10 GbE上行鏈路端口。第二個是可編程流控制器(ProgrammableFlow Controller PFC)—這是一個OpenFlow控制器軟件,它可以為PF5240交換機和將來任何支持OpenFlow的第三方交換機確定轉發路徑。
有幾個新興的公司也正在秘密研發OpenFlow控制器,并與交換機供應商建立合作關系。其中包括Big Switch Networks和Nicira Networks。
OpenFlow架構是生成樹的一種替代方法嗎?
根據Big Switch Networks的共同創辦人和市場銷售部副總經理Kyle Forster的看法,基于OpenFlow的軟件定義網絡不僅僅能夠適應虛擬化所帶來的變化。通過將交換機和路由器的控制轉移到一個集中控制器上,OpenFlow也支持高級多路徑轉發技術。這意味著,企業可以在OpenFlow控制器上定義多路徑流,而不需要使用TRILL 或最短路徑橋接協議(Shortest Path Bridging)來避免生成樹協議帶來的限制。由于控制器掌握完整的網絡結構,因此它可以防止循環發生。
Forster 說道,OpenFlow控制器還還在網絡上實現了可編程性。通過在控制器上開放API,第三方可以開發一些軟件,這些軟件使用OpenFlow控制器在網絡上運行高級網絡功能和服務。例如,有一些研究人員已經在OpenFlow控制器之上開發了負載均衡器。Forster表示,安全供應商可以開發虛擬分布式防火墻或入侵防御軟件,它們通過在OpenFlow控制器上定義的流,而在每臺交換機和路由器上施加安全政策。
Big Switch Networks正在開發一種軟件,它允許網絡工程師在他們的基礎架構之上建立一個多租賃模式的軟件,這特別適用于云計算環境。工程師可以使用Big Switch的控制器創建一個使用多個物理交換機端口的虛擬交換機,并將它作為一個服務于服務器和應用程序的固定網絡呈現給系統管理員。
“我們的Interop演示展示了這個架構視圖,您可以使用來自不同交換機的端口,比如一臺交換的2個端口,另一臺的5個端口,第三臺的7個端口,并將所有端口整合到一臺大型虛擬交換機上,”Forster說道。“管理員可以登錄這個虛擬交換機,然后他們所看到的是一個具有14端口的交換機。但他們不知道這些端口是來自數據中心多個不同設備。一方面,管理員會感覺他們是擁有一個完整的物理交換機,但是事實上我們是把交換機放在不同的物理硬件上,并且隔離它們,這樣如果管理員做了什么毀壞虛擬交換機的事,該虛擬機所依賴的硬件仍能夠保持正常工作。”
Gartner's Fabbi說道,雖然OpenFlow有大好前景,但是在這些供應商開始發布和銷售產品之前,這個協議實際上還只是一個“研究項目”。市場上已經好幾年少有新產品出現了,更不用說完整的生態系統。目前,OpenFlow供應商正關注于云計算供應商,因為他們是最需要軟件定義網絡功能的。但是可擴展性仍然是一個問題。
和無線LAN架構中很重要的控制器一樣,OpenFlow控制器可能會遇到瓶頸,因為交換機和路由器會將轉發決定授權給一個運行在服務器上的控制器。
“老實說,我不認為這是可行的,”Arista's Gourlay說道。“Stanford的最大產品OpenFlow網絡流量的設計速度是每秒500個流。我們必須在幾秒鐘內處理上百萬個流的網絡。我不確定它是否已經能夠擴展到這個水平。”
然而,OpenFlow供應商都深知可擴展性問題的重要。Forster表示,BigSwitch正在為它的控制器開發集群技術。它不是在開發一個能夠處理大型網絡上所有流量的大型控制器。相反,它正在開發能夠以協作方式管理網絡的控制器。
OpenFlow控制器也將繼續由交換機和路由器自己來決定轉發路徑。事實上,它們就應該負責這部分工作。Forster表示,在OpenFlow架構中的交換機不會是非智能設備。相反,它們必須更健壯且能夠更好地運行大量OpenFlow規則,并支持其它OpenFlow應用程序。他指出了基于控制器的無線LAN架構的接入端可以如何變得更健壯的,從而支持諸如流氓軟件檢測和頻段管理等應用程序。
此外,很多OpenFlow交換機本身將負責大量轉發決定,只有收到意外的數據包流量時,它們才需要在控制器上查找指令。
“交換機可以根據OpenFlow控制器上基于流的規則來轉發數據包,”NEC Corp.的業務開發總監Don Clark說道。“在我們面臨很多虛擬機移動性和很多網絡變化的情況下,我們會相應地進行處理。當一個不符合本地交換機現有規則的數據包到達時,第一個數據包會轉發給控制器。它會按邏輯進行處理,然后控制器會在流表中設置新的規則。”