安装 Postman
启动 Ryu 控制器
切换到自己的 ryu 目录
cd /home/ubuntu/ryu/ryu/app
sudo ryu-manager simple_switch.py
再开一个终端
cd /home/ubuntu/ryu/ryu/app
sudo ryu-manager ofctl_rest.py
如果遇到端口报错

扫一下接口 kill 掉
sudo lsof -i :6633
sudo lsof -i :6653

启动 Mininet
切换到自己的 Mininet 目录
cd /usr/share/doc/mininet/examples/
python miniedit.py
如果报这个错,请不要用 SSH 连接,请使用系统自带的终端

按图操作





python sd6.py
Postman 操作
打开 Postman ,GET http://192.168.1.50:8080/stats/switches 链接

GET http://192.168.1.50:8080/stats/flow/1

GET http://192.168.1.50:8080/stats/flow/2

终端内输入 dpctl dump-flows

添加 S1
POST http://192.168.1.50:8080/stats/flowentry/add body 内填下面的 json 数据
{
"dpid": 1,
"priority": 11111,
"flags": 1,
"match": {
"in_port": 1
},
"actions": [
{
"type": "OUTPUT",
"port": 2
},
]
}

在终端内再次输入 dpctl dump-flows 查看流表

输入 pingall 查看联通情况

再次 POST http://192.168.1.50:8080/stats/flowentry/add
{
"dpid": 1,
"priority": 11111,
"flags": 1,
"match": {
"in_port": 2
},
"actions": [
{
"type": "OUTPUT",
"port": 1
},
]
}

再次输入 dpctl dump-flows 查看流表

S1 共添加 2 条流表
添加 S2
再次 POST http://192.168.1.50:8080/stats/flowentry/add
{
"dpid": 2,
"priority": 11111,
"flags": 1,
"match": {
"in_port": 1
},
"actions": [
{
"type": "OUTPUT",
"port": 2
},
{
"type": "OUTPUT",
"port": 3
},
]
}

再次输入 dpctl dump-flows 查看流表

再次 POST http://192.168.1.50:8080/stats/flowentry/add
{
"dpid": 2,
"priority": 11111,
"flags": 1,
"match": {
"in_port": 2
},
"actions": [
{
"type": "OUTPUT",
"port": 1
},
{
"type": "OUTPUT",
"port": 3
},
]
}

再次 POST http://192.168.1.50:8080/stats/flowentry/add
{
"dpid": 2,
"priority": 11111,
"flags": 1,
"match": {
"in_port": 3
},
"actions": [
{
"type": "OUTPUT",
"port": 1
},
{
"type": "OUTPUT",
"port": 2
},
]
}


S2 共添加 3 条流表
执行 pingall

清空 S2
清空 Body
向下面两条连接发送 delete 请求
http://192.168.1.50:8080/stats/flowentry/clear/1
http://192.168.1.50:8080/stats/flowentry/clear/2

输入 dpctl dump-flows 查看流表
