SDN Mininet安装脚本(python版,全自动,解放双手)仅适用于Ubuntu

最近在学习SDN,需要使用网络仿真工具mininet,反反复复折腾了好长时间,尝试了完整安装,也尝试了主要文件安装,不是主机之间无法通信,就是指定的openvswitch安装不上,所以我单独安装了mininet和openvswitch,也不是说安装有多难,但就是安装完成之后总出问题,今天可能安装成功了,过两天说不定又安装不了了,又得折腾老长时间,所以为了解决这个问题,我直接将成功安装mininet的所有步骤写成了一个脚本,没有什么技术含量,目的就是解决安装mininet总是不成功的问题

脚本执行的原理就是使用python执行Linux命令,这里就是执行安装mininet所需的全部命令,再直白点就是不需要你一条一条的去敲命令了,直接运行脚本就可以帮你执行安装命令了


演示一下吧

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述



这里我把脚本中的命令都贴出来了,大家可以在Linux中创建一个python文件然后将脚本中的命令都复制进去,直接运行就可以了

再强调一遍这个脚本只适用于Ubuntu系统,因为脚本中的命令都是Ubuntu中的命令,其他系统无法执行


修改版本

可以修改安装mininet的版本,修改os.system("git checkout 2.3.0")这条命令中的版本

也可以修改安装openvswitch的版本,修改os.system("./install.sh -n3V 2.15.0")os.chdir("./openvswitch/openvswitch-2.15.0")这两条命令中的版本

这里我亲测的是mininet2.3.0和openvswitch2.15.0


脚本命令

import os

# 更新安装源
os.system("apt-get update")
# 安装git
os.system("apt install -y git")
# 下载mininet
os.system("git clone git://github.com/mininet/mininet")
# 进入mininet目录
os.chdir("./mininet")
# 修改安装版本
os.system("git checkout 2.3.0")
# 进入安装目录
os.chdir("./util")
# 安装mininet,这里虽然指定安装openvswitch,但他只会帮我们下载安装文件,并不会帮我们安装,所以还要我们自己安装,可以指定openvswitch的版本
os.system("./install.sh -n3V 2.15.0")
# 切换到原目录
os.chdir("../../")
# 进入openvswitch目录
os.chdir("./openvswitch/openvswitch-2.15.0")
# 编译文件
os.system("./configure")
# 安装编译命令
os.system("apt install -y make")
os.system("make")
os.system("make install")
os.system("/sbin/modprobe openvswitch")
# 添加环境变量
os.environ["PATH"] += os.pathsep + "/usr/local/share/openvswitch/scripts"
# 启动
os.system("ovs-ctl start")
# 添加环境变量
os.environ["PATH"] += os.pathsep + "/usr/local/share/openvswitch/scripts"
# 启动
os.system("ovs-ctl --no-ovs-vswitchd start")
# 添加环境变量
os.environ["PATH"] += os.pathsep + "/usr/local/share/openvswitch/scripts"
# 启动
os.system("ovs-ctl --no-ovsdb-server start")
print("APPLICATION INSTALLED SUCCESSED")

如果大家还是觉得麻烦,可以下载这个python文件,然后上传到机器中直接执行就可以了,我把文件的下载地址放到下面了

下载地址:https://pan.baidu.com/s/1gDSvt8G2ilMTerObp5mE9A
提取码:hqjl


可能因为网速等原因有的文件没有下载成功,大家可以尝试多执行几次脚本

脚本是我亲测过的,但因为每个人的机器不同,问题不同,所以也不能保证会绝对安装成功,大家见谅


相关文章

SDN Mininet安装脚本(shell版,全自动,解放双手)仅适用于Ubuntu

SDN RYU控制器安装脚本(全自动,解放双手)仅适用于Ubuntu

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
以下是一个基本的mininet上MPTCP的python脚本。它创建了一个简单的拓扑,其中有两个主机和一个交换机,然后在主机之间运行MPTCP流量测试。 ```python #!/usr/bin/python from mininet.topo import Topo from mininet.net import Mininet from mininet.node import CPULimitedHost from mininet.link import TCLink from mininet.log import setLogLevel, info def MPTCPTopo(): # 创建一个简单的拓扑,包含两个主机和一个交换机 topo = Topo() topo.addHost('h1', cls=CPULimitedHost, cpu=.5) topo.addHost('h2', cls=CPULimitedHost, cpu=.5) topo.addSwitch('s1') topo.addLink('h1', 's1', bw=10, delay='5ms', loss=0) topo.addLink('h2', 's1', bw=5, delay='10ms', loss=0) return topo def MPTCPTest(): # 创建一个MPTCP测试 topo = MPTCPTopo() net = Mininet(topo=topo, host=CPULimitedHost, link=TCLink) net.start() h1, h2 = net.get('h1', 'h2') # 在h1启动iperf服务器 h1.cmd('iperf -s &') # 在h2启动iperf客户端,向h1发送MPTCP流量 h2.cmd('iperf -c %s -P 3 -i 1 -t 10' % h1.IP()) net.stop() if __name__ == '__main__': setLogLevel('info') MPTCPTest() ``` 该脚本创建了一个名为MPTCPTopo的函数来定义拓扑。它使用mininet.topo.Topo类来定义拓扑,然后添加两个主机和一个交换机。每个主机都被定义为mininet.node.CPULimitedHost类的实例,以模拟现实世界中的计算资源限制。 MPTCPTest函数使用MPTCPTopo函数来创建拓扑,并在两个主机之间运行MPTCP流量测试。它使用mininet.net.Mininet类来启动网络,并使用mininet.net.Mininet.get方法获取对主机的引用。然后,在h1上启动iperf服务器,并在h2上启动iperf客户端,向h1发送MPTCP流量。最后,该函数停止网络并退出。 要运行该脚本,请将其保存为文件(例如mptcp.py),然后在终端中运行以下命令: ``` sudo python mptcp.py ``` 该脚本需要在root权限下运行,以便使用mininet模拟网络。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值