SNMP协议

   今天被要求在网络中数据的通信用SNMP协议来实现,没办法,只能找点SNMP的资料来学习一下.


   以下抄自chinaunix网站.

1.什么是网络管理? 

网络管理分为两类。第一类是网络应用程序、用户帐号(例如文件的使用)和存取权限(许可)的管理。它们都是与软件有关的网络管理问题。这里不作讨论。 

网络管理的第二类是由构成网络的硬件所组成。这一类包括工作站、服务器、网卡、路由器、网桥和集线器等等。通常情况下这些设备都离你所在的地方很远。正是由于这个原因,如果当设备有问题发生时网络管理员可以自动地被通知的话,那么一切事情都好办。但是你的路由器不会象你的用户那样,当有一个应用程序问题发生时就可以打电话通知你,而当路由器拥挤时它并不能够通知你。 

为了解决这个问题,厂商们已经在一些设备中设立了网络管理的功能,这样你就可以远程地询问它们的状态,同样能够让它们在有一种特定类型的事件发生时能够向你发出警告。这些设备通常被称为"智能"设备。 

网络管理通常被分为四类: 
被管理节点(或设备) 即你想要监视的设备  
代理 用来跟踪被管理设备状态的特殊软件或固件 (firmware)  
网络管理工作站 与在不同的被管理节点中的代理 通信,并且显示这些代理状态的中心设备。  
网络管理协议 被网络管理工作站和大理用来交换 信息的协议。  

当设计和构造网络管理的基础结构时,你需要记住下列两条网络管理的原则: 

由于管理信息而带来的通信量不应明显的增加网络的通信量。  
被管理设备上的协议代理不应明显得增加系统处理的额外开销,以致 于该设备的主要功能都被削弱了。  


-------------------------------------------------------------------------------- 



2.什么是SNMP?  




简单网络管理协议(SNMP)首先是由Internet工程任务组织(Internet Engineering Task Force)(IETF)的研究小组为了解决Internet上的路由器管理问题而提出的。许多人认为 SNMP在IP上运行的原因是Internet运行的是TCP/IP协议,然而事实并不是这样。  

SNMP被设计成与协议无关,所以它可以在IP,IPX,AppleTalk,OSI以及其他用到的传输协议上被使用。 

SNMP是一系列协议组和规范(见下表),它们提供了一种从网络上的设备中收集网络管理信息的方法。SNMP也为设备向网络管理工作站报告问题和错误提供了一种方法。 

名字 说明  
MIB 管理信息库  
SMI 管理信息的结构和标识  
SNMP 简单网络管理协议  

从被管理设备中收集数据有两种方法:一种是只轮询(polling-only)的方法,另一种是基于中断(interrupt-based)的方法。 

如果你只使用只轮询的方法,那么网络管理工作站总是在控制之下。而这种方法的缺陷在于信息的实时性,尤其是错误的实时性。你多久轮询一次,并且在轮询时按照什么样的设备顺序呢?如果轮询间隔太小,那么将产生太多不必要的通信量。如果轮询间隔太大,并且在轮询时顺序不对,那么关于一些大的灾难性的事件的通知又会太馒。这就违背了积极主动的网络管理目的。 

当有异常事件发生时,基于中断的方法可以立即通知网络管理工作站(在这里假设该设备还没有崩溃,并且在被管理设备和管理工作站之间仍有一条可用的通信途径)。然而,这种方法也不是没有他的缺陷的,首先,产生错误或自陷需要系统资源。如果自陷必须转发大量的信息,那么被管理设备可能不得不消耗更多的时间和系统资源来产生自陷,从而影响了它执行主要的功能(违背了网络管理的原则2)。 

而且,如果几个同类型的自陷事件接连发生,那么大量网络带宽可能将被相同的信息所占用(违背了网络管理的原则1)。尤其是如果自陷是关于网络拥挤问题的时候,事情就会变得特别糟糕。克服这一缺陷的一种方法就是对于被管理设备来说,应当设置关于什么时候报告问题的阈值(threshold)。但不幸的是这种方法可能再一次违背了网络管理的原则2,因为设备必须消耗更多的时间和系统资源,来决定一个自陷是否应该被产生。 

