




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1. snmp治理模型1.1. 什么是snmpsnmp (simple network management protocol)是被广泛接受并投入使用的工业标准, 它的冃标是保证治理信息在任意两点中传送,便于网络治理员在网络上的任何节点检索信 息,进行修改,寻找故障;完成故障诊断,容量规划和报告生成。它采用伦询机制,提供最 基本的功能集。最适合小型、快速、低价格的环境使用。它只要求无证实的传输层协议udp, 受到许多产品的广泛支持。snmp在tcp/ip协议族中的地位如下图:shwp到asn. 1抽象语法记法)udphttd:/w 冈 yuahif灌賂层协议1.2. snmp的基本操作:操作操
2、作含义get-requestget-nex t-r equestgwtsat-request trp从某变星中取值 在表格中取下一项值 响厚取操作把1数应量s3结snmp以getset方式替代了复杂的命令集,利用基木操作演绎出全部操作。用户可 以采用治理信息库标准或按标准的方式來定义白己的治理信息库(mib)。这样做的好处是: 通过降低占网管系统中大多数的代理部件的成本来降低整个网管系统的成本。1.3. 网管站和代理网管站(nms)对网络设备发送各种杏询报文,并接收来自被管设备的响应及陷阱(trap) 报文,将结果显示出来。代理(agent)是驻留在被管设备上的一个进程,负责接受、处理 来口网
3、管站的请求报文,然后从设备上其他协议模块中取得治理变量的数值,形成响应报文, 反送给nms。在一些紧急情况下,如接口状态发生改变,呼叫成功等时候,主动通知nms (发送陷阱trap报文)。他们的关系如下图:zivrsudp port 162requestresponsetrapudp port 161agent% 5青冈厨结htt p /uuuuw wi pcn c esnmp就是用来规定nms和agent之间是如何传递治理信息的应用层协议。1.4. asn.1 和 smisnmp是应用层协议,它要求两端的协议实体交换各种报文,而低层要求用户数据都是 byte序列,这就产生了一个问题:snmp
4、协议实体如何从接受到的一个byte序列中识 别出报文又如何把一个用内部数据结构表示的报文转换成一个可供发送的byte序列,也 就是编解码问题。解决这个问题,就需要一个定义从实际的软件数据结构中抽象出来的数据类型的表示方 法,称为抽象句法。asn.1就是用來描述抽彖记法的语言,事实上可应用与任何协议层,在它的基础上,通 过规定编码规则,就可以确定数据在传送中的八比特组的值。smi (struct of management imformation),通过定义一个宏 0 bject-type,规定了治 理对象的表示方法,从这个意义上说,它是asn.1的一个子集。另外它还定义了几个snmp 常用的基
5、本类型和值。mib (management imformation base),是所监控网络设备的标准变量定义的集合。snmp 用层次结构命名方案来识别治理对彖,就象一棵树,树的节点表示治理对象,它可以用从根 开始的一条路径来无二义的识别。见下图:策矗冈网络a治理对象b可以用一串数字唯一确定这串数字是治理对象的object identifier (客体标识符)。通过object identifier可确定从根到b的一条路径。治理对象a的object identifier是121.1.5,或b 5,后一种表示方法表明a是b的 笫5棵孩子。在agem屮这棵树是用较复杂的数据结构来实现
6、的,幸运的是,建树这个工作可由mib 编译器完成。在树的叶节点中,存放冇访问函数的指针,agent就是通过调用这些函数来从 相关模块取得治理变量的值的。1.5. snmp 报文snmp报文结构如下:(编码之前)http:/啊冈艸 wid版本号团体名协议数据单元fdusnmp消息报文包含两个部分:snmp报头利协议数据单元pduo版本识别符(version identifier):确保snmp代理使用相同的协议,每个snmp代 理都直接抛弃与£1己协议版本不同的数据报。团体名(community name):用于sxmp从代理对snmp管理站进行认证;如果网络配 直成要求验证时,snm
7、p从代理将对团体名和管理站的1p地址进行认证,如果失败,sxmp 从代理将向管理站发送一个认证失败的trap消息(见后);协议数据单元(pdu):其中pdu指t sxmp的消息类型及其相关参数。下图是封装成udp数据报的5种操作的sxmp报文格式。可见一个snmp报文共有三个 部分组成,即公共snmp首部、get/set首部trap首部、变量绑定。(1)公共s:mp首部共三个字段:版本:写入版本字段的是版本号减1,对于snmp (即snmpv1)则应写入0。共同体 (community)共同体就是一个字符串,作为管理进程和代理进程之间的明文口令,常用的 是6个字符“public” opdu类型
8、:根据pdu的类型,填入04中的一个数字,其对应关系如表2所示意图。表2 pdu类型pdu类型名称0get-request1get-next-requestget-response3 set-request4 trap(2) get/set 首部请求标识符(request id)这是由管理进程设直的一个整数值。代理进程在发送 get-response报文时也要返回此请求标识符。管理进程可同时向许多代理发出get报文, 这些报文都使川udp传送,先发送的冇可能后到达。设置了请求标识符可使管理进程能够识 别返回的响应报文对于哪一个请求报文差错状态(error status)由代理进程回答时填入05
9、屮的一个数字,差错索'ji (error 1 index)当出现 nosuchname、badva 1 ue 或 readonly 的差错时,由 代理进程在回答时设置的一个整数,它指明有差错的变量在变量列表中的偏移。(3) trap 首部企业(enterprise)填入tmp报文的网络设备的对象标识符。此对象标识符肯定是 在图3的对象命名树上的enterprise结点1. 3. 6. 1. 41下面的一棵子树上。trap类型此字段正式的名称是generic-trap,共分为表4中的7种。当使用上述类型2、3、5时,在报文后面变虽部分的第一个变虽应标识响应的接口。特定代码(specifi
10、c-code)指明代理自定义的时间(若trap类型为6),否则为0。时间戳(timestamp)指明口代理进程初始化到trap报告的事件发生所经历的时间,单位为10mso例如时间澈为1908表明在代理初始化后1908ms发生了该吋间。(4) 变量绑定(variable bindings)指明一个或多个变量的名和対应的值。在駅七或get-next报文中,变量的值应忽略。snmp共冇5中报文,所以其pdu也冇5中,仅以getrequest-pdu为例requestis 求用以匹配响应和诘求的一个数字 诸误状态用以给出错误类型htt py/wwmhipcrlc om错误索引标示产生错误的变星对偶变量
11、对偶表存放管理变量的名及值2. 治理变量的表示治理变虽表示治理对象类型在某一时刻的值(或称该类型的实例),snmp以治理变屋 作为操作对象。治理变量的表示方法是这样规定的:形如x.y,具屮x是治理对象的object identifer0 y 是能唯一确定对象类型值的一组数字,在非表型变量中为0,在表型变量中是这个表的索引, 比如接口表中的接口号,或路由表中的ii的网络地址等等。女口:在mib文件里定义了 ipadentnetmask 这一*治理对象,其 object identifier 为 . 它是个路由表中的一 项,它的一个实例就是路由表中某一行的子网掩码,假如
12、这行的索引、目的网络地址为 。则这个变量名是:...0。在以后的说明中,为了方便, 把唯一确定治理变量的一组数字,也就是x.y屮的y称作实例。3.snmp的运行过程驻留在被管设备上的agent从udp端口 161接受來自网管站的串行化报文,经解码、 团体名验证、分析得到治理变量在mib树中对应的节点,从相应的模块中得到治理变量的 值,再形成响应报文,编码发送冋网管站。网管站得到响应报文后,再经同样的处理,最终 显示结果。下面根据rfc1157具体介绍agent接受到报文后采取的动作:首先解码生成用内部数据结构表示的报文,解
13、码依据asn.1的基木编码规则,假如在 此过程中出现错误导致解码火败则丢弃该报文,不做进一步处理。笫二步:将报文中的版本号取出,假如与本agent支持的snmp版本不一致,则丢弃 该报文,不做进一步处理。当前北研的数据通信产品只支持snmp版本1。第三步:将报文中的团体名取出,此团体名由发出请求的网管站填写。如与本设备认可 的团体名不符,则丢弃该报文,不做进一步处理,同时产生一个陷阱报文。snmpvl只提供 了较弱的安全措施,在版本3中这一功能将大大加强。第四步:从通过验证的asn.1对象屮提出协议数据单元pdu,假如失败,丢弃报文, 不做进一不处理。否则处理pdu,结果将产生一个报文,该报文
14、的发送忖的地址应同收到 报文的源地址一致。根据不同的pdu, snmp协议实体将做不同的处理:1.6. getrequest pdu:笫一种情况:假如pdu中的变量名在本地维护的mib树中不存在,则接受到这个pdu 的协议实体将向发出者发送一个getresponse报文,其中的pdu与源pdu只有一点不同: 将error-status置为nosuchname,并在error-index屮指出产生该变量在变最list 中的位置。笫二种情况:假如本地协议实体将产生的响应报文的长度大于本地长度限制,将向该 pdu的发出者发送一个getresponse报文,该pdu除了 error-status遇为t
15、oobig, error-index置为()以外,与源pdu相同。第三种情况:假如本地协议实体因为其他原因不能产生正确的响应报文,将向该pdu 的发出者发送一个getresponse报文,该pdu除了 error-status置为generr, error-index置为出错变量在变量list中的位置,具余与源pdu相同。第四中情况:假如上面的情况都没冇发生,则本地协议实体向该pdu的发出者发送一 个getresponse报文,该pdu中将包含变最名和相应值的对偶表,error-status为 noerror,error-index 为 0, request-id 域的值应与收到 pdu 的
16、request-id 相同。1.7. getnextrequest pdugctncxtrcqucst pdu的最重要的功能是表的遍历,这种操作受到前面所说的治理变 量的表示方法的支持,从而可以访问一组相关的变量,就好彖他们在一个表内。卜面通过一个例子解释表遍历的过程:被管设备维护如下路由表:destinationnexthopmetric92325假设网管站欲取得这张路由表的信息,该表的索引是忖的网络地址。网管站向被管设备发送一个getnextrequest pdu,其中的受管対象的标识如fge
17、tnextrequest(iproutedest, iproutenexthop, iproutemetric 1)snmp agent 响应如下 getresponse pdu:getresponse (iproutedest.9.123 = ""),(iproutenexthop. = nh),(iproutemetricl. = 3 )网管站继续:getnextrequest (iproutedest.923,iproutenexthop.,iproutemetricl . ) ag
18、ent响应:getresponse(iproutedest. 1=n 1 j(iproutenexthop .1=h2lf),( ip routcmctric .51 = 5 )值得注重的是agent必须能够确定卜一个治理变量名,以保证所有变量能被取到且只被 収到一次。网管站继续:getnextrequest (iproutedest. ljproutenexthop. ljproutemetric .51 )agent 响 应 : getresponse ( i
19、proutedest. 9t9”),(iproutenexthop. 9 二 “2“),(iproutemetric .99 = 5)网管站继续:getnextrequest(iproutedest. 9,iproutenexthop. 9,iproutemetric .99)这时因为路由表中所冇的行都被取遍,agent因返回路rfl表对彖的下一字典后继即该治 理对象在mib树屮的后序遍历的直接后继。这里应是nettomedialndex,治理对象的object ide
20、ntifiero这个响应通知网管站对表的遍历已经完成。1 .& getresponse pdugetresponse pdu 只有当受到 getrequest getnextrequest setrequest 才山协议实体产牛, 网管站收到这个pdu后,应显示其结果。1.9. setrequest pdusetrequest pdu除了 pdu类型标识以外,和getrequest相同,当需要对被管变最进行 写操作时,网管站侧的i办议实体将生成该pdu。对setrequest的响丿应将根据下而悄况分别处理:1. 假如是关于一个只读变量的设置请求,则收到该pdu的协议实体产生一个 get
21、reponse报文,并置error status为nosuchname, error index的值是错误变量在变量list中 的位置。2. 假如被管设备上的协议实体收到的pdu屮的变量对偶屮的值,类型、长度不符和要 求,则收到该pdu的协议实体产生一个getreponse报文,并置error status为badvalue, error index的值是错误变量在变量list中的位置。3. 假如需要产牛的getreponse报文长度超过了本地限制,则收到该pdu的协议实体 产生一个 getreponse 报文,并置 error status 为 toobig, error index 的值是
22、 0。4. 假如是其他原因导致set失败,则收到该pdu的协议实体产生一个getreponse报 文,并置error status为generr, error index的值是错课变量在变量list屮的位置。假如不符合上面任何情况,则agent将把治理变量设置收到的pdu中的相应值,这往 往可以改变被管设备的运行状态。同时产生一个getresponse pdu,其中error status置为 noerror,error index 的值为 0©lio. trap pdutrap pdu的侑如下的形式trap是被管设备碰到紧急情况时主动向网管站发送的消息。网管站收到trappdu后要
23、 将起变量对偶表中的内容显示出来。一些常用的tnip类型有冷、热启动,链路状态发生变 化等。4. snmp mib编译器的功能mib编译器是agent开发的一个工具,一个agent的开发者首先面对的是一个mib文 件,其中是用asn.1描述的治理对彖集。mib编译器耍把这个文件转换成相应的c语言源 文件。mib编译器可极大的提供agent的开发效率。5. 管理信息库mib管理信息库mib,就是所有代理进程包含的,能够被管理进程进行查询和设置的信息的 结构。1etf规定的管理信息库m1b (其中定义了可访问的网络设备及其属性,山对象标识符 01d: object identifier唯一指定)的
24、一套公用的结构与表示符号称z为sm1。对象标识是一种数据类型,它指明一种“授权”命名的对象。“授权”的意思就是这 些标识不是随便分配的,它是由一些权威机构进行管理和分配的。对象标识是一个整数序 列,以点()分隔。这些整数构成-个树型结构,对象标识从树的顶部开始,顶部没 有标识,以root表示。下图显示了在snmp中用到的这种树型结构。所有的m t b 变量都从136.1.2. 1这个标识开始。树上的每个结点同时还有一个文字名。例 如标识1.3.6 1 .2.1就和 iso. o r g . ernet, memt. m i b对应。这主要是为了人们阅读方便。在实际应用中,也就是说
25、在管理进程和代理进程 进行数据报交互时,m i b变量名是以对象标识来标识的,当然都是以1 . 3 . 6 1 . 2 . 1开头的。在图2 5 - 6中,我们除了给出了 m i b对象标识外,还给出了 . d o d . in ternet.pri vate. en terpri ses(l . 3 . 6 . 1 . 4 . 1) 这个标识。这是给厂家自定义而预留的。在assigned number rfc 111列出了在该结 点下大约4 0 0个标识。mib是一个树形结构,snmp协议消息通过遍历mib树形目录中的节点来访问网络屮的 设备。卜-图给出了 nms系统中snmp
26、可访问网络设备的对象识别树(01d: object identifier) 结构。卜图给出了对一个ds1线路状态进行查询的01d设直例子。6、实例标识当对m 1 b变量进行操作,如查询和设置变量的值时,必须对m 1 b的每个变量进行 标识。首先,只有叶子结点是可操作的。s n m p没法处理表格的一整行或-整列。6. 1简单变量对于简单变量的处理方法是通过在其对象标识后面添加“ 0”來处理的。例如前图屮 的计数器udp indat a g r a m s,它的对象标识是1.3 .6. 1.2. 1.7.1, 它的实例标识是1 . 3 . 6 . 1 . 2 . 1 . 7 . 1 . 0,相对应的文字名称是iso. o r g . d o d . in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年学校消防演练方案
- 人教版五年级上册语文反义词多音字总结
- 2025年珍珠奶茶原材料项目可行性研究报告
- 2025年特种管项目可行性研究报告
- 重庆科创职业学院《蛋白质工程》2023-2024学年第二学期期末试卷
- 2025春新版六年级英语下册《常考句型习题》带答案
- 林芝市重点中学2025年高三二诊模拟生物试题含解析
- 山东省枣庄市台儿庄区2025届三中初三1月考前适应性考试生物试题含解析
- 2025春新版【三年级语文下册】 第1-28课中心思想
- 襄阳科技职业学院《临床医学概论A1》2023-2024学年第二学期期末试卷
- 《物业消防管理》课件
- 城市更新项目投标书
- 2013年江苏南通中考满分作文《有一种声音在记忆深处》12
- 2024年《初级会计实务》真题及答案解析
- 药明康德面试
- 幼儿园小班美术棉签画《给柳树妹妹梳头》课件
- 中国盐业集团有限公司 笔试 内容
- 大模型原理与技术-课件 chap6 大模型微调
- 政府采购评审专家考试题库(完整版)
- 公路工程中浆砌块石挡土墙施工方案
- 零星工程维修 投标方案(技术方案)
评论
0/150
提交评论