OpenFlow 打造彈性化的可控互聯(lián)網(wǎng)
2012的故事
2012年的某天,你跟往常一樣起床,打開電腦,卻發(fā)現(xiàn)無法登錄到郵箱、無法連接到公司的VPN網(wǎng)絡(luò)、無法訂購任何東西……,你會發(fā)現(xiàn)一切都簡直跟世界末日一樣,離開了網(wǎng)絡(luò),現(xiàn)代社會根本無法正常運行。這并不是可笑的無根據(jù)的幻想,如果世界末日真的來臨,摧毀互聯(lián)網(wǎng)無疑是最直接有效的辦法,而現(xiàn)代互聯(lián)網(wǎng)并沒有我們想象的那樣魯棒。
從上個世紀(jì)70年代初,互聯(lián)網(wǎng)在短短不到40年時間里已經(jīng)發(fā)展成為這個星球上不可或缺的基礎(chǔ)設(shè)施。然而由于一開始的設(shè)計并沒有考慮到后來互聯(lián)網(wǎng)的規(guī)模會如此龐大、承載的應(yīng)用會如此復(fù)雜、地位會變得如此重要,現(xiàn)代的互聯(lián)網(wǎng)在過重的壓力下已經(jīng)凸顯出太多亟待解決的問題?;ヂ?lián)網(wǎng)太危險,惡意攻擊、病毒、木馬每年造成上千億刀的損失;互聯(lián)網(wǎng)太脆弱,無標(biāo)度(Scale-free)的特性讓整個網(wǎng)絡(luò)可以在精心設(shè)計的少數(shù)攻擊下即告崩潰;互聯(lián)網(wǎng)太隨意,p2p等應(yīng)用的出現(xiàn)一度造成各大ISP網(wǎng)絡(luò)堵塞,嚴(yán)重影響傳統(tǒng)正常的訪問;互聯(lián)網(wǎng)太遲鈍,現(xiàn)代臃腫的路由機(jī)制不能支持快速的更新,即便發(fā)現(xiàn)問題也無法快速反應(yīng);互聯(lián)網(wǎng)太局促,IPv4的分配地址已經(jīng)捉襟見肘……
這一切的問題都隱隱的指向了互聯(lián)網(wǎng)這個龐然大物最關(guān)鍵的軟肋——可控性。缺乏有效的控制措施讓互聯(lián)網(wǎng)這個為服務(wù)人類而設(shè)計的機(jī)器,正在逐漸演變成一頭臃腫而暴躁的兇獸,掙扎著要擺脫人類所施加的脆弱枷鎖。
下一代互聯(lián)網(wǎng)和GENI
為了解決當(dāng)前互聯(lián)網(wǎng)的問題,不少國家都紛紛提出了下一代互聯(lián)網(wǎng)計劃,代表性計劃有美國的FIND(Future Internet Network Design,未來互聯(lián)網(wǎng)網(wǎng)絡(luò)設(shè)計)和GENI (Global Environment for Network Innovations,全球網(wǎng)絡(luò)創(chuàng)新環(huán)境),歐洲的FIRE (Future Internet Research and Experimentation,未來互聯(lián)網(wǎng)研究和實驗),中國的CNGI-CERNET(China Next Generation Internet)。所有這些計劃參與者大都是各個國家產(chǎn)、學(xué)、研頂尖的機(jī)構(gòu)。
這三大計劃中,CNGI-CERNET主要是研究在IPv6體系下的新一代網(wǎng)絡(luò);而NSF支持的FIND計劃計劃在不受當(dāng)前互聯(lián)網(wǎng)的制約下提出未來互聯(lián)網(wǎng)的需求,從2006年到2014年分三個階段主要致力于五個問題:是否繼續(xù)采用分組交換、是否要改變端對端原理、是否要分開路由和包轉(zhuǎn)發(fā)、擁塞控制跟資源管理、身份認(rèn)證和路由問題。FIND計劃最主要的成果之一就是GENI——一套網(wǎng)絡(luò)研究的基礎(chǔ)平臺,同時FIRE計劃跟GENI項目合作也非常密切。GENI計劃的兩大任務(wù)是為最前沿的網(wǎng)絡(luò)科學(xué)工程領(lǐng)域革命性研究開路;刺激和促進(jìn)重大社會經(jīng)濟(jì)影響的奠基性創(chuàng)新的出現(xiàn);圍繞這兩大任務(wù),GENI致力于打造下一代互聯(lián)網(wǎng)的虛擬實驗室,為研究者提供驗證創(chuàng)新的架構(gòu)、協(xié)議的靈活、可擴(kuò)展、可配置的實驗平臺,并促進(jìn)學(xué)術(shù)界和業(yè)界的相互合作。長期以來,缺乏合適的實驗平臺讓各界的專家學(xué)者們傷透了腦筋,PlanetLab的種種局限已經(jīng)不能滿足廣大researcher越來越令人fz的需求了。
毫無疑問,GENI的目標(biāo)將讓每個網(wǎng)絡(luò)研究者為之著迷和激動,一套完全可控、可定制、大規(guī)模的網(wǎng)絡(luò)試驗床,對學(xué)術(shù)界將意味著大批的頂級paper,對業(yè)界意味著大量的新標(biāo)準(zhǔn)、新協(xié)議。
OpenFlow的前世今生
GENI的好處雖多,但要部署這個平臺無疑是一件太過昂貴的事情,于是一個自然的事情就是在目前現(xiàn)有的網(wǎng)絡(luò)下,能否省時省力的干好這個事情?
很自然的想法,如果我能控制整個Internet就好了,而網(wǎng)絡(luò)中最關(guān)鍵的節(jié)點就是交換設(shè)備。控制了交換設(shè)備就如同控制了城市交通系統(tǒng)中的紅綠燈一樣,所有的流量就可以乖乖聽話,為我所用。然而現(xiàn)代的交換設(shè)備被幾家巨頭壟斷,開放的接口十分有限,能做的事情也十分有限。如果能有一套開放接口、支持控制的交換標(biāo)準(zhǔn)該多好?OpenFlow應(yīng)運而生。
最初的想法其實十分簡單,無論是交換機(jī)還是路由器,最核心的信息都存放在所謂的flow table里面,用來實現(xiàn)各種各樣的功能,諸如轉(zhuǎn)發(fā)、統(tǒng)計、過濾等。flow table結(jié)構(gòu)的設(shè)計很大程度上體現(xiàn)了各個廠家的獨特風(fēng)格。OpenFlow就是試圖提出這樣一個通用的flow table設(shè)計,能夠滿足大家不同的需求,同時這個flow table支持遠(yuǎn)程的訪問和控制,從而達(dá)到控制流量的目的。具體來說,OpenFlow的flow table中每一個entry支持3個部分:規(guī)則,操作跟狀態(tài)。規(guī)則無非是用來定義flow,OpenFlow里flow定義十分寬泛,支持10個域(除了傳統(tǒng)的7元組之外增加了交換端口、 以太網(wǎng)類型、Vlan ID);操作就是轉(zhuǎn)發(fā)、丟棄等行為,狀態(tài)部分則是主要用來做流量的統(tǒng)計。在此基礎(chǔ)上最關(guān)鍵的特性就是支持遠(yuǎn)端的控制,試想,如果我要改變entry就必須跑到交換機(jī)前重新編程寫入得多麻煩,而且如果我想獲知網(wǎng)絡(luò)的實時狀態(tài)咋辦,有了統(tǒng)一的控制機(jī)制,我們的網(wǎng)絡(luò)才變得真正智能可控起來。OpenFlow的控制機(jī)制也十分靈活,感興趣的同仁可以參考NOX。
好了,有了這個標(biāo)準(zhǔn),只要大家以后生產(chǎn)的交換設(shè)備都支持,那么學(xué)術(shù)界以后能做的事情就太多了,以前YY無數(shù)次的夢想終于開始變成了現(xiàn)實。比如我們可以在正常運行的網(wǎng)絡(luò)中自己在定義一些特殊的規(guī)則,讓符合規(guī)則的流量按照我們的需求走任意的路徑,就仿佛將一張物理網(wǎng)絡(luò)切成了若干不同的虛擬網(wǎng)絡(luò)一樣,同時運行而又各不干擾,我們可以輕而易舉的測試各種新的協(xié)議;以前要做什么處理,需要考慮到具體的拓?fù)浣Y(jié)構(gòu),考慮到box的先后順序,現(xiàn)在好了,通過定義不同的flow entry就可以任意改變流量的運行策略,這也很好的為解決移動性問題提供了便利(一個著名的demo是筆記本在不同交換機(jī)之間切換,虛擬機(jī)在兩地之間切換,運行的游戲不受影響)。從這個意義上說,OpenFlow將傳統(tǒng)的物理固定的硬件定義互聯(lián)網(wǎng)改造成為了動態(tài)可變的軟件定義互聯(lián)網(wǎng)(software defined networking)。而一個軟件定義的可控的互聯(lián)網(wǎng),除了更加靈活以外,毫無疑問,通過恰當(dāng)?shù)目刂扑惴?,將大大提高網(wǎng)絡(luò)自身的魯棒性、運行效率以及安全性。
目前學(xué)術(shù)界OpenFlow主要是stanford、berkeley、MIT等牽頭的研究組在推動,而業(yè)界據(jù)說包括Google在內(nèi)的幾大巨頭已經(jīng)紛紛參與其中,最新的版本1.0協(xié)議已經(jīng)發(fā)布。牽頭人Nick Mckeown曾在Sigcomm08上做過專題的demo,后續(xù)這幾年仍有不少的相關(guān)工作在高水平的會議上發(fā)表。國內(nèi)據(jù)說清華大學(xué)已經(jīng)有研究機(jī)構(gòu)參與進(jìn)去。
Nick Mckeown這個人十分有意思(主頁在http://yuba.stanford.edu/~nickm),現(xiàn)任standford的AP,從他本人提供的簡歷就可以看出,Nick同學(xué)跟業(yè)界關(guān)系十分緊密,phd畢業(yè)兩年就創(chuàng)辦了公司,還參與了Cisco的項目,后來新公司賣給Cisco(Cisco這種模式很不錯,有興趣的同仁可以搜索過往案例)。筆者有幸在某次國際會議上碰到真人,給人感覺是十分的humorous且energetic的。Nick同學(xué)在推OpenFlow的時候明顯十分重視跟業(yè)界結(jié)合,基本上是一邊做,一邊拉生產(chǎn)商的支持,很重視做demo,很早就在stanford的校園網(wǎng)中部署了OpenFlow,做的差不多了再提標(biāo)準(zhǔn),再做宣傳就事半功倍了。他的這種發(fā)展模式也十分為筆者所推崇。
最后的戰(zhàn)役
OpenFlow的出現(xiàn)無疑給現(xiàn)有的交換市場帶來了新的巨大的商機(jī)。網(wǎng)絡(luò)行業(yè)發(fā)展到今天,壟斷已經(jīng)十分的嚴(yán)重,許多年來,交換機(jī)制造商已經(jīng)麻木于每天忙碌提高性能的目標(biāo),偶爾做點小工作,支持下出現(xiàn)的新的需求。而OpenFlow創(chuàng)造了一塊前所未有的大蛋糕,能否抓住這一機(jī)遇,不夸張的說是重新瓜分市場的生死之戰(zhàn)。目前Cisco、HP、Juniper、NEC等巨頭已經(jīng)紛紛推出了支持OpenFlow的交換設(shè)備,不僅有固網(wǎng)的,移動互聯(lián)網(wǎng)領(lǐng)域也相關(guān)產(chǎn)品開始試水。從另外一個角度看,市場的重新瓜分,新需求的出現(xiàn),也會給小規(guī)模的生產(chǎn)商帶來一線生機(jī),對于新出現(xiàn)的廠家來說,這也許是能爭得一席之地最后的戰(zhàn)役。
相關(guān)資料
官方網(wǎng)站見http://www.openflowswitch.org,目前有軟件版本、netfpga版本可供使用,支持的交換設(shè)備相信很快就可以能夠買到。