简单网络管理协议 (SNMP)构成了Internet工程工作小组定义的internet协议簇的一部分。该协议能够支持监测连接到网络上的设备的任何引起管理上关注的情况。
SNMP的第一个RFC系列出现在1988年:
· RFC 1065 – 基于TCP/IP网络的管理信息的结构和认定
· RFC 1066 – 以基于TCP/IP网络的网络管理为基础的管理信息
· RFC 1067 – 一个简单网络管理协议
目录<script type="text/javascript"> //<![CDATA[ showTocToggle("显示","隐藏") //]]> </script> [显示隐藏] |
架构
从体系结构上来讲,SNMP框架有三个基础组件:
1. 主代理
2. 子代理
3. 管理站
在一个网络中的每一个可通过IP访问的系统,比如一个节点或一个路由器,都为那个系统持有一个主代理。一个主代理典型地限制了它解析以及格式化这个协议的能力。
如果系统当前拥有多个可管理的子系统,主代理就会传递它从一个或多个子代理处收到的请求。这些子代理在一个子系统以及对那个子系统进行监测和管理操作的接口内为关心的对象建模。主代理和子代理的角色可以合并,在这种情况下我们可以简单的称之为代理。
对协议和管理信息结构的良好分离使得使用SNMP来监测和管理同一网络内上百的不同子系统非常简单。在SNMP架构中,一个管理信息库(MIB)使用一个特定子系统定义来为每个被管理的子系统建模。这个MIB正好指定了那些由子代理使之变为可能的管理数据和操作。这个模型运行管理OSI参考模型的所有层,并可以扩展至诸如数据库,电子邮件以及J2EE参考模型之类的应用。
管理者或者管理站提供第三个组件。它和一个客户-服务器架构下的客户端一样工作。它根据一个管理员或应用程序的行为发出管理操作的请求,也接收从代理处获得的TRAP。
开发和使用
SNMP协议工作在OSI模型的应用层(第七层)。它(在第一版中)指定了四种核心协议数据单元(PDU):
1. GET,用来得到一条管理信息
2. GETNEXT,用来反复得到管理信息的序列
3. SET,用来给一个被管理的子系统制造一个变化
4. TRAP,用来报告一个关于被管理子系统的警告或其他异步事件
典型的,SNMP为代理使用UDP端口161,为管理站使用UDP端口162。
简单网络管理协议第二版修订了第一版并且包含了在性能、安全、机密性和管理者之间通信这些领域的改进。它引入了GETBULK以替代迭代GETNEXT来在单个请求中获取大量的管理数据。
Internet工程工作小组(IETF)把在RFC3411-RFC3418(STD0062)中定义的简单网络管理协议第三版作为当前2004年的标准版本。IETF将先前的版本定为“Obsolete”或“Historical”。
实际上,SNMP实现通常支持多个版本:典型的SNMPv1、SNMPv2c以及SNMPv3。参见RFC3584“Internet标准网络管理框架第一、二、三版间的共存”。
使用举例
下面的输出作为在一个路由器上的snmpwalk的例子展示了设备的基本信息:
snmpwalk -c public punch system
SNMPv2-MIB::sysDescr.0 = STRING: Cisco Internetwork Operating System Software IOS (tm) C2600
Software (C2600-IO3-M), Version 12.2(15)T5, RELEASE SOFTWARE (fc1)
TAC Support: http://www.cisco.com/tac
Copyright (c) 1986-2003 by cisco Systems, Inc.
Compiled Thu 12-Jun-03 15:49 by eaarm
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.9.1.187
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (835747999) 96 days, 17:31:19.99
SNMPv2-MIB::sysContact.0 = STRING: wikiuser
SNMPv2-MIB::sysName.0 = STRING: punch
SNMPv2-MIB::sysLocation.0 = STRING: test
SNMPv2-MIB::sysServices.0 = INTEGER: 78
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (0) 0:00:00.00
参见
· AgentX
· SMUX
链接
· SimpleWeb (http://www.simpleweb.org)
· http://burks.bton.ac.uk/burks/internet/rfcs/rfcs/57/rfc1157.htm
· http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/snmp.htm
· http://www.henrys.de/daniel/download/SNMP.HTM
· ftp://ftp.rfc-editor.org/in-notes/rfc3411.txt
· ftp://ftp.rfc-editor.org/in-notes/rfc3584.txt
· ftp://ftp.rfc-editor.org/in-notes/rfc3512.txt
· http://netsnmpj.sourceforge.net/
· http://sourceforge.net/projects/opensnmp/
· SNMP FAQ part 1 (http://www.snmp.com/FAQs/snmp-faq-part1.txt)
· SNMP FAQ part 2 (http://www.snmp.com/FAQs/snmp-faq-part2.txt)
· Cisco SNMP repository and documentation (http://www.cisco.com/go/mibs)