1、安装mininet

1
2
3
git clone https://github.com/mininet/mininet
cd mininet/util/
./install.sh

2、安装ryu

1
2
3
apt install -y python3-pip
pip3 install ryu
git clone https://github.com/faucetsdn/ryu

3、开启mininet图形界面

1
2
cd mininet/examples
./miniedit.py

4、搭建如下拓扑并进行相关配置:

采用远端控制器

控制器

修改交换机DPID(16位)和交换机工作类型为内核模式

修改主机ip地址,这个地址的子网需要和Edit下Preferences中IP Basic一样

我们所有的修改内容都会在miniedit.py下输出:

点击File->Export Level 2 Script,保存为Python文件

image-20201126175615271

5、运行ryu远端控制

1
2
cd ryu/ryu/app/
ryu-manager simple_switch.py

6、执行刚刚保存的Python脚本,可以看到远端控制器在下发流表(左侧),而在命令视图中,我们已经可以接收到控制器返回的路由信息,能够ping通所有的设备了。

1
python myMininet.py

补充以下Mininet相关的命令

创建命令 含义
-c 释放之前创建拓扑时占用的未释放的资源
–topo 在mininet启动时通过命令定义拓扑
–custom 创建自定义拓扑
–switch 定义要使用的交换机,默认使用OVSK交换机
–controller 定义使用的控制器
–mac 自动设置设备Maci地址
1
2
3
4
5
6
7
8
9
10
11
mininet> help
mininet> nodes 查看网络中拓扑中的节点的状态
mininet> links 显示链路健壮性信息
mininet> net 显示网络拓扑
mininet> pingall 在网络中的所有主机之间执行ping测试
mininet> pingpair 只测试前两个主机之间的连通性
mininet> iperf 两个节点之间进行带宽测试 iperf h1 h2
mininet> iperfudp 贷款测试UDP版 iperfudp bw h1 h2
mininet> link 禁用或启用节点间链路 link s1 h1 up
mininet> h1 ping h2
mininet> xterm h1 打开host1的终端