You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使设备在OpenDaylight拓扑中显示?SDN部署故障咨询

解决OpenDaylight Dlux拓扑未显示设备的问题

我来帮你捋捋这个问题——既然所有设备都能ping通,说明数据平面是正常的,只是OpenDaylight的控制平面没把那两台设备的拓扑信息同步到Dlux界面里。下面是我碰到过的类似问题的排查思路,你一步步来:

1. 先检查未显示设备所在主机的OVS控制器配置

首先得确认那台没显示设备的Ubuntu主机上,OVS网桥已经正确连接到OpenDaylight控制器:

  • 登录该主机,执行ovs-vsctl show,查看输出里的Controller条目,应该能看到类似Controller "tcp://<ODL主机IP>:6633"的配置(6633是OpenFlow 1.0的默认端口,6653是OpenFlow 1.3的端口,看你用的版本)
  • 如果没有这个配置,手动添加控制器:ovs-vsctl set-controller <你的网桥名称> tcp://<ODL主机IP>:6633
  • 同时检查连接状态,输出里的is_connected: true才是正常的,如果是false,先排查两台物理主机之间的网络:比如ODL主机的防火墙有没有放开6633/6653端口,或者两台主机的IP是否能互相ping通

2. 确认OpenFlow版本兼容性

OVS和ODL的OpenFlow版本不匹配也会导致拓扑发现失败:

  • 查看OVS网桥的OpenFlow版本:ovs-vsctl get bridge <你的网桥名称> protocols
  • 查看ODL支持的版本:登录ODL的Karaf控制台(执行./bin/client),输入feature:list | grep odl-openflowplugin,确保安装了支持对应版本的插件(比如odl-openflowplugin-all支持多版本)
  • 如果版本不匹配,统一两者的版本,比如设置OVS用OpenFlow 1.3:ovs-vsctl set bridge <你的网桥名称> protocols=OpenFlow13

3. 检查ODL的拓扑发现组件是否正常运行

有时候是ODL的拓扑相关插件没装或者出问题了:

  • 登录Karaf控制台,执行feature:list | grep odl-topology,确保odl-topology-apiodl-topology-implodl-topology-ui这几个特性都是Started状态
  • 查看ODL的日志文件(路径一般是data/log/karaf.log),搜索topology或者OpenFlow关键词,看看有没有设备连接失败的报错信息,比如认证问题或者协议错误

4. 确认KVM虚拟设备的网卡关联到OVS网桥

虚拟设备的网卡如果没连到OVS网桥,ODL也识别不到:

  • 查看虚拟机的网卡配置:virsh dumpxml <虚拟机名称>,找到<interface>部分,确认是type='bridge',且source bridge='<你的OVS网桥名称>'
  • 如果不是,修改配置:执行virsh edit <虚拟机名称>,把网卡部分改成类似下面的内容:
    <interface type='bridge'>
      <source bridge='br0'/>
      <model type='virtio'/>
    </interface>
    
  • 重启虚拟机生效:virsh reboot <虚拟机名称>

5. 最后检查Dlux界面的显示设置

有时候只是界面没刷新或者有过滤:

  • 点击Dlux拓扑页面的刷新按钮,或者清空浏览器缓存后重新加载页面
  • 检查页面上的过滤选项,确保没有把主机或者交换机类型的设备过滤掉

按照这些步骤排查下来,基本能解决拓扑不显示的问题。如果还是不行,可以把排查过程中的命令输出或者日志片段贴出来,我再帮你分析。

内容的提问来源于stack exchange,提问作者sweetpea

火山引擎 最新活动