结果,以上两种方法的结合:面向自陷的轮询方法(trap-directed polling)可能是执行网络管理最为有效的方法了。一般来说,网络管理工作站轮询在被管理设备中的代理来收集数据,并且在控制台上用数字或图形的表示方式来显示这些数据。这就允许网络管理员分析和管理设备以及网络通信量了。 

被管理设备中的代理可以在任何时候向网络管理工作站报告错误情况,例如预制定阈值越界程度等等。代理并不需要等到管理工作站为获得这些错误情况而轮询他的时候才会报告。这些错误情况就是众所周知的SNMP自陷(trap)。 

在这种结合的方法中,当一个设备产生了一个自陷时,你可以使用网络管理工作站来查询该设备(假设它仍然是可到达的),以获得更多的信息。 


-------------------------------------------------------------------------------- 

    


3.什么是被管理设备?  




你可能听说过许多关于“SNMP可管理设备”、“与SNMP兼容的设备”或者“被SNMP管理的设备”的说法。但是它们到底什么?它们与“智能设备”又是怎么区别的呢? 

简单地说,以上所有说法的意思都是“一个包含网络管理代理实现的网络设备”。这些话也意味着这种代理支持SNMP协议来进行信息交换。正如前面所提到的,一个智能设备可能并不需要使用或支持SNMP协议。那么什么是一个代理呢?  

代理  
    管理代理(agent)是一种特殊的软件(或固件),它包含了关于一个特殊设备和/或该设备所处环境的信息。当一个代理被安装到一个设备上时,上述的设备就被列为“被管理的”。换句话说,代理就是一个数据库。 

    数据库中所包含的数据随被安装设备的不同而不同。举例来说,在一个路由器上,代理将包含关于路由选择表、接收和发送包的总数等信息。而对于一个网桥来说,数据库可能包含关于转发包数目和过滤表等信息。 

    代理是与网络管理控制台通信的软件或固件。在这个控制台的“链路”上可以执行以下任务: 

网络管理工作站可以从代理中获得关于设备的信息。  
网络管理工作站可以修改、增加或者删除代理中的表项,例如在由代理所维护的数据库中的路由选择表表项。  
网络管理工作站可以为一个特定的自陷设置阈值。  
代理可以向网络管理工作站发送自陷。  
    请记住,在被管理设备中的代理并不是自愿提供信息的,除非当有一个阈值被超过的事件发生时。 

    在一些偶然的情况下,在一个特定的设备上可能因为系统资源的缺乏,或者因为该设备不支持SNMP代理所需要的传输协议,而不能实现一个SNMP代理。这是否就意味着你不能监视这个设备呢?答案并不是这样的,在这种情况下并不是完全没有办法的。你可以使用受托代理(proxy agent),它相当于外部设备(foreign device)。 

    受托代理并非在被管理的外部设备上运行,而是在另一个设备上运行。网络管理工作站首先与受托代理联系,并且指出(通过某种方法)受托代理与外部设备的一致性。然后受托代理把它接收到的协议命令翻译成任何一种外部设备所支持的管理协议。在这种情况下,受托代理就被称为应用程序网关(application gateway)。 

    如果外部设备不支持任何管理协议,那么受托代理必须使用一些被动的方法来监视这个设备。举例来说,一个令牌环网桥的受托代理可以监视它的性能,并且如果它检测到任何由网桥所报告的拥挤错误时,它就会产生自陷。幸运的是,目前大多数网际互联设备类型都是支持SNMP可管理设备的,所以你可以很容易地使用一个SNMP可管理设备,例如集线器、网桥和路由器。有一些厂商甚至还在他们的网卡上提供SNMP代理。  

