SNMP,简单网络管理协议,全称是Simple Network Management Protocol,是由IETF(Internet Engineeriing Task Force,互联网工程任务组)定义的一套基于SGMP(Simple Gateway Monitor Protocol,简单网关监视协议)的网络管理协议。以SNMP为技术的网络管理站(NMS)中,管理工作站利用SNMP进行远程监控管理网络上的所有支持这种协议的设备(如计算机工作站、终端、路由器、Hub、网络打印机等),主要负责监视设备状态、修改设备配置、接受事件警告等。
SNMP中涉及的基本概念术语及中英文对照整理如下:
缩略词 | 英文全名 | 中文名称 |
MIB | Management Information Base | 管理信息库 |
NMS | Network Management Station | 网络管理站 |
SMI | Structure of Managment Information | 管理信息结构 |
USM | User-based Security Model | 基于用户的安全模型 |
VACM | View-based Access Control Model | 基于视图的访问控制模型 |
PDU | Protocol Data Unit | 协议数据单元 |
SNMP具有以下技术优点:
- 基于 TCP/IP互联网的标准协议,传输层协议一般采用 UDP。
- 自动化网络管理。网络管理员可以利用 SNMP 平台在网络上的节点检索信息、修改信息、发现故障、完成故障诊断、进行容量规划和生成报告。
- 屏蔽不同设备的物理差异,实现对不同厂商产品的自动化管理。SNMP 只提供最基本的功能集,使得管理任务与被管设备的物理特性和实际网络类型相
- 对独立,从而实现对不同厂商设备的管理。
- 简单的请求—应答方式和主动通告方式相结合,并有超时和重传机制。
- 报文种类少,报文格式简单,方便解析,易于实现。
- SNMPv3 版本提供了认证和加密安全机制,以及基于用户和视图的访问控制功能,增强了安全性
网络架构
SNMP网络架构由三部分组成:NMS、Agent和MIB
NMS:是网络中的管理者,是一个利用SNMP协议对网络设备进行管理和监视的系统。NMS既可以指一台专门用来进行网络管理的服务器,也可以指某个设备中执行管理功能的一个应用程序。 NMS可以向Agent发出请求,查询或修改一个或多个具体的参数值。同时,NMS可以接收Agent主动发送的Trap信息,以获知被管理设备当前的状态。
Agent:是网络设备中的一个应用模块,用于维护被管理设备的信息数据并响应NMS的请求,把管理数据汇报给发送请求的NMS。 Agent接收到NMS的请求信息后,完成查询或修改操作,并把操作结果发送给NMS,完成响应。同时,当设备发生故障或者其他事件的时候,Agent会主动发送Trap信息给NMS,通知设备当前的状态变化。
MIB:任何一个被管理的资源都表示成一个对象,称为被管理的对象。MIB是被管理对象的集合。它定义了被管理对象的一系列属性:对象的名称、对象的访问权限和对象的数据类型等。每个Agent都有自己的MIB。MIB也可以看作是NMS和Agent之间的一个接口,通过这个接口,NMS可以对Agent中的每一个被管理对象进行读/写操作,从而达到管理和监控设备的目的。NMS、Agent和MIB之间的关系如图所示:
支持的操作:
SNMP支持多种操作,主要为以下几种基本操作:
- Get操作:NMS使用该操作从 Agent获取一个或多个参数值。
- GetNext 操作:NMS 使用该操作从 Agent 获取一个或多个参数的下一个参数值。
- Set操作:NMS使用该操作设置 Agent一个或多个参数值。
- Response 操作:Agent 返回一个或多个参数值。该操作是前面三种操作的响应。
- Trap操作:Agent主动发出的操作,通知 NMS有某些事情发生。
另外,从SNMP Version2版本开始又引入了GetBulk等操作。执行前四种操作时设备使用UDP协议采用161端口发送报文,执行Trap操作时设备使用UDP协议采用162端口发送报文。由于收发采用了不同的端口号,所以一台设备可以同时作为Agent和NMS。
中文WIKI:
英文WIKI:
http://en.wikipedia.org/wiki/Simple_Network_Management_Protocol
注意:中文翻译的有些问题,并且翻译的不全,如PDU(协议数据单元)的结构部分就直接跳过了,因此英文水平还可以的话建议阅读英文的介绍。