SNMP协议简介

运维 系统运维
使用SNMP协议的网络管理系统管理结构工作一般包括:管理进程通过定时向各个设备的设备代理进程发送查询请求消息(以轮询方式),来跟踪各个设备的状态;而当设备出现异常事件如设备冷启动等时,设备代理进程主动向管理进程发送陷阱消息,汇报出现的异常事件。

SNMP元素

  若干个需要被管理的网络设备节点,如路由器、服务器等设备,每个节点上都运行着一个称为设备代理(agent)的应用进程,其实现对被管理设备的各种被管理对象的信息如流量等的搜集和对这些被管对象的访问的支持;   至少一个管理工作站,该管理站运行着管理平台应用系统,实现为管理员提供对被管设备的可视化的图形界面,从而使管理员可以方便的进行管理;   一个管理协议,用来定义设备代理和管理工作站之间管理信息传送的规程。其中管理协议的操作是在管理框架下进行的,管理框架定义了和安全相关的认证,授权,访问控制和加密策略等各种安全防护框架。   在运行 TCP/IP 协议的互联网环境中,管理协议标准是简单网络管理协议(Simple Network Management Protocol,SNMP),其定义了传送管理信息的协议消息格式及管理站和设备代理相互之间进行消息传送的规程。

业界需求

  出于业界对网络管理协议标准化的迫切要求的驱动,IETF1990发布了SNMPv1的正式RFC 文档;其设计思想重点放在保证协议的简单性、灵活性和可扩展性上,并希望把SNMP作为 一个过渡性的网管协议来作为实现对互连的网络设备进行管理时遵循的标准,待OSI的网 络管理协议—CMIP的开发、实现和标准化成熟和完善到可以在业界推广之后,再用CMIP来替换SNMP。但是由于各种的原因,CMIP并没有替代SNMP,而SNMP发展为业界的标准。

编辑本段主版本

  分别为SNMPv1 SNMPv2SNMPv3。其中SNMPv2又分为若干个子版本,其中SNMPv2c应用最为广泛:

SNMPv1

  是***个正式协议版本,在RFC1155-RFC1158中定义,该版本采用了基于共同体 名的安全机制

SNMPv2c

  这个版本被称为基于共同体名的SNMPv2,使用基于共同体名的安全机制和 SNMPv2p做出的协议操作方面的扩充,由RFC1901-RFC1906定义

SNMPv3

  该协议版本采用基于用户的安全机制,其安全机制是在SNMPv2uSNMPv2*基础上 进行大量的评议以后进行了更新,并且对协议机的逻辑功能模块的进行了划分而保证了良好的可扩充性,由RFC2271-RFC2275所定义。

编辑本段SNMP管理系统及SNMP协议

  使用SNMP协议的网络管理系统管理结构工作一般包括:管理进程通过定时向各个设备的设备代理进程发送查询请求消息(以轮询方式),来跟踪各个设备的状态;而当设备出现异常事件如设备冷启动等时,设备代理进程主动向管理进程发送陷阱消息,汇报出现的异常事件。这些轮询消息和陷阱消息的发送和接受规程及其格式定义都是由SNMP协议定义的;而被管理设备将其各种管理对象的信息都存放在一个称为管理信息库(Management Information Base)库结构中。   其中SNMP协议是运行在UDP协议之上,它利用的是UDP协议的161/162端口。其中161端口被设备代理监听,等待接受管理者进程发送的管理信息查询请求消息;162端口由管理者进程监听等待设备代理进程发送的异常事件报告陷阱消息,如Trap。   设备的所有的需要被管理的信息被看作一个各种被管理对象的集合,这些被管理对象由 OSI 定义在一个被称作管理信息库(Management Information Base,MIB)的虚拟的信息库中。

编辑本段管理对象库MIB

  是一个按照层次结构组织的树状结构(定义方式类似于域名系统),管理对象为定义为树中的相应叶子节点。管理对象是按照模块的形式组织,每个对象的父节点表示该种对象属于上层的哪一个模块。而且OSI为树中每一层的每个节点定义***的一个数字标识, 每层中的该数字标识从1开始递增,这样树中的每个节点都可以用从根开始到目的节点的相应的标识对应的一连串的数字来表示,如1.3.6.1.2.1.1表示了MIBII中系统组子树,而 1.3.6.1.2.1.1.1.0表示系统组中的系统描述(sytem Descrption)对象。每个对象的一连串数字表示被称为对象标识符(Object Indentifier,OID)。   相关的一组对象的集合被定义为一个MIB模块。这些模块使用OSI的抽象语法标记 (Abstract Syntax Notation OneASN.1)的一个子集写成。该子集被定义为管理信息结 构(Management InformationSMI)。   SNMP的消息在发送和传输时消息是采用基本编码规则(BER)对消息进行编码。   SNMP基本的标准MIB库是MIBII,具体请参考RFC 1213。   SNMP协议操作   SNMP提供有三类操作,分别为GetSetTrap。   Get操作实现对被管理对象所表示的管理信息的读操作。在SNMPv1中,GET操作具体一共有 两种形式   GetGetNext操作: Get操作指示直接读取操作参数指定的OID所表示的被管理对象的管 理信息值。GetNext操作指示读取操作参数指定的OID所表示的被管理对象在MIB树中按照 字典顺序的下一个被管理对象的管理信息的值。在SNMPv2中,增加了一种GetBulk操作, 其是GetGetNext的综合,是为了提高对被管理信息的访问的效率而增加的。   Set操作实现对被管理对象的管理信息进行写操作,其实现直接对操作参数指定的OID所表示的被管理对象对应的管理信息的值的设置。   前面几种消息是由管理工作站主动实现对被管理设备进行轮询访问时发出以得到被管理设 备的各种信息;而在被管理设备出现异常事件需要及时向管理工作站报告时,就需要Trap 操作,该操作实现被管理设备向管理工作站报告设备上出现的异常事件,如网络接口出现故障或恢复工作,设备重新启动等信息。另外在SNMPv2中新增加了一种Inform操作来实现 管理站与管理站之间的通信。   其中上述操作的消息都可以在操作参数中一次指定一个或多个管理对象OID信息,也就是说一个消息一次可以实现对多个被管理对象的操作。

编辑本段SNMPv1SNMPv2c

  管理站和被管设备上都存储有该充当密码作用的共同体名;消息发送者(一般是管理者)在 要发送的消息中的共同体名字段中填入对应于接收者的共同体名,然后以明文方式在网络 上发送消息,接收方(被管理设备)接收到消息以后,如果消息格式是正确的,则读取该字 段,与自身保存的共同体名相比较,来实现对发送消息者的认证。在一些实现中,对应于 每个共同体名还有一个机器地址列表,来表示只有地址在这个列表中的机器使用该共同体 名发送的消息才认为是可信的。这里的共同体名就担任密码的作用。同时对应于每个共同 体名都有一个访问控制权限,可能值为读或读写。只有请求的操作和使用的共同体名的权 限一致才允许进行。

责任编辑:春晓
相关推荐

2010-07-12 17:13:12

SNMP协议管理

2010-05-24 18:19:44

SNMP报文

2010-06-29 16:03:21

Linux SNMP协

2010-06-29 14:17:22

SNMP协议

2010-06-28 15:13:52

SNMP协议

2010-07-05 11:35:58

IPX协议SNMP

2010-06-28 15:28:27

SNMP协议代理

2010-07-09 12:07:13

Linux SNMP

2010-06-28 14:13:05

SNMP协议

2010-06-28 13:52:29

SNMP协议数据

2010-06-29 16:10:03

SNMP协议

2010-07-07 18:00:43

SNMP协议

2010-05-24 17:46:46

SNMP协议

2010-06-28 15:31:22

2010-06-29 16:57:53

SNMP协议

2010-05-24 18:22:56

SNMP协议

2010-05-24 18:37:31

SNMP协议

2010-09-27 14:10:29

DNS协议简介

2010-07-09 12:08:36

设置SNMP协议

2010-06-29 16:29:52

SNMP协议管理
点赞
收藏

51CTO技术栈公众号