SDN第一次上機做業

標籤(空格分隔): SDNhtml

做業連接java

一、安裝mininet

參考連接:http://www.sdnlab.com/15138.htmlnode

二、用字符命令生成拓撲,並測試連通性,截圖

參考連接:http://www.sdnlab.com/15077.html
拓撲圖以下:python

一、用sudo mn --topo=tree,depth=2,fanout=3命令實現,截圖以下:

二、實驗注意點:

--這不是在mininet裏面寫命令行,而是退出mininet後寫命令行。
--開始的時候depth寫的是3,可是第一層只是一個點,不算一層應該只是兩層。
--每次要新建拓撲時,需執行sudo mn -c命令,防止上次操做對本次實驗的影響app

3.用可視化界面生成拓撲,並測試連通性,截圖

參考連接:http://www.sdnlab.com/15096.html測試

拓撲圖:
ui

一、輸入cd mininet/examples

二、輸入sudo ./miniedit.py

結果:
.net

4.用Python腳本生成一個Fat-tree型的拓撲,截圖

參考連接:http://www.sdnlab.com/15128.html命令行

一、安裝floodlight

在安裝的過程我參考的是這個連接:安裝連接。可是這個教程有一個問題就是在環境變量的那部分是有錯的,因此在環境變量的那部分能夠參考這個blog。固然也能夠就是直接去找連接:官網參考教程
(安裝了兩次,踩了好多坑的感受。。。開始是按照官網作的,而後好像漏作了某個步驟,而後就gg了,以後按照剛剛給的第一個博客作,在Java那裏要記得升級,最後就是最坑的環境變量那裏,一直試不對,找同窗問了之後發現那個博客的環境變量好像是不對的???最後終於改過來了。以後在啓動floodlight的時候竟然在進入管理網頁的時候把網址打錯了,一直出錯,檢查很久才發現本身網址打錯了。以爲本身腦子抽了)code

二、搭建了環境之後就能夠開始實驗了:

--先開啓flooodlight
輸入:cd floodlight ->ant ->java -jar target/floodlight.jar

--建立數據中心,編輯fattree.py以下

#!/usr/bin/python
#
"""Custom topology example
Adding the 'topos' dict with a key/value pair to generate our newly defined
topology enables one to pass in '--topo=mytopo' from the command line.
"""
 
from mininet.topo import Topo
from mininet.net import Mininet
from mininet.node import RemoteController,CPULimitedHost
from mininet.link import TCLink
from mininet.util import dumpNodeConnections
 
class MyTopo( Topo ):
    "Simple topology example."
 
    def __init__( self ):
        "Create custom topo."
 
        # Initialize topology
        Topo.__init__( self )
        L1 = 2
        L2 = L1 * 2 
        L3 = L2
        c = []
        a = []
        e = []
          
        # add core ovs  
        for i in range( L1 ):
                sw = self.addSwitch( 'c{}'.format( i + 1 ) )
                c.append( sw )
    
        # add aggregation ovs
        for i in range( L2 ):
                sw = self.addSwitch( 'a{}'.format( L1 + i + 1 ) )
                a.append( sw )
    
        # add edge ovs
        for i in range( L3 ):
                sw = self.addSwitch( 'e{}'.format( L1 + L2 + i + 1 ) )
                e.append( sw )
 
        # add links between core and aggregation ovs
        for i in range( L1 ):
                sw1 = c[i]
                for sw2 in a[i/2::L1/2]:
                # self.addLink(sw2, sw1, bw=10, delay='5ms', loss=10, max_queue_size=1000, use_htb=True)
                        self.addLink( sw2, sw1 )
 
        # add links between aggregation and edge ovs
        for i in range( 0, L2, 2 ):
                for sw1 in a[i:i+2]:
                    for sw2 in e[i:i+2]:
                        self.addLink( sw2, sw1 )
 
        #add hosts and its links with edge ovs
        count = 1
        for sw1 in e:
                for i in range(2):
                    host = self.addHost( 'h{}'.format( count ) )
                    self.addLink( sw1, host )
                    count += 1
topos = { 'mytopo': ( lambda: MyTopo() ) }

--啓動Mininet,生成測試拓撲結構
輸入: sudo mn --custom ./fattree.py --topo mytopo --controller=remote,ip=127.0.0.1,port=6653 --switch ovsk,protocols=OpenFlow10(cd mininet)

--啓動floodlight管理頁面(http://localhost:8080/ui/index.html)查看拓撲圖

--輸入命令:-net

--輸入命令:pingall

三、實驗過程出的錯和注意點:

--不少命令的執行都要有管理員權限,因此最好一開始就運行在管理員權限下,或者sudo,否則就會出錯。
--開始的時候Ping不通,而後那個ip用的是本身機子上ifconfig查的10.0.2.15端口號也是用的6633(floodlight的默認端口號)可是不行,最後問同窗之後改爲127.0.0.1和6653(端口號是試出來,本身不太懂。。)
--開始的時候輸入是screen mn --custom /home/mininet/fattree.py --topo mytopo --controller=remote,ip=127.0.0.1,port=6653 --switch ovsk,protocols=OpenFlow10,而後一直提示是:could not find custom file:/home/mininet/fattree.py錯誤,改爲了sudo mn --custom ./fattree.py --topo mytopo --controller=remote,ip=127.0.0.1,port=6653 --switch ovsk,protocols=OpenFlow10(cd mininet)之後就行了(我把它歸結爲權限問題?而後順便把路徑方式變了一下) --不少還看不懂,以後會回去再看看,弄清楚一點吧。

相關文章
相關標籤/搜索