解析rmon,资料总汇

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

RMON产生的背景
SNMP作为一个基于TCP/IP并在Internet互联网中应用最广泛的网管协议,网络管理员可以使用SNMP监视和分析网络运行情况,但是SNMP也有一些明显的不足之由于SNMP使用轮询采集数据,在大型网络中轮询会产生巨大的网络管理报文,从而导致网络拥塞; SNMP仅提供一般的验证,不能提供可靠的安全保证; 不支持分布式管理,而采用集中式管理。

由于只由网管工作站负责采集数据和分析数据,所以网管工作站的处理能力可能成为瓶颈。

为了提高传送管理报文的有效性、减少网管工作站的负载、满足网络管理员监控网段性能的需求,IETF开发了RMON用以解决SNMP在日益扩大的分布式互联中所面临的局限性。

RMON如何工作
远程监控(RMON)是一个标准监控规范,它可以使各种网络监控器和控制台系统之间交换网络监控数据。

RMON为网络管理员选择符合特殊网络需求的控制台和网络监控探测器提供了更多的自由。

RMON首先实现了对异构环境进行一致的远程管理,它为通过端口远程监视网段提供了解决方案。

主要实现对一个网段乃至整个网络的数据流量的监视功能,目前已成为成功的网络管理标准之一。

RMON标准使SNMP更有效、更积极主动地监测远程设备,网络管理员可以更快地跟踪网络、网段或设备出现的故障。

RMON MIB的实现可以记录某些网络事件,可以记录网络性能数据和故障历史,可以在任何时候访问故障历史数据以有利于进行有效地故障诊断。

使用这种方法减少了管理工作站同代理(Agent)间的数据流量,使简单而有力地管理大型网络成为可能。

RMON监视器可用两种方法收集数据:一种是通过专用的RMON探测器(probe),网管工作站直接从探测器获取管理信息并控制网络资源,这种方式可以获取RMON MIB的全部信息;另一种方法是将RMON代理直接植入网络设备(路由器、交换机、HUB等)使它们成为带RMON probe功能的网络设施,网管工作站用SNMP的基本命令与其交换数据信息,收集网络管理信息,但这种方式受设备资源限制,一般不能获取RMON MIB的所有数据,大多数只收集四个组的信息。

图一给出了网络管理站与RMON代理通信的例子。

通过运行在网络监视器上的支持RMON Agent,网管工作站可以获得与被管网络设备接口相连的网段上的整体流量、错误统计和性能统计等信息,从而实现对网络(往往是远程的)的管理。

RMON MIB由一组统计数据、分析数据和诊断数据组成,不象标准MIB仅提供被管对象大量的关于端口的原始数据,它提供的是一个网段的统计数据和计算结果。

RMON MIB对网段数据的采集和控制通过控制表和数据表完成。

RMON MIB按功能分成九个组。

每个组有自己的控制表和数据表。

其中,控制表可读写,数据表只读,控制表用于描述数据表所存放数据的格式。

配置
的时候,由管理站设置数据收集的要求,存入控制表。

开始工作后,RMON监控端根据控制表的配置,把收集到的数据存放到数据表。

RMON在监控元素的9个RMON组中传递信息,各个组通过提供不同的数据来满足网络监控的需要。

每个组都是可选项,所以,销售商不必在MIB 中支持所有的组。

RMON应用
RMON MIB的使用意味着首次把网络管理扩展到物理层,使独立地收集设备的数据成为可能,内置的监控工具提供了不占用宝贵网络资源(带宽)而对整个流量进行有限度的分析能力,RMON产品已经可以使用,而且其数量在今后会平稳增长。

目前大部分RMON Agent 只支持统计、历史、告警、事件四个组,如Cisco、3COM、华为的路由器或交换机都已实现这些功能,不但支持网管工作站为Agent记录的任何计数和整数类对象设置采样间隔和报警阈值,而且允许网管工作站根据需要以表达式形式对多个变量的组合进行设置。

RMON MIB
RMON MIB:远程监控管理信息库
RMON:Remote Monitoring MIBs (RMON1 and RMON2)
远程监控(RMON)是一个标准监控规范,它可以使各种网络监控器和控制台系统之间交换网络监控数据。

RMON 为网络管理员选择符合特殊网络需求的控制台和网络监控探测器提供了更多的自由。

