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