A Network in a Laptop: Rapid Prototyping for Software-Defined Networks
- 文章名稱:A Network in a Laptop: Rapid Prototyping for? Software-Defined Networks
- 文章來源:Lantz B , Heller B , Mckeown N . A Network in a Laptop: Rapid Prototyping for Software-Defined Networks[C]// Acm Workshop on Hot Topics in Networks Hotnets. DBLP, 2010.
ABSTRACT:
Mininet是一個(gè)在單個(gè)筆記本電腦的有限資源上快速構(gòu)建大型網(wǎng)絡(luò)原型的系統(tǒng)。Mininet使用操作系統(tǒng)級(jí)虛擬化功能(包括進(jìn)程和網(wǎng)絡(luò)名稱空間)的輕量級(jí)方法,允許擴(kuò)展到數(shù)百個(gè)節(jié)點(diǎn)。我們最初實(shí)現(xiàn)的經(jīng)驗(yàn)表明,實(shí)時(shí)運(yùn)行、插入和調(diào)試的能力代表了工作流程的質(zhì)的變化。我們分享了從18個(gè)機(jī)構(gòu)的100多個(gè)用戶中挑選出來的,開發(fā)軟件定義網(wǎng)絡(luò)(SDN)的支持性案例研究,最終我們認(rèn)為Mininet最大的價(jià)值將是支持協(xié)作網(wǎng)絡(luò)研究,通過支持自包含的SDN原型,任何擁有PC的人都可以下載、運(yùn)行、評(píng)估、探索、調(diào)整和構(gòu)建這些原型。
1. INTRODUCTION
一天深夜,靈感涌上心頭,你想到了一個(gè)改變世界的想法:一個(gè)新的網(wǎng)絡(luò)架構(gòu)、地址方案、移動(dòng)協(xié)議,或者是一個(gè)添加到路由器上的功能。隨著論文截止日期的臨近,你有一臺(tái)筆記本電腦和三個(gè)月。你應(yīng)該使用什么樣的原型環(huán)境來評(píng)估你的想法?
考慮到這個(gè)問題,我們著手創(chuàng)建了一個(gè)具有以下屬性的原型工作流:
- Flexible:應(yīng)該使用熟悉的語言和操作系統(tǒng)在軟件中定義新的拓?fù)浜托碌墓δ堋?/span>
- Deployable:在基于硬件的網(wǎng)絡(luò)和測(cè)試臺(tái)上部署功能正確的原型,不需要更改代碼或配置。
- Interactive:管理和運(yùn)行網(wǎng)絡(luò)應(yīng)該是實(shí)時(shí)的,就像與真實(shí)的網(wǎng)絡(luò)交互一樣。
- Scalable:原型環(huán)境應(yīng)該擴(kuò)展到有成百上千個(gè)交換機(jī)的在一個(gè)筆記本上的網(wǎng)絡(luò)。
- Realistic:原型行為應(yīng)該以高度的可信度來表示真實(shí)的行為,例如,應(yīng)用程序和協(xié)議棧應(yīng)該可以使用而無需修改。
- Share-able:自包含的原型應(yīng)該很容易與協(xié)作者共享,然后協(xié)作者可以運(yùn)行和修改我們的實(shí)驗(yàn)。
當(dāng)前可用的原型環(huán)境有其優(yōu)缺點(diǎn)。特殊用途的試驗(yàn)臺(tái)價(jià)格昂貴,大多數(shù)研究人員都買不到。模擬器,如Ns-2或Opnet很吸引人,因?yàn)樗鼈兛梢栽诠P記本電腦上運(yùn)行,但它們缺乏真實(shí)感——模擬器中創(chuàng)建的代碼與實(shí)際網(wǎng)絡(luò)中部署的代碼不同,而且它們不具有交互性。乍一看,虛擬機(jī)網(wǎng)絡(luò)(VMS)很吸引人。每個(gè)交換機(jī)或路由器有一個(gè)虛擬機(jī),每個(gè)主機(jī)有一個(gè)虛擬機(jī),使用虛擬接口可以很容易地將真實(shí)的拓?fù)溥B接在一起。但我們的經(jīng)驗(yàn)是VM過于繁重——每個(gè)VM的內(nèi)存開銷將規(guī)模限制為只有少數(shù)交換機(jī)和主機(jī)。
我們想要更具擴(kuò)展性的產(chǎn)品。目前正在努力建立可編程的試驗(yàn)臺(tái)(例如Emulab , VINI, GENI, FIRE)來支持真實(shí)的用戶流量、規(guī)模和交互行為。我們的方法是對(duì)這些系統(tǒng)的補(bǔ)充,通過尋求一個(gè)本地環(huán)境,使我們能夠快速實(shí)現(xiàn)功能正確、理解良好的原型,然后直接將其轉(zhuǎn)移到共享的全球基礎(chǔ)設(shè)施上。
Mininet(本文描述的新原型環(huán)境)通過使用輕量級(jí)虛擬化來支持此工作流。用戶可以實(shí)現(xiàn)一個(gè)新的網(wǎng)絡(luò)特性或全新的體系結(jié)構(gòu),并在具有應(yīng)用程序流量的大型拓?fù)渖蠈?duì)其進(jìn)行測(cè)試,然后將完全相同的代碼和測(cè)試腳本部署到實(shí)際的生產(chǎn)網(wǎng)絡(luò)中。Mininet在一臺(tái)筆記本電腦上運(yùn)行得非常好,它利用了Linux的特性(網(wǎng)絡(luò)名稱空間中的進(jìn)程和虛擬以太網(wǎng)對(duì))來啟動(dòng)具有千兆帶寬和數(shù)百個(gè)節(jié)點(diǎn)(交換機(jī)、主機(jī)和控制器)的網(wǎng)絡(luò)。整個(gè)網(wǎng)絡(luò)可以打包為一個(gè)VM,這樣其他人就可以下載、運(yùn)行、檢查和修改它。Mininet還遠(yuǎn)遠(yuǎn)不夠完美——性能逼真度和多機(jī)支持可以提高——但這些都是實(shí)現(xiàn)的局限性,而不是方法。其他工具也使用輕量級(jí)虛擬化,但是Mininet在支持快速原型軟件定義網(wǎng)絡(luò)方面有所不同,這是我們?cè)诒疚闹兄攸c(diǎn)關(guān)注的一個(gè)用例。
2. SOFTWARE-DEFINED NETWORKS:
在SDN中,控制平面(或“網(wǎng)絡(luò)OS”)與轉(zhuǎn)發(fā)平面分離。
通常,網(wǎng)絡(luò)操作系統(tǒng)(例如NOX、ONIX或Beacon)從一個(gè)中心位置觀察和控制整個(gè)網(wǎng)絡(luò)狀態(tài),托管諸如路由協(xié)議、訪問控制、網(wǎng)絡(luò)虛擬化、能量管理和新的原型功能等功能。網(wǎng)絡(luò)操作系統(tǒng)通過一個(gè)窄的、自動(dòng)的接口(如OpenFlow)控制轉(zhuǎn)發(fā)平面,該接口定義每個(gè)轉(zhuǎn)發(fā)元素(交換機(jī)、路由器、接入點(diǎn)或基站)的低級(jí)轉(zhuǎn)發(fā)行為。例如,OpenFlow為每個(gè)流定義了一個(gè)規(guī)則:如果一個(gè)數(shù)據(jù)包與一個(gè)規(guī)則匹配,則執(zhí)行相應(yīng)的操作(例如丟棄、轉(zhuǎn)發(fā)、修改或排隊(duì))。
SDN的主要結(jié)果是:在網(wǎng)絡(luò)所有者和運(yùn)營(yíng)商的控制下,網(wǎng)絡(luò)的功能是在部署之后定義的。新功能可以在軟件中添加,而無需修改交換機(jī),允許行為以軟件速度而不是標(biāo)準(zhǔn)的體速度發(fā)展。SDN實(shí)現(xiàn)了狀態(tài)管理的新方法(從集中式到分布式的頻譜上的任何地方)和分組報(bào)頭的新用途(具有特定層處理的字段成為無層的比特海)。軟件定義網(wǎng)絡(luò)的示例包括4D,? Ethane, PortLand and FlowVisor。這些例子暗示了SDN的潛力,但我們認(rèn)為快速原型工作流程是釋放軟件定義的網(wǎng)絡(luò)全部潛力的關(guān)鍵。Mininet上的各種原型系統(tǒng)都支持這個(gè)斷言,我們?cè)诘?節(jié)中描述了幾個(gè)這樣的案例研究。
3. MININET WORKFLOW:
通過將輕量級(jí)虛擬化與可擴(kuò)展的CLI和API相結(jié)合,Mininet提供了一個(gè)快速原型工作流程,用于創(chuàng)建、交互、自定義和共享軟件定義的網(wǎng)絡(luò),以及在真實(shí)硬件上運(yùn)行的平滑路徑。
3.1 Creating a Network
?第一步是使用mn命令行工具啟動(dòng)網(wǎng)絡(luò)。例如,該命令啟動(dòng)OpenFlow交換機(jī)網(wǎng)絡(luò)。在本例中,Open-Vswitch內(nèi)核交換機(jī)在NOX的控制下連接在深度2和扇出8的樹拓?fù)渲?#xff08;即9個(gè)交換機(jī)和64個(gè)主機(jī)),然后進(jìn)行Pingall測(cè)試以檢查每對(duì)節(jié)點(diǎn)之間的連接。為了創(chuàng)建這個(gè)網(wǎng)絡(luò),Mininet模擬鏈接、主機(jī)、交換機(jī)和控制器。Mininet使用內(nèi)置在Linux操作系統(tǒng)中的輕量級(jí)虛擬化機(jī)制——運(yùn)行在網(wǎng)絡(luò)名稱空間中的進(jìn)程和虛擬以太網(wǎng)對(duì)。
Links:
虛擬以太網(wǎng)對(duì)(或veth對(duì))的作用類似于連接兩個(gè)虛擬接口的電線,通過一個(gè)接口發(fā)送的數(shù)據(jù)包被傳送到另一個(gè)接口,并且每個(gè)接口作為一個(gè)功能齊全的以太網(wǎng)端口出現(xiàn)在所有系統(tǒng)和應(yīng)用軟件中。veth對(duì)可以連接到虛擬交換機(jī),例如Linux網(wǎng)橋或軟件OpenFlow交換機(jī)。
Hosts:
網(wǎng)絡(luò)名稱空間是網(wǎng)絡(luò)狀態(tài)的容器,它們?yōu)檫M(jìn)程(和進(jìn)程組)提供接口、端口和路由表(如ARM和IP)的獨(dú)占所有權(quán)。例如,兩個(gè)網(wǎng)絡(luò)名稱空間中的兩個(gè)Web服務(wù)器可以共存于一個(gè)系統(tǒng)上,這兩個(gè)服務(wù)器都偵聽端口80上的私有Eth0接口。Mininet中的主機(jī)只是一個(gè)Shell進(jìn)程(例如Bash),通過Unshare(Clone Newnet)系統(tǒng)調(diào)用移動(dòng)到自己的網(wǎng)絡(luò)命名空間中。每個(gè)主機(jī)都有自己的虛擬以太網(wǎng)接口(通過IP鏈路添加/設(shè)置創(chuàng)建和安裝)和到父Mininet進(jìn)程mn的管道,mn發(fā)送命令并監(jiān)視輸出。
Switches:
軟件OpenFlow交換機(jī)提供與硬件交換機(jī)相同的包傳遞語義,用戶空間和內(nèi)核空間交換機(jī)都可用。
Controllers:
控制器可以位于真實(shí)或模擬網(wǎng)絡(luò)中的任何位置,只要運(yùn)行交換機(jī)的計(jì)算機(jī)與控制器具有IP級(jí)別的連接。對(duì)于在虛擬機(jī)中運(yùn)行的Mininet,控制器可以在虛擬機(jī)內(nèi)部、本機(jī)上或云中運(yùn)行。
圖1說明了用mininet創(chuàng)建的雙主機(jī)網(wǎng)絡(luò)中的組件和連接:
3.2 Interacting with a Network
啟動(dòng)網(wǎng)絡(luò)后,我們希望與之交互——在主機(jī)上運(yùn)行命令,驗(yàn)證交換機(jī)操作,可能導(dǎo)致故障或調(diào)整鏈路連接。Mininet包含一個(gè)網(wǎng)絡(luò)感知命令行界面(CLI),允許開發(fā)人員從單個(gè)控制臺(tái)控制和管理整個(gè)網(wǎng)絡(luò)。由于CLI知道節(jié)點(diǎn)名和網(wǎng)絡(luò)配置,因此它可以自動(dòng)將主機(jī)IP地址替換為主機(jī)名。
例如,CLI命令告訴主機(jī)H2 Ping主機(jī)H3的IP地址,此命令通過管道傳輸?shù)侥M主機(jī)H2的Bash進(jìn)程,導(dǎo)致ICMP echo請(qǐng)求離開H2的專用Eth0網(wǎng)絡(luò)接口,并通過veth對(duì)進(jìn)入內(nèi)核。請(qǐng)求由根命名空間中的交換機(jī)處理,然后退出到另一個(gè)主機(jī)的另一個(gè)veth對(duì)。如果包需要穿越多個(gè)交換機(jī),它將留在內(nèi)核中而不需要額外的副本。如果是用戶空間交換機(jī),包將在每個(gè)跳上引起用戶空間轉(zhuǎn)換。除了充當(dāng)主機(jī)的終端多路復(fù)用器之外,CLI還提供各種內(nèi)置命令,還可以計(jì)算Python表達(dá)式。
3.3 Customizing a Network
Mininet導(dǎo)出Python API以創(chuàng)建自定義實(shí)驗(yàn)、拓?fù)浜凸?jié)點(diǎn)類型:交換機(jī)、控制器、主機(jī)或其他。有幾行Python非常適合定義一個(gè)自定義回歸測(cè)試,該測(cè)試創(chuàng)建一個(gè)網(wǎng)絡(luò),在多個(gè)節(jié)點(diǎn)上執(zhí)行命令并顯示結(jié)果。
示例腳本:
創(chuàng)建一個(gè)小型網(wǎng)絡(luò)(4個(gè)主機(jī),3個(gè)交換機(jī))并在大約4秒內(nèi)從一個(gè)主機(jī)ping到另一個(gè)主機(jī)。當(dāng)前的Mininet發(fā)行版有幾個(gè)示例應(yīng)用程序,包括基于文本的腳本和圖形應(yīng)用程序,其中兩個(gè)應(yīng)用程序如圖2和3所示:
?
我們希望Mininet API將被證明對(duì)系統(tǒng)級(jí)測(cè)試和實(shí)驗(yàn)、測(cè)試網(wǎng)絡(luò)管理、教學(xué)材料和應(yīng)用程序非常有用,這將給作者帶來驚喜。
3.4 Sharing a Network
Mininet是作為一個(gè)VM分發(fā)的,所有依賴項(xiàng)都是預(yù)先安裝的,可在常見的虛擬機(jī)監(jiān)視器(如VMware、XEN和VirtualBox)上運(yùn)行。虛擬機(jī)為分發(fā)提供了一個(gè)方便的容器,一旦開發(fā)了原型,VM映像就可以分發(fā)給其他人來運(yùn)行、檢查和修改。一個(gè)完整的壓縮Mininet虛擬機(jī)大約是800MB。Mininet也可以安裝在支持CONFIG NET NS的Linux發(fā)行版上,比如Ubuntu 10.04,而不需要替換內(nèi)核。
3.5 Running on Hardware
要在第一次嘗試時(shí)成功地連接到硬件,就要求:
- 每個(gè)Mininet模擬組件的操作方式必須與其對(duì)應(yīng)的物理組件相同
- 虛擬拓?fù)鋺?yīng)該與物理拓?fù)淦ヅ?/strong>
- 虛擬以太網(wǎng)對(duì)必須由鏈路級(jí)以太網(wǎng)連接替換
- 被模擬為進(jìn)程的主機(jī)應(yīng)被具有自己的操作系統(tǒng)映像的主機(jī)替換
- 每個(gè)模擬的OpenFlow交換機(jī)都應(yīng)該被配置為指向控制器的物理交換機(jī)所替代,但是不需要更改控制器。
當(dāng)Mininet運(yùn)行時(shí),控制器“看到”一個(gè)由交換機(jī)組成的物理網(wǎng)絡(luò),這是由一個(gè)定義良好的狀態(tài)語義接口實(shí)現(xiàn)的。通過代理對(duì)象表示物理交換機(jī)上的OpenFlow數(shù)據(jù)路徑和物理主機(jī)上的SSH服務(wù)器,CLI可以使用未修改的test scripts.kernel,用和以前相同的方式與網(wǎng)絡(luò)交互。
4. SCALABILITY:
輕量級(jí)虛擬化是在保持交互性能的同時(shí)擴(kuò)展到數(shù)百個(gè)節(jié)點(diǎn)的關(guān)鍵。
在本節(jié)中,我們將測(cè)量單個(gè)操作的總體拓?fù)鋭?chuàng)建時(shí)間、可用帶寬和微基準(zhǔn)。
表2顯示了使用Mininet創(chuàng)建各種拓?fù)渌璧臅r(shí)間:
在Mininet上可以啟動(dòng)更大的拓?fù)浣Y(jié)構(gòu),但是這些拓?fù)浣Y(jié)構(gòu)不適合系統(tǒng)虛擬化的內(nèi)存,在實(shí)踐中,等待10秒讓一個(gè)完整的胖樹啟動(dòng)是非常合理的(而且比硬件交換機(jī)的啟動(dòng)時(shí)間還要快)。Mininet可以擴(kuò)展到所示的大型拓?fù)?#xff08;超過1000個(gè)主機(jī)),因?yàn)樗摂M化更少,共享更多。文件系統(tǒng)、用戶ID空間、進(jìn)程ID空間、內(nèi)核、設(shè)備驅(qū)動(dòng)程序、共享庫和其他公共代碼在進(jìn)程之間共享并由操作系統(tǒng)管理。主機(jī)大約只有1 MB的開銷是Shell進(jìn)程和小型網(wǎng)絡(luò)命名空間狀態(tài)的內(nèi)存開銷,這個(gè)總數(shù)幾乎比精簡(jiǎn)虛擬機(jī)的內(nèi)存映像和轉(zhuǎn)換狀態(tài)所需的每臺(tái)主機(jī)70MB少兩個(gè)數(shù)量級(jí)。
事實(shí)上,在表2中所示的拓?fù)浣Y(jié)構(gòu)中,如果使用系統(tǒng)虛擬化,只有最小的一個(gè)可以放入典型筆記本電腦的內(nèi)存中。
Mininet還提供可用的帶寬量,如表1所示:
通過一個(gè)交換機(jī)提供2-3Gbps,或通過100個(gè)交換機(jī)鏈提供超過10 Gbps的聚合內(nèi)部帶寬。
表3顯示了構(gòu)建拓?fù)鋾r(shí)單個(gè)操作所消耗的時(shí)間:
令人驚訝的是鏈接添加和刪除是昂貴的操作,分別需要大約250毫秒和400毫秒。隨著我們對(duì)Mininet的資源使用和與Linux內(nèi)核的交互有了更好的了解,我們希望進(jìn)一步提高它的性能,并為內(nèi)核和Open-Vswitch提供優(yōu)化。
5. LIMITATIONS:
目前Mininet最大的限制是缺乏性能保真度,特別是在高負(fù)載下。CPU資源被默認(rèn)的Linux調(diào)度程序及時(shí)多路復(fù)用,這不能保證準(zhǔn)備發(fā)送數(shù)據(jù)包的主機(jī)將會(huì)被及時(shí)調(diào)度,或者所有交換機(jī)將以相同的速率轉(zhuǎn)發(fā)。此外,軟件轉(zhuǎn)發(fā)可能與硬件不匹配。
軟件表的O(n)線性查找無法接近供應(yīng)商交換機(jī)中硬件加速TCAM的O(1)查找,從而導(dǎo)致對(duì)于大通配符表大小的包轉(zhuǎn)發(fā)速率下降。為了在鏈路上實(shí)施帶寬限制和服務(wù)質(zhì)量,可以使用Linux流量控制程序(TC)。Linux CPU容器和調(diào)度器優(yōu)先級(jí)為提高公平性提供了額外的選項(xiàng),Mininet目前運(yùn)行在一臺(tái)機(jī)器上只模擬有線鏈路,與性能保真度一樣,這些限制似乎不是根本性的,我們希望以后能解決這些問題。Mininet的部分虛擬化方法也限制了它的功能——它不能同時(shí)處理不同的操作系統(tǒng)內(nèi)核,所有主機(jī)共享同一個(gè)文件系統(tǒng),但可以通過使用chroot進(jìn)行更改,主機(jī)不能像VMS那樣實(shí)時(shí)遷移。
我們認(rèn)為,這些損失是在更大范圍內(nèi)嘗試想法能力的合理權(quán)衡。
6. CASE STUDIES:
Mininet已經(jīng)被超過18個(gè)機(jī)構(gòu)的100名研究人員使用,這些機(jī)構(gòu)包括Princeton,Berkeley,Purdue,ICSI,UMass,University of Alabama? Huntsville,NEC,NASA,Deutsche Telekom Labs,Stanford和一家初創(chuàng)公司,以及巴西的7所大學(xué)。用例大致分為原型設(shè)計(jì)、優(yōu)化、演示、教程和回歸套件。對(duì)于每種用途,我們描述一個(gè)項(xiàng)目,它面臨的挑戰(zhàn),以及Mininet是如何幫助的。
Prototyping:
RIPCORD是一個(gè)模塊化和可擴(kuò)展的平臺(tái),用于創(chuàng)建橫向擴(kuò)展的數(shù)據(jù)中心網(wǎng)絡(luò)。主要的挑戰(zhàn)是跨多個(gè)地理位置開發(fā)一個(gè)通用的無硬件代碼庫。第二個(gè)挑戰(zhàn)是回歸測(cè)試——每一個(gè)更改都需要針對(duì)許多拓?fù)溥M(jìn)行測(cè)試。Mininet支持并發(fā)開發(fā),加上新拓?fù)涞暮?jiǎn)單回歸測(cè)試。更好的是,代碼可以直接移植到硬件上——當(dāng)一個(gè)硬件測(cè)試平臺(tái)在截止日期前一周可用時(shí),代碼和測(cè)試腳本就可以不加修改地進(jìn)行傳輸,從而允許論文包含硬件結(jié)果。
Optimization:
OpenFlow控制器NOX通過發(fā)送周期性LLDP數(shù)據(jù)包廣播到每個(gè)交換機(jī)端口來構(gòu)建拓?fù)鋽?shù)據(jù)庫。過多的拓?fù)浒l(fā)現(xiàn)消息導(dǎo)致生產(chǎn)網(wǎng)絡(luò)中斷,交換機(jī)CPU利用率達(dá)到100%。由于拓?fù)浣Y(jié)構(gòu)和通信量的變化,在生產(chǎn)網(wǎng)絡(luò)中復(fù)制錯(cuò)誤被證明是困難的。使用Mininet,我們可以嘗試許多拓?fù)鋪碇噩F(xiàn)錯(cuò)誤,嘗試新的拓?fù)浒l(fā)現(xiàn)算法,并驗(yàn)證修復(fù)。
Tutorials:
在OpenFlow實(shí)踐教程中,與會(huì)者將一個(gè)簡(jiǎn)單的集線器控制器轉(zhuǎn)換為一個(gè)流加速以太網(wǎng)交換機(jī),讓他們體驗(yàn)openFlow調(diào)試工具和編寫控制器代碼。最初,本教程使用優(yōu)化的QEMU VM實(shí)例來連接交換機(jī)和主機(jī),并將它們作為VM分發(fā),但是速度太慢導(dǎo)致無法使用。在重新實(shí)現(xiàn)Mininet上的教程之后,它的啟動(dòng)速度加快了幾分鐘。一個(gè)意想不到的好處是,與會(huì)者可以在內(nèi)存不足的小型上網(wǎng)本計(jì)算機(jī)上運(yùn)行教程。
Demos:
一些用戶已經(jīng)創(chuàng)建了他們的研究的現(xiàn)場(chǎng)互動(dòng)演示,并在海外會(huì)議上展示,雖然連接到真正的硬件是首選,高延遲,不穩(wěn)定的網(wǎng)絡(luò)訪問,或在流量演示硬件可以出軌的現(xiàn)場(chǎng)演示。在Mininet中維護(hù)Demo的一個(gè)版本,以一個(gè)本地的、不需要網(wǎng)絡(luò)備份的形式,為此類問題提供了保險(xiǎn)。
Regression Suites:
Mininet被用來創(chuàng)建按鈕回歸套件來測(cè)試原型網(wǎng)絡(luò)架構(gòu)。一個(gè)例子是Scaffold,它是一個(gè)以服務(wù)為中心的網(wǎng)絡(luò)體系結(jié)構(gòu),它將通信綁定到邏輯對(duì)象名(與地址相對(duì)),在對(duì)象組實(shí)例之間提供Anycast,并在網(wǎng)絡(luò)層中結(jié)合路由和解析。另一個(gè)是用于支持OpenFlow的網(wǎng)絡(luò)的高級(jí)API和運(yùn)行時(shí)環(huán)境,它允許程序員在Python之上以聲明的方式描述網(wǎng)絡(luò)行為。
7. RELATED WORK:
Mininet建立在最近使用Oslevel虛擬化進(jìn)行網(wǎng)絡(luò)仿真的基礎(chǔ)上。為了簡(jiǎn)潔起見,我們省略了OpenFlow、硬件測(cè)試臺(tái)和模擬器的相關(guān)工作,而是將重點(diǎn)放在輕量級(jí)虛擬化技術(shù)上。IMUNES在BSD內(nèi)核中添加了虛擬以太網(wǎng)接口和類似于網(wǎng)絡(luò)名稱空間的特性,IMUNES的工作提出了一個(gè)正確的問題:“您真正需要多少虛擬化?“
輕量級(jí)虛擬化支持快速原型,但它本身并不能提供硬件部署的路徑或分發(fā)和共享的方法。
EMULAB采用了另一種操作系統(tǒng)級(jí)虛擬化技術(shù)FreeBSD jails,并對(duì)其進(jìn)行了修改,允許每個(gè)進(jìn)程組有多個(gè)虛擬接口,類似于網(wǎng)絡(luò)名稱空間。jails提供了比Linux容器更粗粒度的控制,控制可以在哪些方面使用虛擬化。與Mininet不同,EMULAB的虛擬節(jié)點(diǎn)試圖仔細(xì)地復(fù)制EMULAB硬件節(jié)點(diǎn)的完整環(huán)境,從而允許在這兩個(gè)節(jié)點(diǎn)中同時(shí)使用相同的系統(tǒng)映像。EMULAB虛擬節(jié)點(diǎn)代表一個(gè)不同的設(shè)計(jì)點(diǎn),在一臺(tái)PC上模擬10個(gè)或更多節(jié)點(diǎn),逼真度很高;Mininet放棄逼真度,在筆記本上模擬100個(gè)或更多節(jié)點(diǎn)。盡管EMULAB目前不支持OpenFlow,但EMULAB的Protogeni演進(jìn)將包括硬件OpenFlow交換機(jī)。??
8. DISCUSSION
如第6節(jié)中的案例研究所示,Mininet與其他工作流相比,可以更有效地利用時(shí)間和資源,它為網(wǎng)絡(luò)創(chuàng)新提供了一個(gè)本地環(huán)境,補(bǔ)充了共享的全球基礎(chǔ)設(shè)施,具有交互式原型、可擴(kuò)展性、到硬件部署的無縫路徑以及直接的共享和協(xié)作。結(jié)合軟件定義網(wǎng)絡(luò),我們認(rèn)為它可以在三個(gè)階段中為實(shí)際系統(tǒng)提供一個(gè)更簡(jiǎn)單、更快的路徑:
Prototyping:
任何人(學(xué)生、研究人員、網(wǎng)絡(luò)管理員等)都可以使用Mininet快速原型化SDN想法,快速的啟動(dòng)時(shí)間和較低的開銷有助于探索設(shè)計(jì)空間,并構(gòu)建一個(gè)具有有趣規(guī)模的系統(tǒng),該系統(tǒng)可以在適當(dāng)?shù)挠布线M(jìn)行仿真運(yùn)行。多個(gè)研究人員可以共享腳本、配置和拓?fù)?#xff0c;并且可以同時(shí)工作而不受干擾。
Deployment:
一旦一個(gè)想法在Mininet上生效,它就可以部署在研究或生產(chǎn)網(wǎng)絡(luò)上以供驗(yàn)證、測(cè)量和一般使用。Mininet通過利用軟件定義網(wǎng)絡(luò)(特別是OpenFlow)在仿真和硬件之間保留交換機(jī)、應(yīng)用程序和腳本語義,促進(jìn)了這種傳輸。硬件部署可以在本地可用的PC和交換機(jī)集群上,也可以在共享的研究基礎(chǔ)設(shè)施(如GENI)上進(jìn)行。
Sharing:
在Mininet上運(yùn)行的設(shè)計(jì)可以很容易地收縮包裝在VM映像中并重新分發(fā),Mininet在內(nèi)部利用的是輕量級(jí)流程虛擬化(但是使用系統(tǒng)虛擬化,可以打包和分發(fā)整個(gè)基于Mininet的系統(tǒng))。我們提供了一個(gè)VM映像,其中包括預(yù)先安裝的Mininet,以及創(chuàng)建和運(yùn)行新SDN設(shè)計(jì)所需的所有部分,而無需額外配置或安裝。
將基于Mininet的設(shè)計(jì)包裝到VM中會(huì)創(chuàng)建一個(gè)可以通過Internet分發(fā)的“網(wǎng)絡(luò)設(shè)備”。人們可以下載并運(yùn)行一個(gè)新的網(wǎng)絡(luò)系統(tǒng)的活生生的例子,而不是僅僅依賴于一份會(huì)議論文、一份書面規(guī)范,甚至一段錄制的視頻。我們期待著創(chuàng)建一個(gè)基于Mininet的軟件定義網(wǎng)絡(luò)庫,并與其他人一道創(chuàng)建該庫,任何人都可以以令人興奮和意外的方式下載、檢查、運(yùn)行、修改和構(gòu)建該庫。
轉(zhuǎn)載于:https://www.cnblogs.com/chelinger/p/11542259.html
總結(jié)
以上是生活随笔為你收集整理的A Network in a Laptop: Rapid Prototyping for Software-Defined Networks的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 让人迷茫的三十岁,从专业技能、行业知识和
- 下一篇: The Design and Imple