RMON 最初的设计是用来解决从一个中心点管理各局域分网和远程站点的问题。

RMON 规范是由SNMP MIB 扩展而来。

RMON 中,网络监视数据包含了一组统计数据和性能指标,它们在不同的监视器(或称探测器)和控制台系统之间相互交换。

结果数据可用来监控网络利用率,以用于网络规划,性能优化和协助网络错误诊断。

当前RMON 有两种版本:RMON v1 和RMONv2。

RMON v1 在目前使用较为广泛的网络硬件中都能发现,它定义了9个MIB 组服务于基本网络监控;RMON v2 是RMON 的扩展,专注于MAC 层以上更高的流量层,它主要强调IP 流量和应用程序层流量。

RMON v2 允许网络管理应用程序监控所有网络层的信息包,这与RMONv1 不同,后者只允许监控MAC 及其以下层的信息包。

RMON 监视系统有两部分构成:探测器(代理或监视器)和管理站。

RMON 代理在RMON MIB 中存储网络信息,它们被直接植入网络设备(如路由器、交换机等),代理也可以是PC 机上运行的一个程序。

代理只能看到流经它们的流量,所以在每个被监控的LAN 段或WAN 链接点都要设置RMON 代理,网管工作站用SNMP 获取RMON 数据信息。

RMON MIB 有不少变种。

例如,令牌网RMON MIB 提供了针对令牌网网络管理的对象。

SMON MIB 是由RMON 扩展而来,主要用来为交换网络提供RMON 分析。

协议结构
网络层中RMON 1和RMON 2的主要监控中心:(如附图)RMON监控层RMON学习笔记(一)
远程网络监视(KMON)是对SNMP最重要的增强,定义在RFCl271中。

它定义
的MIB补充为MIB—II,并且MIB—II向网络管理人员提供了有关互联网络的关键信息。

利用MIB-II,网络管理人员可以获取对单个设备纯属本地的信息。

可以获知出入某个设备的信息流量,但却不易获知LAN上的整体流量。

通常,一个用于研究网络整体流量的设备被称为网络监视器,或网络分析器、探测器。

1。

RMON的目标
RMON的规范主要是——个MIB定义,它定义了标准网络监视功能以及在管理控制台和远程监视器之间的通信接口。

RMON提供了一个有效而且高效的方法,它可以在降低其它代理和管理站负载的情况下监视子网的行为。

在RFcl271中列出了RMON的设计目标:
脱线工作:由网络管理器来限制或停止一个监视器的轮询是可取而且是必要的,有限制的查询可以节约通信开支。

(在管理器不查询时也不断的统计数据,并在发生错误时报警。

这个应该是称它为脱线工作的原因。

yl)抢先监视:如果有充足的资源,并且认为其行为不会有很大的破坏性,监视器可以不断地对网络进行诊断并记录网络性能状况。

(不断采集数据,在故障发生时提供有用信息。

yl)
问题检测和汇报:监视器可以根据它所观测到的流量被动地(无查询地)识别某些错误及其它情况,如拥塞。

值数据:网络监视器可以分析在其子网中收集的数据,从而减轻管理站的负担。

多管理者支持:一个互联网可以配置多个管理站,以获得可靠性和执行不同功能或管理同一组织的不同部分。

监视器可以配置为同时和多个管理站打交道。

2。

对远程监视器的控制
远程监视器有两种实现方式:
1。

专用设备。

2。

作为系统功能的一部分。

为了有效地管理远程监视器,在RMON MIB中提供厂对来自管理站的各种控制的支持。

这些支持分为两大类:配置和动作发动。

2。

1配置
一般情况下,需要对远程监视器进行数据搜索配置.指明要收集的数据类型和形式。

RMON MIB容纳它的方法如下:MIB被组织成几个功能织,在每一组内,可能有一个或多个控制表和一个或多个数据表。

控制表一般可读写,它包含描述数据表的数据的参数,而数据表一般只可读。

所以在配置时,管理站设置合适的控制参数来配置远程监视器使其收集所需的数据。

通过在控制表上加上一个新行或更改已有的一行来设置参数。

监视器按照控制行中的参数设置收集信息.并存放在相应的数据表的行中。

2。

