简单网络管理协议(SNMP)入门
SNMP简单网络管理协议

SNMP简单网络管理协议第1部分基础知识第1章简单网络管理协议概述1.1什么是SNMPSNMP:“简单网络管理协议”,用于网络管理的协议。
SNMP用于网络设备的管理。
SNMP的工作方式:管理员需要向设备获取数据,所以SNMP提供了【读】操作;管理员需要向设备执行设置操作,所以SNMP提供了【写】操作;设备需要在重要状况改变的时候,向管理员通报事件的发生,所以SNMP 提供了【Trap】操作。
1.2S NMP背景SNMP的基本思想:为不同种类的设备、不同厂家生产的设备、不同型号的设备,定义为一个统一的接口和协议,使得管理员可以是使用统一的外观面对这些需要管理的网络设备进行管理。
通过网络,管理员可以管理位于不同物理空间的设备,从而大大提高网络管理的效率,简化网络管理员的工作。
1.3S NMP结构概述1.3.1 SNMP的典型应用SNMP被设计为工作在【TCP/IP】协议族上。
SNMP基于TCP/IP协议工作,对网络中支持SNMP协议的设备进行管理。
所有支持SNMP协议的设备都提供SNMP这个统一界面,使得管理员可以使用统一的操作进行管理,而不必理会设备是什么类型、是哪个厂家生产的。
1.3.2 SNMP支持的网管操作对于网络管理,我们面对的数据是设备的配置、参数、状态等信息,面对的操作是读取和设置;同时,因为网络设备众多,为了能及时得到设备的重要状态,还要求设备能主动地汇报重要状态,这就是报警功能。
Get:读取网络设备的状态信息。
Set:远程配置设备参数。
Trap:管理站及时获取设备的重要信息。
1.3.3 SNMP的实现结构在具体实现上,SNMP为管理员提供了一个网管平台(NMS),又称为【管理站】,负责网管命令的发出、数据存储、及数据分析。
【被】监管的设备上运行一个SNMP代理(Agent)),代理实现设备与管理站的SNMP通信。
管理站与代理端通过MIB进行接口统一,MIB定义了设备中的被管理对象。
SNMP(简单网络管理协议)的原理与管理技巧

SNMP(简单网络管理协议)的原理与管理技巧SNMP(Simple Network Management Protocol),即简单网络管理协议,是一种用于网络管理的标准协议。
它被广泛应用于计算机网络中,用于监控和管理网络设备,提供网络的可靠性和可用性,并及时发现和解决网络故障。
本文将介绍SNMP的原理和管理技巧,并提供相关实例,旨在帮助读者更好地理解和应用SNMP。
1. SNMP的基本原理SNMP是一种应用层协议,基于客户-服务器模型。
它主要由管理系统(Manager)和被管理设备(Agent)组成。
管理系统负责监控和管理设备,而被管理设备则向管理系统提供相关的信息。
SNMP的工作原理是通过管理系统发送请求(GetRequest)到被管理设备的Agent,Agent收到请求后,会根据请求返回相应的信息。
管理系统可以通过设置(Set)请求来修改被管理设备的配置参数,也可以通过陷阱(Trap)机制,实现对网络故障的监测和通知。
2. SNMP的管理技巧2.1 合理选择SNMP版本SNMP有多个版本,其中最常用的是SNMPv1、SNMPv2c和SNMPv3。
不同版本的SNMP在安全性、功能和扩展性上有所差异。
在选择SNMP版本时,需要根据实际需求进行权衡。
2.2 配置网络设备的SNMP代理要实现对网络设备的监控和管理,首先需要在被管理设备上配置SNMP代理。
通过设置SNMP代理,可以定义设备的基本信息、访问控制列表、陷阱接收者等,从而提供给管理系统有效的信息。
2.3 合理使用SNMP的命令和对象SNMP提供了丰富的命令和对象,管理系统可以通过这些命令和对象获取设备的状态和配置信息。
在使用这些命令和对象时,需要根据实际情况选择合适的命令,并了解各个对象的具体含义和取值范围。
2.4 合理配置SNMP的告警和陷阱SNMP的陷阱机制可以实现对网络故障的主动监测和通知。
为了及时发现和解决问题,需要合理配置SNMP的告警和陷阱功能。
SNMP简单网络管理协议报文格式详解理论

SNMP简单网络管理协议报文格式详解理论SNMP(Simple Network Management Protocol,简单网络管理协议)是一种用于管理和监控网络设备的协议。
它定义了一套规范,允许网络管理系统(NMS)通过发送和接收报文来获取设备的状态信息和执行管理操作。
了解SNMP协议的报文格式对于理解和使用SNMP非常重要。
本文将详细介绍SNMP报文格式的理论知识。
1. SNMP协议概述SNMP是一种应用层协议,被设计用于简化网络设备的管理和监控任务。
它由三个主要组件组成:网络管理系统(NMS)、管理代理(Agent)和被管理设备。
NMS是一个集中式的管理系统,通过SNMP 协议来收集和显示设备状态信息。
管理代理是安装在被管理设备上的一种软件,负责与NMS进行通信并提供设备的管理功能。
被管理设备包括路由器、交换机、服务器等网络设备。
2. SNMP报文结构SNMP使用一种基于ASN.1(Abstract Syntax Notation One,抽象语法标记一)的报文编码格式,用于在网络管理系统和管理代理之间进行交换。
SNMP报文由两个部分组成:头部和数据部分。
2.1 头部(Header)SNMP报文的头部包含了各种元信息,用于标识报文的类型和版本信息。
它包括以下字段:- 版本(Version):指定了SNMP协议的版本号,常用的版本有SNMPv1、SNMPv2c和SNMPv3。
- 社区名(Community):用于授权和身份验证的字符串,用于标识发送方的权限。
- 数据类型(PDU Type):指定了SNMP报文的类型,如Get、GetNext、Set等。
- 请求标识(Request ID):每个SNMP报文都有一个唯一的标识符,用于跟踪该请求。
- 错误状态(Error Status):用于指示SNMP报文的处理状态,成功为0,失败为非零值。
- 错误索引(Error Index):当SNMP报文处理失败时,指示出错对象的索引。
SNMP协议

1.SNMP协议的概述SNMP(Simple Network Management Protocol)是一种用于网络管理的应用层协议。
它允许网络管理员监控和管理网络设备、系统和应用程序,以确保它们正常运行并及时发现和解决问题。
1.1SNMP的作用和重要性SNMP协议在网络管理中扮演着重要的角色,它提供了以下功能:•监控:SNMP允许管理员实时监视网络设备的状态和性能指标,如带宽利用率、CPU负载、内存使用情况等。
•配置管理:管理员可以通过SNMP协议配置网络设备的参数和设置,例如路由器、交换机的端口配置。
•故障诊断:SNMP允许管理员检测和诊断网络设备和系统中的故障,以便及时采取措施进行修复。
•警报和通知:SNMP可以发送警报和通知给管理员,以便在网络出现问题或达到预设的阈值时及时采取行动。
1.2SNMP的工作原理SNMP采用客户端‑服务器模型,其中网络设备(如路由器、交换机)充当SNMP代理,而网络管理系统(NMS)则充当SNMP管理器。
基本的工作原理包括:1.管理器发送SNMP请求到代理设备。
2.代理设备接收请求并根据请求类型执行相应的操作。
3.代理设备将执行结果作为响应发送回管理器。
4.管理器接收响应并解析结果,以便进行适当的管理操作。
1.3SNMP的协议结构SNMP协议采用了基于对象的管理模型,其中管理信息由管理信息库(MIB)定义。
MIB是一个层次化的数据库,包含了网络设备和系统的各种参数和状态信息。
SNMP协议定义了四个主要的操作:•GET:用于获取指定对象的值。
•SET:用于设置指定对象的值。
•GET‑NEXT:用于获取下一个对象的值。
•TRAP:用于代理设备向管理器发送警报和通知。
1.4SNMP的版本和特性SNMP有不同的版本,最常用的版本包括SNMPv1、SNMPv2c和SNMPv3。
每个版本都具有不同的特性和安全性级别。
•SNMPv1:最早的版本,提供基本的网络管理功能,但安全性较弱。
SNMP协议详解

SNMP协议详解一、介绍SNMP(Simple Network Management Protocol)是一种用于网络管理的协议,它提供了一种标准的方式来监控和管理网络设备。
SNMP协议允许网络管理员远程监视和控制网络设备,以确保网络的正常运行和性能优化。
本协议详解将介绍SNMP协议的基本原理、架构、消息格式以及常见的SNMP操作。
二、SNMP协议架构SNMP协议基于客户端-服务器模型,其中网络设备(如路由器、交换机、服务器等)充当服务器,而网络管理系统(NMS)充当客户端。
SNMP协议定义了四个主要组件:管理站点(Manager)、代理(Agent)、管理信息库(MIB)和网络设备。
1. 管理站点(Manager):管理站点是网络管理系统的一部分,负责监控和控制网络设备。
管理站点可以通过SNMP协议向代理发送请求,并接收代理返回的响应。
2. 代理(Agent):代理是网络设备上运行的软件模块,负责收集和存储网络设备的管理信息,并响应管理站点的请求。
3. 管理信息库(MIB):MIB是一种层次化的数据库,用于存储和描述网络设备的管理信息。
MIB定义了一系列的对象标识符(OID),每个OID对应一个特定的管理信息。
4. 网络设备:网络设备指的是需要被监控和管理的设备,如路由器、交换机、服务器等。
网络设备通过代理与管理站点进行通信。
三、SNMP消息格式SNMP协议使用简单的消息格式进行通信,包括两种类型的消息:管理请求消息和代理响应消息。
1. 管理请求消息:管理请求消息由管理站点发送给代理,用于请求特定的管理操作。
管理请求消息包括以下字段:- 版本号:指定SNMP协议的版本。
- 社区名:用于身份验证和访问控制。
- PDU类型:指定请求的操作类型,如获取、设置、通知等。
- 对象标识符(OID):指定要操作的管理信息。
- 值:指定要设置的值(仅在设置操作时使用)。
2. 代理响应消息:代理响应消息由代理发送给管理站点,用于响应管理请求。
简单网络管理协议(SNMP)学习理解

简单网络管理协议学习理解1.SNMP网络管理协议综述SNMP(Simple Network Management Protocol)是被广泛接受并投入使用的工业标准,它是由SGMP即简单网关监控协议发展以来的。
它的目标是保证管理信息在任意两点中传送,便于网络管理员在网络上的任何节点检索信息,进行修改,寻找故障;完成故障诊断,容量规划和报告生成。
它采用轮询机制,提供最基本的功能集。
最适合小型、快速、低价格的环境使用。
它只要求无证实的传输层协议UDP,受到许多产品的广泛支持。
2.1 管理信息经由SNMP协议传输的所有管理倍息都表现为非聚集的对象类型。
这些对象类型被收集到一个或多个管理信息库[MIB]中并且对象类型按照管理信息结构和标识(SMI)定义。
简单网络管理协议策l版的sM[于1990年5月定义在一篇题为《基于因特网的了TCP/IP管理信息结构和标识》的RFC中。
这一RFC要求所有的管理信息库数据和信息必须根据ISO 8824标准《抽象句法表示法1规范》(ASN.1)编码。
按照ASN.1表示所有信息和对象的目的在于方便向OSI的网络管理协议迁移而无需重新定义现已存在的所有对象和MIB。
SMI为每一对象类型定义以下成分:①名字;②句法;②编码说明。
注意:一个对象类型的名字明确地代表一个对象,称为对象标识符。
不得分配标识符0给对象类型作为其名字的一部分。
为便于阅读,在标准文档中对象标识符旁边包含对这一对象的描述。
对象标识符是按照在OSI MIB树中建立的严格分层空间构造的,对象标识符总是一个唯一的从树根开始描述MIB树的整数序列。
对象标识符和它的文字描述的组合称为标号。
2.1.1 管理树SMI明确要求所有被管理的信息和数据都要由管理树来标识。
这棵管理树来源于OSI的定义,它具有从很开始的严格分层化结构。
管理拷的分支和叶子是用数字和字母两种方式显示的。
数字化编码是机器可读的,字母显示则更适合于人的眼睛并帮助用户寻找穿过错综复杂分支的路径。
简单网络管理协议

简单网络管理协议(snmp )对于每个网络管理员来说说都是必需的。
通过几个简单的命令,我们就可以对其进行配置。
目前SNMP 仍然是监视网络设备(包括cisco 路由器和交换机)性能的流行方法。
通过SNMP 管理站点,管理员可以查看网络设备性能的图表。
另外,Cisco 网络设备还会将报警信息(称作 traps )发送到管理站点。
什么是SNMP ?SNMP 分为三个版本:v1 ,v2 ,和v3. 其功能是依次递增的。
很多网络管理员喜欢用V2 版,但是V3 版本可以提供更多的安全特性。
那么SNMP 是怎么工作的呢?SNMP 设备包含了一个配制好的SNMP 代理。
网络管理系统(NMS )会与每个网络设备上的SNMP 代理进行对话。
NMS 可以是一个很大的系统,比如HP OpenView ,也可以是一个小巧的工具软件,比如PRTG.SNMP 如何帮助我?SNMP 可做的工作很多,比如以下几类:◆以图表的方式显示Cisco 路由器/ 交换机的带宽使用情况,可以按端口,数据流向等分类。
◆以图形方式显示网络错误(比如CRC 错误)。
◆某个端口出现问题时可以发送警告信息给管理员。
是否需要NMS ?作为管理员,一定要有一个NMS 来帮助实现SNMP 的功能。
配置SNMP 本身并不会让你获得任何信息,你需要配置一个NMS 系统来接收,并显示出SNMP 的信息。
如何配置SNMP 监视?要配置SNMP ,我建议首先查看一下设备的信息。
比如下面这些:接下来我们要配置SNMP 以便NMS 可以监视它。
配置SNMP 的方法很多。
这里我们只介绍一点配置Cisco 路由器和交换机的方法。
首先,我们需要建立一个识别字符串。
识别字符串其实就是访问网络设备的密码。
设立一个良好的识别字符串可以让我们更好的读写网络设备,比如:现在我们的NMS ,不论在网络的什么节点,都可以读取(view )以及写入(change )设备的配置和状态。
(对于高级的NMS ,我们可以使用SNMP 修改设备上的配置,但是这并不是SNMP 的主要功能)在本例中,我们将网络设备设置为MyCommunity972 .如何配置SNMP 发送警报信息?在这方面,我们可以使用诸如PRTG 等NMS 来图形化路由器或者交换机端口的带宽使用情况。
简单网络管理协议SNMP

SNMP1概述 (1)2SNMP的工作原理 (1)2.1网络管理模型 (1)2.2网络管理协议结构 (2)2.3网络管理服务 (3)2.4委托代理 (4)3管理信息结构SMI (4)3.1ASN.1 (4)3.2文本约定 (5)3.3对象定义 (6)3.4T RAP定义 (6)3.5对象标志符 (7)3.6表对象的定义 (8)3.7对象和对象实例的区别 (10)3.8OID的字典序 (10)4协议数据单元(PDU--PROTOCOL DATA UNIT) (10)4.1SNMP报文格式 (10)4.2SNMP报文类型 (11)4.3SNMP V2基本的PDU格式 (12)4.4SNMP消息的生成 (13)4.5SNMP消息的接受和处理 (13)5SNMP协议操作 (15)5.1G ET R EQUES T (15)5.1.1GetRequest—PDU报文格式 (15)5.1.2SNMPv2对GetRequest-PDU的处理(参考RFC1905) (15)5.1.3SNMPv1对GetRequest-PDU的处理(参考RFC1157) (16)5.2G ET N EXT R EQUEST—PDU (16)5.2.1GetNextRequest报文格式 (17)5.2.2SNMPv2对GeNextRequest-PDU的处理(参考RFC1905) (17)5.2.3SNMPv1对GeNextRequest-PDU的处理(参考RFC1157) (18)5.3R ESPONSE-PDU (18)5.3.1Response报文格式 (18)5.3.2SNMPv2对Response-PDU的处理(参考RFC1905) (20)5.3.3SNMPv1对响应报文GetResponse的处理(参考RFC1157) (20)5.4S ET R EQUES T-PDU (20)5.4.1SetRequest报文格式 (20)5.4.2SNMPv2实体对SetRequest报文的处理(参考RFC1905) (21)5.4.3SNMPv1对SetRequest报文的处理(参考RFC1157) (22)5.5G ET B ULK R EQUES T-PDU (23)5.5.1GetBulkRequest-PDU报文格式 (23)5.5.2SNMPv2对GetBulkRequest-PDU报文的处理(参考RFC1905) (24)5.6I NFORM R EQUES T-PDU (25)5.6.1InformRequest-PDU的格式 (25)5.6.2SNMPv2对InformRequest-PDU的处理(参考RFC1905) (26)5.7T RAP-PDU (26)5.7.1SNMPv1的Trap (26)5.7.2SNMPv2的SNMPv2-Trap-PDU (28)6SNMP的安全控制 (29)6.1SNMP V2-基于共同体的管理框架 (29)6.2SNMP V3的安全策略 (30)1概述简单网络管理协议(SNMP)由internet活动委员会(IAB)制定, 是Internet组织用来管理TCP/IP互联网和以太网的网络管理协议,它最初是作为一种可提供最小的网络管理功能的临时方法开发的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简单网络管理协议(SNMP)入门简单网络管理协议(SNMP)在体系结构分为被管理的设备(Managed Device)、SNMP管理器(SNMP Manager)和SNMP代理(SNMP Agent)三个部分。
被管理的设备是网络中的一个节点,有时被称为网络单元(Network Elements),被管理的设备可以是路由器、网管服务器、交换机、网桥、集线器等。
每一个支持SNMP的网络设备中都运行着一个SNMP代理,它负责随时收集和存储管理信息,记录网络设备的各种情况,网络管理软件再通过SNMP通信协议查询或修改代理所记录的信息。
SNMP代理是驻留在被管理设备上的网络管理软件模块,它收集本地计算机的管理信息并将这些信息翻译成兼容SNMP协议的形式。
SNMP管理器通过网络管理软件来进行管理工作。
网络管理软件的主要功能之一,就是协助网络管理员完成管理整个网络的工作。
网络管理软件要求SNMP 代理定期收集重要的设备信息,收集到的信息将用于确定独立的网络设备、部分网络或整个网络运行的状态是否正常。
SNMP管理器定期查询SNMP代理收集到的有关设备运转状态、配置及性能等的信息。
SNMP使用面向自陷的轮询方法(Trap-directed polling)进行网络设备管理。
一般情况下,网络管理工作站通过轮询被管理设备中的代理进行信息收集,在控制台上用数字或图形的表示方式显示这些信息,提供对网络设备工作状态和网络通信量的分析和管理功能。
当被管理设备出现异常状态时,管理代理通过SNMP自陷立即向网络管理工作站发送出错通知。
当一个网络设备产生了一个自陷时,网络管理员可以使用网络管理工作站来查询该设备状态,以获得更多的信息。
管理信息数据库(MIB)是由 SNMP代理维护的一个信息存储库,是一个具有分层特性的信息的集合,它可以被网络管理系统控制。
MIB定义了各种数据对象,网络管理员可以通过直接控制这些数据对象去控制、配置或监控网络设备。
SNMP通过SNMP代理来控制 MIB数据对象。
无论MIB数据对象有多少个,SNMP代理都需要维持它们的一致性,这也是代理的任务之一。
现在已经定义的有几种通用的标准管理信息数据库,这些数据库中包括了必须在网络设备中支持的特殊对象,所以这几种MIB可以支持简单网络管理协议(SNMP)。
使用最广泛、最通用的MIB 是MIB- Ⅱ。
此外,为了利用不同的网络组件和技术,还开发了一些其他种类的MIB。
SNMPSimple Network Management Protocol简单网络管理协议(SNMP)首先是由Internet工程任务组织(Internet Engineering Task Force)(IETF)的研究小组为了解决Internet上的路由器管理问题而提出的。
它可以在IP,IPX,AppleTalk,OSI以及其他用到的传输协议上被使用。
SNMP事实上指一系列网络管理规范的集合,包括协议本身,数据结构的定义和一些相关概念。
简单网络管理协议(SNMP)是最早提出的网络管理协议之一,它一推出就得到了广泛的应用和支持,特别是很快得到了数百家厂商的支持,其中包括IBM,HP,SUN等大公司和厂商。
目前SNMP已成为网络管理领域中事实上的工业标准,并被广泛支持和应用,大多数网络管理系统和平台都是基于SNMP的。
一、SNMP概述SNMP的前身是简单网关监控协议(SGMP),用来对通信线路进行管理。
随后,人们对SGMP进行了很大的修改,特别是加入了符合Internet定义的SMI和MIB:体系结构,改进后的协议就是著名的SNMP。
SNMP的目标是管理互联网Internet 上众多厂家生产的软硬件平台,因此SNMP受Internet标准网络管理框架的影响也很大。
现在SNMP已经出到第三个版本的协议,其功能较以前已经大大地加强和改进了。
SNMP的体系结构是围绕着以下四个概念和目标进行设计的:保持管理代理(agent)的软件成本尽可能低;最大限度地保持远程管理的功能,以便充分利用Internet的网络资源;体系结构必须有扩充的余地;保持SNMP的独立性,不依赖于具体的计算机、网关和网络传输协议。
在最近的改进中,又加入了保证SNMP 体系本身安全性的目标。
另外,SNMP中提供了四类管理操作:get操作用来提取特定的网络管理信息;get-next操作通过遍历活动来提供强大的管理信息提取能力;set操作用来对管理信息进行控制(修改、设置);trap操作用来报告重要的事件。
二、SNMF管理控制框架与实现1.SNMP管理控制框架SNMP定义了管理进程(manager)和管理代理(agent)之间的关系,这个关系称为共同体(community)。
描述共同体的语义是非常复杂的,但其句法却很简单。
位于网络管理工作站(运行管理进程)上和各网络元素上利用SNMP相互通信对网络进行管理的软件统统称为SNMP应用实体。
若干个应用实体和SNMP组合起来形成一个共同体,不同的共同体之间用名字来区分,共同体的名字则必须符合Internet的层次结构命名规则,由无保留意义的字符串组成。
此外,一个SNMP 应用实体可以加入多个共同体。
SNMP的应用实体对Internet管理信息库中的管理对象进行操作。
一个SNMP应用实体可操作的管理对象子集称为SNMP MIB授权范围。
SNMP应用实体对授权范围内管理对象的访问仍然还有进一步的访问控制限制,比如只读、可读写等。
SNMP体系结构中要求对每个共同体都规定其授权范围及其对每个对象的访问方式。
记录这些定义的文件称为“共同体定义文件”。
SNMP的报文总是源自每个应用实体,报文中包括该应用实体所在的共同体的名字。
这种报文在SNMP中称为“有身份标志的报文”,共同体名字是在管理进程和管理代理之间交换管理信息报文时使用的。
管理信息报文中包括以下两部分内容:(1)共同体名,加上发送方的一些标识信息(附加信息),用以验证发送方确实是共同体中的成员,共同体实际上就是用来实现管理应用实体之间身份鉴别的;(2)数据,这是两个管理应用实体之间真正需要交换的信息。
在第三版本前的SNMP中只是实现了简单的身份鉴别,接收方仅凭共同体名来判定收发双方是否在同一个共同体中,而前面提到的附加倍息尚未应用。
接收方在验明发送报文的管理代理或管理进程的身份后要对其访问权限进行检查。
访问权限检查涉及到以下因素:(1)一个共同体内各成员可以对哪些对象进行读写等管理操作,这些可读写对象称为该共同体的“授权对象”(在授权范围内);(2)共同体成员对授权范围内每个对象定义了访问模式:只读或可读写;(3)规定授权范围内每个管理对象(类)可进行的操作(包括get,get-next,set和trap);(4)管理信息库(MIB)对每个对象的访问方式限制(如MIB中可以规定哪些对象只能读而不能写等)。
管理代理通过上述预先定义的访问模式和权限来决定共同体中其他成员要求的管理对象访问(操作)是否允许。
共同体概念同样适用于转换代理(Proxy agent),只不过转换代理中包含的对象主要是其他设备的内容。
2.SNMP实现方式为了提供遍历管理信息库的手段,SNMP在其MIB中采用了树状命名方法对每个管理对象实例命名。
每个对象实例的名字都由对象类名字加上一个后缀构成。
对象类的名字是不会相互重复的,因而不同对象类的对象实例之间也少有重名的危险。
在共同体的定义中一般要规定该共同体授权的管理对象范围,相应地也就规定了哪些对象实例是该共同体的“管辖范围”,据此,共同体的定义可以想象为一个多叉树,以词典序提供了遍历所有管理对象实例的手段。
有了这个手段,SNMP 就可以使用get-next操作符,顺序地从一个对象找到下一个对象。
get-next(object-instance)操作返回的结果是一个对象实例标识符及其相关信息,该对象实例在上面的多叉树中紧排在指定标识符;bject-instance对象的后面。
这种手段的优点在于,即使不知道管理对象实例的具体名字,管理系统也能逐个地找到它,并提取到它的有关信息。
遍历所有管理对象的过程可以从第一个对象实例开始(这个实例一定要给出),然后逐次使用get-next,直到返回一个差错(表示不存在的管理对象实例)结束(完成遍历)。
由于信息是以表格形式(一种数据结构)存放的,在SNMP的管理概念中,把所有表格都视为子树,其中一张表格(及其名字)是相应子树的根节点,每个列是根下面的子节点,一列中的每个行则是该列节点下面的子节点,并且是子树的叶节点,如下图所示。
因此,按照前面的子树遍历思路,对表格的遍历是先访问第一列的所有元素,再访问第二列的所有元素……,直到最后一个元素。
若试图得到最后一个元素的“下一个”元素,则返回差错标记。
SNMP树形表格结构示意图SNMP中各种管理信息大多以表格形式存在,一个表格对应一个对象类,每个元素对应于该类的一个对象实例。
那么,管理信息表对象中单个元素(对象实例)的操作可以用前面提到的get-next方法,也可以用后面将介绍的get/set等操作。
下面主要介绍表格内一行信息的整体操作。
(1)增加一行:通过SNMP只用一次set操作就可在一个表格中增加一行。
操作中的每个变量都对应于待增加行中的一个列元素,包括对象实例标识符。
如果一个表格中有8列,则set操作中必须给出8个操作数,分别对应8个列中的相应元素。
(2)删除一行:删除一行也可以通过SNMP调用一次set操作完成,并且比增加一行还简单。
删除一行只需要用set操作将该行中的任意一个元素(对象实例)设置成“非法”即可。
但该操作有一个例外:地址翻译组对象中有一个特殊的表(地址变换表),该表中未定义一个元素的“非法”条件。
因此,SNMP中采用的办法是将该表中的地址设置成空串,而空字符串将被视为非法元素。
至于删除一行时,表中的一行元素是否真的在表中消失,则与每个设备(管理代理)的具体实现有关。
因此,网络管理操作中,运行管理进程可能从管理代理中得到“非法”数据,即已经删除的不再使用的元素的内容,因此管理进程必须能通过各数据字段的内容来判断数据的合法性。
三、背景知识SNMP开发于九十年代早期,其目的是简化大型网络中设备的管理和数据的获取。
许多与网络有关的软件包,如HP的OpenView和Nortel Networks的Optivity Network Management System,还有Multi Router Traffic Grapher(MRTG)之类的免费软件,都用SNMP服务来简化网络的管理和维护。
由于SNMP的效果实在太好了,所以网络硬件厂商开始把SNMP加入到它们制造的每一台设备。
今天,各种网络设备上都可以看到默认启用的SNMP服务,从交换机到路由器,从防火墙到网络打印机,无一例外。