MIB  
    我们通常很少把在一个被管理设备中的数据库称为一个数据库。在SNMP术语中它通常被称为管理信息库(MIB)。 

    一个MIB描述了包含在数据库中的对象或表项。每一个对象或表项都有以下四个属性: 

对象类型(Object Type)  
语法(Syntax)  
存取(Access)  
状态(Status)  
    在SNMP规范之一的管理信息结构与标识(SMI;RFC 1155/1065)规范中定义了这些属性。SMI对于MIB来说就相当于模式对于数据库。SMI定义了每一个对象“看上去象什么”。  

对象类型  
    这个属性定义了一个特定对象的名字,例如sysUpTime。它只不过是一个标记。在表示数据时,SMI使用了ASN.1(Abstract Syntax Notation One)。对象必须被“标识”。对于互联网络管理MIB来说,用ASN.1记法来表示的标识符开头如下: 

        internet OBJECT IDENTIFIER : : = { iso org(3) dod(6) 1 } 

或者用一种简单的格式: 

        1.3.6.1 

    这是从ASN.1文档中抽取的。它为标识符定义了一个树形的格式。该树是由一个根及与之相连接的许多被标记的节点组成。每一个节点由一个非负整数值和尽可能简明的文字说明所标识。每一个节点可能也拥有同样被标记的子节点。 

    当描述一个对象标识符(OBJECT INDENTIFIER)时,你可以使用几种格式,最简单的格式是列出由根开始到所讨论的对象遍历该树所找到的整数值。     从根一级开始,这里有三个节点(如图): 

ccitt(0)  
iso(1)  
joint-iso-ccitt(2)  
    其中每一个“分支”都被标记中所示的管理组织所管理。  

语法  
    这个属性指定了数据类型,例如整数、8位组串数字(字符串;范围为0至255)、对象标识符(预先定义的数据类型别名)或NULL。NULL是留待的后使用的空位。  

存取  
    存取表明了这个特定对象的存取级别。合法的值有:只读、读写、只写和不可存取。  

状态  
    状态定义了这个对象的实现需要:必备的(被管理节点必须实现该对象);可选的(被管理对象可能实现该对象);或者已废弃的(被管理设备不需要再实现该对象)。 

   

简单网络管理协议  
    简单网络管理协议允许网络管理工作站软件与被管理设备中的代理进行通信。这种通信可以包括来自管理工作站的询问消息、来自代理的应答消息或者来自代理给管理工作站的自陷消息。 

    为了保证因网络管理而带来的通信量是最小的(网络管理原则1),SNMP使用了一种异步客户机/服务器方法。这意味着一个SNMP实体(管理工作站或被管理设备)在发出一条消息后不需要等待一个应答;然而,除了自陷的情况以外应答都是要被产生的。如果需要的话该实体可以发送另一条消息,或者也可以继续它预先被定义的功能。SNMPv1实现起来很简单并且对资源占用不多,它只有5个请求/响应原语: 

get-request  
set-request  
get-next-request  
get-reponse  
trap  
    网络管理工作站可以把感兴趣的变量值提取到其应用程序中,只要发出get-request或get-next-request报文即可。前者是指定对象的读操作,后者则提供了一个树遍历操作符,便于确定一个代理进程支持哪些对象。网络管理工作站可以修改代理进程中的变量值,只要发出set-request报文即可。 

    如果没有发生错误,代理进程可以用get-reponse原语回答这些请求。另外,利用trap原语,代理进程可以异步地发送告警给网络管理工作站,告诉它发生了某个满足预设条件的事件。 

    实现中的经验和设计过程中的不断完善给SNMPv2带来了协议改进意见,即给网络管理工作站增加一个成块读操作get-bulk-request报文。当需要用一个请求原语提取大量数据(如读取某个表的内容)时就可以调用它以提高效率。SNMPv2也引进管理进程和管理进程之间的通信进行状况报告,为此增加了一条原语inform-request,并把get-response简化成更加合理的名称reponse。trap报文则已改为snmpv2-trap,并与所有的协议报文具有同样的格式。 


-------------------------------------------------------------------------------- 

    


4.巧妙而有效地管理你的网络  


网络管理的两种方法是积极主动(pro-active)的方法和被动反应(re-active)得分方法。在大多数的时间里,我们总是要对一个事件作出反应,但这并不是有效的网络管理。 

在积极主动的方式中,你所有现存的资源都得到了充分使用。如果你有智能集线器,那么请你把它找出来。几乎所有现存的路由器都至少在MIB-I级别上支持SNMP协议。如果你不能确定的话,请你和厂商联系。 

当管理网络时,你需要明确的第一件事情就是要知道什么时候网络出问题。但是,你怎样辨别网络出问题了呢?对于人类来说,你会寻找以下症状,你会检查体温和脉搏。你网络上的症状也可以被监视,例如带宽利用率随时间的变化、服务器和路由器上的CPU利用率及通常在网线上的错误量(你总有以下错误)。请你使用网络管理工作站来跟踪这些统计数据一段时间,不如说两个星期,并且统计出一天中不同时候的平均值。这将成为你的基准线(baseline)。 

一个基准线就是一系列数字,这些数字反映出了一个“健康”的网络。对于人类来说,一个“正常而且健康”的体温是37度。这就是你区分一个人是否发烧的基准线。你也需要一个基准线来决定你的网络是否出了问题。通过监视被管理设备中的网络阈值设置,并且寻找故障的征兆,你就可以拥有一个提前报警的系统了。 


-------------------------------------------------------------------------------- 

    


5.相关网站  


SNMP FAQ 

        ftp://rtfm.mit.edu/pub/usenet/news.answers/snmp-faq/part1 

        ftp://rtfm.mit.edu/pub/usenet/news.answers/snmp-faq/part2 

SNMP WEB 

        http://netman.cit.buffalo.edu/index.html 

        http://snmp.cs.utwente.nl 

        http://www.onramp.net/~cwk/net-manage.cgi 

SNMP MAIL LIST 

        snmp-request@psi.com 

        snmpv2-request@tis.com 

        snmpv3-request@tis.com 

SNMP NEWS GROUP 

        comp.protocols.snmp 

        info.snmp 

        comp.dcom.net-management 





网络管理概述  
目前网络技术日新月异,网络的复杂性在不断增长,对网络管理的要求也日益增加。  
传统的系统管理员关心的问题是诸多问题,如安装配置、备份恢复、资源共享、系统安全和性能优化等等,都是当今网络管理的重要方面。不仅如此,网络的复杂性使得被管理的对象在系统中不是集中的,而是分散的。分布式的管理必然要求网络管理员在网络的协议层次结构上对系统管理做出重新的认识,即从物理层、链路层、网络层、传输层和应用层的角度重新考虑系统管理的涵盖内容。综合了这诸多方面,加上面向应用(或业务)的管理能力,是当今网络管理软件的主攻方向。  
有关网络管理的内涵和网络管理软件的分类是需要另外撰文叙述的,本文只是简单地介绍网络管理软件的基本要素和网络管理协议的例子——SNMP。  
  
