Mininet +ryu实现业务带宽保障
一、工具安装
1.安装Mininet
1>安装git ,命令:apt install git
2>获取Mininet源码,命令:
git clone git://github.com/mininet/mininet
3>安装Mininet ,命令:util/install.sh -a
2.安装ryu
1>获取源码 命令:git clone git://github.com/osrg/ryu.git
2>进入ryu文件夹,执行pip install -r tools/pip-requires,然后再执行 python setup.py install
二、配置实验环境
1.启动ryu控制器和ovs交换机 命令:ryu-manager simple_switch_13.py

2.通过建立python文件自定义一个拓扑结构
        mytopo.py

Mininet+RYU带宽保障_第1张图片
该拓扑结构如下图

Mininet+RYU带宽保障_第2张图片

3.在mininet仿真网络中启动自定义的拓扑结构
    命令:sudo ./mn --custom ./mytopo.py --topo mytopo –                   controller=remote,ip=127.0.0.1,port=6653

三、实验
1.测不加入限速队列时的带宽
mininet中输入xterm h1 h2,开启两台虚拟主机控制台,h1作为服务器端输入 iperf -s 10.0.0.2,h2作为客户端输入iperf -c 10.0.0.1
结果带宽为43Gbps,如图
Mininet+RYU带宽保障_第3张图片
2.加入限速队列
命令:sudo ovs-vsctl set port s1-eth1 qos=@newqos -- --id=@newqos create qos type=linux-htb other-config:max-rate=10000000 queues=0=@q0,1=@q1,2=@q2 -- --id=@q0 create queue other-config:max-rate=3000000 other-config:min-rate=2000000 -- --id=@q1 create queue other-config:min-rate=2000000 -- --id=@q2 create queue other-config:max-rate=5000000 other-config:min-rate=1000000
限制总带宽为10Gbps,队列q0最大3Gbps,最小2Gbps;队列q1最小2Gbps;队列q2最大5Gbps,最小1Gbps。
Mininet+RYU带宽保障_第4张图片
3.测试q0队列带宽 使数据包走q0队列
命令:sudo ovs-ofctl add-flow s1 "priority=5, ip,nw_src=10.0.0.1, actions= set_queue:0,normal"
结果为2.96Gbps,证明系统端口速率 TCP 限速测试结果与预期相同,如图
Mininet+RYU带宽保障_第5张图片
4.测试q1队列带宽 使数据包走q1队列
命令:sudo ovs-ofctl add-flow s1 "priority=5, ip,nw_src=10.0.0.1, actions= set_queue:1,normal"
结果为2.03Gbps,带宽超过了最低保障,说明带宽保障机制成功,如图
Mininet+RYU带宽保障_第6张图片
四、总结
1.本实验所设计系统是适用于OpenFlow网络的QoS管理服务
2.本系统可以实现对TCP的限速,对带宽的最低保障和对视频流单独分区以保障其带宽