好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

第3章-简单网络管理协议(SNMP)上课件.ppt

80页
  • 卖家[上传人]:大米
  • 文档编号:569454195
  • 上传时间:2024-07-29
  • 文档格式:PPT
  • 文档大小:798.50KB
  • / 80 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 简单网络管理协议简单网络管理协议(Simple Network Management Protocol)(Simple Network Management Protocol) 主要内容:主要内容: 3.1 SNMP的发展的发展3.2 SNMP的管理模型的管理模型3.3 SNMPv1的基本操作的基本操作 3.4 SNMPv1协议数据单元协议数据单元3.5 SNMPv1的操作实例的操作实例3.6 SNMPv1 报文解析报文解析 3.1 SNMP 的发展q在在TCP/IPTCP/IP的早期开发中,网络管理问题并未得到足够的重的早期开发中,网络管理问题并未得到足够的重视,直到上世纪视,直到上世纪8080后期,人们才意识到需要开发功能更强,后期,人们才意识到需要开发功能更强,并易于普通网络管理人员学习和使用的标准协议并易于普通网络管理人员学习和使用的标准协议q19871987年年1111月发布的月发布的SGMPSGMP,成为提供专用网络管理工具的起,成为提供专用网络管理工具的起点q19881988年,年,IABIAB确定了将确定了将SNMPSNMP作为近期解决方案进一步开发作为近期解决方案进一步开发. .q19921992年年7 7月发表了月发表了3 3个增强个增强SNMPSNMP安全性的文件作为建议标准。

      安全性的文件作为建议标准 q19931993年安全版年安全版SNMPv2SNMPv2发布q19991999年年4 4月月IETF SNMPv3IETF SNMPv3工作组提出了工作组提出了RFC2571RFC2571~~RFC2576RFC2576,,形成了形成了SNMPv3SNMPv3的建议 3.2 SNMP3.2 SNMP的管理模型的管理模型管理工作站管理工作站代理代理 网络管理协议网络管理协议 管理信息库管理信息库 被管理设备被管理设备代理代理网络管理工作站网络管理工作站代理代理网桥网桥交换机交换机路由器路由器 服务器服务器集线器集线器SNMPMIB 管理工作站拥有一套数据分析、故障发现等的管理应用软件拥有一套数据分析、故障发现等的管理应用软件 提供网络管理员监视和控制网络的接口提供网络管理员监视和控制网络的接口 能够将网络管理员的命令转换成对远程网络元素能够将网络管理员的命令转换成对远程网络元素的监视和控制的监视和控制 能从网上所有被管实体的能从网上所有被管实体的MIBMIB中提取出信息数据库中提取出信息数据库网络管理工作站网络管理工作站 代理网络管理代理是网络设备中的软件模块网络管理代理是网络设备中的软件模块 对来自管理站的信息查询和动作执行的请求作出响对来自管理站的信息查询和动作执行的请求作出响应应 主动地向管理站提供一些重要的非请求信息主动地向管理站提供一些重要的非请求信息 被管理设备代理代理MIB 网络管理协议管理工作站和代理之间用来交换信息的协议管理工作站和代理之间用来交换信息的协议 提供了一种从网络上的设备中收集网络管理信息的提供了一种从网络上的设备中收集网络管理信息的方法方法 为设备向网络管理工作站报告问题和错误提供了一为设备向网络管理工作站报告问题和错误提供了一种途径种途径 管理信息数据库 管理信息数据库(管理信息数据库(MIBMIB)是一个信息存储库,它)是一个信息存储库,它包含了被管理设备的有关配置和性能的数据。

      包含了被管理设备的有关配置和性能的数据被管理设备被管理设备代理代理MIB 3.3 SNMP基本操作基本操作l SNMP规定了规定了5种协议数据单元种协议数据单元PDU(也就是(也就是SNMP报报文),用来在管理进程和代理之间的交换文),用来在管理进程和代理之间的交换lSNMP有三个基本功能:有三个基本功能:ØGet:管理站读取代理者的:管理站读取代理者的MIB对象值ØSet:管理站设置代理者的:管理站设置代理者的MIB对象值该设置较少对象值该设置较少执行,因为大多数值具有只读访问权,无法进行设置执行,因为大多数值具有只读访问权,无法进行设置ØTrap:代理在管理站未请求的状态下向管理站报告发:代理在管理站未请求的状态下向管理站报告发生的重要事件生的重要事件 SNMP基本操作基本操作qSNMP基本操作基本操作针对以上基本功能,针对以上基本功能,SNMP提供提供5种管理操作种管理操作: - 管理站可以发出三种请求消息管理站可以发出三种请求消息 GetRequest、、GetNextRequest、、SetRequest - 代理者用代理者用GetResponse消息响应消息响应。

      - 发生了特别事件(如被管设备数据超过设置阈值),代发生了特别事件(如被管设备数据超过设置阈值),代理者用理者用Trap消息向管理系统发出警告消息向管理系统发出警告 SNMP基本操作基本操作qSNMP基本操作基本操作针对以上基本功能,针对以上基本功能,SNMP提供提供5种管理操作种管理操作:Øget-request操作:从代理进程处提取一个或多个参数值操作:从代理进程处提取一个或多个参数值Øget-next-request操作:从代理进程处提取紧跟当前参操作:从代理进程处提取紧跟当前参数值的下一个参数值数值的下一个参数值Øset-request操作:设置代理进程的一个或多个参数值操作:设置代理进程的一个或多个参数值Øget-response操作:返回的一个或多个参数值这个操操作:返回的一个或多个参数值这个操作是由代理进程发出的,它是前面三种操作的响应操作作是由代理进程发出的,它是前面三种操作的响应操作Øtrap操作:代理进程主动发出的报文,通知管理进程有某操作:代理进程主动发出的报文,通知管理进程有某些事情发生些事情发生q前面的前面的3种操作是由管理进程向代理进程发出的,后面的种操作是由管理进程向代理进程发出的,后面的2个操个操作是代理进程发给管理进程的。

      作是代理进程发给管理进程的 SNMP的基本操作被管理设备被管理设备代理代理MIBGet RequestGet Next RequestSet RequestGet ResponseTrap从代理进程处提取一个或多个参数值从代理进程处提取一个或多个参数值 从代理进程处提取紧跟当前参数值的下一个参数值从代理进程处提取紧跟当前参数值的下一个参数值 设置代理进程的一个或多个参数值设置代理进程的一个或多个参数值 返回的一个或多个参数值返回的一个或多个参数值 代理进程主动发出的报文,通知管理进程有某些事情发生代理进程主动发出的报文,通知管理进程有某些事情发生 网络管理工作站 协议封装ApplicationHeaderIPHeaderUDPHeaderVersion Community SNMP PDUApplication PDUDLCHeaderTransport PDUNetwork PDUApplicationPDUTransportPDUNetworkPDUData LinkPDUEncapsulated SNMP MessageDataSNMPPDU 3.4 SNMPv1协议数据单元协议数据单元qSNMP报文格式在SNMP管理中,管理站和代理之间交换的管理信息构成了SNMP报文报文: 版本版本团体名团体名SNMP 协议数据单元协议数据单元5种种 PDU的一种的一种3种Request PDU ,1种Response PDU,1种Trap PDUnThe length of SNMP messages should not exceed 484 octets. 1、公共、公共SNMP首部首部   q共有三个字段:共有三个字段:((1))版本版本,写入版本字段的是版本号减,写入版本字段的是版本号减 1。

      对于对于 SNMPv1应应写入写入0 ((2))团体名(团体名(community)),团体名就是一个字符串,作为,团体名就是一个字符串,作为管理进程和代理进程之间的明文口令,常用的是管理进程和代理进程之间的明文口令,常用的是 6 个字个字符符“public” ((3))PDU 类型类型,根据,根据 PDU 的类型,填入的类型,填入0--4中的一个数字中的一个数字其对应关系下表所示其对应关系下表所示 3.4 SNMPv1协议数据单元协议数据单元 PDU类型类型名称名称0get-request1get-next-request2get-response3set-request4trapPDU类型类型 SNMP PDU定义PDU ::= SEQUENCE {request-id INTEGER,error-status INTEGER {noError(0),tooBig(1),noSuchName(2),badValue(3),readOnly(4),genErr(5)},error-index INTEGER,variable-bindingsSEQUENCE OF {nameObjectName,valueObjectSyntax}} GetRquest ::=GetNextRequest ::=GetResponse ::=SetRequest ::=Trap ::=[0] PDU[1] PDU[2] PDU[3] PDU[4] Trap-PDUFive SNMP PDUs:PDU: Protocol Data Unit 4.2 SNMPv1协议数据单元qSNMP PDU格式SNMP报文中的报文中的Request/Response PDU: SNMP报文报文变量绑定表变量绑定表 qSNMP PDU格式Ø除过除过Trap 之外的之外的4种种PDU格式是相同的,格式是相同的,共有5个字段个字段: (1)PDU类型类型:共5种类型的PDU。

       (2)请求标识请求标识(request-id):赋予每个请求报文唯一的整数,用于区分不同的请求由于在具体实现中请求多是在后台执行,当应答报文返回时要根据其中的请求标识当应答报文返回时要根据其中的请求标识与请求报文配对与请求报文配对请求标识的另一个作用是检测由不可靠的传输服务产生的重复报文3.4 SNMPv1协议数据单元协议数据单元 qSNMP PDU格式Ø除过除过Trap 之外的之外的4种种PDU格式是相同的,格式是相同的,共有5个字段个字段: (3)错误状态错误状态(error-status):表示代理在处理管理站的请求时可能出现的各种错误,共有5种种错误状态:差错代码差错代码名  字名  字含  义含  义0noError正确正确1tooBig回答超出回答超出SNMP报文容许大小报文容许大小2noSuchName对不存在的变量操作对不存在的变量操作3badValue对无效值或无效语法的对无效值或无效语法的set操作操作4readOnly管理进程试图修改一个只读变量管理进程试图修改一个只读变量5genErr某些其他的差错某些其他的差错3.4 SNMPv1协议数据单元协议数据单元 qSNMP PDU格式Ø除过除过Trap 之外的之外的4种种PDU格式是相同的,格式是相同的,共有5个字段个字段: (4)错误索引错误索引(error-index):当出现noSuchName、badValue、或 readOnly 差错时,由代理进程在回答时设置的一个整数,它指明有差错的变量在变量列表中的偏移。

        (5)变量绑定表变量绑定表(variable-binding):变量名和对应值的表,说明要检索(get)或设置(set)的所有变量及其值在Get和GetNext操作中,发送实体将变量的值置为NULL,接收实体在返回的GetResponse PDU中设置为变量的实际值3.4 SNMPv1协议数据单元协议数据单元 qSNMP PDU格式格式Ø除过除过Trap 之外的之外的4种种PDU格式之格式之1:GetRequest PDU((1))PDU类型:指明这是类型:指明这是GetRequest PDU  ((2)请求标识()请求标识(request-id):管理站发送实体为每一个请求分配一):管理站发送实体为每一个请求分配一个编号,用以标识同一代理的多个未完成的请求通过这些编号,管理个编号,用以标识同一代理的多个未完成的请求通过这些编号,管理站可以把将要到来的响应与相关的未完成请求对应起来站可以把将要到来的响应与相关的未完成请求对应起来3)错误状态()错误状态(error-status)取值)取值noError(0)((4)错误索引()错误索引(error-index):取值为):取值为0((5)变量绑定表()变量绑定表(variable-binding):被请求的对象实例列表。

      被请求的对象实例列表0 03.4 SNMPv1协议数据单元协议数据单元 qSNMP PDU格式格式Ø除过除过Trap 之外的之外的4种种PDU格式之格式之2:GetNextRequest PDU 和和GetRequest PDU十分相似,它们有相同的数据格式和数据交换模十分相似,它们有相同的数据格式和数据交换模式,不同之处仅仅在于:式,不同之处仅仅在于:GetRequest PDU的变量绑定表中的每个变量指的是将要被返回值的的变量绑定表中的每个变量指的是将要被返回值的当前对象实例,而对于当前对象实例,而对于GetNextRequest PDU,每个变量将要返回,每个变量将要返回的是按词典顺序的下一个对象实例的值的是按词典顺序的下一个对象实例的值0 03.4 SNMPv1协议数据单元协议数据单元 qSNMP PDU格式格式Ø除过除过Trap 之外的之外的4种种PDU格式之格式之3:SetRequest PDU 也和也和GetRequest PDU十分相似,它们有相同的数据格式和数据交换十分相似,它们有相同的数据格式和数据交换模式,不同之处仅仅在于:模式,不同之处仅仅在于:SetRequest 用来写对象的值,用来写对象的值, GetRequest 用来读对象的值。

      用来读对象的值0 03.4 SNMPv1协议数据单元协议数据单元 qSNMP PDU格式 SNMP报文中的报文中的Trap PDU: SNMP报文报文变量绑定表变量绑定表3.4 SNMPv1协议数据单元协议数据单元 Trap-PDUTrap-PDU ::= [4]IMPLICIT SEQUENCE {enterprise OBJECT IDENTIFIER,agent-addr NetworkAddress, generic-trapINTEGER { coldStart(0), warmStart(1), linkDown(2), linkUp(3), authenticationFailure(4), egpNeighborLoss(5), enterpriseSpecific(6)},specific-trapINTEGER,time-stampTimeTicks,variable-bindingsVarBindList } EnterpriseEnterprise: Type of Object generating trap.Agent AddressAgent Address:Address of object generating trap.Generic TrapGeneric Trap:Generic trap type.Specific TrapSpecific Trap:Enterprise specific trap.Time StampTime Stamp:Time elapsed between the last initialization of the network entity and the generation of the trap. Variable BindingsVariable Bindings“Interesting” informationPDU type enterprise agent-addr generic-trapvariable-bindingsspecific-trap time-stamp qSNMP PDU格式格式ØTrap PDU的格式与其他的格式与其他4种不同,它有下列新的字段种不同,它有下列新的字段: (1)企业(企业(enterprise)):产生产生 trap 报文的网络设备报文的网络设备的对象标识符。

      此对象标识符肯定是在对象命名树上的的对象标识符此对象标识符肯定是在对象命名树上的 enterprises 结点结点 {1.3.6.1.4.1} 下面的一棵子树上下面的一棵子树上  (2)代理地址(代理地址(agent-addr)):: 产生产生Trap报文的代理报文的代理的的IP地址 3.4 SNMPv1协议数据单元协议数据单元 (3)一般陷入(一般陷入(generic-trap)):共分为下表的共分为下表的7种类型种类型 trap类型类型名字名字说明说明0coldStart代理完成初始化,这是由于意外或严重错误而导致的代理完成初始化,这是由于意外或严重错误而导致的重启重启1warmStart代理完成重新初始化,这是正常的重启代理完成重新初始化,这是正常的重启2linkDown接口从工作状态转变为故障状态接口从工作状态转变为故障状态3Linkup接口从故障状态转变为工作状态接口从故障状态转变为工作状态4authenticationFailure代理从代理从SNMP管理进程接收到无效共同体的报文管理进程接收到无效共同体的报文5egpNeighborLossEGP路由器进入故障状态路由器进入故障状态6enterpriseSpecific“特定代码特定代码”所指明的代理自定义事件所指明的代理自定义事件3.4 SNMPv1协议数据单元协议数据单元 SNMPv1协议数据单元 (4)特殊陷入(特殊陷入(specific-trap)):若若generic-trap类型为类型为6,,则指明代理自定义的事件,否则为则指明代理自定义的事件,否则为0。

      (5)时间戳(时间戳(time-stamp)):指明自代理进程初始化到指明自代理进程初始化到trap报告的事件发生所经历的时间报告的事件发生所经历的时间 SNMP报文小结 SNMPv1协议数据单元q报文应报文应答序列答序列 161161161162 SNMPv1协议数据单元q报文应答序列报文应答序列 前图说明:ØSNMP 报文在管理站和代理之间传送,包含GetRequest、GetNextRequest和SetRequest的报文由管理站发出,代理以 GetResponse响应 ØTrap报文由代理发给管理站,不需要应答 Ø管理站可连续发出多个请求报文,然后等待代理返回的应答报文如果在规定的时间内收到应答,则按照请求标识进行配对,亦即应答报文必须与请求报文有应答报文必须与请求报文有相同的请求标识相同的请求标识 SNMP v1 是异步的请求/响应协议q请求响应SNMP的管理操作总是由管理进程发出管理操作请求,然后由管理代理执行请求并发回响应q异步响应的返回顺序与请求发送的顺序并不一定要相同,甚至不要求响应一定能够返回 SNMPv1的操作 q 检索简单对象检索简单对象 - 检索简单的标量对象值可以用Get操作,利用GetRequest和GetNextRequest(根据对象标识树的词典顺序,对于标量对象,对象标识符所指的下一实例就是该对象的值)。

      - 要一次可以检索多个标量对象的值,在请求PDU的“变量绑定表”中包含多个变量即可 SNMPv1的操作 q 检索简单对象检索简单对象 (1)利用GetRequest检索例子例子1 ::管理站希望从代理处提取管理站希望从代理处提取udp组中的所有简单对象,则发出组中的所有简单对象,则发出PDU::GetRequest (udpInDatagrams.0,udpNoPorts.0, udpInError.0,udpOutDatagrams.0 )如果代理支持所有这些对象,则返回一个包含这如果代理支持所有这些对象,则返回一个包含这4个对象值的个对象值的PDU: GetResponse ((udpInDatagrams.0=100),(udpNoPorts.0=5), (udpInError.0=2),(udpOutDatagrams.0=300))10052300 SNMPv1的操作 q 检索简单对象检索简单对象 (1)利用GetRequest检索例子例子1::GetResponse ((udpInDatagrams.0= ),(udpNoPorts.0=??), (udpInError.0= ),(udpOutDatagrams.0= ))如果有一个对象不被支持,则代理将返回一个含有错误代码如果有一个对象不被支持,则代理将返回一个含有错误代码“NoSuchName”的GetResponse PDU,而不返回任何其他对象的值。

      而不返回任何其他对象的值NoSuchName SNMPv1的操作 q 检索简单对象检索简单对象 ((1)利用)利用GetRequest检索检索代理在接收到一个代理在接收到一个Get请求后,返回一个请求后,返回一个GetResponse PDU做响应:做响应:Ø 如果代理能够为收到的请求如果代理能够为收到的请求PDU中变量绑定列表的所有中变量绑定列表的所有变量提供值,则变量提供值,则GetResponse PDU为变量绑定表中的为变量绑定表中的每个变量赋一个值每个变量赋一个值要么所有请求都被返回要么所有请求都被返回Ø 如果其中任何一个变量的值没能得到,则所有变量的值如果其中任何一个变量的值没能得到,则所有变量的值均不返回均不返回要么一个也不返回要么一个也不返回所以,对所以,对Get请求的响应是请求的响应是原子性的原子性的 SNMPv1的操作 q 检索简单对象检索简单对象 (2)用GetNextRequest检索同上例同上例 ::管理站希望从代理处提取管理站希望从代理处提取udp组中的所有简单对象,还可以发组中的所有简单对象,还可以发出如下的出如下的PDU::GetNextRequest (udpInDatagrams,udpNoPorts, udpInError,udpOutDatagrams)其中其中:udpInDatagrams的的OID为为,udpNoPorts的的OID为为,udpInError的的OID为为,udpOutDatagrams的的OID为为问题:这些变量名对应的下一个对象实例是什么?问题:这些变量名对应的下一个对象实例是什么? SNMPv1的操作 q 检索简单对象检索简单对象 (2)利用GetNextRequest检索所以:所以:管理发送管理发送GetNext请求请求GetNextRequest (udpInDatagrams,udpNoPorts, udpInError,udpOutDatagrams)代理返回代理返回GetResponse ((udpInDatagrams.0=100),(udpNoPorts.0=5), (udpInError.0=2),(udpOutDatagrams.0=300)) SNMPv1的操作 q 检索简单对象检索简单对象 (2)用GetNextRequest检索假设:假设:代理不支持管理站对代理不支持管理站对udpNoPorts的访问:的访问:GetNextRequest (udpInDatagrams,udpNoPorts, udpInError,udpOutDatagrams)则代理返回的响应是则代理返回的响应是: GetResponse ((udpInDatagrams.0=100),(udpInError.0=2), (udpInError.0=2),(udpOutDatagrams.0=300))由此看出:由此看出: GetNextRequest 比比GetRequest 更高效、更灵活。

      更高效、更灵活 Get-Next Request:Non-Leaf Object:Leaf Object123456MIB Tree :In SNMP, Only leaf objects have values.* SNMPv1的操作 q 检索简单对象检索简单对象 代理方,当发生有一个对象的值得不到的情况时,则错误状态字段可能返回下列错误之一 :• noSuchName • tooBig • genError SNMPv1操作 q 检索未知对象检索未知对象如果管理站发出一个命令如果管理站发出一个命令 GetNextRequest(udpInDatagrams.0) 得到代理的响应是什么?得到代理的响应是什么? GetResponse(udpNoPorts.0=5) 10052300 SNMPv1的操作 q 检索未知对象检索未知对象GetNext命令检索变量名指示的下一个对象实例,但是并不要求变量名命令检索变量名指示的下一个对象实例,但是并不要求变量名是对象标识符,或者是实例标识符是对象标识符,或者是实例标识符例如:例如:标识符标识符udpInDatagrams.2并不表示任何对象如果管理站发并不表示任何对象。

      如果管理站发出一个命令出一个命令 GetNextRequest(udpInDatagrams.2) 得到代理的响应是得到代理的响应是 GetResponse(udpNoPorts.0=5) 这说明代理没有检查标识符这说明代理没有检查标识符udpInDatagrams.2的有效性,而是直接的有效性,而是直接查找查找下一个有效的标识符,得到下一个有效的标识符,得到udpInDatagrams.0,然后返回了,然后返回了udpInDatagrams.0的的下一个对象实例下一个对象实例udpNoPorts.0 SNMPv1的操作 q 检索未知对象检索未知对象利用GetNext的这个特性可以发现MIB的结构例如:例如:管理站不知道udp组有哪些变量,先试着发出命令:GetNextRequest(udp)得到的响应是:GetResponse(udpInDatagrams.0=100) 这样管理站知道了udp组的第一个对象,还可以继续照这样找到其他管理对象 SNMPv1操作 q 检索表对象检索表对象利用GetNext可有效地搜索表对象例子例子1::考虑如图的例子: SNMPv1的操作 q 检索表对象利用GetNext可有效地搜索表对象。

      例子例子1::如果我们发出下面的命令,检索ifNumber的值:GetRequest( 1.3.6.1.2.1.2.1.0)GetResponse(2)我们知道有两个接口如果我们进一步想知道每个接口的数据速率,则可以用下面的命令检索if表的第五个元素:GetRequest(1.3.6.1.2.1.2.2.1.5.1)最后的1是索引项ifIndex的值得到的响应是:GetResponse(100000000)说明第一个接口的数据速率是100Mbps SNMPv1的操作 q 检索表对象利用GetNext可有效地搜索表对象例子例子2::如果我们发出的是命令:GetNextRequest(1.3.6.1.2.1.2.2.1.5.1) 结果? 则得到的是第二个接口的数据速率GetResponse(56000)等价于:GetRequest(1.3.6.1.2.1.2.2.1.5.2)说明第二个接口的数据速率是56kbps 4.3 SNMPv1的操作 q 检索表对象例子例子3::考虑上面的表:考虑上面的表:假定管理站不知道该表的行数而想检索整个表,则可以连续使用假定管理站不知道该表的行数而想检索整个表,则可以连续使用GetNext命令:命令: GetNextRequest (ipRouteDest,ipRouteMetric1, ipRouteNextHop)得到响应:得到响应:GetResponse(ipRouteDest.9.1.2.3=9.1.2.3, ipRouteMetric1.9.1.2.3=3, ipRouteNextHop.9.1.2.3=99.0.0.3)以上是第一行的值以上是第一行的值 INDEX 4.3 SNMPv1的操作 q 检索表对象检索表对象例子例子3::检索下一行:检索下一行:GetNextRequest(ipRouteDest.9.1.2.3,ipRouteMetric1.9.1.2.3, ipRouteNextHop.9.1.2.3)GetResponse(ipRouteDest.10.0.0.51=10.0.0.51, ipRouteMetric1.10.0.0.51=5,ipRouteNextHop.10.0.0.51=89.1.1.42)继续检索第三行:继续检索第三行:GetNextRequest(ipRouteDest.10.0.0.51,ipRouteMetric1.10.0.0.51, ipRouteNextHop.10.0.0.51)GetResponse(ipRouteDest.10.0.0.99=10.0.0.99, ipRouteMetric1.10.0.0.99=5,ipRouteNextHop.10.0.0.99=89.1.1.42)表中已没有下一行了,但管理站并不知道,所以继续检索第四行:表中已没有下一行了,但管理站并不知道,所以继续检索第四行:GetNextRequest(ipRouteDest.10.0.0.99,ipRouteMetric1.10.0.0.99, ipRouteNextHop.10.0.0.99)GetResponse(ipRouteDest.9.1.2.3=3,ipRouteMetric1.9.1.2.3=99.0.0.3, ipNetToMediaIfIndex.1.3=1)返回的对象名和请求不一致,已经检出了表之外的对象。

      所以管理站此刻知道返回的对象名和请求不一致,已经检出了表之外的对象所以管理站此刻知道该表只有该表只有3行 SNMPv1的操作 q 表的更新和删除表的更新和删除——Set请求- Set用于设置或更新变量的值其用于设置或更新变量的值其PDU格式与格式与Get是相同是相同的,但的,但在变量绑定表中必须包含在变量绑定表中必须包含要设置的要设置的变量名变量名和和变量值变量值 对于对于Set 请求的应答也是请求的应答也是GetResponse,,同样是同样是原子性原子性的:的:Ø 如果所有的变量都可以设置,则更新所有变量的值,并如果所有的变量都可以设置,则更新所有变量的值,并在应答的在应答的GetResponse中确认变量的新值;中确认变量的新值;Ø 如果至少有一个变量的值不能设置,则所有变量的值都如果至少有一个变量的值不能设置,则所有变量的值都保持不变,并在错误状态中指明出错的原因保持不变,并在错误状态中指明出错的原因 SNMPv1的操作 q 表的更新和删除表的更新和删除Set出错的原因与Get是类似Ø tooBigØ noSuchNameØ genError然而若有一个变量的名字和要设置的值在类型、长度或实际值方面不匹配,则返回错误条件Ø badValue。

      q 表的更新和删除表的更新和删除例子例子1::再一次考虑上表,想再一次考虑上表,想改变列对象改变列对象ipRouteMetric1的第一个实例的值,则可以发出命令的第一个实例的值,则可以发出命令 ::SetRequest(ipRouteMetric1.9.1.2.3=9) 得到的应答是:得到的应答是:GetResponse(ipRouteMetric1.9.1.2.3=9)其效果是该对象实例的值由其效果是该对象实例的值由3变成了变成了9 q 表的更新和删除表的更新和删除例子例子2::想增加一行,则发出下面的命令:SetRequest( ipRouteDest.11.3.3.12=11.3.3.12, ipRouteMetric1.11.3.3.12=9, ipRouteNextHop.11.3.3.12 =91.0.0.5)这个命令的执行结果是什么?这个命令的执行结果是什么?代理接受这个命令,生成一个新的行,返回应答:代理接受这个命令,生成一个新的行,返回应答:GetResponse(ipRouteDest.11.3.3.12=11.3.3.12, ipRouteMetric1.11.3.3.12=9, ipRouteNextHop.11.3.3.12=91.0.0.5) SNMPv1的操作的操作 q 表的更新和删除表的更新和删除例子例子3::要删除表的行,可以把一个对象的值置为要删除表的行,可以把一个对象的值置为invalid::SetRequest(ipRouteType.7.3.5.3=invalid) 得到的响应说明表行确已删除:得到的响应说明表行确已删除:GetResponse(ipRouteType.7.3.5.3=invalid) 在在MIB-2中,只有两种表的行是可删除的:中,只有两种表的行是可删除的:ipRouteTable包含包含ipRouteType,,可取值可取值invalid;;ipNetToMediaTable包含包含ipNetToMediaType,,可取可取值值invalid。

      SNMPv1的操作的操作 q 陷入操作陷入操作 (trap)陷入是由代理向管理站发出的异步事件报告,不需要响应陷入是由代理向管理站发出的异步事件报告,不需要响应Ø SNMPv1规定了规定了7种陷入条件种陷入条件(一般陷入)(一般陷入)coldStart(0)、、warmStart(1)linkDown(2)、、linkUp(3)authenticationFailure(4)egpNeighborLoss(5)enterpriseSpecific(6)Ø设备制造商定义的陷入设备制造商定义的陷入(特殊陷入)(特殊陷入) SNMP 报文解析报文解析 SNMP 报文解析报文解析0000 50 78 4c 70 c3 e3 00 0d 87 cb d9 d8 08 00 45 00 PxLp..........E.0010 44 a7 4a 00 00 80 11 5e 8d 0a 0a 10 0f 0a 0a .D.J....^.......0020 10 af 0a ed 00 a1 00 30 5c 8c 30 26 02 01 00 04 .......0\.0&....0030 06 70 75 62 6c 69 63 a1 19 02 02 00 99 02 01 00 .public.........0040 02 01 00 30 0d 30 0b 06 07 2b 06 01 02 01 01 01 ...0.0...+......0050 05 00 用用TLV方法进行编码方法进行编码qSNMP采用基本编码规则采用基本编码规则BER实现实现Manager和和Agent之间的管理信息编码传输之间的管理信息编码传输qSNMP 采用一种特定的编码结构采用一种特定的编码结构ØTLV: Type, Length and ValuelT字段定义数据的类型字段定义数据的类型lL字段定义字段定义V字段的长度字段的长度lV字段定义数据的值字段定义数据的值 用用TLV方法进行编码方法进行编码q例如,例如,INTEGER 15,其,其 T 字段是字段是02,, INTEGER 类型要用类型要用 4 字节编码。

      最后得出字节编码最后得出 TLV 编编码为码为 02 04 00 00 00 0Fq又如又如 IPAddress,其,其 T 字段是字段是 40,,V 字段需要字段需要 4 字节表示,因此得出字节表示,因此得出 IPAddress 192.1.2.3 的的 TLV 编码是编码是 40 04 C0 01 02 03 SNMP报文 解析0000 50 78 4c 70 c3 e3 00 0d 87 cb d9 d8 08 00 45 00 PxLp..........E.0010 44 a7 4a 00 00 80 11 5e 8d 0a 0a 10 0f 0a 0a .D.J....^.......0020 10 af 0a ed 00 a1 00 30 5c 8c 30 26 02 01 00 04 .......0\.0&....0030 06 70 75 62 6c 69 63 a1 19 02 02 00 99 02 01 00 .public.........0040 02 01 00 30 0d 30 0b 06 07 2b 06 01 02 01 01 01 ...0.0...+......0050 05 00 00110000universal16Sequence30是是Identifier octets,表示表示SNMP 消息消息;是是ASN.1的的SEQUENCE类型类型; SNMP报文 解析0000 50 78 4c 70 c3 e3 00 0d 87 cb d9 d8 08 00 45 00 PxLp..........E.0010 44 a7 4a 00 00 80 11 5e 8d 0a 0a 10 0f 0a 0a .D.J....^.......0020 10 af 0a ed 00 a1 00 30 5c 8c 30 26 02 01 00 04 .....0\.0&....0030 06 70 75 62 6c 69 63 a1 19 02 02 00 99 02 01 00 .public.........0040 02 01 00 30 0d 30 0b 06 07 2b 06 01 02 01 01 01 ...0.0...+......0050 05 00 00100110表示表示SNMP 消息的长度消息的长度是是0X26;= ( )1038 SNMP报文 解析0000 50 78 4c 70 c3 e3 00 0d 87 cb d9 d8 08 00 45 00 PxLp..........E.0010 44 a7 4a 00 00 80 11 5e 8d 0a 0a 10 0f 0a 0a .D.J....^.......0020 10 af 0a ed 00 a1 00 30 5c 8c 30 26 02 01 00 04 .....0\.0&....0030 06 70 75 62 6c 69 63 a1 19 02 02 00 99 02 01 00 .public.........0040 02 01 00 30 0d 30 0b 06 07 2b 06 01 02 01 01 01 ...0.0...+......0050 05 00 0000001002 01 00 表示版本号表示版本号为为SNMPv1(0) 0000000100000000TLV SNMP报文 解析0000 50 78 4c 70 c3 e3 00 0d 87 cb d9 d8 08 00 45 00 PxLp..........E.0010 44 a7 4a 00 00 80 11 5e 8d 0a 0a 10 0f 0a 0a .D.J....^.......0020 10 af 0a ed 00 a1 00 30 5c 8c 30 26 02 01 00 04 .....0\.0&....0030 06 70 75 62 6c 69 63 a1 19 02 02 00 99 02 01 00 .public.........0040 02 01 00 30 0d 30 0b 06 07 2b 06 01 02 01 01 01 ...0.0...+......0050 05 00 00000100TLV SNMP报文 解析0000 50 78 4c 70 c3 e3 00 0d 87 cb d9 d8 08 00 45 00 PxLp..........E.0010 44 a7 4a 00 00 80 11 5e 8d 0a 0a 10 0f 0a 0a .D.J....^.......0020 10 af 0a ed 00 a1 00 30 5c 8c 30 26 02 01 00 04 .....0\.0&....0030 06 70 75 62 6c 69 63 a1 19 02 02 00 99 02 01 00 .public.........0040 02 01 00 30 0d 30 0b 06 07 2b 06 01 02 01 01 01 ...0.0...+......0050 05 00 0000010000000110TLV SNMP报文 解析0000 50 78 4c 70 c3 e3 00 0d 87 cb d9 d8 08 00 45 00 PxLp..........E.0010 44 a7 4a 00 00 80 11 5e 8d 0a 0a 10 0f 0a 0a .D.J....^.......0020 10 af 0a ed 00 a1 00 30 5c 8c 30 26 02 01 00 04 .....0\.0&....0030 06 70 75 62 6c 69 63 a1 19 02 02 00 99 02 01 00 .public.........0040 02 01 00 30 0d 30 0b 06 07 2b 06 01 02 01 01 01 ...0.0...+......0050 05 00 0000010000000110TLV”public”的ASCII值 表示表示 团体名为团体名为public SNMP PDU 解析0000 50 78 4c 70 c3 e3 00 0d 87 cb d9 d8 08 00 45 00 PxLp..........E.0010 44 a7 4a 00 00 80 11 5e 8d 0a 0a 10 0f 0a 0a .D.J....^.......0020 10 af 0a ed 00 a1 00 30 5c 8c 30 26 02 01 00 04 .....0\.0&....0030 06 70 75 62 6c 69 63 a1 19 02 02 00 99 02 01 00 .public.........0040 02 01 00 30 0d 30 0b 06 07 2b 06 01 02 01 01 01 ...0.0...+......0050 05 00 1  0  1   0  0    0 0  1表示表示 PDU type 为为GetNextRequest(1) T上下文标签上下文标签1Sequence SNMP PDU 解析0000 50 78 4c 70 c3 e3 00 0d 87 cb d9 d8 08 00 45 00 PxLp..........E.0010 44 a7 4a 00 00 80 11 5e 8d 0a 0a 10 0f 0a 0a .D.J....^.......0020 10 af 0a ed 00 a1 00 30 5c 8c 30 26 02 01 00 04 .....0\.0&....0030 06 70 75 62 6c 69 63 a1 19 02 02 00 99 02 01 00 .public.........0040 02 01 00 30 0d 30 0b 06 07 2b 06 01 02 01 01 01 ...0.0...+......0050 05 00 表示表示SNMP PDU的长度的长度是是0X19个个octet 00011001= ( )1025 SNMP PDU 解析0000 50 78 4c 70 c3 e3 00 0d 87 cb d9 d8 08 00 45 00 PxLp..........E.0010 44 a7 4a 00 00 80 11 5e 8d 0a 0a 10 0f 0a 0a .D.J....^.......0020 10 af 0a ed 00 a1 00 30 5c 8c 30 26 02 01 00 04 .....0\.0&....0030 06 70 75 62 6c 69 63 a1 19 02 02 00 99 02 01 00 .public.........0040 02 01 00 30 0d 30 0b 06 07 2b 06 01 02 01 01 01 ...0.0...+......0050 05 00 00000010TLVASN.1的INTEGER类型 SNMP PDU 解析0000 50 78 4c 70 c3 e3 00 0d 87 cb d9 d8 08 00 45 00 PxLp..........E.0010 44 a7 4a 00 00 80 11 5e 8d 0a 0a 10 0f 0a 0a .D.J....^.......0020 10 af 0a ed 00 a1 00 30 5c 8c 30 26 02 01 00 04 .....0\.0&....0030 06 70 75 62 6c 69 63 a1 19 02 02 00 99 02 01 00 .public.........0040 02 01 00 30 0d 30 0b 06 07 2b 06 01 02 01 01 01 ...0.0...+......0050 05 00 00000010TLV00000010 SNMP PDU 解析0000 50 78 4c 70 c3 e3 00 0d 87 cb d9 d8 08 00 45 00 PxLp..........E.0010 44 a7 4a 00 00 80 11 5e 8d 0a 0a 10 0f 0a 0a .D.J....^.......0020 10 af 0a ed 00 a1 00 30 5c 8c 30 26 02 01 00 04 .....0\.0&....0030 06 70 75 62 6c 69 63 a1 19 02 02 00 99 02 01 00 .public.........0040 02 01 00 30 0d 30 0b 06 07 2b 06 01 02 01 01 01 ...0.0...+......0050 05 00 00000010TLV00000010000000001001100102 02 0099 表示表示Request id为为0x00000099 SNMP PDU 解析0000 50 78 4c 70 c3 e3 00 0d 87 cb d9 d8 08 00 45 00 PxLp..........E.0010 44 a7 4a 00 00 80 11 5e 8d 0a 0a 10 0f 0a 0a .D.J....^.......0020 10 af 0a ed 00 a1 00 30 5c 8c 30 26 02 01 00 04 .....0\.0&....0030 06 70 75 62 6c 69 63 a1 19 02 02 00 99 02 01 00 .public.........0040 02 01 00 30 0d 30 0b 06 07 2b 06 01 02 01 01 01 ...0.0...+......0050 05 00 00000010TLVASN.1的INTEGER类型 SNMP PDU 解析0000 50 78 4c 70 c3 e3 00 0d 87 cb d9 d8 08 00 45 00 PxLp..........E.0010 44 a7 4a 00 00 80 11 5e 8d 0a 0a 10 0f 0a 0a .D.J....^.......0020 10 af 0a ed 00 a1 00 30 5c 8c 30 26 02 01 00 04 .....0\.0&....0030 06 70 75 62 6c 69 63 a1 19 02 02 00 99 02 01 00 .public.........0040 02 01 00 30 0d 30 0b 06 07 2b 06 01 02 01 01 01 ...0.0...+......0050 05 00 00000010TLV00000001 SNMP PDU 解析0000 50 78 4c 70 c3 e3 00 0d 87 cb d9 d8 08 00 45 00 PxLp..........E.0010 44 a7 4a 00 00 80 11 5e 8d 0a 0a 10 0f 0a 0a .D.J....^.......0020 10 af 0a ed 00 a1 00 30 5c 8c 30 26 02 01 00 04 .....0\.0&....0030 06 70 75 62 6c 69 63 a1 19 02 02 00 99 02 01 00 .public.........0040 02 01 00 30 0d 30 0b 06 07 2b 06 01 02 01 01 01 ...0.0...+......0050 05 00 00000010TLV000000100000000002 01 00 表示表示error-statue为为0 SNMP PDU 解析0000 50 78 4c 70 c3 e3 00 0d 87 cb d9 d8 08 00 45 00 PxLp..........E.0010 44 a7 4a 00 00 80 11 5e 8d 0a 0a 10 0f 0a 0a .D.J....^.......0020 10 af 0a ed 00 a1 00 30 5c 8c 30 26 02 01 00 04 .....0\.0&....0030 06 70 75 62 6c 69 63 a1 19 02 02 00 99 02 01 00 .public.........0040 02 01 00 30 0d 30 0b 06 07 2b 06 01 02 01 01 01 ...0.0...+......0050 05 00 00000010TLV000000100000000002 01 00 表示表示error-index为为0 在Windows Server 2003上启用SNMP添加添加“ “简单网络管理协议(简单网络管理协议(SNMPSNMP))” ” 在Windows Server 2003上启用SNMP设置共同体字符串设置共同体字符串 在Cisco设备上启用SNMP设置只读字符串设置只读字符串ØØRouter(config)#snmp-server community Router(config)#snmp-server community stringstring ro ro设置读写字符串设置读写字符串ØØRouter(config)#snmp-server community Router(config)#snmp-server community stringstring rw rw注:以上命令适用于注:以上命令适用于IOS 12.0IOS 12.0以上版本以上版本 SNMPv1的局限性 Ø 基本的基本的SNMPv1标准只提供简单的团体名认证机制。

      因此大标准只提供简单的团体名认证机制因此大多数厂商仅仅提供有限的或者索性不支持多数厂商仅仅提供有限的或者索性不支持Set操作基本的基本的SNMPv1更适合于对网络进行监视而不是控制更适合于对网络进行监视而不是控制Ø SNMPv1的的Trap报文是没有应答的,管理站是否收到陷入报报文是没有应答的,管理站是否收到陷入报文,代理不得而知这样可能丢掉重要的管理信息文,代理不得而知这样可能丢掉重要的管理信息Ø SNMPv1不适合检索大量数据,例如检索整个表中的数据不适合检索大量数据,例如检索整个表中的数据Ø SNMPv1的管理信息库的管理信息库MIB-2支持的管理对象是很有限的,支持的管理对象是很有限的,不足以完成复杂的管理功能不足以完成复杂的管理功能 SNMPv1的局限性 Ø SNMPv1不支持管理站之间的通信,例如:一个管理不支持管理站之间的通信,例如:一个管理系统是无法了解另一个管理系统所管理的网络和设备的系统是无法了解另一个管理系统所管理的网络和设备的而这一点在分布式网络管理中是很需要的而这一点在分布式网络管理中是很需要的Ø 对于大型网络管理,对于大型网络管理,SNMPv1的查询机制可能导致大的查询机制可能导致大量的管理信息,占用过多的网络资源。

      量的管理信息,占用过多的网络资源Ø注:以上局限性有很多在注:以上局限性有很多在SNMPv2都有所改进都有所改进。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.