網絡控制程序之爭:OpenFlow vs 可編程ASIC
一個網絡一般由多廠商的交換機和路由器組成,這些設備運行不同的操作系統、有不同的命令行接口和配置程序,我們能否對這個網絡進行編程,讓它管理工作流時能像演奏音樂一樣和諧呢?
OpenFlow告訴你,你能!
OpenFlow是一個開源項目,誕生于斯坦福大學與加州伯克利大學六年前的一次合作。它的基礎就是軟件定義網絡,也就是說,利用可編程接口和各種協議,用戶可以用軟件來定義工作流,決定工作流在網絡中通過哪條路徑,而無須去關心底層的硬件。
可以這么說,OpenFlow是把網絡流量的控制權從基礎設施——交換機和路由器等——手中收了回來,交到了網絡所有者、個人用戶或個別應用的手中。有了這種權力,用戶便可制定策略,為工作流尋找有可用帶寬、低延遲或低阻塞,低跳數的路徑。
擁躉眾多:很多大公司共同組建了開放網絡基金會,極力推進OpenFlow實現的軟件定義網絡。這些大公司和其他支持者們一致認為,OpenFlow對于數據中心、私有云以及園區網的負載均衡、流量控制和虛擬網絡特別有用,因為在這些場合中,網絡設備和虛擬機會成倍增加,使網絡拓撲不堪重負。有人認為,OpenFlow之于網絡有點兒像VMware之于虛擬化,它可以對由相互不兼容的路由器和交換機構成的網絡進行統一控制。
當然,業界對OpenFlow的前景也疑慮重重。有人認為,OpenFlow還需要在很多方面證明自己,它還缺少超大規模的網絡部署,以及對容錯和標準路由協議的支持。還有人說,OpenFlow所自詡的可編程性和流量控制抽象其實在一些擁有API的可擴展交換機和路由器的操作系統上已經有了。
也有人認為,實際上,市場上已使用多年的可編程ASIC和網絡處理器所做的事情和OpenFlow是一樣的。而且,把來自多廠商的不同交換機的轉發平面開放,也會出現棘手的安全問題。
然而,ASIC廠商們似乎對OpenFlow并不擔憂。實際上,他們對此表示歡迎。
博通(Broadcom)CTO Nick Ilyadis稱,“博通部分參與了定義OpenFlow的工作。OpenFlow 1.0和1.2都正在基于博通ASIC的交換機上進行測試。今天,ASIC設備是運行OpenFlow的領先平臺。OpenFlow不會破壞ASCI作為轉發和過濾用途的模式。”
Ilyadis說,OpenFlow目前運行在博通的可編程ASIC上面。盡管OpenFlow改變了編程范式,但并未真正改變交換機的底層功能。交換機仍然在轉發、探測、過濾分組包,采用訪問控制列表。OpenFlow其實就是提供了一種開放機制,控制器利用此種機制便可以用一種預決定方式進行配置。OpenFlow就是對這些功能進行編程的一種簡單方法。
Ilyadis認為,“在ASIC中,有OpenFlow發揮潛能的大量空間。但是OpenFlow尚未發展到這一步,它還不能理直氣壯地說:‘這些事情是我能做而ASIC做不了的。’”
OpenFlow不能定義流量分類表的大小,而交換機的ASIC可以做到,Ilyadis說。ASIC API也能提供硬件的某種程度的抽象,然后將其放在廠商的驅動程序之上,或者接受OpenFlow的指令,然后將其映射到交換機內部的API調用上。
Ilyadis說,“OpenFlow是軟件定義網絡的實例之一,但其他的API也能做到這一點。OpenFlow只是獲得了媒體全面關注的一個實例,而其他軟件定義網絡實例卻只引起了很少的關注,或者只被少數公司所使用而已。”





