网络管理系统的要素  
一个典型的网络管理系统包括四个要素:管理员、管理代理、管理信息数据库、代理服务设备。一般说来,前三个要素是必需的,第四个只是可选项。  
1.管理员(Manager)  
网络管理软件的重要功能之一,就是协助网络管理员完成管理整个网络的工作。网络管理软件要求管理代理定期收集重要的设备信息,收集到的信息将用于确定独立的网络设备、部分网络、或整个网络运行的状态是否正常。管理员应该定期查询管理代理收集到的有关主机运转状态、配置及性能等的信息。  
2.管理代理(Agent)  
网络管理代理是驻留在网络设备中的软件模块,这里的设备可以是UNIX工作站、网络打印机,也可以是其它的网络设备。管理代理软件可以获得本地设备的运转状态、设备特性、系统配置等相关信息。管理代理软件就象是每个被管理设备的信息经纪人,它们完成网络管理员布置的采集信息的任务。管理代理软件所起的作用是,充当管理系统与管理代理软件驻留设备之间的中介,通过控制设备的管理信息数据库(MIB)中的信息来管理该设备。管理代理软件可以把网络管理员发出的命令按照标准的网络格式进行转化,收集所需的信息,之后返回正确的响应。在某些情况下,管理员也可以通过设置某个MIB对象来命令系统进行某种操作。  
路由器、交换器、集线器等许多网络设备的管理代理软件一般是由原网络设备制造商提供的,它可以作为底层系统的一部分、也可以作为可选的升级模块。设备厂商决定他们的管理代理软件可以控制哪些MIB对象,哪些对象可以反映管理代理软件开发者感兴趣的问题。  
3.管理信息数据库(MIB)  
管理信息数据库(MIB)定义了一种数据对象,它可以被网络管理系统控制。MIB是一个信息存储库,这里包括了数千个数据对象,网络管理员可以通过直接控制这些数据对象去控制、配置或监控网络设备。网络管理系统可以通过网络管理代理软件来控制MIB数据对象。不管到底有多少个MIB数据对象,管理代理都需要维持它们的一致性,这也是管理代理软件的任务之一。现在已经定义的有几种通用的标准管理信息数据库,这些数据库中包括了必须在网络设备中支持的特殊对象,所以这几种MIB可以支持简单网络管理协议(SNMP)。使用最广泛、最通用的MIB是MIB-II。为了利用不同的网络组件和技术,又开发了一些其它种类的MIB,它们在RFC(Request for Comments)中有所记录。  
4.代理设备(Proxy)  
代理设备在标准网络管理员软件和不直接支持该标准协议的系统之间起桥梁作用。利用代理设备,不需要升级整个网络就可以实现从旧协议到新版本的过渡。  
  
对于网络管理系统来说,重要的是管理员和代理之间所使用的协议,如SNMP,和它们共同遵循的MIB库。下面,我们就分别介绍。  
  
SNMP协议概述  
SNMP(Simple Network Management Protocol)即简单网络管理协议,它为网络管理系统提供了底层网络管理的框架。SNMP协议的应用范围非常广泛,诸多种类的网络设备、软件和系统中都有所采用,主要是因为SNMP协议有如下几个特点:  
首先,相对于其它种类的网络管理体系或管理协议而言,SNMP易于实现。SNMP的管理协议、MIB及其它相关的体系框架能够在各种不同类型的设备上运行,包括低档的个人电脑到高档的大型主机、服务器、及路由器、交换器等网络设备。一个SNMP管理代理组件在运行时不需要很大的内存空间,因此也就不需要太强的计算能力。SNMP协议一般可以在目标系统中快速开发出来,所以它很容易在面市的新产品或升级的老产品中出现。尽管SNMP协议缺少其它网络管理协议的某些优点,但它设计简单、扩展灵活、易于使用,这些特点大大弥补了SNMP协议应用中的其他不足。  
  
其次,SNMP协议是开放的免费产品。只有经过IETF的标准议程批准(IETF是IAB下设的一个组织),才可以改动SNMP协议;厂商们也可以私下改动SNMP协议,但这样作的结果很可能得不偿失,因为他们必须说服其他厂商和用户支持他们对SNMP协议的非标准改进,而这样做却有悖于他们的初衷。  
  
第三,SNMP协议有很多详细的文档资料(例如RFC,以及其它的一些文章、说明书等),网络业界对这个协议也有着较深入的理解,这些都是SNMP协议近一步发展和改进的基础。  
  
最后,SNMP协议可用于控制各种设备。比如说电话系统、环境控制设备,以及其它可接入网络且需要控制的设备等,这些非传统装备都可以使用SNMP协议。  
  
正是由于有了上述这些特点,SNMP协议已经被认为是网络设备厂商、应用软件开发者及终端用户的首选管理协议。  
SNMP是一种无连接协议,无连接的意思是它不支持象TELNET或FTP这种专门的连接。通过使用请求报文和返回响应的方式,SNMP在管理代理和管理员之间传送信息。这种机制减轻了管理代理的负担,它不必要非得支持其它协议及基于连接模式的处理过程。因此,SNMP协议提供了一种独有的机制来处理可靠性和故障检测方面的问题。  
另外,网络管理系统通常安装在一个比较大的网络环境中,其中包括大量的不同种类的网络和网络设备。因此,为划分管理职责,应该把整个网络分成若干个用户分区,可以把满足以下条件的网络设备归为同一个SNMP分区:它们可以提供用于实现分区所需要的安全性方面的分界线。SNMP协议支持这种基于分区名(community string)信息的安全模型,可以通过物理方式把它添加到选定的分区内的每个网络设备上。目前SNMP协议中基于分区的身份验证模型被认是为很不牢靠的,它存在一个严重的安全问题。主要原因是SNMP协议并不提供加密功能,也不保证在SNMP数据包交换过程中不能从网络中直接拷贝分区信息。只需使用一个数据包捕获工具就可把整个SNMP数据包解密,这样分区名就暴露无遗。因为这个原因,大多数站点禁止管理代理设备的设置操作。但这样做有一个副作用,这样一来只能监控数据对象的值而不能改动它们,限制了SNMP协议的可用性。  
  
SNMP的命令和报文  
SNMP协议定义了数据包的格式,及网络管理员和管理代理之间的信息交换,它还控制着管理代理的MIB数据对象。因此,可用于处理管理代理定义的各种任务。SNMP协议之所以易于使用,这是因为它对外提供了三种用于控制MIB对象的基本操作命令。它们是:Set 、Get 和 Trap :  
Set:它是一个特权命令,因为可以通过它来改动设备的配置或控制设备的运转状态。  
  
Get:它是SNMP协议中使用率最高的一个命令,因为该命令是从网络设备中获得管理信息的基本方式。  
  
Trap:它的功能就是在网络管理系统没有明确要求的前提下,由管理代理通知网络管理系统有一些特别的情况或问题发生了。  
  
SNMP协议也定义了执行以上三个命令时的报文流, 但它没有定义其它的设备管理代理命令,可应用于MIB数据对象的操作只有Set和Get命令,这两个命令的目标是数据对象的值。比如说,SNMP协议中没有定义reboot(重启)命令;然而,管理代理软件把MIB数据对象和设备的内部命令联系起来,这样就可以实现某些特殊的命令操作。如果现在想要重启某个设备,管理系统就把某个与重启有关的MIB数据对象的值设为1(我们的假定)。这样就会触发管理代理执行重新启动设备的命令,同时还把这个MIB数据对象重新设置为原来的状态。  
一条SNMP报文由三个部分组成:版本域(version field),分区域(community field)和SNMP协议数据单元域(SNMP protocol data unit field),数据包的长度不是固定的。  
版本域:这个域用于说明现在使用的是哪个版本的SNMP协议。目前,version 1是使用最广泛的SNMP协议。  
  
分区域:分区(community)是基本的安全机制,用于实现SNMP网络管理员访问SNMP管理代理时的身份验证。分区名(Community name)是管理代理的口令,管理员被允许访问数据对象的前提就是网络管理员知道网络代理的口令。如果把配置管理代理成可以执行Trap命令,当网络管理员用一个错误的分区名查询管理代理时,系统就发送一个autenticationFailure trap报文。  
  
