SDN实验(基于Ubuntu20.04)Mininet和Ryu安装

Mininet安装

  • Mininet是一个开源的网络仿真器,是一个轻量级软件定义网络和测试平台,支持OpenFlow、

  • OpenvSwith 等各种协议。

  • 使用Mininet可以很方便地创建一个支持SDN的网络。用户可以自定义网络拓扑,灵活地为网络添加新的功能并进行相关测试,从而缩短开发测试周期。在Mininet 上运行的代码可以轻松移植到支持OpenFlow的硬件设备上。

  • Mininet可以在自己的电脑,或服务器,或虚拟机,或者云(例如AmazonEC2)上运行。

  • Mininet提供 python APl,简单易用。

1.登录sz用户,sudo.

2.安装git

3.下载mininet源代码

4.安装mininet

1.登录sz用户,sudo.

首先进入 /home/sz目录

image-20230414213700827

2.安装git

sudo apt-get install git #安装git

image-20230414213934841

3.下载mininet源代码

git clone https://github.com/mininet/mininet.git #安装mininet源代码

注意:重新进入/home/sz目录(sz是你的用户名),因为刚才sudo进入root权限,之后git clone的文件夹是root用户所有,不方便在图形化界面修改。

Ubuntu终端以及浏览器连接不上Github的解决办法:https://blog.csdn.net/voshv/article/details/127120400?ops_request_misc=&request_id=&biz_id=102&utm_term=ubtuntu20.04%E8%AE%BF%E9%97%AE%E4%B8%8D%E4%BA%86GitHub&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-2-127120400.142^v83^insert_down1,239^v2^insert_chatgpt&spm=1018.2226.3001.4187

image-20230414215116888

4.安装mininet

安装mininet

cd mininet

ls

cd util

ls

./install.sh

image-20230415141302345

出现这个界面是安装成功,期间会git clone很多库,如果克隆失败,可以用dev-sidecar。

如果上一步安装openvswitch不成功

可以执行 sudo apt-get install openvswitch-switch

第二步

ovs-vsctl show

Ryu安装

1.安装pip

2.下载Ryu源代码

3.安装Ryu依赖包

4.安装Ryu

5.验证Ryu是否安装成功

1.安装pip

最好在根目录安装

cd /home/sz

wget https://bootstrap.pypa.io/get-pip.py

ls #查看文件是否安装完

sudo python3 get-pip.py #使用python3安装

image-20230414235804873

image-20230414235956809

2.下载Ryu源代码

将ryu源码下载到虚拟机:

git clone https://github.com/osrg/ryu.git

本例ryu源代码下载到了/home/sz/ryu目录下

image-20230415000343641

3.安装Ryu依赖包

首先进入ryu目录

cd /home/sz/ryu

sudo pip install -r tools/pip-requires

image-20230415000640915

image-20230415000715233

出现报错则重新执行命令

4.安装Ryu

cd /home/sz/ryu

sudo python3 setup.py install

image-20230415000957618

5.验证Ryu是否安装成功

进入ryu/ryu/app目录

image-20230415001053693

sudo ryu-manager example_switch_13.py#使用switch_的模板文件

image-20230415143654941

接下来打开mininet创建网络拓扑

打开另一个终端

sudo mn --controller=remote #mn创建最小的网络拓扑,controller=remote使用远程控制器即ryu控制器

如果不输入controller=remote则使用mininet自带的控制器。

image-20230415144007867

image-20230415144656302

这样就是正常,mininet输入exit退出,ryu按住ctrl+c退出。