SNMP 是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用层协议。 SNMP 使网络管理员能够管理网络效能,发现并解决网络问题以及规划网络增长。通过 SNMP 接收随机消息(及事件报告)网络管理系统获知网络出现问题。
SNMP的前身是简单网关监控协议(SGMP),用来对通信线路进行管理。随后,人们对SGMP进行了很大的修改,特别是加入了符合Internet定义的SMI和MIB,改进后的协议就是著名的SNMP。基于TCP/IP的SNMP网络管理框架是工业上的现行标准,由3个主要部分组成,分别是管理信息结构SMI(Structure of Management Information)、管理信息库MIB和管理协议SNMP。
SMI定义了SNMP框架所用信息的组织和标识,为MIB定义管理对象及使用管理对象提供模板。
MIB定义了可以通过SNMP进行访问的管理对象的集。
SNMP协议是应用层协议,定义了网络管理者如何对代理进程的MIB对象进行读写操作。
SNMP中的MIB是一种树状数据库,MIB管理的对象,就是树的端节点,每个节点都有唯一位置和唯一名字.IETF规定管理信息库对象识别符(OID,Object Identifier)唯一指定,其命名规则就是父节点的名字作为子节点名字的前缀。
一个SNMP管理的网络由下列三个关键组件组成:
网络管理系统(NMS,Network-management systems)
被管理的设备(managed device)
代理者(agent)
网络管理系统运行应用程序,以该应用程序监视并控制被管理的设备。也称为管理实体(managingentity),网络管理员在这儿与网络设备进行交互。网络管理系统提供网络管理需要的大量运算和记忆资源。一个被管理的网络可能存在一个以上的网络管理系统。
被管理的设备是一个网络节点,它包含一个存在于被管理的网络中的SNMP代理者。被管理的设备通过管理信息库(MIB)收集并存储管理信息,并且让网络管理系统能够通过SNMP代理者取得这项信息。
代理者是一种存在于被管理的设备中的网络管理软件模块。代理者控制本地机器的管理信息,以和SNMP兼容的格式传送这项信息。
SNMP是管理进程(NMS)和代理进程(Agent)之间的通信协议。它规定了在网络环境中对设备进行监视和管理的标准化管理框架、通信的公共语言、相应的安全和访问控制机制。网络管理员使用SNMP功能可以查询设备信息、修改设备的参数值、监控设备状态、自动发现网络故障、生成报告等。
SNMP具有以下技术优点:
基于TCP/IP互联网的标准协议,传输层协议一般采用UDP。
自动化网络管理。网络管理员可以利用SNMP平台在网络上的节点检索信息、修改信息、发现故障、完成故障诊断、进行容量规划和生成报告。
屏蔽不同设备的物理差异,实现对不同厂商产品的自动化管理。SNMP只提供最基本的功能集,使得管理任务与被管设备的物理特性和实际网络类型相对独立,从而实现对不同厂商设备的管理。
简单的请求—应答方式和主动通告方式相结合,并有超时和重传机制。
报文种类少,报文格式简单,方便解析,易于实现。
SNMPv3版本提供了认证和加密安全机制,以及基于用户和视图的访问控制功能,增强了安全性。
构架方式包含主代理和子代理
主代理是一个在可运行SNMP的网络组件上运作的软件,可回应从管理站发出的SNMP要求。它的角色类似客户端/服务器结构(Client/Server)术语中的服务器。主代理依赖子代理提供有关特定功能的管理信息。
如果系统当前拥有多个可管理的子系统,主代理就会传递它从一个或多个子代理处收到的请求。这些子代理在一个子系统以及对那个子系统进行监测和管理操作的接口内为关心的对象建模。主代理和子代理的角色可以合并,在这种情况下我们可以简单的称之为代理(agent)。
子代理是一个在可运行SNMP的网络组件上运作的软件,运行在特定子系统的特定管理信息库(MIB,Management Information Base)中定义的信息和管理功能。
子代理的一些能力有:搜集主代理的信息、配置主代理的参数、回应管理者的要求、产生警告或陷阱。
对协议和管理信息结构的良好分离使得使用SNMP来监测和管理同一网络内上百的不同子系统非常简单。MIB模型运行管理OSI参考模型的所有层,并可以扩展至诸如数据库,电子邮件以及J2EE参考模型之类的应用。
管理站
管理者或者管理站提供第三个组件。它和一个客户端/服务器结构下的客户端一样工作。它根据一个管理员或应用程序的行为发出管理操作的请求,也接收从代理处获得的TRAP。
协议种类
目前, SNMP 有 3 种: SNMPV1 、 SNMPV2 、 SNMPV3。第 1 版和第 2 版没有太大差距,但 SNMPV2 是增强版本,包含了其它协议操作。与前两种相比, SNMPV3 则包含更多安全和远程配置。为了解决不同 SNMP 版本间的不兼容问题, RFC3584 中定义了三者共存策略。
SNMP 还包括一组由RMON、RMON2、MTB、MTB2、OCDS及OCDS定义的扩展协议。
协议结构
SNMP 是一种应用程序协议,封装在UDP中。各种版本的 SNMP 信息通用格式如下所示:
Version Community PDU
Version:SNMP 版本号。管理器和代理器必须使用相同版本的 SNMP。需要删除具有不同版本号的信息,并不对它们作进一步的处理。
Community:团体名称,用于在访问代理器之前认证管理器。
PDU(协议数据单元):SNMPv1、v2 和 v3 中的 PDU 类型和格式将在对应文件中作具体介绍。
本文同步分享在 博客“郑州埃文科技”(FreeBuf)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。