NJ SNMP 协议的使用
实验时间:2023.07.25
实验器材:NJ501-1300
实验目的:NJ SNMP 协议的使用
1. SNMP 协议介绍
SNMP(Simple Network Management Protocol)是一种简单网络管理协议。它属于 TCP/IP 五层协议中的应用层协议,SNMP主要用于网络设备的管理。当前SNMP有三个版本SNMPv1、SNMPv2C、SNMPv3。
一套完整的SNMP系统主要包括管理信息库(MIB)、网管系统(NMS)、代理(Agent)。
- 网管系统 NMS:运行了可以执行网络管理任务软件的客户端,负责采样网络中Agent的信息,并接受Agent的trap,由于没有 NMS 系统,本次实验安装 NET-SNMP 软件通过命令行实现 NMS 功能。
- 管理信息库 MIB:任何一个被管理的资源都表示成一个对象,称为被管理的对象。MIB是被管理对象的集合。它定义了被管理对象的一系列属性:对象的名称、对象的访问权限和对象的数据类型等。每个SNMP设备(Agent)都有自己的MIB;
- 代理 Agent:Agent是NMS和MIB之间沟通的桥梁,NMS发送读写指令给Agent从而读取MIB,当被管理系统出现问题时Agent也会主动发送Trap给NMS报告错误。
NMS 网管系统可以向支持 SNMP 协议的被管理设备发送控制命令获MIB的数据,被管理设备也可以通过Trap主动向 NMS 网关系统主动发送设备状态,这样就方便了网络管理人员对系统的维护。
NMS 和 Agent之间的通信
代理在UDP的161端口接收NMS的读写请求消息,NMS在UDP的162端口接收代理的事件通告消息。所以,一旦获取设备的访问权限(community,默认为public),就可以访问设备信息、改写和配置设备参数。由于采用UDP协议,不需要在代理和管理站之间保持连接。
2. 实验概述
实验内容1:使用snmpget.exe客户端(需要在cmd命令行窗口运行)读取CPU上一次开机到当前运行的时间;
-
在snmpget客户端中指定使用的版本为
SNMPv1
; -
使用的明文口令为
public
; -
SNMP 的端口号为
161
; -
SNMP Trap的端口为
160
(NJ里叫SNMP 自陷); -
NJ501的CPU名称在MIB中的变量为:
1.3.6.1.2.1.1.3.0
(变量表示方法见附录);
实验内容2:启动NJ501的SNMP自陷(Trap)功能主动向客户端报告其状态。
3. PLC设置
IP地址设置
IP 地址设置为192.168.250/24
,默认网关为192.168.250.1
(通网段时可以不设置)。
SNMP 设置
将SNMP服务设置为使用,端口号为161
,验证方法使用IP地址,公共名为public
。如果IP地址为0.0.0.0
时,所有的客户端都可以访问PLC的SNMP服务。如果只允许某一个客户端连接时,将认证的IP修改为客户端的IP。
SNMP 自陷(Trap)设置
SNMP自陷设置为使用,端口号为162,自陷1指定为客户端的IP地址192.168.250.101
,公用名为public
,版本为SNMPv1。
4. 实验结果
读取CPU运行时长
-
打开命令行窗口,切换到snmpget.exe所在目录下,如图:
-
运行snmpget.exe,指定为
SNMPv1
版本,公共名为public
,访问MIB中的1.3.6.1.2.1.1.3.0
变量;-v1
:表示使用SNMPv1
版本;-c public
:表示公共名为public
;192.168.250.2
:PLC的IP地址;1.3.6.1.2.1.1.3.0
:表示CPU上一次开机到当前运行的时间在MIB中的变量名;
Trap测试
重启PLC后,SNMP自陷(Trap)服务主动的向指定IP报告自身的状态,用WireShark抓取命令如图:
5. 注意事项
-
PLC在以下 3 种情况下主动发送SNMP自陷向NMS报告自身状况
- 当PLC通电开机时;
- 当SNMP自陷功能被启用下载到PLC时;
- 当Agent被授权失败时(Agent异常);
-
MIB树结构(部分,完整参考NJ/NX-series CPU Unit Built-in EtherNet/IP Port User’s Manual手册):