2动作发动
SNMP没有提供向代理发布命令以执行某个动作的特殊机制.SNMP的唯一功能就是读取和设置MIB视图内对象的值。

然而,利用SNMP的set操作发布命令也是可能的:可用对象来代表一个命令,这样当该对象被设为一个特定值时,一个特定动作就会被执行。

3。

多管理者的支持
某一资源允许并发访问,就会有冲撞和产生意外结果的可能:
并发资源请求会超过监视器提供这些资源的能力。

管理站可能捕捉并保持监视器资源很长一段时间,阻止了其他管理站的管理功能的执行。

资源会分配给某一个管理站,这个管理站由于崩溃而无法释放资源。

RMON MIB通过为每个控制表增加一个列对象来解决这些问题,他指定了表的特定行及相应功能的所有者通过所有者标号:
管理站可以识别它所有的不再使用的资源。

如果管理站经过了从新启动,它可以识别其在过去预定的资源,并释放它不再需要的那些部分。

RMON规范建议所有者标号包含一个或多个如下元素:IP地址、管理站名称、网络管理者的名字、地址或电话号码。

如果有多个网络管理者具有访问一个控制表的权利,可通过共享取得较高的效率。

4。

表管理
在不违反或更改SNMP框架的情况下,为行增减提供了一个清楚又条理的方法。

4。


在RMON规范中,定义了两个新的数据类型,用ASN.1表示,其定义如下:OwnerString::=DisplayString
EntryStatus::=INTEGER{ valid(1),
createRequest(2),
underCreation(3),
invalid(4)}
在RMON MIB中,在每个可读写表中都有两个对象OwnerString和EntryStatus,他们的值分别指定那一行的所以者和行状态。

4。

2行增加
管理站利用SNMP把一行加入一个RMON表中,通过发一个包括表的多个列对象标识符的SetRequest PDU实现。

RMON MIB支持内多个管理站引起的并发友增加企图所带来的问题的处理机制,他是通过该表对应的行状态的管理来实现的。

由几步组成:
1 如果管理站试图创建一个新行,并且索引对象值不存在,就以createRequest(2)为状态对象值开始创建一个新行。

2.创建操作完成后,代理把状态对象值设置成underCreation(3)。

3.在管理站创建完其配置所需的所有行之前,这些行应一直处于underCreation(3)状态,直至管理站把每一新创建行的状态对象值设置为vdid(1)。

4.如果其它管理站试图以createRequest(2)状态创建一新行,而该行已经存在,就会返回错误信息。

4。

3行更改和删除
通过把其状态对象值设置为无效,一行就可被删去。

by gp_scorpius
学习笔记(二)
(by gp_scorpius 2007-5-31 17:08:33)
5。

RMON MIB
RMON规范的大部分是RMON管理信息库的定义,这一MIB现已被吸收进MIB-II,其子树标识符是16。

5.1RMON MIB的结构
RMON MIB分为9组:
1.统计(statistics):维护代理监视的每一子网的基本使用和错误统计.
2.历史(history):记录从统计组可得到的信息的周期性统计样本.
3.警报(alarm):允许管理控制台人员为RMON代理记录的任何记数和整数设置采样间隔和报警阀值.
4.主机(host):包括关于连接到子网上的主机的各种流量的计数.
5.最高N台主机(hostTopN):包含排序后的主机统计.
6.矩阵(matrix):以矩阵形式显示出错和使用信息.
7.过滤(filter):允许监视器观测与一过滤器相匹配的数据包.8.包捕获(packet capture):控制数据被发往管理控制台的方式.
9.事件(event):一个关于由RMON代理产生的所有事件的表.RMON MIB中的所有组都是可选的,但它们之间有一些依赖性:
警报组需要事件组的实现。

