SNMP简单网络管理协议.doc_第1页
SNMP简单网络管理协议.doc_第2页
SNMP简单网络管理协议.doc_第3页
SNMP简单网络管理协议.doc_第4页
SNMP简单网络管理协议.doc_第5页
已阅读5页,还剩115页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SNMP简单网络管理协议第1部分 基础知识第1章 简单网络管理协议概述1.1 什么是SNMP SNMP:“简单网络管理协议”,用于网络管理的协议。SNMP用于网络设备的管理。 SNMP的工作方式:管理员需要向设备获取数据,所以SNMP提供了【读】操作;管理员需要向设备执行设置操作,所以SNMP提供了【写】操作;设备需要在重要状况改变的时候,向管理员通报事件的发生,所以SNMP提供了【Trap】操作。1.2 SNMP背景SNMP的基本思想: 为不同种类的设备、不同厂家生产的设备、不同型号的设备,定义为一个统一的接口和协议,使得管理员可以是使用统一的外观面对这些需要管理的网络设备进行管理。通过网络,管理员可以管理位于不同物理空间的设备,从而大大提高网络管理的效率,简化网络管理员的工作。1.3 SNMP结构概述1.3.1 SNMP的典型应用 SNMP被设计为工作在【TCP/IP】协议族上。 SNMP基于TCP/IP协议工作,对网络中支持SNMP协议的设备进行管理。所有支持SNMP协议的设备都提供SNMP这个统一界面,使得管理员可以使用统一的操作进行管理,而不必理会设备是什么类型、是哪个厂家生产的。管理站 SNMP 网关打印机交换机工作站集线器路由器网站服务器服务器1.3.2 SNMP支持的网管操作对于网络管理,我们面对的数据是设备的配置、参数、状态等信息,面对的操作是读取和设置;同时,因为网络设备众多,为了能及时得到设备的重要状态,还要求设备能主动地汇报重要状态,这就是报警功能。设置Set读出Get管理员设置Set报警TrapGet:读取网络设备的状态信息。Set:远程配置设备参数。Trap:管理站及时获取设备的重要信息。1.3.3 SNMP的实现结构在具体实现上,SNMP为管理员提供了一个网管平台(NMS),又称为【管理站】,负责网管命令的发出、数据存储、及数据分析。【被】监管的设备上运行一个SNMP代理(Agent),代理实现设备与管理站的SNMP通信。 SNMP协议的逻辑结构设备数据库用户代理MIB具体的协议IPUDP管理站MIBUDPIP具体的协议 网络 管理站与代理的通信 管理站与代理端通过MIB进行接口统一,MIB定义了设备中的被管理对象。管理站和代理都实现了相应的MIB对象,使得双方可以识别对方的数据,实现通信。管理站向代理申请MIB中定义的数据,代理识别后,将管理设备提供的相关状态或参数等数据转换为MIB定义的格式,应答给管理站,完成一次管理操作。 已有的设备,只要新加一个SNMP模块就可以实现网络支持。旧的带扩展槽的设备,只要插入SNMP模块插卡即可支持网络管理。网络上的许多设备,入路由器、交换机等,都可以通过添加一个SNMP网管模块而增加网管功能。服务器可以通过运行一个【网管进程】实现。其他服务级的产品也可以通过网管模块实现网络管理,如Oracle、WebLogic都有SNMP进程,运行后就可以通过管理站对这些系统级服务进行管理。 根据管理者和被管理的设备在网络管理操作中的不同职责,SNMP定义了3种角色。代理Agent管理站NMS 代理服务器Proxy 具体的协议管理站SNMP/IP网络非IP网络 不支持SNMP的设备非IP网络设备 代理服务器的典型应用网络管理系统:又称管理站、NMS。是系统的控制台,向管理员提供界面以获取与改变设备的配置、信息、状态、操作等信息。管理站与Agent进行通信,执行相应的Set和Get操作,并接收代理发过来的警报(Trap)。代理:Agent是网络管理的代理人,负责管理站和设备SNMP操作的传递。介于管理站和设备之间,与管理站通信并相应管理站的请求,从设备获取相应的数据,或对设备进行相应的设置,来响应管理站的请求。代理也需要具有根据设备的相应状态使用MIB中定义的Trap向管理站发送报告的能力。代理服务器:Proxy是一种特殊的代理,在【不能】直接使用SNMP协议的地方,如:异种网络、不同版本的SNMP代理等情况,Proxy代替相关设备向管理站提供一种外观,为设备代理SNMP协议的实现。Proxy做了【异种网络】或【不同版本代理】和 相应SNMP数据请求的转换工作。 (附:管理信息库MIB:定义了设备上可以使用的管理信息。代理和管理站使用MIB作为统一的【数据接口通信】。1.3.4 SNMP的技术内容SNMP MIBSMI SNMP协议UDP1.3.5 SNMP的发展历史1989年- SNMPv11991年- RMON(Remote Network Monitoring 远程网络监视),它扩充了SNMP的功能,包括对LAN的管理及对依附于这些网络的设备的管理。RMON 没有修改和增加SNMPv1,只是增加了SNMP监视【子网】的能力。1993年- SNMPv2(SNMPv1的升级版)1995年- SNMPv2正式版,其中规定了如何在基于OSI的网络中使用SNMP1995年- RMON扩展为RMON21998年- SNMPv3,一系列文档定义了SNMP的【安全性】,并定义了将来改进的总体结构,SNMPv3可以和SNMPv2、SNMPv1一起使用。1.3.6 SNMP的技术术语 SNMP:Simple Network Management Protocol(简单网络管理协议)。是一个标准的用于管理基于【IP】网络上设备的协议。 MIB:Management Information Base(管理信息库)。定义代理进程中所有可被查询和修改的参数。 SMI:Structure of Management Information(管理信息结构)。SMI定义了SNMP中使用到的ASN.1类型、语法,并定义了SNMP中使用到的类型、宏、符号等。 SMI用于后续协议的描述和MIB的定义。每个版本的SNMP都可能定义自己的SMI。 ASN.1:Abstract Syntax Notation One(抽象语法定义)。用于【定义语法】的正式语言,在SNMP中定义SNMP的协议数据单元PDU和管理对象MIB的格式。 SNMP只使用了ASN.1中的一部分,而且使用ASN.1的语言特性定义了一些自定义类型和类型宏 ,这些组成了SMI。 PDU: Protocol Data Unit(协议数据单元)。【它是网络中传送的数据包】。每一种SNMP操作,物理上都对应一个PDU。NMS: Network Management System,网络管理系统,又名网络管理站,简称“管理站”。它是SNMP的总控机,提供统一的用户界面【访问】支持SNMP的设备,一般提供UI界面,并有统计、分析等功能,是网管系统的总控制台。NMS是网络管理操作的发起者。 Agent: 是SNMP的访问代理,简称“代理”,为设备提供SNMP能力,负责设备与NMS的通信。 Proxy: 代理服务器。对实现【不同协议】的设备进行【协议转换】,使【非】IP协议的设备也能被管理。 Trap: 是由设备【主动】发出的报警数据,用于提示重要的状态的改变。 BER: Basic Encoding Rule,基本编码规格。描述如何将ASN.1类型的值编码为字符串的方法。它是ASN.1标准的一部分。BER编码将数据分成TLV三部分,T为Tag的缩写,是类型标识;L为Length的缩写,标识类型的长度;V为Value的缩写,标识数据内容。按照TLV的顺序对数据进行编码,生成【字节流】。 SNMP使用BER将SNMP的操作【请求】和【应答】编码后进行传输,并用于接收端进行解码。1.4 几个易混淆的概念1.4.1 SNMP现有几个版本SNMP共有v1,v2,v3这三个版本:l v1和v2都具有基本的【读、写】MIB功能。l v2增加了警报、批量数据获取、管理站和管理站通信能力。l v3在v2的基础上增加了USM,使用加密的数据和用户验证技术,提高了安全性。l 另外,RMON是SNMP的一个重要扩展,为SNMP增加了【子网流量、统计、分析】能力。现有两个版本: Rmon:提供了OSI七层网络结构中【网络层】和【数据链路层】监视能力。 Rmon2:提供了OSI七层网络结构中网络层【之上】各层的监视能力。1.4.2 ASN.1、BER、SMI、MIB、PDU的关系PDU传输ASN.1PDU编码规则BERMIBSMI语法符号MIB ASN.1:高级的数据描述语言。描述数据的类型、结构、组织、及编码方法。包括符号和语法两部分。SNMP使用ASN.1描述PDU和管理学对象信息库MIB。 BER:ASN.1的基本编码规则。描述具体的ASN.1对象如何编码为【比特流】在网络上传输。SNMP使用BER作为【编码方案】,数据首先先经过BER编码,再经由【传输层】协议(一边是UDP)发往接收方。接收方在SNMP端口上收到PDU后,经过BER解码后,得到具体的SNMP操作数据。 SMI:是SNMP的描述方法。规定了使用ASN.1子类型、符号。ASN.1功能强大,但SNMP只用到了其中很小一部分,对于这一部分内容的描述,限定了范围,即为SMI。SMI规定了使用到的ASN.1类型、宏、符号等。SMI是ASN.1的一个【子集和超集】。 MIB:是SNMP中使用到的管理信息库。定义了数据格式、类型、顺序、意义等,使用SMI中定义的类型和ASN.1中的基本类型对对象进行【描述】,是一个使用SMI描述的管理信息库。每一类关心的事件都有一组MIB,比如网络接口有一颗MIB树,TCP有一颗MIB树,UDP也有一颗MIB树。 PDU:是SNMP的协议数据单元。PDU是基本的通信格式,使用ASN.1描述,使用BER编码,通过【传输层】协议传送。1.4.3 比较规范的SNMP背景SNMP作为一种过渡技术以其简单易用的特性被广泛使用,使用的网络产品提供对SNMP的支持。SNMP还扩展了具有远程管理功能的RMON,使得管理人员可以对整个子网进行管理,而不是对整个子网内的设备进行管理。1.5 小结第2章 网络管理基础2.1 网络管理关键分类 2.1.1故障管理 设备的不正常状态包括错误和不能正常运行。2.1.2计费管理2.1.3配置和名称管理2.1.4 性能管理 计算机网络在管理上按功能分为:监视和控制。监视是指跟踪网络活动;控制是指为了提供网络性能而对节点做一些调节。 网络管理员需要性能统计数据来帮助他们计划、管理和维护大型的网络。性能统计数据在网络问题出现之前就能辨别出潜在的颈瓶,这样就可以采取适当的修正动作。2.1.5安全管理 安全管理包括管理信息保护和访问控制工具,其中包含密匙的生成、分发、和存储。日志记录是一种很重要的安全工具,安全管理基本上包含采集、存储并审计记录和安全日志记录,以及打开或关闭这些日志记录的工具。2.2网络管理系统 SNMP并不能适用于所有的管理功能范围,每一个网管功能都有自己的特性,需要特别的支持。SNMP的适用范围主要是【故障管理】。后来在SNMP上发展起来的RMON又部分地支持【性能管理】。 网络管理系统由现有网络组件中添加的硬件和软件组成。 网络管理系统底层需要支持管理协议,比如SNMP,负责与SNMP实体通信达到监控的目的。如:HP的PoenView、IBM的Netview、以及Adventnet公司的OpenManager、WebNMS等。 随着分布式计算机技术的发展,网络管理也开始向分布式发展。SNMPv2对这种分布式管理模式提供了支持,提供了管理站和管理站对话的机制。一个网络中可以存在多个网管系统,共同管理网络。 在SNMP系统中,可以存在多个管理站,管理区域也可以重叠,如果重叠,就有着天然的冗余特性。当一个管理站不可用时,另一个管理站可以保证网络管理工作正常进行。2.3代理服务器网络中的设备不可能每一个都运行一个网管实体(如SNMP的代理)。比如:不支持网络管理的系统、不被网管支持的协议、使用较旧版本网管协议的设备,在这种情况下,如果需要他们支持网络管理,就需要使用代理服务器。 代理服务器【负责与网管系统通信,将代理设备的数据转换为网管数据】。2.4 网络监视设备信息包括:静态信息、动态信息、统计信息。静态信息:包括设备的最大容量、位置、所属人、子网等动态信息:数据包的发送数、接收数、占有率等统计信息:平均带宽、传输率等。网络监视还包括:设备的性能监视和故障监视。性能监视关注的是可用性、响应时间、精确度、吞吐量、利用率。SNMP中只提供了【Get】操作,来执行监视功能。Get操作从管理的实体中读取各种信息,可以进一步做各种监视。2.5 网络控制 网络控制是指对管理的设备进行参数配置,使被管理的终端系统、中间系统和子网能正常运行。SNMP提供了【Set】操作实现配置功能,管理站通过Set进行远程操作。第3章 学习环境的搭建3.1 net-snmp简介 使用net-snmp作为学习SNMP的工具,搭建一个net-snmp环境。Net-snmp是一个开源的SNMP项目。最新版本为:5.3。net-snmp支持snmpv1、snmpv2、snmpv3,支持基于IPv4和IPv6的SNMP应用程序的开。u Net-snmp提供完整的API用于SNMP应用程序开发,包括C和Perl的APIu 一个功能强大且可扩展的SNMP代理:snmpd.开发者可以开发动态模块扩展snmpd,net-snmp内置扩展子代理与主代理的通信协议。u 提供众多命令行工具检查和使用SNMP协议u 一个图形化的MIB浏览工具u 一个Trap接收进程,用于接收和显示Trap,并将Trap记录到日志文件中。3.2 net-snmp的安装与配置 官方网站:/ net-snmp被很多商业化的Linux包含,但是大多数的Linux使用net-snmp的【主代理】实现Linux的SNMP支持。3.2.1 操作系统 net-snmp可以在BSD UNIX、Linux、Windows等操作系统上编译运行【Windows下可以安装一个【VMWare】,新建一个虚拟机,在虚拟机上安装Linux用来学习。注意:【VMWare】必须为【5.5】以上版本才可以正确使用SNMP】3.2.2 下载/download.html可以下载二进制文件或源码。源码需要自己编译。二进制只要Linux版本。【建议:】下载源码,以查看SNMP的实现源码。(本书在Linux环境下以net-snmp-5.2.2.tar为例。)3.3.3 解压 切换到root用户 su root 进入net-snmp源码目录后,执行下面的命令,进行安装 Tar xvf net-snmp-5.2.2.tar3.2.4编译准备 执行以下命令: cd net-snmp-5.2.2 ./configure来生成编译所需要的配置文件和Makefile。 检查编译环境的最后会提示输入一些配置信息。Net-snmp提供可扩展的dail,安装后运行在本机上,使这台Linux机器具有SNMP功能,使本机成为一台被管理设备。作为网络设备,用户可以配置该设备的名称、联系人、联系方式、位置等。同时还要配置默认的SNMP版本号。 下面是示例,()括号中为默认值,未输入表示接受默认值。Default version of SNMP to use(3):2System Contact Information(root):Leelin Li,Phone:12345678System Location(Unknown):Leelins home HangZhou ChinaLocation to write logfile(/var/log/snmpd.log):Location to write persistent information(/var/net-snmp): 最后配置检查程序会生成相关的配置文件、编译及安装所需要的输入文件及相应的Makefile.3.2.5 编译 使用编译准备阶段生成的Makefile,就可以编译net-snmp了。编译会生成net-snmp的C语言开发库、SNMP工具、可扩展的主代理、开发工具。执行以下命令: make开始编译。3.2.6 安装 net-snmp编译完成后需要进行安装,安装时应考虑以下几点: 1. 安装net-snmp可扩展daili(snmpd). 2.安装C语言开发库和头文件 3.安装net-snmp提供的snmp工具 4.安装net-snmp依赖的MIB文件 5.安装net-snmp依赖的配置文件默认的安装情况如下:n 1.可扩展代理snmpd位于: /usr/local/share/net-snmpn 2. C语言开发库位于: /usr/local/share/libn 3. C语言开发头文件位于: /usr/local/share/includen 4. net-snmp提供的snmp工具位于:/usr/local/share/net-snmpn 5. net-snmp依赖的MIB文件位于:/usr/local/share/net-snmp/mibsn 5. net-snmp依赖的配置文件位于:/usr/local/share/net-snmp/conf/etc/snmp执行以下命令: make install安装编译成功的net-snmp3.2.7 配置文件 执行下面的命令开始编辑net-snmp的配置文件: vi /etc/snmp/snmpd.conf下面是snmpd.conf的内容: Com2sec get default read Com2sec set default write Group getgroup any get Group setgroup any set # incl/execl subtree mask View getview include .1 View setview include .1.3.6 #sec.group context sec.model sec.level prefix read writenotifaccess getgroup “” any noauth exact getview none getviewaccess setgroup “” any noauth exact none setview none master agentx 3.2.8 验证如果不能通过验证,则需要按照上面讲过的步骤进行检查,并重新编译和安装。也可以工具上面讲过的安装项目和安装后的路径逐项敬爱奶茶,以定位错误。1.验证主代理是否可以正常启动:Snmpd2.代理是守护进程,执行后会在后台运行 ,可以使用下面的命令检查代理是否已经启动: ps aef |grep snmpd启动代理时也可以使用如下参数使snmpd使用【配置文件】启动:snmpd C c /etc/snmp/snmpd.conf使用这个参数,我们可以配置很多的配置文件,设置不同的运行环境,便于我们开发和学习。3.从代理中读取一个管理对象验证代理是否正常运行。读取MIB库中的RFC1213systemsysDescr 对象,该对象表示设备的描述信息。使用net-snmp提供的snmp工具读取,命令如下:【rootleeli net-snmp-5.2.2】snmpget v2c c public localhost sysDescr.0 如果得到了信息,表示net-snmp安装成功。3.3 工具介绍 (1)snmpget模拟snmp的GetRequest操作的工具。用来获取一个或几个管理信息。用来读取管理信息的内容。 (2)snmpgetnext模拟snmp的GetNextRequest操作的工具。用来获取一个管理信息实例的下一个可用实例数据。一般用来遍历SNMP中的表格数据。 (3)snmpset 模拟snmp的SetRequest操作的工具。用来设置可以写的管理信息。一般用来配置设备或对设备执行操作。 (4)snmpbulkget模拟snmp的GetBulkRequest操作的工具。用来获取大块的数据。一般在大量读取大块数据时使用,以提高带宽利用率,并且比使用snmpget、snmpgetnext及snmpwalk有更强的容错能力,代理会返回尽可能多的数据,比其它命令更有保证。 (5)snmpwalk 利用GetNextRequest对给定的管理树进行遍历的工具。一般用来对表格类型管理信息进行遍历。 (6)snmptrap模拟trap的工具。用来发送模拟trap。一般用来测试管理站安装和配置是否正确,或者用来验证开发的Trap接收程序是否可以正常工作。 (7)snmptrapd 接收并显示trap的工具。一般在代理的开发过程中,接收代理发来的Trap,并将PDU细节打印出来,也来测试Trap发送功能是否正常。 (8)snmpinform 模拟发送InformRequest的工具。跟snmptrap类似,用来发送模拟的带应答的Trap,以测试管理站或自己开发的接收程序。 (9)snmptable 使用GetNextRequest 和 GetBulkRequest操作读取表信息,以列表形式显示的工具。 (10)snmpstatus 从SNMP实体读取几个重要的管理信息以确定设备状态的工具。用来简单测定设备状态。 (11)snmpbulkwalk 利用GetBulkRequest实现对给定管理树进行遍历的工具。对表格类型的管理信息进行遍历读取。 (12)snmpdelta 用来监视Integer类型的管理对象,会及时报告值改变情况的工具。用于监测一个设备或开发中的代理。 (13)snmptest 是一个复杂的工具,可以监测和管理一个网络实体的信息,通过SNMP请求操作与管理实体通信。 (14)snmptranslate 将对象名字和标识符相互转换的工具。用于数据格式的对象标识和可读式字符串的数据名称的转换。类似于域名与IP地址的关系。 (15)snmpusmSNMPv3 USM配置工具。用于SNMPv3的用户管理。 (16)snmpvacm 为一个网络实体创建和维护SNMPv3的基于视图访问控制参数的工具。用于维护SNMPv3的视图访问控制。 (17)snmpconf 生成snmpd配置文件的工具。用于生成snmpd的各种配置文件,用作模板,以生成用户级配置文件。 (18)snmpd Net-snmp开发的主代理程序,包括众多标准MIB的实现。还可以使用子代理对其进行扩展,是一个功能强大的SNMP代理。Linux、Unix和Windows系统运行snmpd后,直接具备了SNMP协议支持,可以被管理站管理。许多商业化的Linux中使用snmpd作为系统的SNMP代理。 (19)snmpdf 通过SNMP访问并显示网络实体磁盘利用情况的工具。用来监测网络实体的磁盘。第4章 抽象标记语言(ASN.1)第5章 基本编码规则(BER)第2部分 SNMPv1第6章 管理信息系统(SMI)6.1 概述 SMI约束了ASN.1的范围,定义了SNMP自定义类型,用于描述SNMP协议数据报和管理信息库MIB。SMI是ASN.1的一个子集,约定了使用到的语法、类型、宏、数据格式。 MIB中的每个被管理资源都由一个对象来表示。 以MIB-II为例,其中定义了system SMI定义在【RFC 1155】中。该规范定义了一个基本的框架,使用框架内的规范可以定义MIB。SMI定义了基本的数据类型、宏结构及命令规则。SMI只用到ASN.1的很小一部分。因此,MIB只能存储简单的数据类型,分别是标量和标量的二维数组。SNMP只能检索标量,包括表中的单个条目。SMI不支持负责数据结构的创建和检索。SMI的内容包括:1. MIB结构定义语句2.单个对象定义语句(包括语法和每个对象的值) 3.数据编码格式6.2 管理信息的结构和标识 管理对象以虚拟信息存储方式存储和访问-这一结构被称为MIB)(管理信息库)。SMI使用BER进行编码。每个对象都有自己的名字、类型(Syntax)、和编码。l 名字:对象名字和对象标识都是唯一的,都能唯一地识别对象。对象名字更直观,对象标识更简洁。在PDU中需要使用【对象标识】,因为它是数值型的,更容易编码,编码更小。l 类型:定义对象的类型,如:Integer或Octet String类型。l 编码:描述如何对对象【实例】按对象类型进行编码,以使数据在网络上传输。6.2.1 名字 名字用于标识管理对象,对象标识则可以更准确地标识对象。 标识就是一个简单的文本描述和一个整数。 标识是一个树形结构,根节点不进行标记,但至少有三个子节点。 一个由CCITT管理,标记为ccitt(0) 另一个子节点由国际标准化组织管理,标记为iso(1) 第三个由两者共同管理,标记为joint-iso-ccitt(2) 下面是管理信息库的对象标识 root ccitt(0) iso(1) joint-iso-ccitt(2) org(3) dod(6) internet(1) directory(1) mgmt(2) experiment(3) private(4) mib(1) .2.1 enterprises(1)system(1) interface(2) at(3) ip(4) icmp(5) tcp(6) udp(7) . 1.directorydirectory(1)子树保留用于OSI目录(X.500)。 2.mgmtmgmt(2)子树用于标记IAB文件中定义的管理信息库。目前有MIB-I和MIB-II两个版本。 3. experimentalExperimental(3)子树定义用于存放Internet试验现象。 4.private Private(4)子树用于定义其他对象。使用enterprises(1)时,允许提供网络子系统的机构【注册】它们的产品模型。 enterprises子树的【分支】分配给每个注册enterprises对象标识符的供应商。在被授权使用一颗enterprises子树后,企业可以在子树中定义新的MIB对象,而且企业也应该在此子树下注册他的网络子系统。这样就可以分组分类地管理企业的产品了。6.2.2 语法 每个SNMP MIB内部对象都要正式定义。 SMI中使用三种语法:原始类型、SMI预定义类型、自定义类型。6.2.3 编码 使用ASN.1的BER编码规则将数据从ASN.1编码为【字节流】以在网络上传输。6.3 管理对象定义语法 SMI不定义MIB对象,但SMI规定了定义管理对象的格式。对象定义通常包括5个域:u OBJECT 是一个字符串名,名为OBJECT DESCRIPTOR.他指定对象类型,这个类型和OBJECT IDENTIFIER对应。u SYNTAX 对象类型的抽象语法。它必须可以解析到ObjectSyntax类型的一个实例上。u DEFINITION 对象类型语义的文本描述。u ACCESS 权限,取值为只读、读写、只写、不能访问这4个值。u STATUS 状态,取值为强制(mandatory)、可选(optional)或过时的(obsolete)。6.3.1 对象标识 在Internet标准中的MIB对象标识中不能有0。0是留作扩展的。每个和对象类型相对应的对象描述(Object Descriptor)应该是独一无二的,是可记忆和打印的字符串。如udp的对象标识和对象描述可以表示为下面的格式:对象标识:.2.1.7对象描述:ernet.mgmt.mib.udp6.3.2 对象类型和实例 对象类型(Object-Type)是一类可管理对象的定义,对象实例是一个对象类型的实例,而这个实例有具体的值。6.3.3 管理对象宏 管理对象宏定义了对象定义的格式。RFC 1155中定义了一个管理对象宏,后面的RFC 1212引入了新的格式,称为“简明管理对象宏”。 Trap的宏定义并没有在RFC1155中包括,在随后的RFC中给出了Trap的定义宏。 管理对象宏 RFC 1155中定义了OBJECT-TYPE宏处理MIB中的对象定义,这个宏定义了一个统一的格式来定义对象。 简明对象定义 RFC 1212定义了新的简明MIB格式,将OSI的MIB格式引入SNMP。是简明对象定义的格式与RFC 1155的格式基本一致。 MIB-II就是使用了简明管理对象定义进行对象定义的。虽然SMI中定义了对象定义的方法,但很快被简明对象定义所取代了。所以,我们见到的SNMPv1 MIB基本是使用简明对象定义进行定义的。6.3.4 SNMP中的表SMI【只】支持一种形式的数据结构:简单的【二维标量表】。SNMP中把一些标量在逻辑上组织在一起,形成一个逻辑上的表。一些单个对象作为表中的列,所有的列组成表中的一行(Entry),若干航就组成了一个表(Table).SNMP不支持整表的读取,只支持标量的读取,所以,在协议中,对表读取也是通过标量的【逐个】读取实现的。跟关系表一样,SNMP中的表也需要有索引,不然就无法唯一地标识行。6.3.5 Trap的定义 由于SMI独立于SNMP协议定义,并且【先】于协议定义,所以,当在SNMP中设计Trap时,SMI没有相关的定义语法。 后来,RFC-1215,给出了Trap的定义格式,该RFC是对SMI的补充。 Trap的定义语法 规则 1.trap-type 标识下面定义的是一个Trap,定义是在设计的实现期使用,而不是在运行期。 2.enterprise 企业标识:定义在private.enterprise下。本域必须提供定义此Trap的企业标识,标识这个Trap是哪个企业定义的。这个值房子Trap PDU的enterprise字段内。根据惯例:如果企业标识值是snmp,sysObjectID的值被放在Trap PDU的enterprise字段内。3.variables 变量定义了MIB对象的有序序列,这些对象包含在每个Trap类型的实例中。每个变量【按顺序】被放置在SNMP Trap PDU 的variable-bindings内。4. descriptionTrap的描述。description的全部值必须包含在双引号内。更要注意的是,如果MIB模块其他地方没有包含Trap的原文描述,描述域必须定义。5.reference 参考。用于和其他MIB模块定义的Trap的description进行相互参照。6. value Trap的值是整数。其值为enterprise下的唯一值。value将放在Trap PDU 的专用字段内(special-trap)内。该值用以唯一地标识一个Trap,在enterprise值相同的情况下,value用来标识具体的Trap。enterprise用来标识Trap属于哪个企业。 SNMP中预定义的TrapSNMP中定义了6个基本的Trap,这6个Trap可以涵盖大部分设备的主要状态改变,与企业自定义的Trap配合使用,就可以处理几乎所有重要状态改变的情况。1. coldStartSNMP发送实体正在重新初始化,以修正代理的配置或协议实体的实现,特别是由于崩溃或重大故障而引起的意外重启。 2. warmStart 发送实体正在重新初始化,但不修改代理的配置或协议实例的实现。这就是典型的常规启动。3. linkDown 表示代理的一个通信连接失败。Variablebindings字段中的第一个元素就是响应接口的ifIndex实例的名称和取值。4. linkup 表示代理的一个通信连接成功。Variablebindings字段中的第一个元素就是响应接口的ifIndex实例的名称和取值。5. authenticationFailure 表示发送方的SNMP消息验证失败。6. egpNeighborLoss 表示发送协议实体的EGP邻居已被标记为Down,相邻关系已经不存在。Variablebindings字段中的第一个对象就是关闭EGP实体的egpNeighAddr。 企业专用的Trap SNMP定义的6个Trap可以涵盖大部分情况,但是许多的情况下设备有自己特殊的状况,企业也希望发送或接收自己定义的Trap以得到的特殊的消息。通用Trap不能涵盖所有的情况,使用Trap定义宏就可以定义企业自己的Trap。企业设备发送自定义的Trap时,必须同时将定义的Trap的MIB一起分发出去,否则,其他管理站将不能识别自定义的Trap的格式。MIB的扩展 每个Internet文档都将前面文档标记为过时的。 新版本不能在未改变名字的情况下改变对象的语义。私有的扩展可以添加到private子树下面。由于标准化的SMI和标准化的对象标识方案,因而能从不同的供应商的管理站管理私有对象,使得供应商可以创建新的对象管理产品中的具体实体,并使管理站可以看见这些对象。 当代理使用了供应商私有的MIB管理设备时,就具备了提供私有MIB的能力;如果管理站也装入相应的MIB,就可以与代理通信,对设备进行监控和管理了。SMI RFC RFC-1155定义了SMI,使用ASN.1进行描述,清晰而全面。本章小结 SMI广泛用于SNMP协议的RFC中,并且用于各种MIB的定义。本章详细介绍了SNMPv1中使用SMI。第7章 管理信息库(MIB) SNMP使用“操作”对所管理的设备进行管理。“操作”的对象是管理信息,每一个管理的信息点被定义为一个【管理信息】。一个管理信息有类型、名称、意义、权限等属性。对管理信息进行相应的读、写操作,就可以完成管理。 管理信息库MIB就是管理信息的集合。 支持SNMP协议的设备一般都要有自己的管理信息,以实现对该设备的网络管理。 SNMP定义了基于【TCP/IP】协议的网络设备的基本管理信息库。 SNMP有两个版本的管理信息库,按先后顺序分布称为MIB-I和MIB-II。MIB-II使用最广泛。7.1 概述 TCP/IP网络管理系统的基础是含有被管理元素信息的数据库,其在TCP/IP和OSI环境下成为MIB。每个被管理资源用一个对象表示,MIB就是这些对象的结构化集合。MIB是一个【树形】结构的数据库。信息库中对象的类型、意义由MIB定义,管理站和代理端都按【同一个】MIB作为接口通信,可以相互理解数据的意义,实现管理。 管理信息库使用SMI和ASN.1描述管理信息。管理信息建立在SMI定义的信息树【ernet】,每个管理信息都是管理信息树的【一个】节点,拥有唯一的对象标识。管理对象的对象标识是从【根节点到管理信息的路径】。RFC-1156定义了SNMP的第一个版本的管理信息,成为MIB-I。RFC-1213定义了SNMP的第二个版本的管理信息,成为MIB-II。MIB-II对MIB-I进行了修改和扩展,【现在SNMP都以MIB-II为基准】。MIB-II包含下面的分组:l system: 设备的基本信息l interface: 网络接口设备信息l at:地址转换,互联网到子网地址映射表的描述(在MIB-II中被替换)l ip: 系统中IP实现和运行信息l icmp:系统中ICMP实现和运行信息l tcp :系统中TCP实现和运行信息l udp :系统中UDP实现和运行信息l egp :系统中EGP实现和运行信息l snmp:系统中SNMP实现和运行信息MIB-II的结构 在MIB-II中,除了system组存放的是设备的基本信息、snmp存放的是应用层数据之【外】,其他组都是【网络层和数据链路层】信息分组。通过对这些组的实现,可以对设备的网络层、数据链路层及设备基本信息实施监视和管理。 directory、mgmt、experimental、private这4个子树在SMI中定义,MIB-II子树定义在【mgmt】子树下。 支持SNMP的网络设备需要实现自己能实现的管理对象。比如,【路由器】使用【EGP】协议,则必须实现egp组,且需要实现system、at、ip、icmp等组。不能实现的就不实现。比如,路由器不必实现tcp组。 如果设备能实现一个组的语义,则需要实现该组中所有的对象。这是估算中强制要求的。7.2 MIB-II详述 本节详细介绍MIB-II中的每个组,并详细介绍组中的每一个对象。7.2.1 directory directory子树保留用于描述以后OSI目录如何被用做Internet目录。7.2.2 mgmt mgmt子树用于标记在IAB(Internet Architecture Board,互联网架构委员会)文件中的对象。 mgmt子树共有10个子树,用于描述IP相关信息。因为SNMP是一个IP网络管理协议,所以mgmt的管理信息库十分重要。所有的标准设备的【代理】都需要实现本树所定义的管理信息。 system组 System组用于存放设备的基本信息,是由一系列标量组成,非表格。名称数据类型权限(R/W)描述sysDescrDisplayString设备的文字描述,用于设备硬件、操作系统等进行说明sysObjectIDObjectID网管子系统的供应商标识,指向从IAB获取的enterprise树下的标识sysUpTimeTimeTicks从系统的网管系统启动以来的时间(百分之一秒)sysContactDisplayString*设备联系人的名字及联系方式sysNameDisplayString*在管理上赋予的名称sysLocationDisplayString*节点的物理位置sysServicesInteger(0.127)*指示节点提供的服务的值。该值是此节点所支持的OSI模型中层次的和。工具提供的服务,将下面的值相加:0X01(网络层)、0X02(数据链路层)、0X04(互联网层)、0X08(端到端的传输层)、0X40(应用层)如:在一台路由器上取sysServices的值为0X0C,则0X0C为0X4与0X8的和,表示路由器支持网络层(如选路)和传输层的应用(如端到端)。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论