SDN-based Network Management Solution (2)

SNMP是用于网络管理的简单网络管理协议。 它用于从交换机,路由器,打印机等收集信息。此插件使控制器和应用程序可以使用SNMP与设备进行交互。 南行插件可帮助充当SNMP管理器的应用程序与充当代理的设备进行交互。 SNMP插件包括:SNMPv1,SNMPv2,SNMPv3支持,作为RPC调用的简单API,使应用程序能够执行以下功能的API:GetRequest,SetRequest,GetNextRequest,GetBulkRequest,Trap支持,InformRequest。 SNMP使用MIB与网络设备进行交互。 MIB的添加包括获取与MIB对应的.my和.oid文件。 在与SNMP插件一起使用之前,将MIB文件转换为YANG模型。 名为“ smidump”的工具有助于将MIB转换为YANG模型。 通过执行以下命令来安装SNMP插件:
feature:install odl-SNMP-plugin

我们使用了两个北向API,即SNMP GET和SNMP SET。 它们具有以下字段Ipaddress,oid,get-type,community。 使用这些北向API的http请求URI的格式如下:

:8181/restconf/operation/snmp:snmp-get :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,实时监控,退出。

SDN-based Network Management Solution

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设备:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwxxsd.html