前言
本篇博客是自己亲身实践所得。安装过程中会遇到很多问题,搜一搜试一试基本都能解决,感谢各位大佬的博客。作为入门小白,才疏学浅,文中难免有误,还望各位大佬在评论区不吝赐教。
有可能把Ubuntu搞崩溃,所以建议每到一个阶段给虚拟机拍一个快照(下面有具体方法)
一,VMware虚拟机安装
较为简单,可参考其他博客
二,Ubuntu22.04安装
1.Ubuntu系统下载官方链接:Ubuntu系统下载
2.打开虚拟机,点击创建新的虚拟机
以下几步仅供参考,像命名,文件目录等根据自己需要设置,也可参考其他博客。
之后步骤按照博客
VMware虚拟机安装Ubuntu20.04详细图文教程_vmware ubuntu-CSDN博客
虚拟机拍快照方法
快照是对虚拟机当下状态的存储,如果之后把系统搞崩了可以再回到快照时的状态,避免重装系统浪费时间,建议到关键阶段且之前的操作没有问题就拍一个。
注意左下角会有进度,需要等待。
以下是我拍的一些快照(该命令在上图的快照管理中)
三,Ubuntu安装Mininet
首先提醒一下大家在运行代码时一定要注意是否该有空格,!!!多一个或少一个都可能会出错。
同时很多命令有sudo,sudo具体什么意思可以搜一下,部分命令加上sudo就可运行。
代码建议逐条运行。
我提供的方法是用源码安装,也可采用其他方法,首先打开终端
1.安装git
更新apt
sudo apt-get updatesudo apt-get upgrade
安装git(在安装时选择y,不要选择n,否则会安装失败,自己感觉y是yes,n是no)
sudo apt-get install git
如果不知道安装是否成功可以通过这个代码查询,如果出现版本就是成功了,没有则是失败
git --version
2.获取源码
git clone https://gitclone.com/github.com/mininet/mininetcd mininetgit taggit checkout -b mininet-2.3.0cd ..mininet/util/install.sh -a
等待,出问题
(正克隆到 'openflow'...fatal: 无法访问 'https://github.com/mininet/openflow/':Failed to connect to github.com port 443 after 21288 ms: 拒绝连接)
git config --global url.https://github.com/.insteadOf git://github.com/mininet/util/install.sh -a
执行后(正克隆到 'openflow'...
fatal: 无法访问 'https://github.com/mininet/openflow/':Failed to connect to github.com port 443 after 21075 ms: 拒绝连接)
检测
sudo mn --switch ovsbr --test pingall
sudo apt-get install mininetsudo mn#验证
成功
四,安装ryu
1.我出过的一些其他问题(可先忽略不看)
E: 无法定位软件包
暂时不能解析域名
root使用,设密码
虚拟机联网
等,搜一搜试一试都已解决。
2.概述
我安装ryu用的是Ubuntu22.04.3版本自带python3(3.10)(不能删除,删除了系统图形化界面会崩溃)
参考的是Ubuntu22.04.3 TLS安装部署mininet,ryu_ubuntu22.04.3怎么用-CSDN博客
中的ryu的安装步骤,但不完全一样。其他方法可参考其他博客。
3.步骤
(1)python自带的查询版本命令。
可能会提示需要下载某个包,直接下载即可。
python3 --version //python3版本查询
(2)更新apt,安装pip3
首先在下载软件之前更新下apt以及下载更新pip,避免因为版本引起的报错(建议普通用户加上sudo,否则在更新的时候有些文件无法访问)
sudo apt-get updatesudo apt-get upgrade sudo apt install python3-pip
(3)安装ryu以及依赖
首先获取ryu源码使用与之前mininet相同的方法
git clone https://gitclone.com/github.com/osrg/ryu
之后,使用该命令下载ryu
pip3 install ryu
获取成功之后,我们就需要进入ryu的文件夹下,安装相关依赖文件工具
cd ryusudo pip3 install -r tools/pip-requires
执行命令,安装
sudo python3 setup.py install
(4)检测ryu安装是否成功
若未报错,就是安装成功,若报错,根据报错内容进行更改
sudo ryu-manager
(5)出现问题和对应问题的解决方案
问题1
eventlet文件版本过低,这就是版本问题,我们可以将原本的eventlet删除,之后安装最新版本,之后问题就解决了
sudo pip uninstall eventletsudo pip install eventlet==0.33.3
问题2
AttributeError: module 'collections' has no attribute 'MutableMapping'
我参考了一篇博客AttributeError: module ‘collections‘ has no attribute ‘MutableMapping‘_attributeerror: module 'collections' has no attrib-CSDN博客
方法略有不同,我是打开文件改完后保存的,这样可能存在一个问题是没有权限,可以搜索一下如何获取编辑文件的权限类似的博客。
解决完问题后继续运行
sudo ryu-manager
出现
是成功,如果有问题继续搜一搜。
五,Ryu GUI安装
Ryu GUI是一个用于创建图形用户界面(GUI)的Python库。
参考博客Mininet+Ryu安装教程_ubuntu安装mininet和ryu最新csdn-CSDN博客
中该部分但不完全一样。(此安装可以参考上述博客)
Ryu GUI所需要的webob和routes库已经在下面的命令中安装完毕:
pip install -r tools/pip-requires
测试Ryu的GUI,注意,你的路径和我的不一样!!!
添加路径然后开启界面
cd /usr/local/lib/python3.10/dist-packages/ryu/app/gui_topologysudo ryu-manager --observe-links --verbose gui_topology.py
鼠标指到该网址按Ctrl并点击。
这里我解释一下:
Ryu GUI安装我是参考了那篇博客,首次运行时我运行完我这篇博客上面的步骤后只有一个空的框,也就是框里没有三个网络图标。(我之所以这样我猜测是我没有完全删除之前的操作,但不确定,具体原因还望诸位大佬在评论区指教)
三个图标是我运行完以下步骤才有的
即要实现
Mininet和Ryu联动
继续在上面的路径里,运行openflow1.3的交换机:
新建一个终端窗口
cd /usr/local/lib/python3.10/dist-packages/ryu/app/gui_topologysudo ryu-manager --observe-links /home/ubuntu/ryu/ryu/app/gui_topology/gui_topology.py /home/ubuntu/ryu/ryu/app/simple_switch_13.py#中间隔一个空格,左右是两个地址。
另外新建一个终端窗口,输入Mininet的语句:
sudo mn --controller remote,ip=127.0.0.1 --topo linear,3 --mac --switch ovsk --link tc
刷新一下浏览器,看到类似以下界面就大功告成。
以上是我的安装过程,希望大家批评指正。