首页 > 其他分享 >Mininet问题合集

Mininet问题合集

时间:2024-10-16 19:33:56浏览次数:7  
标签:Mininet sudo mininet miniedit py 问题 合集 python3 python2

我的环境:Ubuntu 22.04.5 LTS

liu@liu-Ubuntu-Desktop:~/桌面$ ovs-vsctl -V
ovs-vsctl (Open vSwitch) 2.17.9
DB Schema 8.3.0
liu@liu-Ubuntu-Desktop:~/桌面$ mn --version
2.3.0
liu@liu-Ubuntu-Desktop:~/桌面$ python3
Python 3.10.12 (main, Sep 11 2024, 15:47:36) [GCC 11.4.0] on linux

一、MiniEdit中将拓扑另存为python文件时报错

报错信息如下:

image-20241016155421891

这个报错原因通常是因为使用了python3来启动miniedit.py。

如果有python2环境,使用python2打开就能解决。

# 查看当前环境中的python版本
liu@liu-Ubuntu-Desktop:~/桌面$ which python2
/usr/bin/python2	# 说明我当前环境中有python2
liu@liu-Ubuntu-Desktop:~/桌面$ which python3
/usr/bin/python3	# 说明我当前环境中有python3

# 如果有python2,那么使用python2来打开miniedit
sudo python2 miniedit.py的路径
# 例如:
sudo python2 ~/mininet/examples/miniedit.py

如果环境中没有python2或者想要使用python3启动,那么就需要修改miniedit.py文件的内容。

根据报错信息可知,我的miniedit.py是在/usr/lib/python3/dist-packages/mininet/examples/目录下。(如果你是使用git clone,之后执行install.py安装的mininet,那么你的)

先备份miniedit.py文件.

sudo cp [miniedit.py的路径]/miniedit.py [miniedit.py的路径]/miniedit_backup.py 
# 示例
sudo cp /usr/lib/python3/dist-packages/mininet/examples/miniedit.py /usr/lib/python3/dist-packages/mininet/examples/miniedit_backup.py

使用vim编辑器打开miniedit.py文件。

# 示例
sudo vim /usr/lib/python3/dist-packages/mininet/examples/miniedit.py

打开后输入:1707,回车。

image-20241016162130659

跳转到1707行后,按i进入编辑模式,找到wb,将其修改为wt

image-20241016162341986

再按Esc建,退出编辑模式,再输入:wq保存并退出。

image-20241016162455182

若保存退出时出现下面这种情况,清输入wq!保存并强制退出。

image-20241016162930026

此时,重新使用python3启动MiniEdit(也就是miniedit.py文件),就可以将拓扑图保存为python文件了。

# 示例
sudo python3 /usr/lib/python3/dist-packages/mininet/examples/miniedit.py

二、MiniEdit中点击Run运行时闪退、以python脚本保存的拓扑文件运行报错

MiniEdit中点击Run运行时闪退,或者以python脚本保存的拓扑文件运行出现类似下图中所示的报错,提示Cannot find required executable controller.

image-20241016183239169

这是因为ovs-controller从OVS 2.1.0开始不再打包,但是mininet仍然需要使用ovs-controller。

mininet的github上也有说明:https://github.com/mininet/mininet/issues/301

image-20241016184828563

目前我的OVS版本是2.17.9,且我是通过sudo apt install mininet命令直接安装的mininet,所以没有ovs-controller。

如果你是使用git clone mininet的仓库,并通过install.sh脚本来安装的,那么你可以尝试重新安装mininet来解决此问题。

# 进入到解压后的mininet目录
cd /[mininet路径]/mininet/util/
# 反复执行安装脚本(记得加上-a选项)
sudo ./install.sh -a

如果多次尝试重新安装无果后,请尝试下面的方法。

如果你和我一样,使用apt安装的,可以尝试下面提供的解决方法。

解决方法是,安装openvswitch-testcontroller,并为openvswitch-testcontroller创建符号链接为controller

# 安装openvswitch-testcontroller
sudo apt-get install openvswitch-testcontroller
# 创建符号链接
sudo ln /usr/bin/ovs-testcontrholler /usr/bin/controller

img

接下来还需要关闭OVS的controller服务,否则mininet会报错。

# 关闭服务
sudo service openvswitch-testcontroller stop
# 查看服务状态(按Ctrl+C退出)
sudo service openvswitch-testcontroller status
# 禁止开机自启
sudo update-rc.d openvswitch-testcontroller disable

没有关闭OVS的controller服务的后果。

MiniEdit点击Run运行时:

image-20241016170105710

运行保存的python脚本时:

image-20241016165316469

使用测试命令时:

image-20241016165405370

此时,再次运行脚本文件,成功执行。

image-20241016191527789

标签:Mininet,sudo,mininet,miniedit,py,问题,合集,python3,python2
From: https://www.cnblogs.com/chuangblog/p/18470603

相关文章

  • 大部分的强化学习环境都是确定性的,那么如何解决训练过程中环境的确定性与实际问题要求
    提出一个问题:大部分的强化学习环境都是确定性的,那么如何解决训练过程中环境的确定性与实际问题要求的随机性之间的差距呢众所周知的问题,现在的强化学习环境几乎都是确定性的,比如:atari这样的游戏环境,都是确定性的,如果你确定初始状态和动作序列,那么你所获得的最终环境状态一定是......
  • MIMIC-IV v3.1正式发布,修复多个数据问题
    2024年10月11日,广受医学研究者欢迎的MIMIC-IV数据库发布了v3.1版本。本次更新主要针对社区提出的几个问题进行了修复,进一步提升了数据的准确性和一致性。首先,MIMIC-IVv3.1修复了d_labitems表和labevents表中的itemid值不一致问题。在v2.2与v3.0版本之间,部分实验室测量项的ite......
  • 5.树上问题
    树上问题开题顺序:\(AC\)\(A\)CF600ELomsatgelral题解\(B\)CF708CCentroids\(C\)CF1706EQpwoeirutandVertices题解\(D\)luoguP2491[SDOI2011]消防\(E\)luoguP4253[SCOI2015]小凸玩密室\(F\)luoguP8890[入门赛#7]打ACM最快乐的就是滚榜读队名......
  • Redis的缓存问题
    缓存雪崩定义:缓存雪崩是指在某个时间段内,缓存中的大量数据同时失效或者大量的请求集中到某一个时间点发生,导致数据库压力骤增,甚至引起服务崩溃的现象。原因:通常是由于缓存中的大量数据同时过期或者大量的请求集中到某一时间点。例如,如果缓存中的大量数据在同一时间点过期,那......
  • Excel DLL丢失?Excel DLL文件下载指南及常见问题解决方案
    当您在使用MicrosoftExcel时遇到提示DLL文件丢失或损坏的情况,这可能会影响软件的正常运行。为了帮助您解决这一问题,本文提供了ExcelDLL文件的下载指南,并针对常见问题给出了解决方案。一、ExcelDLL文件下载指南确定缺失的DLL文件:首先,您需要确定是哪个DLL文件丢失或损坏......
  • Python入门:A+B问题
    1.A+B问题I前言本篇作为课程第一篇,主要是对Python基础语法进行扫盲,本节课会学习到下面知识:输入本道题目的工作任务很简单,只是计算两个数的和,但是在计算之前,我们首先要明确的一个问题就是如何把这两个数据输入到计算机中,并由程序读取呢?输入当然是使用键盘之类的输入设备完......
  • jmeter压测问题: JAVA.NET.BINDEXCEPTION: ADDRESS ALREADY IN USE: CONNECT
    1.报错信息:2. 问题排查  1)询问AI,说端口被占用。修改了jmeter的端口号后,仍是不行  2)最后找到一篇博客,真的解决了问题     我只进行了,增大端口号,减少Time_Wait, Close_WAIT没有处理,仍解决了此问题 ......
  • jdk1.6,jdk1.7,jdk1.8安装共存问题
    1.今天遇到了需要编辑开发公司老项目的情况,之前本人电脑就装了1.6和1.8的jdk,现在老项目优需要安装jdk1.7运行,便有了这个问题,再次记录下2.首先需要安装对应的jdk,以及环境变量,我这里只展示三者共存的环境变量设置,其余单一的配置环境变量,网上都有就不在此啰嗦了3.用JAVA_H......
  • 使用CORS解决跨域问题
    如果发起请求所在主机(也称为域)和处理请求所在主机的协议、域名和端口号这三者中有任何一项不同,那么发出的请求就叫跨域请求。出于网络安全性方面的考虑,跨域请求会被限制,SpringBoot后端不能直接处理跨域请求,为了解决这一问题,可以在后端项目中引入CORS解决方案。在CORS(Cros......
  • (接上篇问题回答)OWASP Top 10 漏洞详解:基础知识、面试常问问题与实际应用
    1.SQL注入面试常见问题什么是SQL注入? SQL注入是一种网络安全漏洞,攻击者通过向SQL查询插入恶意代码,来干扰应用程序的数据库查询,导致未授权的数据访问或数据操纵。如何防止SQL注入? 防止SQL注入的方法包括:使用预编译的SQL语句(PreparedStatements)。使用ORM工具。严格验证和......