




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
简单网络管理协议(SNMP)的学习和理解1SNMP网络管理协议综述 SNMP(Simple Network Management Protocol)是被广泛接受并投入使用的工业标准,它是由SGMP即简单网关监控协议发展以来的。它的目标是保证管理信息在任意两点中传送,便于网络管理员在网络上的任何节点检索信息,进行修改,寻找故障;完成故障诊断,容量规划和报告生成。它采用轮询机制,提供最基本的功能集。最适合小型、快速、低价格的环境使用。它只要求无证实的传输层协议UDP,受到许多产品的广泛支持。2.1 管理信息 经由SNMP协议传输的所有管理倍息都表现为非聚集的对象类型。这些对象类型被收集到一个或多个管理信息库MIB中并且对象类型按照管理信息结构和标识(SMI)定义。简单网络管理协议策l版的sM于1990年5月定义在一篇题为基于因特网的了TCPIP管理信息结构和标识的RFC中。这一RFC要求所有的管理信息库数据和信息必须根据ISO 8824标准抽象句法表示法1规范(ASN1)编码。按照ASN1表示所有信息和对象的目的在于方便向OSI的网络管理协议迁移而无需重新定义现已存在的所有对象和MIB。 SMI为每一对象类型定义以下成分: 名字; 句法;编码说明。注意:一个对象类型的名字明确地代表一个对象,称为对象标识符。不得分配标识符0给对象类型作为其名字的一部分。为便于阅读,在标准文档中对象标识符旁边包含对这一对象的描述。对象标识符是按照在OSI MIB树中建立的严格分层空间构造的,对象标识符总是一个唯一的从树根开始描述MIB树的整数序列。对象标识符和它的文字描述的组合称为标号。2.1.1 管理树SMI明确要求所有被管理的信息和数据都要由管理树来标识。这棵管理树来源于OSI的定义,它具有从很开始的严格分层化结构。管理拷的分支和叶子是用数字和字母两种方式显示的。数字化编码是机器可读的,字母显示则更适合于人的眼睛并帮助用户寻找穿过错综复杂分支的路径。在树中通向一个节点或叶子的路径是用对象标识符表示的。 树的各个分支是用数值表示的,因此对象标识符就构成了一个整数序列。管理树纳根下有3个直接后继者IB际电报电话咨询委员会ccnT分支、国际标准化组织Iso分支和J。intIsoCCITT(上述的联合)分文。下图为因特网子数(1.3.6.1)中所包含的是与因特网有关的所有管理对象。2.2 名字和语法句法定义了对象的数据类型。AsN1的部分结构用来形式化地描述这种数据类型。ASN1编码只使用基本编码规则(BER)。SMI定义了3种数据类型:原语类型、结构类型和自定义的类型。1)原语类型(Primitive types) 原语ASN1类型有Integer(整数)、Octet(字节)、String(字符串)、object Identifier(对象标识符)和NuLL(空)几种类型。再没有其他原语类型。 2)结构类型(Constructor types)结构类型是一种用于汇集列表和表格的复合类型。出于这种目的,SNMP使用sequence和sequence of。结构类型Sequence允许使用简单类型的列表,在sequence定义中,SNMP协议不提供缺省或可选值。Sequence的句法构造如下: SEQUENCEtypel,,typeN 表格是对一些元家组成的舶数据结构的显示。用entry表示列表名,sequcence of的句法结构如下:SEQUENCEentry3)自定义的类型(Defined types)借助于列表和结构类型,其他类型可以从基本类型(已经定义过的类型)(1nteger、NULL、object Identifier和Octet String)派生。为此,SMI定义了6种复合类型: (1)NetworkAddress(网络地址) NetworkAddress允许使用各种格式化的网络地址。当前,SMI只支持因持网协议 (2)IPAddress(因特网地址) 定义32位IP地址的格式。 (3)Counter(计数器) 32位非负值计数器。这个计数器从o计到2的32次幂减l(十进制的4294967295),超出最大值,计数器从零重新计数。 (4)Gauge(量规) 32位非负整数计算器,可做增1计数和减1计数。Gauge不能超出最大值(2的32次幂减l,十进制4294967295),如超出,将从零重新启动。 (5)TimeTicks(时间标记) 非负的32位的整数。该整数按1100s计算时间 (6)Opaque(模糊)引入这一伪数据类型,以绕过在有限的SMI定义中所固有的任何限制。它允许任意的ASN1结构。在网管站和代理进程间就Opaque数据的解释达成一致是非常必要的。4)被管对象 管理信息的结构和标识没有定义各自的被管对象,而定义了它们的形式化结构和内容。每个对象类型由5个字段构成:对象名、句法、定义、访问方式和状态。 (1)对象名在“object”下,数值化的对象标识符是与对象的正文描述成对出现的例子:atIndex at Entryl(2)句法使用A5N1句法类型描述上述内容(3)定义描述被管对象的正文存储于这个字段中(4)访问方式定义对象的访问字段为只读、只写、读写或不可访问(5)状态对象状态字段包含着有关它的至要性的信息。状态字段可以有以下值必备(Mandatory),在每一个实现中必须存在;可选(Ophtional),这一对象的集成是每个实现可选的;作废(0bsolete),这个对象不再使用。2.3抽象句法表示法(ASN1)1)ASN1规则ASN1定义了一些规则,这些规则对于理解SNMP是极其重要的:标准描述了许多已定义的ASN1类型;ASN1类型名总是用大写字母打头;一律用大写字母显示某些保留字。这些保留字在标准中是有专门含义的;某些名字用小写保留字开头。这些名字仅为增强ASN1表示法的易读而引入。2)模版SMI把被管对象的所有属性定义为一组数据(模板)。这些模板由5个部分构成:对象描述、句法、定义、访问方式和对象的状态。对象棋板句法定义对象的ASNL编码(Integer、 Object String、NULI、NetworkAddress、IP Address、Counter、Gauge、TimeTicks、opaque)。2.4 编码SNMP协议的所有对象类型是根据Iso 8824标准,即抽象句法表示法1的基本编码规则规范编码的。正如在基本编码规则BEE中定义的,AsN1数据总是用传入数据网的最有效位即最高位,作为第一个值。如下左图中所示,位81总是按从左到右的顺序传送到下一最低协议层。位8是最高位,位l是最低位。相应地,这一协议消息的接收者将按顺序的数据流传输位81。所有其他位序,例如,以字节右边为最高位(位1)是非法的。 不同于TcP四协议,sNMP消息没有固定格式的头。根据ASN1的基本编码规则(BER),SNMP把每一数据类型划分成3个字段:标识字段、长度字段和数据字段(见下右图)。 1)标识字段 标识字段定义朋N1类型。对于所有的sNMP协议类型,标识字段都划分为元素类字段、格式化位和标识号字段几部分。(1)类标识字段中前两个最高佐(位8和7)描述了标识值的类型。(2)格式化位标识字段中的位6称为格式位(F_bit)。F_bit用以区分下面的标识数值的原语和复合编码。对于前者,F_bit被置成0;对于后者,F_bit置成l。(3)标识号字段 标识号字段(位51)按二进制数显示标识数值Tag Numbers。该字段总是从左到右编码,从最有效位5开始往下到最低有效位1(位1)。由于用这5个位只能表示0一3l的数值而且保留二进制值11111为较大的标识值所用,故实际上只能表示0一30的值。所有更大标识号值用接下来的数据字节代替(如图)。在这种情况下,最有效的位(位8)总是置为0值。 2)长度字段 在ASN1中,信息按两种不同类型的长度字段传输,分别称为“确定的形式”和“不确定的形式”。简单网络管理协议只提供确定形式,即用一个或多个字节定义在随后的信息字段中数据字节数。长度字段的第一个字节的高位作用在于区别长度字段中有一个字节还是多个字节。 (1)单字节长度字段 如果在倍息字段(位17)中的信息长度为0一127个字节之间,则数据字节的个数可以用1个字节的长度字段定义。长度字段首字节中高位置为0以指明是一个短格式。 (2)多字节长度宁段如果在信息字段中的数据字节数超过127,需要用若干字节表示长度。多字节数据字段也称为长格式。此时,长度字段的第一个字节的高位总是置成1以表明长格式。在第一个字节中所有其他位(位l一7)按二进制形式定义为后随字节长度的个数。因为IP协议最多只能处理6E535个字节的数据报,所以SNMP协议多字节长度字段限制为最大3个字节。3)数据字段 ASN1的独立功能在数据字段中进行编码。SNMP协议只提供以下原语类型:Integer、Null、Object Identifier、Octet string、Sequence和Sequence of。2.5管理信息库被管对象的总和称为管理信息库(MIB)。当若干年前定义sNMP时,sNMP协议作者的意图是最大程度地实现简单性和可移植性。这一概念促使sNMP协议成为网络管理的市场标准。在SNMP协议早期,管理信息库(MIB)就已经是一个基本部件,在RFCl066中,公布了第一组被管对象,为基于TCPIP的因特网的网络管理的管理信息库的文档。这个管理信息库被认为是MIBI。MIBI包含了8个对象组,约100个对象。在1990年5月,MIB H(RFCll58)取代了MIBI。MIB II引入了3个新的对象组并引入很多新的对象从而扩展了MIBI已有的对象组。 MIBII划分为以下子组:系统(Sys)、接口(if)、地址转换(AT)、因待网协议(IP)、因持网控制报文协议ICMP、传输控制协议(TCP)、用户数据报协议(uDP)、外部网关协议(EGP)、在TcPIP上实现的公共管理信息协议(CMOT)、传输(Trans)和简单网络管理协议(SNMP)。 下图为MIB的分层结构2.6 SNMP报文SNMP PD结构如下:(编码之前)V1 中有5中报文;V2 增加了Get BulkRequest和InformRequest PDU。下图为SNMP V1的GetRequst PDU形式:2.7. SNMP的运行过程 驻留在被管设备上的AGENT从UDP端口161接受来自网管站的串行化报文,经解码、团体名验证、分析得到管理变量在MIB树中对应的节点,从相应的模块中得到管理变量的值,再形成响应报文,编码发送回网管站。网管站得到响应报文后,再经同样的处理,最终显示结果。 下面根据RFC1157详细介绍Agent接受到报文后采取的动作: 首先解码生成用内部数据结构表示的报文,解码依据ASN.1的基本编码规则,如果在此过程中出现错误导致解码失败则丢弃该报文,不做进一步处理。 第二步:将报文中的版本号取出,如果与本Agent支持的SNMP版本不一致,则丢弃该报文,不做进一步处理。当前北研的数据通信产品只支持SNMP版本1。 第三步:将报文中的团体名取出,此团体名由发出请求的网管站填写。如与本设备认可的团体名不符,则丢弃该报文,不做进一步处理,同时产生一个陷阱报文。SNMPv1只提供了较弱的安全措施,在版本3中这一功能将大大加强。 第四步:从通过验证的ASN.1对象中提出协议数据单元PDU,如果失败,丢弃报文,不做进一不处理。否则处理PDU,结果将产生一个报文,该报文的发送目的地址应同收到报文的源地址一致。 根据不同的PDU,SNMP协议实体将做不同的处理: 1)、GetRequest PDU: 第一种情况:如果PDU中的变量名在本地维护的MIB树中不存在,则接受到这个PDU的协议实体将向发出者发送一个GetResponse报文,其中的PDU与源PDU只有一点不同:将ERROR-STATUS置为noSuchName,并在ERROR-INDEX中指出产生该变量在变量LIST中的位置。 第二种情况:如果本地协议实体将产生的响应报文的长度大于本地长度限制,将向该PDU的发出者发送一个GetResponse报文,该PDU除了ERROR-STATUS置为tooBig,ERROR-INDEX置为0以外,与源PDU相同。 第三种情况:如果本地协议实体因为其他原因不能产生正确的响应报文,将向该PDU的发出者发送一个GetResponse报文,该PDU除了ERROR-STATUS置为genErr,ERROR-INDEX置为出错变量在变量LIST中的位置,其余与源PDU相同。 第四中情况:如果上面的情况都没有发生,则本地协议实体向该PDU的发出者发送一个GetResponse报文,该PDU中将包含变量名和相应值的对偶表,ERROR-STATUS为noError,ERROR-INDEX为0,request-id域的值应与收到PDU的request-id相同。 2)、GetNextRequest PDU GetNextRequest PDU的最重要的功能是表的遍历,这种操作受到了前面所说的管理变量的表示方法的支持,从而可以访问一组相关的变量,就好象他们在一个表内。 下面通过一个例子解释表遍历的过程: 被管设备维护如下路由表: Destination NextHop Metric 10.0.0.99 89.1.1.42 5 9.1.2.3 99.0.0.3 3 10.0.0.51 89.1.1.42 5 假设网管站欲取得这张路由表的信息,该表的索引是目的网络地址。 网管站向被管设备发送一个GetNextRequest PDU,其中的受管对象的标识如下 GetNextRequest ( ipRouteDest, ipRouteNextHop, ipRouteMetric1 ) SNMP agent响应如下GetResponse PDU: GetResponse ( ipRouteDest.9.1.2.3 = 9.1.2.3 ), ( ipRouteNextHop.9.1.2.3 = 99.0.0.3 ), ( ipRouteMetric1.9.1.2.3 = 3 ) 网管站继续: GetNextRequest ( ipRouteDest.9.1.2.3, ipRouteNextHop.9.1.2.3, ipRouteMetric1.9.1.2.3 ) agent响应: GetResponse ( ipRouteDest.10.0.0.51 = 10.0.0.51 ), ( ipRouteNextHop.10.0.0.51 = 89.1.1.42 ), ( ipRouteMetric1.10.0.0.51 = 5 ) 值得注意的是agent必须能够确定下一个管理变量名,以保证所有变量能被取到且只被取到一次。 网管站继续: GetNextRequest ( ipRouteDest.10.0.0.51, ipRouteNextHop.10.0.0.51, ipRouteMetric1.10.0.0.51 ) agent 响应: GetResponse ( ipRouteDest.10.0.0.99 = 10.0.0.99 ), ( ipRouteNextHop.10.0.0.99 = 89.1.1.42 ), ( ipRouteMetric1.10.0.0.99 = 5 ) 网管站继续 GetNextRequest ( ipRouteDest.10.0.0.99, ipRouteNextHop.10.0.0.99, ipRouteMetric1.10.0.0.99 ) 这时因为路由表中所有的行都被取遍,agent因返回路由表对象的下一字典后继即该管理对象在MIB树中的后序遍历的直接后继。这里应是nettoMediaIndex,管理对象的OBJECT IDENTIFIER。这个响应通知网管站对表的遍历已经完成。 3)、GetResponse PDU GetResponse PDU只有当受到getRequest GetNextRequest SetRequest才由协议实体产生,网管站收到这个PDU后,应显示其结果。 4)、SetRequest PDU SetRequest PDU除了PDU类型标识以外,和GetRequest相同,当需要对被管变量进行写操作时,网管站侧的协议实体将生成该PDU。 对SetRequest的响应将根据下面情况分别处理: (1) 如果是关于一个只读变量的设置请求,则收到该PDU的协议实体产生一个GetReponse报文,并置error status为noSuchName, error index的值是错误变量在变量list中的位置。 (2) 如果被管设备上的协议实体收到的PDU中的变量对偶中的值,类型、长度不符和要求,则收到该PDU的协议实体产生一个GetReponse报文,并置error status为badValue, error index的值是错误变量在变量list中的位置。 (3) 如果需要产生的GetReponse报文长度超过了本地限制,则收到该PDU的协议实体产生一个Get
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农发行宿州市砀山县2025秋招无领导模拟题角色攻略
- 农发行梅州市兴宁市2025秋招信息科技岗笔试题及答案
- 农发行亳州市利辛县2025秋招笔试创新题型专练及答案
- 国家能源本溪满族自治县2025秋招笔试思维策略题专练及答案
- 国家能源呼伦贝尔市牙克石市2025秋招笔试数学运算题专练及答案
- 国家能源焦作市武陟县2025秋招笔试模拟题及答案
- 农村土地合同
- 农村房屋继承的协议书(7篇)
- 即兴演讲稿14篇
- 员工年终个人年终工作总结(33篇)
- (高清版)JTGT 3365-01-2020 公路斜拉桥设计规范
- 专业技术人员年度考核情况登记表
- GB/T 33285.2-2024皮革和毛皮烷基酚及烷基酚聚氧乙烯醚的测定第2部分:间接法
- 2023年贵州专升本英语真题试卷(完整版)
- 医院护理培训课件:《成人早期预警评分系统介绍》
- 2023保密知识测试题库含答案
- 危险化学品安全作业(氧化工艺)考试题库(含答案)
- 中国农业银行笔试题库(含答案)
- GA 1808-2022军工单位反恐怖防范要求
- 工程建设项目绿色建造施工水平评价申请表
- 液压基础知识培训课件
评论
0/150
提交评论