协议数据单元域:SNMPv1的PDU有五种类型,有些是报文请求(Request),有些则是响应(Response)。它们包括:GetRequest、GetNextRequest、SetRequest、GetResponse、Trap 。SNMPv2又增加了两种PDU:GetBulkRequest和InformRequest 。  
  
  
SNMP管理员使用GetRequest从拥有SNMP代理的网络设备中检索信息,SNMP代理以GetResponse消息响应GetRequest。可以交换的信息很多,如系统的名字,系统自启动后正常运行的时间,系统中的网络接口数等等。GetRequest和GetNextRequest结合起来使用可以获得一个表中的对象。GetRequest取回一个特定对象;而使用GetNextRequest则是请求表中的下一个对象。使用SetRequest可以对一个设备中的参数进行远程配置。Set-Request可以设置设备的名字,关掉一个端口或清除一个地址解析表中的项。Trap即SNMP陷阱,是SNMP代理发送给管理站的非请求消息。这些消息告知管理站本设备发生了一个特定事件,如端口失败,掉电重起等,管理站可相应的作出处理。  
  
MIB概述  
管理信息数据库(MIB)是一个信息存储库,它包含了管理代理中的有关配置和性能的数据,有一个组织体系和公共结构,其中包含分属不同组的许多个数据对象。如下图所示。  
  
  
MIB数据对象以一种树状分层结构进行组织,这个树状结构中的每个分枝都有一个专用的名字和一个数字形式的标识符。上图表示的是标准MIB的组织体系,列出了从MIB结构树的树根到各层树枝的全部内容。结构树的分枝实际表示的是数据对象的逻辑分组。而树叶,有时候也叫节点(node),代表了各个数据对象。在结构树中使用子树表示增加的中间分枝和增加的树叶。  
使用这个树状分层结构,MIB浏览器能够以一种方便而且简洁的方式访问整个MIB数据库。MIB浏览器是这样一种工具,它可以遍历整棵MIB结构树,通常以图形显示的形式来表示各个分枝和树叶对象。可以通过其数字标识符来查找MIB中的数据对象,这个数字标识符号从结构树的顶部(或根部)开始,直到各个叶子节点(即数据对象)为止。这种访问方式和文件系统的组织方式一致。两者的主要区别在于文件系统中的路径名可以以绝对也可以以相对方式表示,而MIB数据对象只能以绝对方式表示,不能使用相对方式。例如,在图中,iso(1)位于结构树的最上方,而sysDescr(1)处在叶子节点的位置。现在看不到树根root(.),其余所有的分枝都是从这里扩展而来的。通常用带点的符号来表示数据对象的标识符。要访问数据对象sysDescr(1),其完整的标识符应该是这样的:iso.org.dod.internet.mgmt.mib-2.system.sysDescr(这个标识符应该从左向右读)。数据对象也可以以另一种更短的格式表示,即用数字形式标识符代替分枝名形式的表示形式。这样,上面的那种形式的标识符iso.org.dod.internet.mgmt.mib-2.system.sysDescr 还可以用 1.3.6.1.2.1.1.1 来表示。这两种表达格式的作用是一致的,都表示同一个MIB数据对象。尽管数字形式的标识符看起来更简洁,选择何种表达格式仍然是个人偏好问题。幸运的是,许多MIB浏览器可以以两者中任何一种格式来表示数据对象,这使得两种格式间的相互转化非常容易。  
  
MIB的访问方式  
在定义MIB数据对象时,访问控制信息确定了可作用于该数据对象的操作种类。SNMP协议有如下的MIB数据对象访问方式:  
只读方式(Read-only)  
  
可读可写(Read-write)  
  
禁止访问(Not-accessible)  
  
网络管理系统无法改动只读方式的MIB数据对象,但可以通过Get或Trap命令读取数据对象的值。在一件产品的使用期内,某些MIB的信息从不会改变。例如,MIB数据对象sysDescr,它代表System Description,包含了管理代理软件所需要的厂商信息。确定某些数据对象为只读还有另一个原因,即确保有关性能的信息及其它统计数据正确,不至于因误操作而改动它们。  
  
SNMP作为数据传输方法,和数据的组织形式MIB结合,为网络管理系统提供了底层的保障。一个真正的网络管理系统可以建立在SNMP之上,也可以建立在其他的网络管理协议上,如CMIP等等,不过那也是需要另外撰文叙述的了。  
posted @ 2008-01-05 17:30  shipfi  阅读(6078)  评论(0编辑  收藏  举报