【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,我们看到的界面如下:

在这里插入图片描述

不仅有交换机,他们之间的连接也都显示出来了。同时,在这个界面,我们还可以点击某个交换机来查看当中的流表项,还是比较方便的:

在这里插入图片描述


几点说明:

  1. 若你在启动Ryu时使用了–observe-links参数,则Ryu会收到非常大量的包含LLDP协议报文的PacketIn消息,如果不对这一PacketIn消息进行特殊处理的话,很容易导致Ryu奔溃,无法正常工作!!!所以,为了避免这一问题,当你计划使用–observe-links启动Ryu时,在你处理PacketIn消息的函数开头,建议包含如下代码,即可解决问题:

     if eth.ethertype == ether_types.ETH_TYPE_LLDP:
     	# ignore lldp packet
     	return
    
  2. Ryu是支持同时启用多个app的,也就是说,启用gui_topology.py这个app并不影响你启用你自己写的控制逻辑app, 即你可以使用如下命令来启用多个app:

    ryu-manager Path/to/gui_topology.py Path/to/yourApp.py Path/to/yourApp1.py 
    
  3. gui_topology.py这个app只支持查看交换机与交换机之间的连接,但无法查看主机以及他们与交换机之间的连接,目前我也没有发现能查看到这一信息的app,如果发现了我将即使更新在这篇博客中。如果希望查看到包含主机在内的完整网络拓扑,推荐使用ONOS控制器。

  • 13
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值