|
知识路径: > 计算机网络原理 > 网络管理 > 简单网络管理协议 > SNMPv1、SNMPv2、SNMPv3 > 简单网络管理协议 >
|
相关知识点:5个
|
|
|
|
SNMP定义了管理进程(Manager)和管理代理(Agent)之间的关系,这个关系称为共同体(Community)。描述共同体的语义是非常复杂的,但其句法却很简单。位于网络管理工作站(运行管理进程)上和各网络元素上利用SNMP相互通信对网络进行管理的软件统统称为SNMP应用实体。若干个应用实体和SNMP组合起来形成一个共同体,不同的共同体之间用名称来区分,共同体的名称则必须符合Internet的层次结构命名规则,由无保留意义的字符串组成。此外,一个SNMP应用实体可以加入多个共同体。
|
|
|
SNMP的应用实体对Internet管理信息库中的管理对象进行操作。一个SNMP应用实体可操作的管理对象子集称为SNMPMIB授权范围。但其对授权范围内管理对象的访问仍然还有进一步的访问控制限制,如只读、可读写等。SNMP体系结构中要求对每个共同体都规定其授权范围,及其对每个对象的访问方式。记录这些定义的文件称为“共同体定义文件”。
|
|
|
SNMP的报文总是源自每个应用实体,报文中包括该应用实体所在的共同体的名称。这种报文在SNMP中称为“有身份标志的报文”,共同体名称是在管理进程和管理代理之间交换管理信息报文时使用的。管理信息报文中包括以下两部分内容:
|
|
|
(1)共同体名,加上发送方的一些标识信息(附加信息),用以验证发送方确实是共同体中的成员,共同体实际上就是用来实现管理应用实体之间身份鉴别的。
|
|
|
(2)数据,这是两个管理应用实体之间真正需要交换的信息。
|
|
|
在第三版本前的SNMP中只是实现了简单的身份鉴别,接收方仅凭共同体名来判定收发双方是否在同一个共同体中,而前面提到的附加信息尚未应用。接收方在验明发送报文的管理代理或管理进程的身份后要对其访问权限进行检查。访问权限检查涉及以下因素:
|
|
|
(1)一个共同体内各成员可以对哪些对象进行读写等管理操作,这些可读写对象称为该共同体的“授权对象”(在授权范围内)。
|
|
|
(2)共同体成员对授权范围内每个对象定义了访问模式,即只读或可读写。
|
|
|
(3)规定授权范围内每个管理对象(类)可进行的操作(包括get、get-next、set和trap)。
|
|
|
(4)管理信息库(MIB)对每个对象的访问方式限制(如MIB中可以规定哪些对象只读而不可写等)。
|
|
|
管理代理通过上述预先定义的访问模式和权限来决定共同体中其他成员要求的管理对象访问(操作)是否允许。共同体概念同样适用于转换代理(Proxy Agent),只不过转换代理中包含的对象主要是其他设备的内容。
|
|
|
SNMP实现方式为了提供遍历管理信息库的手段,SNMP在其MIB中采用了树状命名方法对每个管理对象实例命名。每个对象实例的名称都由对象类名字加上一个后缀构成。对象类的名称是不会相互重复的,因而不同对象类的对象实例之间也少有重名的危险。
|
|
|
在共同体的定义中一般要规定该共同体授权的管理对象范围,相应地也就规定了哪些对象实例是该共同体的“管辖范围”,因此,共同体的定义可以想象为一个多叉树,以词典序提供了遍历所有管理对象实例的手段。有了这个手段,SNMP就可以使用get-next操作符,顺序地从一个对象找到下一个对象。get-next(object-instance)操作返回的结果是一个对象实例标识符及其相关信息,该对象实例在上面的多叉树中紧排在指定标识符object-instance对象的后面。这种手段的优点在于,即使不知道管理对象实例的具体名称,管理系统也能逐个地找到它,并提取到它的有关信息。遍历所有管理对象的过程可以从第一个对象实例开始(这个实例一定要给出),然后逐次使用get-next,直到返回一个差错(表示不存在的管理对象实例)结束(完成遍历)。
|
|
|
由于信息是以表格形式(一种数据结构)存放的,在SNMP的管理概念中,把所有表格都视为子树,其中一张表格(及其名字)是相应子树的根节点,每个列是根下面的子节点,一列中的每个行则是该列节点下面的子节点,并且是子树的叶节点。按照前面的子树遍历思路,对表格的遍历是先访问第一列的所有元素,再访问第二列的所有元素,直到最后一个元素。若试图得到最后一个元素的“下一个”元素,则返回差错标记。
|
|
|
SNMP中各种管理信息大多以表格形式存在,一个表格对应一个对象类,每个元素对应于该类的一个对象实例。那么管理信息表对象中单个元素(对象实例)的操作可以用前面提到的get-next方法,也可以用后面将介绍的get/set等操作。下面主要介绍表格内一行信息的整体操作。
|
|
|
(1)增加一行:通过SNMP只用一次set操作就可在一个表格中增加一行。操作中的每个变量都对应于待增加行中的一个列元素,包括对象实例标识符。如果一个表格中有8列,则set操作中必须给出8个操作数,分别对应8个列中的相应元素。
|
|
|
(2)删除一行:删除一行也可以通过SNMP调用一次set操作完成,并且比增加一行还简单。删除一行只需要用set操作将该行中的任意一个元素(对象实例)设置成“非法”即可。该操作有一个例外:地址翻译组对象中有一个特殊的表(地址变换表),该表中未定义一个元素的“非法”条件。因此SNMP中采用的办法是将该表中的地址设置成空串,而空字符串将被视为非法元素。
|
|
|
删除一行时,表中的一行元素是否真的在表中消失的问题,则与每个设备(管理代理)的具体实现有关。因此网络管理操作中,运行管理进程可能从管理代理中得到“非法”数据,即已经删除的不再使用的元素的内容,因此管理进程必须能通过各数据字段的内容来判断数据的合法性。
|
|
|
网络管理技术的一个新的趋势是使用RMON(远程网络监控)。RMON的目标是扩展SNMP的MIB-II(管理信息库),使SNMP更为有效、更为积极主动地监控远程设备。RMONMIB由一组统计数据、分析数据和诊断数据构成,利用许多供应商生产的标准工具都可以显示这些数据,因而它具有独立于供应商的远程网络分析功能。RMON探测器和RMON客户机软件结合在网络环境中实施RMON。RMON的监控功能是否有效,关键在于其探测器要具有存储统计数据历史的能力,这样就不需要不停地轮询才能生成一个有关网络运行状况趋势的视图。当一个探测器发现一个网段处于一种不正常状态时,它会主动与网络管理控制台的RMON客户应用程序联系,并将描述不正常状况的捕获信息转发。
|
|
|