OpenDaylight DLUX介绍及解决Web界面无法显示Nodes问题

获取DLUX

DLUX提供很多不同的Karaf features组件,能启动和关闭相分离。在Lithium版本中,与DLUX相关的features主要有:odl-dlux-core 、odl-dlux-node 、odl-dlux-yangui、odl-dlux-
Yangvisualizer。

登录

安装以上应用后,登录DLUX:

1.打开浏览器并在浏览器中输入登录URL: http://<your-karaf-ip>:8181/index.html(注:推荐使用chrome浏览器)。

2.使用admin作为用户ID和密码认证登录应用。

注意:在Lithium版本中,admin是DLUX唯一可用用户类型。

使用DLUX工作

登录DLUX后,如果只启用odl-dlux-core,将在左边只看到可用拓扑应用。(注:为了在所有面板详情中确定拓扑显示,在karaf中启用odl-l2switch-switch)

DLUX还有其他apps,如nodes、yang UI,只有在Karaf分布中,分别启用odl-dlux-node和odl-dlux-yangui功能,其他apps才显示出来。

图1.1 DLUX模块
注:如果你在dlux中安装了应用,在刷新浏览器页后,它们将显示在左边导航栏。

网络统计视图

左边面板的Nodes模块将可以查看网络中交换机的网络统计和端口信息。
为使用Nodes模块:

1.选择左边“Nodes”。右边将显示所有节点、节点连接器和统计的列表信息。

2.在“Search Nodes”中输入一个节点的ID,将通过节点连接器搜索。

3.点击“Node Connectors”号查看详细信息,如端口ID、端口名称、每个交换机的端口号、MAC地址等等。

4.点击统计行中的“Flows”查看具体节点的流表统计信息,如表ID、匹配包、活跃状态的流等等。

5.点击“Node Connectors”查看具体节点ID的节点连接器的统计信息。

网络拓扑视图

拓扑标签显示被创建的网络拓扑的图形化表示。(注:DLUX UI不提供添加拓扑信息的功能。拓扑由OpenFlow插件创建。当使用OpenFlow协议连接控制器时,控制器在数据库中存储信息且显示在DLUX界面上。)

为查看网络拓扑:

1.选择左边面板的“Topology”,可以在右边查看图形化显示。在图中,蓝色方框表示交换机,黑色代表可用主机,线表示交换机之间怎样连接。

2.在主机、链路或者交换机上悬停鼠标,显示源和目的端口。

3.使用鼠标滚轮放大和缩小图标验证拓扑。

图1.2 拓扑模块

与OpenDaylight交互

Yang UI模块用于与ODL交互。关于Yang Tools的更多详细信息,可查看: https://wiki.opendaylight.org/view/YANGTools:Main [YANGTools]。

图1.3 Yang UI
为使用Yang UI:

1.选择左边面板的“Yang UI”。右边显示分为两部分。

2.顶部显示APIs、subAPIs和buttons的树形结构,为了调用可能功能,主要包括:GET、POST、PUT、DELETE等等。不是每个subAPIs都能调用每个功能的,如:subAPIs“operational”可选的只有GET功能。当ODL中的现有数据显示或者能被用户在页面上填写并发送给ODL时,可以从ODL填写输入数据。API树下的按钮是可变的,它依赖于subAPIs规范。常见按钮有:

GET:从ODL获取数据;

PUT和POST:为保存配置,发送数据给ODL;

DELETE:为删除配置,发送数据给ODL。为这些操作,必须执行xpath。路径显示在与buttons同一行的前面,为特定路径元素标识符包括文本输入。

图1.4 Yang API规范
3.右面面板底部根据选择的subAPI显示输入。每个subAPI代表列表声明的列表元素,一个列表中可能有多个列表元素,例如:一个设备能够存储多条流。在这个例子中,“flow”是列表的名称,每个列表元素是不同的key值。列表的列表元素中可能包含其他列表,每个列表元素有一个列表名称、key名称及key值、删除列表元素的按钮。通常列表声明的key包含一个ID。从ODL中填写输入并从xpath部分使用GET按钮,或者通过界面上用户填写输入并发送给ODL。

图1.5 Yang UI API规范

4.点击API树下的“Show Preview”按钮显示发送给ODL的请求。当输入被填写时,右边面板显示请求文本。

显示Yang UI的拓扑

为显示拓扑:

1.选择subAPI的network-topology → operational → network-Topology。

2.通过点击“GET”按钮从ODL获取数据。

3.点击“Display Topology”。

图1.6 DLUX Yang拓扑

配置Yang UI的列表元素

列表显示为树形结构,点击列表名称之前的箭头可以展开或折叠。为了在Yang UI上配置列表元素:

1.使用列表名称之后提供的加号图标按钮“ ”添加一个新的空输入列表元素。当一些列表元素被添加时,名称和key值按钮随之被显示。

2.为了删除一些列表元素,使用每个列表元素后面提供的“X”按钮:DLUX List Elements. image::dlux-yang-list elements.png[DLUX list elements,width=500]。

3.列表值是一个或者多个输入,用来像列表元素的识别。一个列表的所有列表元素必须是不同的key值。如果一些元素存在相同的key值,警告图标“!”在他们的名称按钮附近显示。

图1.7 DLUX列表警告

4.当列表包含至少一个列表元素时,“ ”图标之后是选择被显示的列表元素图标。通过点击图标,能够选择他们中的一个。相邻列表元素的名称按钮被显示一排列表中。你能通过点击箭头按钮向前或者向后显示一排的列表元素名称按钮。

图1.8 DLUX列表按钮

Web界面无法显示Nodes问题

Boron版本在代码上比Beryllium-SR3B版本优化了不少,性能上也大有增强,尤其是在odl集群这块,但是在使用过程中也出现了在web界面上nodes显示不出来的问题,这给实验过程带来了不便。本人也发现最近很多朋友在使用过程中遇到此问题。本文将针对此问题做出一个解决方案。

谈到node 显示不出的问题时,首先要来讲讲dlux 这个子项目,dlux是odl的用户接口,是个javascript项目,提供界面供使用者操作odl,其具体的作用以及与odld的交互。

首先,就着遇到的问题进行描述,当正常启动odl并正确安装odl所需feature,在topology里能正确显示ovs信息,但在node里却是 “No data found”,于是F12查看接口有数据返回,打开console看到js报错,报错信息如 下:

因在Beryllium-SR3版本中node是可以正确显示的,顾又去对比了一下两个版本查询nodes接口的返回数据,发现并无格式上的差异。断定是显示的问题。因本人js了解不多,顾想到替换js的方法。于是定位到报错的restangular.min.js将其替换成Beryllium-SR3版本对应的js。再重启启动安装相应的feature发现问题得到解决。下面是替换的具体步骤:

1、从官网下载distribution-karaf-0.5.0-Boron编译好的压缩包将其解压得到distribution-karaf-0.5.0-Boron

2、进入解压好的distribution下的
system\org\opendaylight\dlux\loader.implementation\0.4.0-Boron目录,将看到 loader.implementation-0.4.0-Boron.jar文件,使用压缩工具将其打开看到dlux文件夹,进入该文件夹下的vendor\restangular\dist文件夹子将看到restangular.min.js文件,将其删除。

并加入Beryllium-SR3版本的对应文件夹下的对应restangular.min.js文件。若是不想找文件本人已将文件共享出来地址:http://pan.baidu.com/s/1hsNV52G

3、删除distribution-karaf-0.5.0-Boron下的data文件夹并正常启动odl,重新安装odl-dlux-core、odl-dlux-node、odl-dlux-yang-ui、odl-ovsdb-openstack。

4、待安装完毕打开http:///index.html,F12打开调试控制台Sources

此处看到JS版本为2013 即可。原来boron版本为2014,boron版本此如下:

也许这不是根本的解决方案,但限于本人js知识有限,不能对其代码进行修改,根源性的解决此问题,只能用此方法来解决次暂时性的问题。相信,社区以及一直关注odl的朋友可以改掉这个BUG。也相信odl在下个版本中这个问题会得到解决,所以所这是个临时的解方法。

感谢阿金对本文作出的补充,阿金,就职于上海某云计算公司主要从事SDN技术研究开发工作,联系方式xiayudeye@icloud.com,欢迎联系,一起交流


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。 本站中所有编译类文章仅用于学习和交流目的,编译工作遵照 CC 协议,如果有侵犯到您权益的地方,请及时联系我们。
  • 本文链接https://www.sdnlab.com/18055.html
分享到:
相关文章
条评论

登录后才可以评论

SDNLAB君 发表于16-11-08
3