栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

mininet基本操作

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mininet基本操作

mininet是由斯坦福大学基于Linux Container架构开发的一个进程虚拟化网络仿真工具 可以创建一个包含主机 交换机 控制器和链路的虚拟网络 其交换机支持OpenFlow 具备高度灵活的自定义软件定义网络。

在ubuntu系统中安装mininet比较简单 直接通过命令行安装即可

apt install mininet

安装完成之后 即可在终端使用mn命令进行相关操作。不过这种方式相对比较抽象 不是特别直观。mininet 2.2.0版本之后包含了miniedit程序 可以进行可视化的配置。

直接在系统中搜索 miniedit.py 然后切换到该路径下 直接使用python miniedit.py即可启动。需要注意的是 该程序支持python2.7版本 如果使用python3的版本会出现诸如print函数报错之类的常见错误。另外需要tk的支持 apt install python-tk进行安装。

启动之后界面如下图所示

 可以直接在主窗口中画出host switch 以及controller等各个组件 随后使用run菜单下单run即可运行。首次运行的时候出现如下错误

Cannot find required executable controller.
Please make sure that it is installed and available in your $PATH:
(/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin)

可以通过如下命令解决此问题

sudo ln /usr/bin/ovs-controller /usr/bin/controller

重新执行 则显示结果如下

 通过File菜单中的 Export Level 2 script 命令 可以将相关设计保存为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 controllern )
 c0 net.addController(name c0 ,
 controller Controller,
 protocol tcp ,
 port 6633)
 info( *** Add switchesn )
 s1 net.addSwitch( s1 , cls OVSKernelSwitch)
 s2 net.addSwitch( s2 , cls OVSKernelSwitch)
 info( *** Add hostsn )
 h2 net.addHost( h2 , cls Host, ip 10.0.0.2 , defaultRoute None)
 h4 net.addHost( h4 , cls Host, ip 10.0.0.4 , defaultRoute None)
 h3 net.addHost( h3 , cls Host, ip 10.0.0.3 , defaultRoute None)
 h5 net.addHost( h5 , cls Host, ip 10.0.0.5 , defaultRoute None)
 h1 net.addHost( h1 , cls Host, ip 10.0.0.1 , defaultRoute None)
 info( *** Add linksn )
 net.addlink(s1, h1)
 net.addlink(s1, h3)
 net.addlink(s2, h4)
 net.addlink(s2, h2)
 net.addlink(s2, h5)
 info( *** Starting networkn )
 net.build()
 info( *** Starting controllersn )
 for controller in net.controllers:
 controller.start()
 info( *** Starting switchesn )
 net.get( s1 ).start([c0])
 net.get( s2 ).start([c0])
 info( *** Post configure switches and hostsn )
 CLI(net)
 net.stop()
if __name__ __main__ :
 setLogLevel( info )
 myNetwork()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/266932.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号