Mininet-wifi典型用法


  1. 執行 mn 命令未指定一個控制器的話,它會默認采用 ovsc 控制,ovs-controller


  1. Mininet-wifi如何和ryu配合?

       ryu-manager ryu.app.simple_switch_13       先要啟動ryu,然后啟動mininet-wifi去連接ryu

       mn --topo=linear --switch=user --ap=user --controller=remote,ip=192.168.0.193,port=6653

               ryu可以指定其它端口:
               ryu-manager --ofp-listen-host '192.168.0.127' --ofp-ssl-listen-port 11884 --ofp-tcp-listen-port 11884 ryu.app.simple_switch_13


  1. 目前已經有的網絡拓撲(下面都是使用的RYU控制器和ofsoftswitch交換機):
    1. minimal

      創建兩個host,一個switch,拓撲不能指定個數。

                     mn --topo=minimal --switch=user --ap=user --controller=remote,ip=192.168.0.193,port=6653

  1. single

        創建兩個host,一個switch,可以指定參數,如果參數輸入3,表示創建3個host,一個switch。

        mn --topo=single,3 --switch=user --ap=user --controller=remote,ip=192.168.0.193,port=6653

  1. reversed

        reversed(反向拓撲) 和 single的效果是一樣的。

        mn --topo=reversed,5 --switch=user --ap=user --controller=remote,ip=192.168.0.193,port=6653

  1. linear

        創建5個AP,創建5個station,組成一條線

        mn --wifi --topo=linear,5 --switch=user --ap=user --controller=remote,ip=192.168.0.193,port=6653

  1. tree

        --topo=tree,3,2  : 拓撲模型,交換機的深度或者層數,每個交換機下連接的主機或者交換機個數。

        --topo=tree,3,2 : 三層,第一層1個交換機,第二層2個交換機,第三層4個交換機,主機:4 x 2 = 8

        --topo=tree,3,3 : 三層,第一層1個交換機,第二層3個交換機,第三層9個交換機,主機:9 x 3 = 27

        --topo=tree,3    : --topo=tree,3,2效果一樣。

        創建tree型拓撲不能帶--wifi參數,帶--wifi參數創建不起來。

        tree 測試過10層網絡拓撲,創建了1024個host,1023個switch,最終的結果是創建不起來,可能大概要耗時一天,cpu全都占用完了。

        mn --topo=tree,3 --switch=user --ap=user --controller=remote,ip=192.168.0.193,port=6653

  1. torus

        創建一個圓環面型拓撲,創建不起來。

        mn --topo=torus --switch=user --ap=user --controller=remote,ip=192.168.0.193,port=6653

 

  1. 5switch的線型組網:

clip_image001[4]

 

  1. 3層樹形拓撲組網:

clip_image002[4]



  1. 自定義網絡拓撲
    1. 我是在mininet-wifi的工程目錄下面增加一個custom目錄,這里存放新增的網絡拓撲文件。

clip_image003[4]


  1. custom目錄下新增mytopo.py文件。新增一個子類繼承 Topo_WiFi,新增的拓撲類的 __init__ 函數里面 創建各個站點和link,文件代碼如下:


frommn_wifi.topoimportTopo_WiFi

 

classMyTopo(Topo_WiFi):

"Simpletopologyexample."

 

def__init__(self):

"Createcustomtopo."

 

#Initializetopology

Topo_WiFi.__init__(self)

 

#addstationsandaccesspoints

sta1=self.addStation('sta1')

sta2=self.addStation('sta2')

sta3=self.addStation('sta3')

sta4=self.addStation('sta4')

sta5=self.addStation('sta5')

ap1=self.addAccessPoint('ap1')

ap2=self.addAccessPoint('ap2')

ap3=self.addAccessPoint('ap3')

ap4=self.addAccessPoint('ap4')

ap5=self.addAccessPoint('ap5')

ap6=self.addAccessPoint('ap6')

 

#addlinks

self.addLink(ap1,ap2)

self.addLink(ap1,ap3)

self.addLink(ap2,ap4)

self.addLink(ap2,sta2)

self.addLink(ap3,ap5)

self.addLink(ap3,ap6)

self.addLink(ap4,sta1)

self.addLink(ap5,sta3)

self.addLink(ap5,sta4)

self.addLink(ap6,sta5)

 

#addtotopo

topos={'mytopo':(lambda:MyTopo())}

 

  1. 指定mn的參數如下:

--wifi --custom ./custom/mytopo.py --topo=mytopo --switch=user --ap=user --controller=remote,ip=192.168.0.193,port=6653


  1. 最后創建出來的拓撲圖如下:

clip_image004[4]

 

  1. 執行pingall,可以看到所以節點都可以ping通。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM