【SDN】Ryu网络拓扑可视化app使用简介 |
您所在的位置:网站首页 › 拓扑功能的图标有哪些 › 【SDN】Ryu网络拓扑可视化app使用简介 |
在使用SDN的过程中,经常会遇到网络拓扑可视化的需求,而目前主流的SDN控制器也都提供了相应的功能。这篇博文将简单介绍一下当你选用Ryu作为控制器时,如何实现网络拓扑的可视化。 Ryu自带了网络拓扑可视化的app,名称为gui_topology.py,路径为:ryu安装目录/ryu/app/gui_topology/gui_topology.py。既然它是一个app,要使用它便十分方便: ryu-manager Path/to/gui_topology.py 或者 ryu run Path/to/gui_topology.py 即可启动成功后,将交换机连接到Ryu,用浏览器访问http://ryu运行的主机ip:8080即可看到当前的网络拓扑。 比如,我用mininet模拟了一个深度为3的树状网络拓扑,并连接到ryu,命令如下: sudo mn --controller remote --topo tree,depth=3连接成功后,访问http://localhost:8080(我的ryu和mininet均运行在本机),即可看到如下界面: 可以发现,我们能看到所有的交换机,但它们之间的连接却看不到,想要看到交换机之间的连接,需要在启动ryu时加上 –observe-links参数,表示我们想要看到交换机之间的连接,即 ryu-manager Path/to/gui_topology.py --observe-links 或者 ryu run Path/to/gui_topology.py --observe-links带上–observe-links启动ryu之后,再用相同的命令启动mininet,这时再访问http://localhost:8080,我们看到的界面如下: 不仅有交换机,他们之间的连接也都显示出来了。同时,在这个界面,我们还可以点击某个交换机来查看当中的流表项,还是比较方便的: 几点说明: 若你在启动Ryu时使用了–observe-links参数,则Ryu会收到非常大量的包含LLDP协议报文的PacketIn消息,如果不对这一PacketIn消息进行特殊处理的话,很容易导致Ryu奔溃,无法正常工作!!!所以,为了避免这一问题,当你计划使用–observe-links启动Ryu时,在你处理PacketIn消息的函数开头,建议包含如下代码,即可解决问题: if eth.ethertype == ether_types.ETH_TYPE_LLDP: # ignore lldp packet returnRyu是支持同时启用多个app的,也就是说,启用gui_topology.py这个app并不影响你启用你自己写的控制逻辑app, 即你可以使用如下命令来启用多个app: ryu-manager Path/to/gui_topology.py Path/to/yourApp.py Path/to/yourApp1.pygui_topology.py这个app只支持查看交换机与交换机之间的连接,但无法查看主机以及他们与交换机之间的连接,目前我也没有发现能查看到这一信息的app,如果发现了我将即使更新在这篇博客中。如果希望查看到包含主机在内的完整网络拓扑,推荐使用ONOS控制器。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |