mininet学习手记1_安装到使用(两种方法+在两个虚拟机中16047_3中用方法2和16047_4中用方法1)

仅用于记录,如有侵权,请联系删除

方法1

1,安装

larry@larry-VirtualBox:~$ sudo apt-get install mininet

2,使用

参考链接:https://blog.youkuaiyun.com/wuliangtianzu/article/details/82689347

larry@larry-VirtualBox:~$ sudo mn --topo=single,5 --controller=remote,ip=127.0.0.1,port=6653

备注:自己电脑运行的floodlight控制器运行的ip和端口,
我的是:ip=127.0.0.1,port=6653

3, 使用的问题

(1):SyntaxError: Non-ASCII character ‘\xe5’ in file /home/larry/repos/mininet_works/fattree.py on line 1

解决办法:
在第一行加上下面代码即可:

#!usr/bin/python
# -*- coding: utf-8 -*-

(2):Exception: Invalid topo name mytopo

解决办法: 就是mytopo这个实例,没有创建,因为python的语法对缩进很敏感,原有的参考代码,没有定格,使得其没有创建
在这里插入图片描述

4,修改后胖树代码

参考代码:https://blog.youkuaiyun.com/xueer767/article/details/73249446

#!usr/bin/python
# -*- coding: utf-8 -*-
#创建网络拓扑,代码可以直接使用
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 )

        # 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() ) }
#注意:‘mytopo’这个参数必须和命令行--topo的参数一致,如果不一致,运行时报“Exception: Invalid topo name mytopo2”

方法2

参考连接:https://blog.youkuaiyun.com/daihanglai7622/article/details/84754443

注:其中安装了java,配置环境,在配置文件末尾加入;重启后生效

在两个地方都改了
(1)命令1

sudo gedit ~/.bashrc

(2)命令2

sudo gedit /etc/profile

立即生效:

#同样,需要使用命令使环境变量立即生效
source /etc/profile
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值