首先把参考的视频链接附下
https://www.bilibili.com/video/BV1nC4y1x7Z8?vd_source=c787af8097f157dcc2ee6460667bec14
Mininet是一款基于LinuxContainer架构开发的进程虚拟化网络仿真工具(类似于ENSP(Enterprise Network Simulation Platform),ENSP是华为推出的一款网络仿真工具)不过Mininet更适合仿真SDN网络
Ryu是基于Python语言编写的网络控制器,主要用于支持OpenFlow协议的SDN控制器,Ryu提供了丰富的API和插件,使得使用者可以根据自身需求定制控制器
Mininet安装步骤
首先需要在Ubuntu上安装git,git可以用于管理GitHub的代码库,也就是说,利用git可以下载github上的源码,下载命令如下:
git clone <repository_url> #源码URL
可以使用包管理工具apt安装git,安装命令如下
apt-get install git
安装git完成后,可以给git添加SSH密钥(可以不添加,这里提供给一个方法,我没试过,仅作参考),添加密钥步骤如下:
Linux生成密钥命令如下:
ssh-keygen -t rsa -C "your_email@example.com" #替换成邮箱
命令会生成一个公钥私钥对,一般默认保存在“~/.ssh/”目录下
配置密钥,需要登录到GitHub账户上,进入“设置”页面,选择“添加SSH和GPG密钥”选项,然后需要提供公钥、标题和描述,添加即可
安装完git后,就可以在GitHub上下载Mininet的源码了
Mininet源码URL如下所示
https://github.com/mininet/mininet
可以直接在GitHub上下载到本地
可以使用git下载,命令如下所示
git clone http://github.com/mininet/mininet.git
执行此命令后,git会将源码下载至当前目录下
下载的Miminet源码包的安装shell脚本(install.sh)在“mininet/util/”目录下,执行脚本安装,这里需要注意,需要添加参数控制安装,可以使用下面命令行查看有哪些参数及其作用(到install.sh目录下)
./install.sh -h
这里给出参数的结束
./install.sh
参数选项:
-a: (默认)安装所有(All)软件包
-b: 安装控制器基准(Benchmark)标记(oflops)
-c: 安装后进行清理(Clean)
-d: 从VM镜像中删除(Delete)一些敏感文件
-e: 安装Mininet文档/LaTeX(LaTeX)依赖项
-f: 安装OpenFlow(OpenFlow)
-h: 打印此帮助(Help)消息
-i: 安装(Indigo)indigo虚拟交换机
-k: 安装新的核心文件(Kernel)
-m: 从源目录安装Open vSwitch模块(Module)
-n: 安装(Mininet)Mininet依赖项+核心文件
-p: 安装(POX)POX OpenFlow控制器
-r: 删除(Remove)现有的Open vSwitch包
-s <dir>:在<dir>中放置依赖源(Source)/构建树
-t: 完成其他(Other)Mininet虚拟机设置任务
-v: 安装Open vSwitch(Open vSwitch)
-V <version>:在Ubuntu上安装特定版本的Open vSwitch(Open vSwitch)
-w: 安装OpenFlow Wireshark(Wireshark)解析器
-x: 安装NOX Classic OpenFlow控制器
-y: 安装Ryu控制器
-0:(默认)-0[fx] 安装OpenFlow 1.0版本
-3:-3[fx] 安装OpenFlow 1.3版本
这里没有进行默认安装(我在默认安装所有软件包后,在安装OpenFlow的时候出现连接不上的情况)
安装命令为
./install.sh -n3v
安装完成后,就可以启动了(安装过程中,Mininet命令已经加入到了环境变量当中了,因此可以直接启动了)
输入下面命令启动
mn
出现命令提示符后,表示初步安装成功
执行命令检查安装是否错误
pingall
出现以上情况表示可以正常ping通,Mininet安装完成
Ryu安装
(这一步如果有pip的话可以略过,一般Python安装后会有pip)下载用于pip安装的脚本文件get-pip.py(pip是Python 用于管理第三方库的工具),下载命令如下(注意,这里需要下载和Python版本相同的get-pip.py,这里最好是用Python3的版本(最好是Python3.8以上的),我的Python2.7的pip显示版本过旧而出现错误)
wget https://bootstrap.pypa.io/get-pip.py #下载最新的版本
wget https://bootstrap.pypa.io/pip/<version>/get-pip.py #下载指定版本的get-pip.py
脚本文件会下载到当前目录下
使用Python解释器执行脚本
python get-pip.py
第一种方法
直接用pip安装即可
pip install ryu
第二种方法
在GitHub上下载Ryu源码
git clone https://github.com/osrg/ryu.git
下载好的Ryu源码包当中有安装脚本(setup.py),以及需要依赖的第三方库(在根目录下的tools/pip-requires)
首先先用安装所需要的第三方库
命令为
pip install -r tools/pip-requires
安装依赖完成后,就可以执行安装脚本了
进入Ryu源码目录,执行下面命令(直接安装在安装目录当中 )
python setup.py install