OpenDaylight Chlorine版本OVSDB接口curl请求返回404问题
OpenDaylight Chlorine版本OVSDB拓扑REST请求返回404问题解决
问题现象
在OpenDaylight Chlorine版本中执行以下操作后出现异常:
- 执行命令安装特性:
feature:install odl-ovsdb-southbound-impl-ui - 发送任一RESTCONF请求:
或curl -u admin:admin http://localhost:8181/restconf/config/network-topology:network-topology/topology/ovsdb:1/curl -u admin:admin http://localhost:8181/restconf/operational/network-topology:network-topology/topology/ovsdb:1/
请求返回404 not found,预期返回结果应为:
{ "topology": [ { "topology-id": "ovsdb:1" } ] }
问题原因
- 特性安装不完整:
odl-ovsdb-southbound-impl-ui仅包含OVSDB南向插件的UI组件,缺少核心运行所需的OVSDB南向服务特性,导致RESTCONF接口未正确注册拓扑资源。 - 版本文档差异:参考的是Nitrogen版本的文档,Chlorine版本的OVSDB插件特性依赖和REST路径存在变更,直接沿用旧文档操作会导致不兼容。
- 拓扑未初始化:config路径下的拓扑需要手动创建,operational路径需要有OVS设备连接到ODL才能生成实时拓扑数据。
解决步骤
- 安装完整的OVSDB南向特性
执行以下命令替换原安装命令,安装核心服务+UI组件:feature:install odl-ovsdb-southbound odl-ovsdb-southbound-ui - 验证特性安装状态
执行命令确认所需特性已安装:
需确保feature:list | grep ovsdbodl-ovsdb-southbound和odl-ovsdb-southbound-ui状态为Started。 - 初始化config路径拓扑(可选,针对静态配置)
若需在config路径获取预期结果,发送POST请求手动创建拓扑:curl -u admin:admin -X POST -H "Content-Type: application/json" http://localhost:8181/restconf/config/network-topology:network-topology/topology/ovsdb:1 -d '{"network-topology:topology": [{"topology-id": "ovsdb:1"}]}' - 重新验证REST请求
再次发送原curl请求,config路径将返回预期的拓扑JSON结构;operational路径需确保有OVS设备已连接ODL,此时会返回设备的实时拓扑运行数据。
参考文档内容(翻译自Nitrogen版本OVSDB用户指南)
OVSDB南向插件支持OpenDaylight通过OVSDB协议与Open vSwitch设备交互,用于管理OVS的配置与运行状态。插件基于Network Topology模型暴露OVS设备拓扑信息,RESTCONF接口提供了拓扑数据的访问能力:
config路径用于管理静态拓扑配置operational路径用于获取设备的实时运行状态数据
内容的提问来源于stack exchange,提问作者Bruce
相关产品推荐
相关产品推荐

