http://localhost:8181/restconf/operation/snmp:snmp-get
http://localhost:8181/restconf/operation/snmp:snmp-set
C. RestConf插件:
在OpendDaylight控制器中,Restconf被打包到Karaf捆绑软件/功能中。 下载ODL软件包后,必须手动安装。
API资源包含RESTCONF功能的访问点和状态。 可以通过URI“ / restconf”访问它。 Restconf在端口8181上侦听HTTP请求。 Restconf启用控制器中的数据存储。 有两个数据存储:
config - contains data inserted via controller
operational - contains other data
这表示操作数据存储。 它包含将由客户端检索的统计数据和操作数据资源。 客户端无法创建或删除它。
请求和响应数据可以采用JSON或XML格式。 请求数据(输入)的媒体类型是通过HTTP标头中的“ Content-Type”字段设置的。 响应数据(输出)的媒体类型在HTTP标头的“接受”字段中设置。
该应用程序用于监视网络并获取设备的实时数据。 该应用程序是使用python使用以下库编写的,其中使用了以下库:httplib2,json,sys,os,crypt,getpass,OrderedDict。在运行该应用程序时,它将对用户进行身份验证并向所选用户提供操作,获取拓扑,获取链接统计信息, 获取系统统计信息,使用SNMP-GET,使用SNMP-SET,实时监控,退出。
A. 获取拓扑,获取链路信息
使用的插件-RESTCONF,OpenFlow。 这些操作将调用topology(),linkStats()方法,这些方法将HTTP请求发送到RESTCONF接口,并从OpenDaylight控制器的数据存储中获取数据,并发送带有JSON数据的响应。 解析此JSON内容以获得拓扑信息,该拓扑信息又呈现给用户。
B. 获取系统数据
使用的插件-RESTCONF,SNMP。 此操作将从用户获取IP地址,并获取网络中相应主机的系统统计信息。 该方法将HTTP请求发送到RESTCONF接口。 SNMP-GET请求被发送到相应的设备以提取数据。 此数据存储在ODL控制器的数据存储中。 HTTP响应与JSON数据一起发送到应用程序。 解析此JSON内容以获取系统统计信息,例如系统描述,CPU使用率,内存使用率,磁盘使用率。
C.使用SNMP-GET:
使用的插件-RESTCONF,SNMP。此操作将从用户获取IP地址,OID,获取类型和社区,并获取网络中相应主机的系统统计信息。此方法将HTTP POST请求发送到RESTCONF接口。 SNMPGET请求被发送到相应的设备以提取数据。此数据存储在ODL控制器的数据存储中。 HTTP响应与JSON数据一起发送到应用程序。解析此JSON内容,以向用户提供所请求OID的值。
D.使用SNMP-SET:
使用的插件-RESTCONF,SNMP。此操作将获取IP地址,OID,社区和为网络中相应主机设置的值。此方法将HTTP POST请求发送到RESTCONF接口。 SNMP-SET请求发送到相应的设备,以更改相应的OID的数据。
E.实时监控:
在我们的应用程序中,我们正在对旧设备和OpenFlow设备进行实时监控。
a. 监视旧版设备:
通过此操作,我们可以了解旧版设备的通信和统计信息。有两个主要函数,分别是snmp()和trap()。第一个使用“tcpdump”并监听端口161以获取所有通信数据。第二个侦听端口162,并使用“tcpdump”转储所有陷阱消息。默认情况下,这两种方法以pcap文件的形式存储数据,可用于分析数据包。
b. 监视OpenFlow设备:
运行应用程序时,默认情况下会执行此操作。 这有助于监视OpenFlow交换机。 在运行应用程序时,它将获取使用方法topo()的拓扑详细信息。 然后,它执行方法checkTopo()以获得拓扑中存在的许多节点和链接的详细信息。 此方法在永远循环中运行,以获取链接和节点详细信息。 trackLinksUp()和trackNodesUp()分别用于查找任何新添加的链接和节点。 trackLinksDown()和trackNodesDown()用于分别找出任何已删除的已添加链接和节点
结果和评估
为了测试管理系统的设计和实现,我们使用了OpenDaylights SNMP插件。 我们的应用程序基础结构包括运行OpenDayLight控制器的Ubuntu VM,用于将不同节点连接到控制器的集线器,一个旧版Cisco c3600路由器,两个OpenVswitch管理Docker容器以及五个Ubuntu Docker容器。 我们利用Internet Docker容器在系统中启用DHCP IP寻址方案,并在Ubuntu Dockers中更新其他存储库以及SNMP守护程序。 拓扑如图所示,其中OpenVswitch的eth0接口充当管理接口,负责通过集线器与控制器进行通信。
主要是这个论文直接在github找代码看到的,然后想试试看里面的简单拓扑是如何搭建以及用了什么平台跑的。