实验6:开源控制器实践——RYU
实验目的
- 能够独立部署RYU控制器;
- 能够理解RYU控制器实现软件定义的集线器原理;
- 能够理解RYU控制器实现软件定义的交换机原理。
实验要求
(一)基本要求
- 搭建下图所示SDN拓扑,协议使用Open Flow 1.0,并连接Ryu控制器,通过Ryu的图形界面查看网络拓扑。
![]() 
- 建立拓扑sudo mn --topo=single,3 --mac --controller=remote,ip=127.0.0.1,port=6633 --switch ovsk
![]()  - 连接Ryu控制器 - ryu-manager ryu/ryu/app/gui_topology/gui_topology.py --observe-links
![]()  - 通过Ryu的图形界面查看网络拓扑 
 在浏览器中输入地址http://127.0.0.1:8080即可打开ryu的图形界面
![]()  
- 运行L2Switch ryu-manager L2Switch.py
 pingall可以ping通
![]()  
- 开启主机终端 mininet>xterm h2 h3
- 在h2主机终端中输入tcpdump -nn -i h2-eth0
- 在h3主机终端中输入tcpdump -nn -i h3-eth0
- h1 ping h2
 
h1 ping h3
 
 运行结果:
运行ryu-manager L2xxxxxxxxx.py
mininet>dpctl dump-flows
 
个人总结
- 实验最开始就遇到了问题TypeError: cannot set 'is_timeout' attribute of immutable type 'TimeoutError',查找相关资料后通过pip install https://github.com/eventlet/eventlet/archive/master.zip解决了问题,当随后又出现了新的问题AttributeError: module 'collections' has no attribute 'MutableMapping',最后通过https://blog.csdn.net/lishuaigell/article/details/125221750该帖子中的修改相关路径文件中的collections.MutableMapping为collections.ac.MutableMapping成功解决。
- 通过本次实验学会了独立部署Ryu控制器;能够理解Ryu控制器实现软件定义的集线器原理以及Ryu控制器实现软件定义的交换机原理。
 
                     
                    
                 
                    
                

 
 
 
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号