最高N台组(hostTopN)需要主机组的实现.
包捕获组需要过滤组的实现.
5.2统计组
统计组包含对每个子网的基本统计信息.
该组由一个表组成,每一个监视接口(子网)对应一项,统计用计数器的形式表示,在一个有效行创建时其值从0开始.名字及用途:
etherStatsIndex : 该行的整数索引.etherStatsDataSource : 标识作为该行数据来源的接口,也就是以太子网.
etherStatsDropEvents : 由于缺少资源而引起监视器丢弃数据包事件的计数.这不一定是实际丢弃的数据包的数目,而是这种情况被检测到的次数.
对于统计组而言,控制表和数据表的功能是结合在一起的,表中可读写的对象只有
etherStatsSoure,etherStatsOwner,etherStatsStatus.
5.3历史组
历史组用于定义一个或多个监视器接口的采样功能,它由两个表组成:
一个是historyControlTable(历史控制表),他详细说明了
接口及其采样功能.
一个是etherHistoryTable(以太历史表),用于记录数据,针对以太网的媒体专有表.
historyControlTable中的每一行定义了—个对特定接口以特定采样间隔采样的功能.每一个样本,被收集后,存储在etherHistoryTable中新的一行中.
historyControlTable包括下列对象:historyControlIndex : 专一识别历史控制表中一行的整数,这一整数也用于识别etherHistoryTable中相对应的行.historyControlDataSource : 指定作为该行定义的采样的数据源的接口,也就是子网.
historyControlBucketsRequested : 请求的离散采样间隔的数目,在这段时间里,数据被存储在与该项相关的媒体特定数据表中,如果这一行的创建者末提供数值,该对象的缺省值就取50。

historyControlBucketsGranted : 离散采样间隔的实际数日,数据是在这段时间内被存储。

当与之相关的historyControlBucketsRequested 被创建或更改时,监视器应该把这一对象设值成与请求值尽可能接近的数值。

historyControlInterval: 对每一存储桶,数据被采样的间隔,以秒为单位.范围1-3600,默认1800.
采样方式是由比historyControlBucketsRequested 和historyControlInterval:决定的。

举例来说,使用缺省值,监视
器每1800秒(30分钟)取样—次;每一采样样本存于etherHistoryTable的一行中,最新的50行将被保存。

etherHistoryTable包括下面这些对象:
etherHistoryIndex : etherHistoryTable通过该索引与相应的historyControlTable行对应,该索引的特定数值表示的数据项,是historyControlIndex的同一数值标识的控制项的采样数据.etherHistorySampleIndex : 与historyControlTable同一行相关联的数据项有多个,这些数据项通过该索引识别.(2级索引gp_scorpius)
etherHistoryIntervalStart: 该采样间开始时的sysUpTime值.
ASN.1入门(转)
一、介绍
Abstract Syntax Notation One (ASN.1)是一种独立于机器的描述语言,用于描述在网络上传递的消息
标准包括: ISO 8824-1 | ITU-T X.680: Specification of basic notation,
ISO 8824-2 | ITU-T X.681: Information object specification,
ISO 8824-3 | ITU-T X.682: Constraint specification,
ISO 8824-4 | ITU-T X.683: Parameterization of ASN.1
ASN.1特别适合表示现代通信应用中那些复杂的、变化的及可扩展的数据结构
ASN.1 可分为两个部分
语法规则:从数据类型、内容顺序或结构等方面来描述消息的内容
编码规则:如何编码实际消息中的数据
特点:
表达简单和复杂类型的能力
可对类型根据大小及(或)数值进行约束
也可以施加更强的约束
字段可标记为OPTIONAL
大写开头表示类型名,小写开头的表示变量名/字段名
二、ASN.1术语
1.抽象语法(Abstract Syntax)
描述通用数据结构
允许定义数据类型和值
2.数据类型(Data Type)
值的集合,可以是简单类型或结构类型
可以对数据类型命名
3.编码(Encoding)
用于表示数据值的字节序列
4.编码规则(Encoding Rules)
给出从一种语法到另一种的映射方法
5.传输语法(Transfer Syntax)
位模式(Bits pattern)
描述数据是在传输时是如何表示的
三、ASN.1模块定义
模块(module):ASN.1规范中的基本构造块
模块定义格式如下:
<modulereference> DEFINITIONS ::=
BEGIN
EXPORTS
IMPORTS
AssignmentList
END
其中:EXPORTS 这个模块中的定义可能被其他模块引入IMPORTS 定义由其他模块引入
AssignmentList 这个模块中将定义类型分配、值分配及宏定义
四、ASN.1简单类型
1. 基本类型:BOOLEAN,INTEGER,ENUMERATED,REAL,BIT STRING,OCTET STRING
2. 字符串类型(ISO10646-1的子集)
NumericString (0-9,<space>)
PrintableString (0-9,A-Z,a-z,<space>,<s[ecial>
VisibleString
GraphicString
UTF8String
IA5String (ASCII)
3. 对象类型
OBJECT IDENTIFIER
ObjectDescriptor 对象标识符:一个任意长的非负整数序列,用于标记对象(如算法等) 4. 其它类型
NULL 空值
UTCTime
yymmdd hhmm[ss] <local offset from UTC>
GeneralizedTime
yyyymmdd hhmm[ss] <local offset from UTC>
强制从2050年开始
五、ASN.1类型定义
语法:<type name> ::= <type>
示例:
Counter ::= INTEGER
IpAddress ::= OCTET STRING
Months ::= ENUMERATED {
january (1), february (2), march (3),
april (4), may (5), june (6),
july (7), august (8), september (9),
october (10), november (11), december(12)
六、ASN.1子类型定义
语法:<subtype name> ::= <type> (<constraint>)
示例:
Counter ::= INTEGER (0..65536)
IpAddress ::= OCTET STRING ( SIZE(4) )
Spring ::= Months (march | april | may)
Summer ::= Months (june | july | august )
SmallPrime ::= INTEGER ( 2 | 3 | 5 | 7 | 11 )
ExportKey ::= BIT STRING ( SIZE(40) )
七、ASN.1赋值
语法:<value name> <type> ::= <value>
示例:
ipInReceives Counter ::= 2450
ipRouteMask IpAddress ::= …FFFFFF00‟H
currentMonth Months ::= july
currentTime UTCTime ::= “030708094018+0800”
name VisibleString ::= “John”
married BOOLEAN ::= TRUE
faxMess age BIT STRING ::= …01100001101‟B
internet OBJECT IDENTIFIER ::= { iso(1) org(3) dod(6) 1 } private OBJECT IDENTIFIER ::= { internet 4 }
八、ASN.1结构类型
SEQUENCE 对应于C语言中的struct
类型定义
UserAccount ::= SEQUENCE {
username PrintableString,
password PrintableString,
accountNr INTEGER
}
myAccount UserAccount ::= {
username “tly”,
password “guesswhat”,
accountNr 2345
}
SEQUENCE OF 对应于C语言中的数组
类型定义
MemberCountries ::= SEQUENCE OF PrintableString AccountRegistry ::= SEQUENCE OF UserAccount
赋值
eastAsia MemberCountries ::= {
“China”, “Japan”, “Korean”, “DPR”
}
SET 类似于SEQUENCE,但不考虑分量顺序
类型定义
UserAccount ::= SET {
username [0] PrintableString,
password [1] PrintableString,
accountNr [2] INTEGER
}
赋值
myAccount UserAccount ::= {
accountNr 2345,
username “tly”,
password “guesswhat”
}
SET OF 集合类型,每一分量类型相同,不考虑顺序
类型定义
Keywords ::= SET OF PrintableString
赋值
someASN1Keywords Keywords ::= {
“INTEGER”, “BOOLEAN”, “REAL”
}
ASN.1介绍
出处:http://asn1.elibel.tm.fr/en/introduction/index.htm
基于SNMP的MIB库访问实现
1 引言
简单网络管理协议(SNMP)是Internet组织用来管理Internet的网络协议,随着Internet所使用的TCP/IP协议族成为事实上的网间网互连协议标准,SNMP也成为计算机网络管理方面大家实际遵循的标准。

几乎所有的Internet 网络设备的生产厂家都在开发与SNMP有关的产品并投放市场。

2SNMP 的管理模型
在SNMP管理模型中有三个基本组成部分:管理者(Manager),被管代理(Agent)和管理信息库(MIB)。

管理站一般是一个单机设备或一个共享网络中的一员,它是网络管理员和网络管理系统的接口,能将网络管理员的命令转换成对远程网络元素的监视和控制,同时从网上所有被管实体的MIB (管理信息库) 中提取出信息数据。

作为管理站,它还必须拥有能进行数据分析、故障发现等管理应用软件。

整个管理站的管理工作是通过轮询代理来完成的。

管理者可以通过SNMP 操作直接与管理代理通信,获得即时的设备信息,对网络设备进行远程配置管理或者操作;也可以通过对数据库的访问获得网络设备的历史信息,以决定网络配置变化等操作。

SNMP管理代理指的是用于跟踪监测被管理设备状态的特殊软件或硬件,每个代理都拥有自己本地的MIB。

实际上,SNMP 的管理任务是移交给管理代理来执行的。

代理翻译来自管理站的请求,验证操作的可执行性,通过直接与相应的功能实体通信来执行信息处理任务, 同时向管理站返回响应信息。

3 管理信息库
MIB信息为网管中被管资源,而网络管理中的资源是以对象表示的,每个对象表示被管资源的某方面属性,这些对象形成了MIB库。

每个MIB变量记录了每个相连网络的状态、通信量统计数据、发生差错的次数以及内部数据结构的当前内容等。

网络管理者通过对MIB库的存取访问,来实现五大管理功能。

3.1 MIB对象定义格式
ASN.1是一种用于描述结构化客体的结构和内容的语言,基于编码规则BER(Basic Encoding Rules)是ASN.1标准定义的一种传送文法。

每个MIB变量格式是SMI规定的,用ASN.1描述如下:
OBJECTNAME BOJECT-TYPE
DESCRIPTION:(description)
SYNTAX: (syntax)
ACCESS: (access)
STATUS: (status)
::={(Parent)number}
OBJECTNAME是被管对象的名字,ASN.1要求所有对象的名字在MIB中必须是唯一的;BOJECT-TYPE 是每一个节点对象所必需的关键字;SYNTAX是被管对象类型的关键字,随后跟着的是一个类型(syntax);ACCESS是被管对象的访问方式关键字,在
SNMP 第二版中为MAX-ACCESS 关键字,(access)是被管对象的访问方式,可为如下列举值之一: read-only、r ead-write、no-accessible, SNMP 第2 版中又增加了read-create;STATUS是被管对象关键字,(status)是被管对象的状态,如必备的、可选的或废弃的;DESCRIPTION是对被管对象的功能、特征等进行描述的关键字,(description)是被管对象的文本描述,在:::={(Parent)number }中,Parent表示位于MIB树中的父节点,number表示是第几个子节点。

3.2 MIB 树
每个MIB对象都用对象标识符(OID)来唯一的标识,这是用定义在ASN.1语法中的树型结构来组织的可用信息,其中每个可用信息是一个带标号的节点,每个节点用数字和字符两种方式显示,其中对象标识符OID是由句点隔开的一组整数,也就是从根节点通向它的路径,它命名节点并指示它在ASN.1树中的准确位置。

一个带标号节点可以拥有包含其它带标号节点为它的子树,如果没有子树它就是叶子节点,它包含一个值并被称为对象。

图3是带有ASN.1编号的MIB树实例:可以看出MIB-Ⅱ的OID是:1.3.6.1.2.1或者.dod.internet.mgmt.mib2。

在SNMP中,实现应用到的MIB对象都是MIB-Ⅱ的子树节点。

3.3 MIB 对象及变量
Internet MIB是一树形结构的数据库,MIB-I定义了8个管理信息类别,MIB-Ⅱ是在MIB-I基础上的扩展,增加了SNMP和CMOT两项。

MIB类别说明见表1。

表1 MIB类别表
MIB类别包含有关信息
System 关于实体所在系统的数据
Interface 用于管理的网络接口信息
AT 地址转换信息
IP 网络协议
ICMP 为IP设备携带错误和控制的协议
TCP 传输控制协议
UDP 用户数据报协议
EGP 外部网关协议
CMOT 公共管理信息与服务协议
SNMP 简单网络管理协议
MIB库中每一个变量都符合ASN.1语法规则,MIB库中只使用了ASN.1诸多类型中的INTEGER,OCTET STRING,OB JECT IDENTIFIER,NULL作为基本类型,同时定义了IpAddress,Counter,Gauge,TimeTicks,Opaque类型,大体上说,MIB中变量可分为两大部分,简单变量(Simple variable)和表格(Table)。

简单变量是常见的整型及字符串,也包括一些数据集合,通过在变量的对象标识符末尾附加.0来引用。

表格对应一组数组,可包含变量的多个实例,表格中的每个表项可以用多个字段,这些字段本身可能是简单变量也可能是表格,表格不能直接进行存取。

4 MIB 访问实现
4.1 SNMP 报文操作
由于SNMP 是工作在UDP 上的协议,即无连接的报文通信方式,它不保证报文是否正确到达(SNMP的报文格式如图4所示)。

与其他网络管理协议不同的是,SNMP 使用一种称作―取—存‖的范例来实现各种操作。

主要有以下3种信息:
(1) Get :由管理站去获取代理管理信息库的值,通过发送Get - Request , Get - Next –Request两种消息来实现。

管理站通过发送Get - Request 报文从拥有SNMP 管理代理的网络设备中获取指定对象的信息,而管理代理用Get - Response 报文来响应Get - Request 报文。

Get - Next - Request 是获取一个表中指定对象的下一个对象,因此通常用它来获取一个表中的所有对象信息。

(2) Set :由管理站设置代理的管理信息库的对象值,通过发送Set - request 来实现,它可以对一个网络设备进行远程参数配置。

Version
Community
SNMP PDU
SNMP消息
PDU type
Request-id
Variable-bindings
Get-Request PDU,Get-Next-Request PDU,Set-Request PDU PDU type
Request-id
Error-status
Error-status
Variable-bindings
Get-Response PDU
PDU type
Enterprise
Agent-addr
Generic-trap
Specific-trap
Time-stamp
Variable-bindings
Trap PDU
Name1
Value1
Name2
Value2
……..
Name n
Value n
图4 SNMP消息格式
(3) Trap :使得代理能够向管理站通告重要事件,是属于非请求的消息,这些消息通知管理站发生了特定事件。

Trap 消息可以用来通知管理站线路的故障、连接的终端和恢复、认证失败等消息。

一个SNMP 实体在接收SNMP 报文时,一般要进行基本的语法检查、版本号的验证、认证(若成功就以ASN. 1 的形式返回一个PDU) 、对返回的PDU 再进行语法检查。

当所有的验证和语法解析成功以后,实体就选择适当的访问策略,对该PDU 进行相应的处理。

管理系统工作时,管理站周期性地发送Get - Request/ Get-Next-Request 报文来轮询各个代理,获取各个MI B 中的管理信息,同时,管理站也接收代理发来的Trap 报文,并记录在一个数据库中。

网络管理员可以通过专用的应用软件从管理站上查看每个代理提供的管理信息。

各个节点的代理程序驻留在工作站内存中,负责收集被管对象的网络状态信息。

当代理接收到管理站的Get 报文后,代理将根据请求的内容从本地MIB 中提取所需信息,并以G et - Response 报文方式将结果回送给管理站。

代理一方面在161 端口上(SNMP 的默认端口) 循环侦听来自管理站的Get-Request/ Get-Next-Request 报文,并做出相应的响应,读取或修改MIB 中的变量值,将结果返回给管理站,另一方面,它也不断地检查本地的状态,适当地发送Trap 报文。

4.2 MIB访问流程及原理
首先根据自变量接收一个要访问的被管理对象主机名,并接收要查询的对象标识符的简略定义形式. 过程首先生成SNMP 报文,一旦报文生成,再把报文简单反转过来,发送出去. 这其中要将请求标识符段内容及标识符长度保存起来,留待以后进行匹配检查. 生成SNMP 报文后,建立代理地址,创建套接字连接,以便代理能将响应发回. 然后,启动警告信号处理器,将SNMP 请求报文发给代理,等待一个响应的到来.因为SNMP 是工作在UDP 之上的,所以在S NMP 应用实体间通信时,无需先建立连接,这样虽降低了系统开销,但UDP 传输是不可靠的,为此,网络管理站采取了相应的超时和重发策略. 本系统在发出请求报文之后,启动超时计数器,等待响应的到来,并设置重发次数为3. 若3 次之后仍没有收到响应,则关闭套接字,并返回一个―接收失败‖错误代码. 反之,若确定收到一个响应,则调用一过程来把响应转换成为内部表示形式, 即对SNMP 报文进行译码. 再用已保存的Request-id与响应Request-id 段进行比较,来验证这个报文是否是刚才发出的请求报文的响应. 若是,就调用另一个过程,把每段对象标识符的AS N.1 表示形式转换成自己的内部形式,并显示其值. 由于SNMP 报文对各个段都使用可变长度编码,这就使得即便。

相关文档
最新文档