mininet安装使用学习笔记

我的安装环境:ubuntu20.04

mininet安装

1.安装git

sudo apt-get install git

2.获取mininet.git

git clone http://github.com/mininet/mininet.git

可能因为网络问题会显示无法连接或者拒绝连接,多试几次就好。

3. 进入util文件夹(mininet文件夹默认在root文件夹下) 

cd mininet/util 

 4. 自定义安装(需要10分钟左右)

安装所有特性

./install.sh -a

安装时会git clone四个文件夹如下图:

小心下载完一个后其他的因为网络问题结束了下载,可能影响后续使用。

记得删掉先下好的openflow目录以及pox目录等,不然会显示已经存在openflow目录不往下克隆了。(俺搞了一百次左右才一次性下完哭死)

四个都成功下载成功后显示enjoy mininet成功。

5. 测试安装是否成功 

这张图在第四步没安装完成的时候也可以出现。(目前还不知道没完全clone会有什么后果,但是为了求稳还是全部clone了)

mininet使用

Mininet中使用可视化编辑器Miniedit进行拓扑建立

1.进入到mininet/examples中,运行miniedit.py

cd mininet/examples/
sudo ./miniedit.py 

 2.左边一列选设备,左键点击后在面板点一下就能部署然后用蓝线进行连接(控制器的部署蓝线后会变成红色虚线所以不要去找红色线)。然后按照这个图部署一下网络,配置一下控制器

3.在Edit->perference页面进行配置,勾选start CLI选项,可以使得网络在运行时打开命令行,即"mininet> "页面。

4.点击run,运行此网络,可以发现进入到了命令行界面。

5.测试h1,h2是否连通,发现可以连通,网络建立成功

输入h1 ping h2

6.进入 File -> Export Level 2 Script可以将生成的网络拓扑保存为python文件,在之后想要使用此拓扑时,可以选择直接运行对应python文件,即“sudo python 文件名.py” 或者“sudo ./文件名.py”。

 

使用python语言构建拓扑

 可以通过miniedit.py将构建的拓扑导出为python文件,观察example文件中已有的python例子和miniedit导出的文件,其实也可以自己编写python文件构建拓扑。

以下为一个用python语言编写的可以运行的拓扑网络。

#!/usr/bin/python

from mininet.net import Mininet
from mininet.node import Controller, RemoteController, OVSController
from mininet.node import CPULimitedHost, Host, Node
from mininet.node import OVSKernelSwitch, UserSwitch
from mininet.node import IVSSwitch
from mininet.cli import CLI
from mininet.log import setLogLevel, info
from mininet.link import TCLink, Intf
from subprocess import call

def myNetwork():

    net = Mininet( topo=None,
                   build=False,
                   ipBase='10.0.0.0/8')

    info( '*** Adding controller\n' )
    c0=net.addController(name='c0',
                      controller=OVSController,
                      ip='127.0.0.1',
                      protocol='tcp',
                      port=6633)

    info( '*** Add switches\n')
    s1 = net.addSwitch('s1', cls=OVSKernelSwitch, dpid='0000000000000001')

    info( '*** Add hosts\n')
    h1 = net.addHost('h1', cls=Host, ip='10.0.0.1', defaultRoute=None)
    h2 = net.addHost('h2', cls=Host, ip='10.0.0.2', defaultRoute=None)

    info( '*** Add links\n')
    net.addLink(h1, s1)
    net.addLink(h2, s1)

    info( '*** Starting network\n')
    net.start()
    info( '*** Starting controllers\n')
    #for controller in net.controllers:
    c0.start()

    info( '*** Starting switches\n')
    net.get('s1').start([c0])

    info( '*** Post configure switches and hosts\n')
    CLI(net)

if __name__ == '__main__':
    setLogLevel( 'info' )
    myNetwork()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值