Ryu控制器WebUI仅显示交换机不显示主机问题求助
解决Ryu GUI拓扑缺失主机的问题
问题原因
Ryu默认的gui_topology模块仅依赖链路发现(--observe-links)获取交换机间的连接,但不会主动跟踪主机信息——主机不会发送LLDP拓扑发现报文,交换机也不会主动上报主机连接状态,需要额外模块监听网络流量(如ARP、ICMP)来识别主机。
解决方案
启动Ryu控制器时添加ryu.app.host_tracker模块,该模块会自动监听并记录主机的MAC、IP及关联的交换机端口,让GUI拓扑能显示主机节点。
修改后的Ryu启动命令
ryu-manager --observe-links ryu.app.host_tracker ryu.app.gui_topology.gui_topology --wsapi-host 0.0.0.0 --wsapi-port 8080
验证步骤
- 关闭原有Ryu和Mininet进程,重新执行修改后的Ryu启动命令
- 按原命令启动Mininet:
sudo mn --topo tree,depth=2,fanout=2 --switch ovsk --controller=remote,ip=127.0.0.1,port=6653 --mac - 在Mininet控制台执行主机间ping操作(如
h1 ping h2),触发ARP报文让host_tracker模块捕获主机信息 - 刷新
http://localhost:8080/页面,即可看到主机h1-h4出现在拓扑中
补充说明
host_tracker依赖主机发送的ARP/ICMP报文识别主机,若主机无网络活动可能无法立即显示,执行ping是最直接的触发方式- 多数稳定版Ryu都包含
host_tracker模块,无需额外安装
内容的提问来源于stack exchange,提问作者Deepak
相关产品推荐
相关产品推荐

