




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
項目3基于Mininet模擬SDN環(huán)境學習目標項目背景項目需求分析項目相關知識項目實踐項目習題目錄(1)了解Mininet工具作用及架構(2)掌握Mininet工具的部署方法。(3)掌握Mininet工具和MiniEdit使用方法及基本命令。(4)掌握基本的Python命令用以創(chuàng)建拓撲和測試。學習目標
項目描述在前面的項目中,網絡部管理員根據(jù)公司業(yè)務需求配置了SDN網絡架構的測試環(huán)境和基本的流表規(guī)則,實現(xiàn)了業(yè)務主機之間基本通信。由于業(yè)務部門還需要測試其他的業(yè)務系統(tǒng)相關功能。網絡部管理員評估了當前的SDN網絡架構后,發(fā)現(xiàn)還需要設置并測試更多的流表規(guī)則來實現(xiàn)原網絡生產環(huán)境的高級功能,如負載均衡、鏈路高可用、鏈路聚合等。為了降低部署SDN環(huán)境的難度和減輕云平臺資源的負擔,工程師希望能有一個支持快速模擬SDN組網架構的工具,能實現(xiàn)自定義拓撲并且測試SDN相關的高級功能。因此經商議決定采用Mininet模擬工具進行測試,具體有如下幾點要求:(1)Mininet工具能夠正常使用,包括搭建拓撲、測試功能、結果驗證等。(2)能夠通過腳本的方式進行拓撲的構建、測試和保存。(3)工具應該有良好的圖形化界面,清晰展示拓撲情況,能夠使用UI界面進行參數(shù)的配置。Mininet模擬器參數(shù)如表3-1所示。項目描述Minient模擬器網絡規(guī)劃如表3-2所示。項目描述主機名稱端口IP地址用途LAN區(qū)段mininetens33DHCP連接互聯(lián)網
ens34無IP地址SDN測試網絡Lan0表3-2Mininet模擬器網絡規(guī)劃表角色主機名系統(tǒng)版本軟件配置Mininet模擬器mininetUbuntu18.04git、gcc、make、mininet表3-1Mininet模擬器參數(shù)項目分析根據(jù)需求,選取Mininet工具模擬SDN環(huán)境,管理員需要完成對Mininet工具的獲
取,并在對應的機器上進行安裝,測試Mininet工具的功能和使用狀態(tài)。綜上所述,本次項目設計如下幾點任務。(1)源代碼部署Mininet工具,并驗證工具的可用性。(2)使用Python語言編寫Mininet腳本,搭建SDN測試拓撲。(3)使用MiniEdit圖形化界面構建拓撲。項目分析項目相關知識1.Mininet概述傳統(tǒng)的網絡仿真平臺有NS2、OPNET等,但基于這些平臺開發(fā)的代碼不能直接部署到真實的網絡中,因此尼克團隊基于Linux開發(fā)了輕量級的進程虛擬化網絡仿真工具Mininet。Mininet是一個網絡仿真器,更確切的說它是一個網絡仿真編排系統(tǒng)。它在單個Linux內核中運行一組終端主機、交換機、路由器和鏈接,使用輕量級的虛擬化技術使單個系統(tǒng)能模擬一個完整的網絡。網絡中的所有組件均運行與物理機相同的內核、系統(tǒng)和用戶代碼。Mininet的虛擬主機就像真機一樣,可以通過安全外殼協(xié)議(SecureShell,ssh)進行連接(前提是開啟了sshd服務,并橋接到物理機網絡中),還可以在上面運行任意程序。在虛擬主機上運行的任意一個程序均可以通過其仿真的以太網接口按照自定義的鏈接速度和網絡時延發(fā)送數(shù)據(jù)包,再由仿真的以太網交換機、路由器或者是中間件按自定義規(guī)則轉發(fā)。3.3.1MininetMininet最重要的一個特點是:它的所有代碼可以無縫遷移到真實的硬件環(huán)境,方便為網絡添加新的功能并進行相關測試,這使得Mininet可以在普通電腦上快速建立由虛擬的終端節(jié)點、OpenFlow交換機、控制器組成的大規(guī)模的SDN原型系統(tǒng)。Mininet是基于Linux容器(LinuxContainer)內核虛擬化技術開發(fā)的,它主要使用Linux內核中名為網絡命名空間(NetworkNamespace)的資源隔離機制實現(xiàn)虛擬化。這種機制可以讓每個虛擬對象都具有獨立的網絡設備、網絡協(xié)議棧和端口等資源。Mininet建立網絡拓撲的交換節(jié)點之間的鏈路采用Linux的虛擬以太網隧道(VirtualEthernetPair)機制實現(xiàn)。2.Mininet的架構Mininet的架構按數(shù)據(jù)路徑(datapath)的運行權限不同,分為內核數(shù)據(jù)路徑(kerneldatapath)和用戶空間數(shù)據(jù)路徑(userspacedatapath)兩種,其中內核數(shù)據(jù)路徑把數(shù)據(jù)分組轉發(fā)的邏輯編譯進Linux內核,使得轉發(fā)效率非常高;用戶空間數(shù)據(jù)路徑則把數(shù)據(jù)分組轉發(fā)的邏輯編譯成一個應用程序,稱為ofdatapath,效率雖不及內核數(shù)據(jù)路徑,但比它更靈活且更容易重新編譯。3.3.1Mininet3.3.1Mininet在Mininet的內核數(shù)據(jù)路徑架構中,控制器和交換機的網絡接口都在root命名空間中,控制器就是一個用戶進程,它使用回環(huán)(loopback)接口上預留的6633端口監(jiān)聽來自交換機安全通道的連接。Mininet的每個交換機都對應幾個網絡接口,如S0-eth0、S0-eth1以及一個ofprotocol進程(負責管理和維護與控制器之間的安全信道的進程)。而每個主機都在自己獨立的命名空間里,這也就表明每個主機在自己的命名空間中都會有自己獨立的虛擬網卡eth0。其內核數(shù)據(jù)路徑架構示意圖如圖3-1所示。圖3-1內核數(shù)據(jù)路徑架構示意圖對比內核數(shù)據(jù)路徑架構,Mininet的用戶空間數(shù)據(jù)路徑架構的不同之處主要有兩點:①Mininet的每個節(jié)點都擁有自己獨立的命名空間(namespace)。②交換機節(jié)點除了使用ofprotocol進程保持與控制器的通信外,還多運行一個用于實現(xiàn)轉發(fā)邏輯的ofdatapath進程。用戶空間數(shù)據(jù)路徑架構示意圖如圖3-2所示。3.3.1Mininet圖3-2用戶空間數(shù)據(jù)路徑架構示意圖3.Mininet的優(yōu)勢
Mininet具備如下優(yōu)點。①運行速度快。Mininet創(chuàng)建一個簡單的網絡僅需要幾秒的時間。②支持自定義網絡拓撲。Mininet支持用戶自定義拓撲結構。③仿真程度高。Mininet上運行的虛擬主機與真實主機幾乎沒有區(qū)別。④支持自定義網絡鏈路。Mininet支持用戶自定義網絡鏈路的速率等配置信息。⑤便攜性好。Mininet可以在任何一臺筆記本電腦、服務器、虛擬機或云上運行,而且在Mininet中執(zhí)行的任何代碼都可以遷移到其他環(huán)境中。⑥支持網絡拓撲編程。Mininet允許用戶通過Python編程語言自定義網絡拓撲相關的一切配置信息。3.3.1Mininet1.Mininet軟件的獲取 Mininet是一款開源軟件,用戶可通過直接訪問其官網提供下載的頁面按照需求進行下載,官網主頁如圖3-3所示。3.3.2Mininet安裝圖3-3Mininet官網主頁2.Mininet的安裝方式Mininet有4種安裝方法,分別是通過下載Mininet的虛擬機鏡像安裝、通過下載Mininet源代碼包進行本機安裝、通過軟件包安裝、通過升級安裝。(1)通過下載Mininet的虛擬機鏡像安裝通過官方網站下載MininetVM鏡像到本地;然后就可以在本地的虛擬化軟件中(如VMW、KVM、VirtualBox等)運行Mininet。(2)通過下載Mininet源代碼包進行安裝這種安裝方式適合在本地VM、遠程云服務器和物理機安裝,建議在較新版本的Ubuntu版本中進行安裝。在此方式下,可通過git官網或其它途徑下載代碼包;然后通過執(zhí)行源代碼包中提供的install.sh腳本執(zhí)行編譯安裝。在使用源碼安裝的時候,Mininet提供了幾種命令自定義安裝方式,常用的幾種安裝命令格式如表3-3所示。3.3.2Mininet安裝3.3.2Mininet安裝命令解釋install.sh-a安裝Mininet的所有內容,包括OVS等依賴項install.sh-s/mydir-a選擇將Mininet所有內容安裝在/mydir目錄下,不帶-s參數(shù)時則默認安裝在家目錄中install.sh-nfv僅安裝Mininet、OpenFlow協(xié)議支持、OVSinstall.sh-n3V2.6.6安裝Mininet內核、OpenFlow1.3協(xié)議支持、2.6.6版本的OVSinstall.sh-s/mydir-nfv選擇將Mininet、OpenFlow協(xié)議支持、OVS安裝在/mydir目錄下install.sh-h安裝OpenFlow、wireshark抓包工具表3-3Mininet常用安裝命令格式(3)通過軟件包安裝Mininet這種方式建議只在新版的ubuntu系統(tǒng)中進行,因為在舊版的系統(tǒng)中使用此種方式可能會導致安裝的Mininet不是最新的版本。安裝步驟如下。①需要確保主機能連接外網,執(zhí)行aptupdate命令更新主機軟件倉庫源。②執(zhí)行aptinstall命令安裝Mininet。③安裝過程無報錯,即為正常。安裝完畢即可使用Mininet工具。3.3.2Mininet安裝root@hostname:~#aptupdateroot@hostname:~#aptinstallmininet(4)通過升級安裝Mininet
這種方式的安裝方法前提是在主機上已經有舊版本的Mininet,而且升級是僅對Mininet本身組件進行的,其他組件如OVS、控制器等則需要用戶另外手動執(zhí)行升級。因此不推薦此種方式進行安裝。3.Mininet的啟動
Mininet成功安裝后就可以基于root用戶身份通過mn命令行快速啟動Mininet工作環(huán)境。
mn命令啟動的Mininet模擬環(huán)境會自動生成一個最小拓撲,拓撲包含1個Mininet自帶控制器、1個OVS內核的交換機、2個終端主機,Mininet內置一臺DHCP服務器,它會為終端自動分配/8網段的一個IP地址。拓撲結構如圖3-4所示。3.3.2Mininet安裝圖3-4mn命令啟動的Mininet最小拓撲啟動后命令行界面如圖3-5所示。3.3.2Mininet安裝圖3-5執(zhí)行mn命令后的命令行界面4.mn命令及其應用mn命令除了可以快速地構建小型SDN網絡外,還能借助一些預定義好的參數(shù)來快速構建星型、樹形、線型、環(huán)形等形狀的拓撲結構。另外,用戶還可以通過mn命令設置交換機、控制器、終端主機等設備的具體參數(shù)。mn命令常見參數(shù)如表3-4(1),3-4(2),3-4(3)所示。3.3.2Mininet安裝表3-4(1)
mn命令常見參數(shù)命令參數(shù)解釋mn--switch=default設置交換機的類型為default,此類型的交換機創(chuàng)建時會嘗試連接默認的控制器,如果無法連接,則會降級為OVSBridge(交換機fail_mode模式為standalone)--switch=ivs設置交換機的類型為Indigo-virtualswitch--switch=lxbr設置交換機的類型性為linux-bridge--switch=ovs設置交換機的類型為OVS,此類型的交換機創(chuàng)建時必須連接到一個控制器,否則創(chuàng)建拓撲會報錯,并主動清理模擬環(huán)境并退出此次拓撲創(chuàng)建--switch=ovsbr設置交換機的類型為OpenvSwitch-bridge(默認存在一條table-miss流表項,流表項動作為normal),此類型交換機在創(chuàng)建時將無視基本命令行中--controller設置的參數(shù),不連接任何控制器,但在創(chuàng)建完成后仍可以手動連接控制器,并接收控制器下發(fā)的流表3.3.2Mininet安裝命令參數(shù)解釋mn--switch=ovsk設置交換機的類型為OVSK內核的交換機--switch=user設置交換機的類型為UserspaceSwitch,需要用戶空間中加載了交換機的參數(shù)--controller=none設置拓撲無控制器運行--controller=default設置控制器的類型為default,Mininet自帶控制器,此參數(shù)需要Mininet在源代碼安裝時帶上-b參數(shù)(./install.sh-b)--controller=ovsc設置控制器的類型為OVSController--controller=remote,ip=x,port=y設置控制器的類型為遠程,后面需要加ip和port參數(shù)(例如:使用遠程ip為的OpenDayLight控制器,詳細格式是:--controller=remote,ip=,port=6633)表3-4(2)
mn命令常見參數(shù)3.3.2Mininet安裝--topo=linear,x設置構建的拓撲類型為remote,其中x為拓撲中的交換機數(shù)量--topo=tree,depth=x,fanout=y設置構建的拓撲類型為樹型,同時設置depth(深度)為x,fanout(扇出)為y--topo=single,x設置構建的拓撲類型為單一型,x為拓撲中連接的主機的數(shù)量--topo=minimal設置構建的拓撲類型為最小拓撲,作用與不帶參數(shù)的mn命令一致--host=cfs設置拓撲中的主機CPU的調度算法是CFS(完全公平調度算法)--host=rt設置拓撲中的主機CPU的調度算法是RT(實時調度算法)--host=proc設置拓撲中主機CPU的調度算法為proc(即跟隨宿主機的設置)--ipbase=x.x.x.x/NETMASK設置生成的拓撲默認使用的IP網段(即指定DHCP地址池IP網段)--mac設置拓撲中的主機MAC地址與主機ID一致,如第一臺主機的MAC地址就是00:00:00:00:00:01--x設置啟動拓撲時自動為每個設備打開一個命令行窗口--linktc,bw=x,delay=y設置拓撲內各連接線纜的帶寬和延遲,x為是帶寬(默認單位為Mbit),y為延遲(默認單位為ms)-c清理Mininet實驗環(huán)境并退出命令參數(shù)解釋mn
表3-4(3)
mn命令常見參數(shù)項目相關知識(3)mn命令示例范例1:創(chuàng)建無控制器的線型拓撲,包含4個交換機。生成的拓撲如圖3-6所示。root@localhost:~#mn--topo=linear,4--controller=none圖3-6
無控制器的總線拓撲,4個交換機項目相關知識范例2:創(chuàng)建連接Mininet默認控制器的樹形拓撲,扇出為2,深度為2。生成的拓撲如圖3-7所示。root@localhost:~#mn--topo=tree,fanout=2,depth=2--controller=default圖3-7連接默認控制器的樹形拓撲,扇出為2,深度為23.3.3Mininet命令及應用1.內部命令 在Mininet運行環(huán)境中,可以使用系統(tǒng)內置命令對拓撲進行配置和測試,常見的命令如表3-5所示。命令含義help查看Mininet可用命令nodes列出當前拓撲中的節(jié)點net展示當前拓撲中的節(jié)點及節(jié)點各端口的連接信息dump查看所有節(jié)點的詳細信息pingall拓撲內全部主機互ping測試:讓每臺主機測試“ping拓撲內所有主機(除自己之外)”。h1ifconfig-a在h1主機上運行ifconfig-a命令,查看h1的接口s1ifconfig-a在s1交換機上運行ifconfig-a命令,查看s1的接口h1ping-c1h2在h1主機上運行pingh2測試,發(fā)送1個包iperfh1h2啟動iperf工具對h1和h2之間的鏈路進行網絡性能測試xterms1打開“hostname”為s1的設備的命令行界面表3-5Mininet常用命令3.3.3Mininet命令及應用2.sh拓展命令Mininet支持調用ovs命令集,使用時需要在該命令前添加sh前綴。例如“shovs-vsctlshow”用于查看拓撲中所有交換機的信息。3.py拓展命令 由于Mininet的交互式命令行是使用Python解釋器實現(xiàn)的,因此在Mininet交互式命令行中還可以執(zhí)行Python拓展命令,使用時需要該命令前添加py前綴,簡稱py命令。用戶可以通過py命令增加、刪除、修改拓撲內的主機、控制器、交換機等對象的配置。常用的py命令如表3-6(1),3-6(2)所示。3.3.3Mininet命令及應用命令解釋pyhelp(s1)查看對象s1的可用API方法與參數(shù)pynet.addHost("h1")調用addHost方法為拓撲增加一個名為h1的主機節(jié)點pynet.addSwitch("s1")調用addSwitch方法為拓撲增加一個名為s1的交換機節(jié)點pynet.addController('c1',port=6655)調用addController方法為拓撲增加一個名為c1的控制器節(jié)點,監(jiān)聽端口為6655表3-6(1)
常用的py命令pynet.addLink(s1,h1)調用addLink方法為s1與h1之間添加一條連線pynet.get("h3").cmd("ifconfigh3-eth0/8")調用h3對象的cmd方法執(zhí)行ifconfig命令,為h3-eth0接口配置/8的IP地址3.3.3Mininet命令及應用pyh3.setIP('/8',intf='h3-eth0')調用h3對象內置的setIP方法,為h3-eth0接口配置/8的IP地址pys1.attach("s1-eth3")調用s1對象的attach方法,將s1-eth3接口加入s1交換機中。作用相當于ovs-vsctladd-ports1s1-eth3命令,僅交換機節(jié)點可以調用此方法pys1.start([c0])調用s1對象的start方法啟動s1交換機節(jié)點并連接上拓撲中名為c0的控制器。此命令相當于執(zhí)行了ovs-ctlstart;ovs-vsctlset-controllers1c0命令pxfrommininet.nodeimportRemoteControllerpx命令是py命令的變形,用于為Mininet交互式命令行加載其他API模塊,此命令相當于從mininet.node中添加RemoteController模塊pynet.addController('c2',controller=RemoteController,ip='0',port='6633')調用net對象的addController方法添加一個名為c2、控制器類型為RemoteController、IP地址為0、監(jiān)聽端口為6633的遠程控制器。執(zhí)行此命令需提前加載RemoteController模塊表3-6(2)
常用的py命令需要注意,addLink用于在兩個節(jié)點之間創(chuàng)建鏈路,addLink在創(chuàng)建鏈路的同時,會為節(jié)點創(chuàng)建一個新的網絡接口,命名方式則是順延當前已有的網卡接口編號。提示:addLink與attach不同,addLink出現(xiàn)的接口為虛擬接口,需要使用attach命令在交換機中添加真實接口,其作用等同于執(zhí)行ovs-vsctladd-port命令。2.使用交互式命令構建拓撲使用mn命令進入到交互式命令行后,會自動創(chuàng)建一個最小拓撲,用戶可以在原有拓撲上組建新拓撲。范例1:在最小拓撲上新增一個交換機連接到原有的交換機,并在新增交換機上連接一臺主機,操作步驟如下。①新建交換機節(jié)點。②新建主機節(jié)點。3.3.3Mininet命令及應用mininet>pynet.addSwitch("s2")mininet>pynet.addHost("h3")執(zhí)行了以上兩個步驟后拓撲如圖3-8所示。3.3.3Mininet命令及應用圖3-8新建交換機節(jié)點和主機節(jié)點后的拓撲圖③為交換機增加接口。④創(chuàng)建主機與交換機之間的連接。執(zhí)行了以上步驟之后,拓撲如圖3-9所示。3.3.3Mininet命令及應用mininet>pys1.attach("s1-eth3")mininet>pys2.attach("s2-eth1")mininet>pys2.attach("s2-eth2")mininet>pynet.addLink(s2,h3)圖3-9創(chuàng)建主機與交換機之間的連接后的拓撲圖由圖3-9可知,交換機和主機均新增了一個網絡接口。它們各自接口的編號是按照十進制順序命名的,交換機默認第一個接口名稱為“交換機名-eth1”,主機默認第一個接口名稱為“主機名-eth0”。⑤創(chuàng)建交換機與交換機之間的連接。執(zhí)行了以上步驟之后,拓撲如圖3-10所示。3.3.3Mininet命令及應用mininet>pynet.addLink(s1,s2)圖3-10創(chuàng)建交換機與交換機之間的連接后的拓撲圖3.3.3Mininet命令及應用此時在s2與s1之間新增了一條連線,線的兩端分別是s2的第二個接口“s2-eth2”和s1的第三個接口“s1-eth3”。⑥為主機配置IP。為h3主機的h3-eth0接口配置了一個IP地址/8。⑦啟動新增的交換機并連接到控制器。執(zhí)行了以上命令后,拓撲最終如圖3-11所示。mininet>pyh3.setIP('/8',intf='h3-eth0')mininet>pys2.start([c0])圖3-11最終拓撲圖Mininet模擬器的絕大部分框架都是由Python語言編寫的,因此在Mininet內部保留了對接Python語言的API接口和模塊,用戶可以通過Python語言調用這些接口和模塊實現(xiàn)創(chuàng)建拓撲、配置設備等操作。Mininet中經常使用的類如表3-7所示:3.3.4通過Python腳本創(chuàng)建Mininet拓撲類名稱用途mininet.topotopo拓撲結構類(常用、關鍵類)mininet.topolib導入topolib拓撲結構類,用于使用樹形結構拓撲網絡命令類(常用、關鍵類)mininet.clean清理命令類,用于清理工作環(huán)境mininet.cli命令行類,用于執(zhí)行內部命令mininet.log日志類,用于查看設備運行日志mininet.nodelibnodelib節(jié)點命令類,用于定義拓撲內節(jié)點的網絡連接方式,如橋接或NAT的網絡mininet.nodenode節(jié)點命令類,用于拓撲內節(jié)點的控制mininet.link導入link類,用于設置帶寬等參數(shù),必須先導入node類才能導入此類表3-7Mininet中經常使用的類Mininet有眾多的類,用戶可以在官網中查找對應類及使用方法,如圖3-12所示。3.3.4通過Python腳本創(chuàng)建Mininet拓撲圖3-12官網的MininetPythonAPI參考手冊3.3.4通過Python腳本創(chuàng)建Mininet拓撲1.Mininet.topo類簡介該類主要用于生成網絡拓撲,這些拓撲采用固定的幾種拓撲結構,包括最小拓撲、線形拓撲和單一交換機類型拓撲,topo類典型應用案例如表3-8所示。2.M類簡介Net類可以實現(xiàn)增加、刪除、修改拓撲內的主機、控制器、交換機等對象的配置,net類典型應用案例如表3-9所示。案例解釋MinimalTopo()使用MinimalTopo方法定義一個最小拓撲結構LinearTopo(k=4,n=2)使用LinearTopo方法定義一個交換機數(shù)量為4(k=4),每臺交換機連接的主機數(shù)為2(n=2)的拓撲SingleSwitchTopo(k=4)使用SingleSwitchTopo方法構造一個單一交換機下連接的主機數(shù)量為4(k=4)的拓撲表3-8topo類典型應用案例3.3.4通過Python腳本創(chuàng)建Mininet拓撲案例解釋Mininet(switch=OVSSwitch,controller=RemoteController,ipBase=/24)創(chuàng)建一個最小拓撲,并定義了交換機的類型為OVSSwitch,控制器的類型為RemoteController,DHCP地址池為/24net.addHost('h3')為拓撲增加一個主機,名稱為h3net.addSwitch('s2')為拓撲增加一個交換機,名稱為s2net.addLink(s1,h3)為交換機s1和主機h3建立一條鏈接net.pingAll()測試全部主機間的連通性net.iperf((h1,h2),l4Type='TCP')在h1和h2之間啟動iperf網絡性能測試,測試類型為TCP。net.start()啟動拓撲net.stop()停止拓撲的運行表3-9net類典型應用案例1.Mininet可視化工具的概述Mininet2.3.0的版本中內置了一個可視化工具Miniedit,用戶可以圖形化界面方便地創(chuàng)建網絡拓撲。如果用戶以源代碼方式安裝的Mininet,那么Miniedit的啟動腳本默認是存放在“~/mininet/mininet/examples”目錄下的,其啟動腳本名為miniedit.py。如果用戶以非源代碼方式安裝的Mininet,那么Miniedit的啟動路徑有所不同,它默認存放“/usr/lib/python2.7/dist-packages/mininet/examples”目錄下。以源代碼方式安裝的Mininet為例,Miniedit啟動方式如下。3.3.5Minieditroot@hostname:~#./mininet/mininet/examples/miniedit.py啟動后界面如圖3-13所示。3.3.5Miniedit圖3-13Miniedit啟動后的界面Miniedit界面的左側有一排控件圖標這些控件包括Select、Host、Switch等,其具體功能如表3-10所示。3.3.6Miniedit可視化工具的使用控件圖標控件名稱控件作用Select選中畫布中的節(jié)點
Host創(chuàng)建主機
Switch創(chuàng)建openflow交換機
Legancyswitch創(chuàng)建傳統(tǒng)交換機
Legancyrouter創(chuàng)建傳統(tǒng)路由器
Netlink創(chuàng)建節(jié)點間的網絡連接
Controller創(chuàng)建控制器
Run運行拓撲
Stop停止拓撲表3-10MiniEdit控件圖標功能解析1.Select控件主要用于選擇畫布中的節(jié)點,在節(jié)點上長按鼠標左鍵不放,可以拖動節(jié)點。2.Host控件該控件用于創(chuàng)建終端主機節(jié)點。單擊該工具,然后在畫布上單擊空白處,就可以創(chuàng)建一個終端主機。如果用戶沒有選擇使用其他控件,那么接著在畫布單擊就可以繼續(xù)創(chuàng)建終端主機。默認情況下,創(chuàng)建的第1個終端主機名為h1,第2個終端主機名為h2,其他終端主機名以此類推。添加成功后,將鼠標指針懸停在終端主機上,然后長按鼠標右鍵可以調出HostOptions(主機選項)菜單,鼠標移動到菜單中的Properties(基礎屬性配置)上后松開,即可打開終端主機的配置窗口。HostOptions與Properites界面如圖3-14所示。3.3.6Miniedit可視化工具的使用從圖3-14可以看到,打開后的界面中有Properties、VLANInterfaces(VLAN接口配置)、ExternalInterfaces(外部接口配置)和PrivateDirectories(私有目錄配置)等可配置的選項頁,各頁面的詳細作用如下。3.3.6Miniedit可視化工具的使用圖3-14HostOptions與Properites界面(1)Properties選項頁的設置用戶可以手動更改Hostname選項(主機名)、IPAddress選項(IP地址)、DefaultRoute選項(默認路由)、AmountCPU選項(CPU資源調配模式,主要用于限制帶寬,可選模式有host、cfs、rt)、Cores選項(CPU占用內核數(shù))、StartCommand選項(啟動時執(zhí)行的命令,用于自動化控制等操作)、StopCommand選項(停止前執(zhí)行的命令,用于自動化控制等操作)。其中AmountCPU選項默認情況下選擇host模式,即為主機調配模式,在這個模式下終端主機的CPU資源統(tǒng)一由物理機調配。AmountCPU選項其他可用模式示例如下所示。①cfs模式。完全公平調度模式,在此模式下各主機可調用的CPU資源幾乎平等。②rt模式。實時調度模式,在此模式下,優(yōu)先級越高的主機可調用的虛擬機CPU資源越高,主要用于限制鏈路帶寬。3.3.6Miniedit可視化工具的使用(2)VLANInterfaces選項頁的設置。用戶可以通過Add按鈕新建一條IP與VLAN的對應關系,用戶在下方的VLANInterfaces輸入框中分別輸入IPAddress(IP地址)與其對應的VLANID值即可,如果需要新建多條記錄,繼續(xù)單擊Add按鈕新增即可,如圖3-15所示。3.3.6Miniedit可視化工具的使用圖3-15VLANInterfaces選項頁3.3.6Miniedit可視化工具的使用提示:一般情況下VLAN的配置需要Mininet主機上安裝了vconfig組件支持,如果沒有安裝vconfig,在配置了VLANInterfaces之后,啟動拓撲會提示錯誤并跳過VLAN相關的配置。(3)ExternalInterfaces選項頁的設置。用戶可以通過Add按鈕新建外部接口的記錄,用戶可以在下方的ExternalInterfaces輸入框中輸入外部接口的名稱。表示將Mininet所在主機的網卡掛載到Host上。如需要新建多個外部接口,那么則繼續(xù)單擊Add按鈕即可,如圖3-16所示。圖3-16ExternalInterfaces選項頁提示:外部接口配置相當于虛擬機上的真實接口被終端主機搶占過去,在搶占期間虛擬機將無法使用此接口(如果虛擬機使用ifconfig命令查看接口信息,會發(fā)現(xiàn)接口在虛擬機上是消失了)。如果用戶配置的外部接口已有IP地址那么搶占就會不成功,并且會在啟動拓撲時提示錯誤并跳過此設置。如果用戶配置的外部接口名稱不存在于虛擬機上,那么在啟動拓撲時也會提示錯誤并跳過此設置。兩種報錯界面如圖3-17所示。3.3.6Miniedit可視化工具的使用圖3-17兩種報錯界面(4)PrivateDirectories選項頁的設置用戶可以通過單擊Add按鈕并在下方的Directories輸入框中輸入終端主機的掛載目錄(Mount)和虛擬主機被掛載的目錄(PersistentDirectory)為終端主機掛載私有目錄。其的作用相當于將虛擬機中的目錄掛載到終端主機中。用戶如果多次單擊Add按鈕,可以添加多條記錄。對應的選項頁如圖3-18所示。3.3.6Miniedit可視化工具的使用圖3-18Private
Directories選項頁提示:①用戶設置的PersistentDirectory需要在虛擬主機中存在,否則會在用戶啟動拓撲的時候提示錯誤。②如果用戶在啟動拓撲后,再次打開終端主機的HostOptions菜單,用戶將可以選擇打開Terminal(終端)菜單項,用戶可以在終端中運行命令等操作。HostOptions與Terminal的界面如圖3-19所示。3.3.6Miniedit可視化工具的使用圖3-19HostOptions與Terminal的界面3.3.6Miniedit可視化工具的使用3.Switch控件交換機控件用于在畫布上創(chuàng)建支持OpenFlow交換機。創(chuàng)建的方法與創(chuàng)建Host一致,單擊選擇控件后,在右側畫布空白處中再次單擊即可。如果用戶沒有選擇使用其他控件,那么在畫布單擊就可以繼續(xù)創(chuàng)建交換機。默認情況下,創(chuàng)建的第1個交換機名為s1,第2個交換機名為s2,以此類推。添加成功后,將鼠標指針懸停在交換機上,然后長按鼠標彈出SwitchOptions(交換機選項)菜單,鼠標右鍵移動到菜單中的Properties菜單項上后放開,即可打開交換機的屬性配置窗口。SwitchOptions與Properites的界面如圖3-20所示。圖3-20SwitchOptions與Properites界面可以看出在交換機的屬性配置窗口中可以設置的有:Hostname(主機名)選項、DPID(datapath的ID)選項、EnableNetFlow(支持NetFlow監(jiān)控)選項、EnablesFlow(支持sFlow監(jiān)控)選項、SwitchType(交換機類型)選項、IPAddress(管理用的IP地址)選項、DPCTLport(設置流表管理命令)選項、StartCommand(啟動時執(zhí)行的命令)選項、StopCommand(停止前執(zhí)行的命令)選項、ExternalInterfaces(外部端口設置)選項。各配置項的詳細解析如下。(1)Hostname選項的配置正常情況下,用戶可以通過Hostname更改交換機的名稱,這里的交換機名稱相當于ovs網橋的名稱。需要注意的是用戶更改完Hostname之后,需要填寫DPID的值,否則會報錯。DPID相當于網橋的openvswitch(datapath)模塊的ID值,如果沒有更改交換機名稱,一般不用特別設置。3.3.6Miniedit可視化工具的使用(2)EnableNetFlow與EnablesFlow選項的配置啟用NetFlow或sFlow網絡監(jiān)控協(xié)議,用戶在交換機屬性配置中可以通過勾選EnableNetFlow或EnablesFlow選項來配置交換機支持NetFlow或sFlow協(xié)議用于觀察監(jiān)控交換機相關數(shù)據(jù)。(3)SwitchType選項的配置主要用于設置交換機類型,主要有Default、OpenvSwitchKernelMode、IndigoVirtualSwitch、UserspaceSwitch、UserspaceSwitchinNameSpace類型,如圖3-21所示。3.3.6Miniedit可視化工具的使用圖3-21Switch
Type配置項常見的交換機類型如下所示。①Default。此交換機類型指的是使用MiniEdit全局配置的類型,默認情況下Mininet全局配置中的類型是OpenvSwitchKernelMode。OpenvSwitchKernelMode指的是使用OpenvSwitch內核的交換機。②IndigoVirtualSwitch(IVS)。此交換機類型與OpenvSwitch一樣是OpenFlow虛擬交換機,但IVS是一個純OpenFlow交換機,性能高、適合大規(guī)模部署。③UserspaceSwitch。代表的是用戶程序空間交換機,它是在根命名空間(RootNamespace)下運行的,性能稍差。④UserspaceSwitchinNameSpace。代表的也是用戶程序空間交換機,但此類交換機擁有自己的命名空間,性能比UserspaceSwitch稍好。3.3.6Miniedit可視化工具的使用(4)IPAddress選項的配置更改此配置可以設置交換機使用的管理地址,默認情況下配置為空。(5)DPCTLport選項的配置設置流表管理命令(dpctl)默認連接的交換機端口,缺省值為6634,dpctl命令是用于檢測和管理OpenFlow數(shù)據(jù)通路,該命令能夠顯示當前的數(shù)據(jù)通路,包括功能配置和表中的條目,以及使用合適的OpenFlow內核模塊,用來添加、刪除、修改和監(jiān)視DathPaths。(6)ExternalInterfaces選項的配置它可以用來為交換機配置外部接口。用戶可以通過Add按鈕添加配置,單擊多次可以添加多個配置。用戶在下方的ExternalInterfaces輸入框中輸入虛擬機上的網卡名稱即可。這個操作相當于將Mininet所在主機對應名稱的網卡掛載到交換機上。3.3.6Miniedit可視化工具的使用3.3.6Miniedit可視化工具的使用4.Legancyswitch控件傳統(tǒng)交換機,用于創(chuàng)建具有默認設置的自學習以太網交換機。創(chuàng)建的方法與創(chuàng)建Host一致,單擊選擇控件后在右側畫布空白處中再次單擊即可。如果用戶沒有選擇使用其他控件,那么在畫布空白處單擊就可以繼續(xù)創(chuàng)建傳統(tǒng)交換機。默認情況下,創(chuàng)建的第1個交換機名為s1,第2個交換機名為s2,以此類推。此類交換機可以不連接控制器獨立運行。但是需要注意的是傳統(tǒng)交換機不能被配置,也沒有生成樹功能,所以不能使用傳統(tǒng)交換機模擬環(huán)狀拓撲。5.Legancyrouter控件傳統(tǒng)路由器,用于創(chuàng)建可不連接控制器獨立運行的傳統(tǒng)路由器。它基本上只是一個啟用了IP轉發(fā)的主機。創(chuàng)建的方法與創(chuàng)建Host一致,單擊選擇控件后在右側畫布空白處中再次單擊即可。默認情況下,路由器的主機名以“r”開頭,路由器與交換機使用同一套編號順序,如果畫布中的已有1臺交換機為s1,那么創(chuàng)建的路由器主機名為r2,以此類推。在拓撲啟動前,不可以在MiniEdit中配置路由器屬性。在拓撲啟動后,將鼠標指針懸停在路由器上,長按鼠標右鍵彈出RouterOptions菜單,打開Terminal終端界面。3.3.6Miniedit可視化工具的使用在運行中的交換機上打開SwitchOptions菜單,可以單擊Listbridgedetails菜單項查看網橋詳細信息,SwitchOptions與Bridgedetails的界面如圖3-22所示。圖3-22Switch
Options與Bridge
Details界面6.Netlink控件連線工具用于創(chuàng)建各節(jié)點之間的連接。選擇了Netlink控件后,在需要連線節(jié)點單擊并將保持左鍵長按狀態(tài),然后拖動連線到被連接的節(jié)點,最后出現(xiàn)一條連接好的線即代表連線已經成功。創(chuàng)建連線時,默認會按順序連接設備的端口,如設備的第一條連線使用的端口編號就是eth1(主機是以eth0開始),第二條連線使用的端口編號就是eth2,以此類推。連線創(chuàng)建完畢后,將鼠標指針懸停在連線上,長按鼠標右鍵彈出LinkOptions菜單并選擇Properties菜單項,進入連接細節(jié)(LinkDetails)的配置窗口,該選項的連接詳細配置如圖3-23所示。3.3.6Miniedit可視化工具的使用圖3-23LinksOptions及LinkDetails界面3.3.6Miniedit可視化工具的使用從圖3-23可以看出,用戶可以通過屬性配置窗口,配置連接線的帶寬h(Bandwidt,默認單位為Mbit)、延遲(Delay)、丟包率(Loss)、最大排隊空間(MaxQueuesize)、抖動(Jitter)、加速比(Speedup)等信息。7.Controller控件控制器控件,用于創(chuàng)建控制器,創(chuàng)建的方法與創(chuàng)建Host一致,單擊控制器控件后,在右側畫布空白處中再次單擊即可。如果用戶沒有選擇使用其他控件,那么在畫布單擊就可以繼續(xù)創(chuàng)建控制器。默認情況下,第一個創(chuàng)建的控制器名為c0,第二個創(chuàng)建的控制器為c1,以此類推。用戶可以在控制器上懸停鼠標,并長按鼠標右鍵打開菜單并選擇Properties選項,進入控制器細節(jié)(ControllerDetails)的設置窗口,如圖3-24所示。通過圖3-24可以看出,ControllerDetails窗口可以設置的參數(shù)有:控制器名稱(Name)、控制器監(jiān)聽端口(ControllerPort)、控制器類型(ControllerType)、控制器使用的協(xié)議類型(Protocol)以及遠程或帶內控制器(Remote/In-BandController)的控制器IP地址(IPAddress)。這里需要注意的是ControllerType配置選項,它可以選擇控制器的類型,控制器的類型有如下4種:(1)OpenFlowReference控制器3.3.6Miniedit可視化工具的使用圖3-24Controller
Options及ControllerDetails界面3.3.6Miniedit可視化工具的使用這是Mininet自帶的控制器,是默認的控制器的類型,它僅提供OpenFlow支持和自動生成流表功能,不能通過此控制器手動下發(fā)流表。(2)RemoteController控制器它是遠程控制器,用戶選擇該模式并設置IP地址遠程連接到外部控制器??梢赃B接OpenDayLight、ONOS等控制器,它能實現(xiàn)的功能由連接的控制器軟件決定,RemotoController本身無任何功能。(3)In-BandController控制器它是帶內控制器,它其實也是遠程控制器的一種,與RemoteController的區(qū)別不明顯。3.3.6Miniedit可視化工具的使用(4)OVSController控制器它是支持OVS的控制器,與OpenFlowReference控制器一樣均提供OpenFlow支持和自動生成流表功能,但OVSController最多支持只能16個OVS,管理多于16個OVS時OVSController將無法自動下發(fā)流表。8.Run控件運行按鈕,單擊此按鈕將啟動運行拓撲。9.Stop控件停止按鈕,單擊此按鈕將停止運行拓撲。MiniEdit菜單欄位于左上角,主要用于全局配置或進行拓撲的導入導出操作,菜單欄如圖3-25所示。Mininet的菜單共有4個,分別為File、Edit、Run和Help,詳細解析如下。3.3.7Miniedit菜單欄圖3-25MiniEdit菜單欄3.3.7Miniedit菜單欄1.File菜單File菜單主要用于拓撲文件的新建,打開、保存和MiniEdit的退出等操作。File下有5個菜單項,分別為New、Open、Save、ExportLevel2Script。其中New菜單項用于新建一個拓撲,Open菜單項用于打開保存好的拓撲文件,支持打開的類型是以.topo結尾的文件。Save菜單項用于保存拓撲文件,保存的拓撲文件以.topo后綴結尾。ExportLevel2Script菜單項用于將拓撲導出為.py結尾的Python文件,使用戶能夠在終端命令界面中執(zhí)行。Quit選項用于退出MiniEdit單擊File菜單后的顯示頁面如圖3-26所示。圖3-26File菜單2.Edit菜單Edit菜單主要用于拓撲的全局配置,Edit菜單項有2個,分別是Cut和Preferences。其中Cut菜單項用于刪除畫布中創(chuàng)建的對象。Preferences菜單項用于打開拓撲全局配置菜單,用戶單擊Preferences菜單項會彈出對應的配置窗口,配置窗口如圖3-27所示。3.3.7Miniedit菜單欄圖3-27Preferences配置窗口3.3.7Miniedit菜單欄從上圖可以看出,全局配置項主要有IPBase(基礎IP網段)、DefaultTerminal(默認的終端命令行界面類型)、StartCLI(是否啟動命令行,主要用于配置啟動拓撲是否同時啟動Mininet交互命令行,默認為不啟動)、DefaultSwitch(設置默認的交換機類型)、OpenvSwitch(配置交換機使用的OpenFlow協(xié)議)、sFlowProfileforOpenvSwitch(sflow監(jiān)控的服務端配置)、NetflowProfileforOpenvSwitch(Netflow監(jiān)控的服務端配置)、dpctlport(設置調用ovs-ofctl命令的端口)這幾項。①DefaultTerminal可選項有xterm和gterm,默認為xterm。②DefaultSwitch可選項有OpenvSwitchKernelMode、IndigoVirtualSwitch、UserspaceSwitch、UserspaceSwitch幾種。DefaultSwitch的配置僅當交換機屬性中的SwitchType的值為Default的時候生效,如果交換機屬性中的SwitchType的值不是Default,則交換機的類型以屬性中配置的為準。3.Run菜單Run菜單主要用于啟動、停止拓撲、查看交換機統(tǒng)計信息,以及打開終端命令行。它的菜單項有Run、Stop、ShowOVSSummary、RootTerminal。其中Run、Stop與圖3-13中MiniEdit界面左下角的Run/Stop按鈕功能一致。ShowOVSSummary主要用于顯示當前拓撲中ovs信息,作用與在OVS中執(zhí)行ovs-vsctl命令一致。RootTerminal菜單項主要是用于打開一個終端命令行界面,作用與在虛擬機中直接打開終端命令行無區(qū)別。4.Help菜單Help菜單主要用于簡略介紹MiniEdit的作用,以及當前使用的版本號、原創(chuàng)作者和官網地址等內容。3.3.7Miniedit菜單欄3.3.8Miniedit導出拓撲的方式MiniEdit導出拓撲可以分為兩種方式,一種是直接導出為topo文件,導出topo文件后用戶可以通過MiniEdit的Open菜單項重新打開,該方法可用于快捷備份和恢復拓撲。另一種是導出python文件,相當于將拓撲結構轉換為python腳本的方式存儲,導出成功后,用戶可以直接通過python工具運行文件,快捷啟動一個拓撲。(1)導出為topo文件導出為topo文件的詳細步驟如下。①用戶在MiniEdit中構建完整拓撲結構后,單擊MiniEdit菜單欄中的File選項,然后單擊Save選項,將彈出選擇拓撲文件保存位置,彈出窗口如圖3-28所示。3.3.8Miniedit導出拓撲的方式圖3-28拓撲文件保存位置的會話窗口②在保存會話窗口中按需求選擇Directory保存的目錄(默認情況下是Mininet安裝目錄),在Filename輸入框填寫保存的文件名稱,隨后單擊Save按鈕進行保存。(2)導出為python文件導出為python文件的詳細步驟如下。①用戶在MiniEdit中構建完整拓撲結構后,單擊MiniEdit菜單欄中的File菜單項,然后選擇ExportLevel2Script選項,將彈出選擇拓撲文件的保存位置,彈出窗口如圖3-29所示。3.3.8Miniedit導出拓撲的方式②單擊Directory下拉框,選擇文件保存的目錄,默認情況下是用戶根目錄,在Filename輸入框填寫保存的文件名稱,隨后單擊Save按鈕進行保存。提示:導出的文件如果沒有執(zhí)行權限,需要在終端命令行界面中執(zhí)行chmod+xFileName命令添加執(zhí)行權限。3.3.8Miniedit導出拓撲的方式圖3-29導出拓撲的保存位置的會話窗口項目實踐任務規(guī)劃在公司服務器上通過模板創(chuàng)建一臺已經初始化完成的虛擬機,并在此機器上完成Mininet工具的安裝,具體可以通過以下幾個步驟完成。(1)在Mininet官網獲取Mininet工具的源碼包。(2)在虛擬機內安裝Mininet工具。任務實施(1)登錄mininet虛擬機,并打開終端命令行,測試虛擬機與外網的連通性,如執(zhí)行ping命令測試與外網的連通性。任務1源代碼部署Mininet工具root@mininet:~#ping-c1PING(74)56(84)bytesofdata.64bytesfrom74(74):icmp_seq=1ttl=128time=8.72ms---pingstatistics---1packetstransmitted,1received,0%packetloss,time0msrttmin/avg/max/mdev=8.727/8.727/8.727/0.000ms(2)在終端命令行中切換為root用戶身份,更新軟件源并安裝git工具。(3)通過git命令從Gitee獲取Mininet源代碼到root用戶根目錄下。(4)切換到mininet一鍵安裝腳本所在目錄,切換目錄后,通過ls命令可以查看當前目錄下包含的文件。任務1源代碼部署Mininet工具classroom@mininet:~$su-root@mininet:~#aptupdate-yroot@mininet:~#aptinstallgitroot@mininet:~#gitclone/Jan16/mininet.gitroot@mininet:~#cd/root/mininet/util/root@mininet:~/mininet/util#lsbuild-ovs-packages.shclustersetup.shcolorfiltersdoxify.pyinstall.shkbuildmnox-patchesopenflow-patchessch_htb-ofbufsysctl_addonunpep8versioncheck.pyvm(5)使用“install.sh”腳本配合“-a”參數(shù)完整安裝mininet。在安裝過程中沒有出現(xiàn)error信息即為正?,F(xiàn)象,默認情況下mininet會安裝在源代碼包所在的目錄下,本任務中的目錄為/root。安裝完畢的提示如圖3-30所示?!癷nstall.sh”腳本中定義了一些特定的選項參數(shù),如“-a”參數(shù)代表完成安裝Mininet,安裝項包括OVS、OpenFlow協(xié)議支持、DefautlController、Pox、Nox、Ryu等,用戶可以通過./install.sh–help命令獲取幫助,查看腳本運行時可支持的參數(shù)。任務1源代碼部署Mininet工具root@mininet:~/mininet/util#./install.sh-a圖3-30安裝完畢的提示任務驗證(1)執(zhí)行【mn】命令,啟動Mininet工具。任務1源代碼部署Mininet工具root@mininet:~#mn***Creatingnetwork***Addingcontroller***Addinghosts:h1h2***Addingswitches:s1***Addinglinks:(h1,s1)(h2,s1)***Configuringhostsh1h2***Startingcontrollerc0***Starting1switchess1...***StartingCLI:mininet>(2)在Mininet交互式命令行中執(zhí)行【nodes】命令查看拓撲中的節(jié)點情況。(3)在Mininet交互式命令行中執(zhí)行【pingall】命令測試拓撲連通性。可以看出,當前Mininet拓撲中兩臺主機互相進行了測試,而且0%丟失,說明節(jié)點連通正常。任務1源代碼部署Mininet工具mininet>nodesavailablenodesare:c0h1h2s1mininet>pingall***Ping:testingpingreachabilityh1->h2h2->h1***Results:0%dropped(2/2received)任務1源代碼部署Mininet工具(4)在Mininet交互式命令行中執(zhí)行【dump】命令,查看拓撲節(jié)點的詳細情況。從上面的執(zhí)行結果可以看出,當前主機h1的IP是,進程號是33060;主機h2的IP是,進程號是33062;OVSs1的本地IP為,兩個接口eth1和eth2均沒有IP地址,進程號是33067;而控制器c0的IP是,監(jiān)聽端口為6653,進程號為33053。mininet>dump<Hosth1:h1-eth0:pid=33060><Hosth2:h2-eth0:pid=33062><OVSSwitchs1:lo:,s1-eth1:None,s1-eth2:Nonepid=33067><Controllerc0::6653pid=33053>任務規(guī)劃在任務1中已經完成了Mininet工具的安裝,解決了模擬SDN環(huán)境的問題,工程師現(xiàn)在需要編寫Python腳本構建拓撲,拓撲結構如圖3-31所示。任務2使用Python語言編寫Mininet腳本圖3-31網絡拓撲結構在拓撲規(guī)劃完成后,可以通過以下步驟完成拓撲構建。(1)登錄Mininet虛擬機,切換root用戶身份。(2)根據(jù)拓撲規(guī)劃,使用vim命令編寫Python腳本。(3)執(zhí)行Python腳本定義的拓撲環(huán)境。任務實施1.登錄mininet虛擬機,打開終端命令行,并切換為root用戶身份。2.根據(jù)拓撲規(guī)劃,使用vim命令編寫Python腳本任務2使用Python語言編寫Mininet腳本classroom@mininet:~$su- #切換身份時需要輸入root用戶的密碼(1)使用vim命令編寫腳本,腳本名稱為topo.py。任務2使用Python語言編寫Mininet腳本root@mininet:~#vimtopo.py#!/usr/bin/python #調用python解釋器fromimport* #導入構建拓撲需要使用的mininet類frommininet.nodeimport*frommininet.linkimport*frommininet.logimport*frommininet.cleanimport*frommininet.cliimport*frommininet.utilimport*#初始化Mininet參數(shù),設置主機類型、鏈路類型和交換機類型net=Mininet(host=CPULimitedHost,link=TCLink,switch=OVSBridge)s1=net.addSwitch('s1') #創(chuàng)建交換機s1、s2和s3s2=net.addSwitch('s2')s3=net.addSwitch('s3')h1=net.addHost('h1') #創(chuàng)建主機h1和h2h2=net.addHost('h2')任務2使用Python語言編寫Mininet腳本(2)通過【mn】命令執(zhí)行python腳本。net.addLink(s1,s2) #添加交換機與交換機、交換機與主機之間的連接net.addLink(s1,s3)net.addLink(s2,h1)net.addLink(s3,h2)net.start() #啟動拓撲eract() #啟動網絡并運行簡單的CLIroot@mininet:~#mn--customtopo.pymininet>mininet>nodesavailablenodesare:h1h2s1s2s3任務驗證(1)查看當前拓撲可用的節(jié)點信息。從執(zhí)行結果中可以看出,當前拓撲已經有5個設備,設備名稱分別是h1、h2、s1、s2。(2)查看當前拓撲中的鏈接信息。從執(zhí)行結果中可以看出,當前拓撲已經符合預設要求。任務2使用Python語言編寫Mininet腳本mininet>nodesavailablenodesare:h1h2s1s2s3mininet>nodesavailablenodesare:h1h2s1s2s3mininet>neth1h1-eth0:s2-eth2h2h2-eth0:s3-eth2s1lo:s1-eth1:s2-eth1s1-eth2:s3-eth1s2lo:s2-eth1:s1-eth1s2-eth2:h1-eth0s3lo:s3-eth1:s1-eth2s3-eth2:h2-eth0(3)查看當前拓撲各節(jié)點中的網絡信息和進程信息。從執(zhí)行結果中可以看出,主機通過DHCP服務獲取到了IP地址,并且交換機類型為OVSBridge,主機類型為CPULimited。(4)測試當前拓撲的連通性。從執(zhí)行結果中可以看出,當前拓撲各主機之間通信正常。任務2使用Python語言編寫Mininet腳本mininet>dump<CPULimitedHosth1:h1-eth0:pid=47247><CPULimitedHosth2:h2-eth0:pid=47254><OVSBridges1:lo:,s1-eth1:None,s1-eth2:Nonepid=47236><OVSBridges2:lo:,s2-eth1:None,s2-eth2:Nonepid=47239><OVSBridges3:lo:,s3-eth1:None,s3-eth2:Nonepid=47242>mininet>pingall***Ping:testingpingreachabilityh1->h2h2->h1***Results:0%dropped(2/2received)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026屆河池市重點中學中考試題猜想物理試卷含解析
- 某省市集趣味潮玩創(chuàng)意地產某省市集活動策劃方案
- 2025年山東省臨沂市沂南縣小升初數(shù)學試卷
- 湖北省襄陽市棗陽市2026屆中考語文四模試卷含解析
- 2026屆江蘇省江陰市澄西片中考數(shù)學五模試卷含解析
- 寧夏固原市涇源縣2026屆中考語文模擬預測題含解析
- 湖南省株洲市荷塘區(qū)第五中學2026屆中考猜題語文試卷含解析
- 光伏太陽能超白壓花玻璃可行性研究報告
- 2025年房建泥工班組勞務分包及建筑廢棄物填埋場建設合同
- 二零二五年度事業(yè)單位智能采購合同范本-互聯(lián)網+
- 醫(yī)療廢物處置工作培訓
- 醫(yī)療設備租賃與服務方案
- 物流運輸突發(fā)事件應急預案
- 紡織機器和設備的修理或維護行業(yè)市場特點分析
- 2025屆重慶市南開中學高三上學期第一次質量檢測政治試題
- 行政事業(yè)單位公用經費管理辦法
- 公眾號運營服務投標方案
- 中藥功效快快記憶法
- 單顆粒冷凍電子顯微鏡結構解析
- 昆山市新初一分班語文試卷含答案
- JT-T-329-2010公路橋梁預應力鋼絞線用錨具、夾具和連接器
評論
0/150
提交評論