zoukankan      html  css  js  c++  java
  • 简单网络管理协议SNMP

    版本:

    1.SNMPv1

    时间:1990年

    作用:定义描述和命名管理对象的基本体制(即管理信息结构)、SNMP协议本身。

    优点:

    (1)设计简单、容易实现。

    (2)可扩展性好。

    缺点:

    (1)SNMPv1的SNMP报文中的共同体采用了明文方式,非法用户可以获得在网络上传送的网络管理信息,非法用户可对网络设备进行非法操作。

    (2)没有提供身份验证和加密机制

    (3)只在IP协议上运行,不支持其他网络协议。

    (4)对大块数据获取操作的效率很低,一次操作只能获取一个MIB数据。

    (5)MIB库只支持简单类型的管理对象,不支持复杂类型的管理对象。

    (6)不支持分布式网络管理体系结构,只能用于集中式管理,只能在SNMP管理站和SNMP代理之间通信,不支持SNMP管理站之间的通信。

    2.SNMPv2

    时间:20世纪90年代

    作用:包含之前对SNMPv1所做的各项改进内容,并在保持SNMPv1清晰性和易于实现的基础上,增强了管理功能,提高了安全性。

    特点:

    (1)增加了一些安全机制,安全性包括以下几个方面:

    访问控制:降低误操作引起的网络故障的可能性。

    设定操作权限:防止用户越权操作。

    数据加密:加强数据在网上传输的安全性,防止非法用户获取在网上传输的网络管理信息。

    (2)支持MIB库的表数据结构,增加了get-bulk操作,实现大量数据的同时传输,改进SNMP的效率和性能。

    (3)支持分布式网络管理体系结构,增加SNMp管理站和SNMP管理站之间的信息交换机制。

    (4)扩展了数据类型,支持64位计数器。

    (5)提供包括errors和exceptions在内的更丰富的差错处理。

    (6)增加了inforM操作,使得一个SNMP管理站能够发送Trap给另一个SNMP管理站,并能收到回复。

    (7)提供更精确的数据定义语言。

    (8)可以在多个网络协议上运行,适用于多协议的网络环境。

    3.SNMPv3

    时间:1998年

    特点:

    (1)具有强大的安全性

    (2)具有良好的可扩展性

    (3)具有很强的适应性

    组成模块:

    1)用户安全模块:主要提供SNMPv3新增的三个安全机制中的身份验证、数据加密。

    (1)身份验证:SNMP代理(SNMP管理站)在收到SNMp报文的时候首先确认SNMP报文是否来自具有权限的SNMP管理站(SNMP代理),同时还要确认SNMP报文在传输过程中没有发生改变。

    过程:SNMp管理站和SNMP代理必须共享相同的密钥,SNMP管理站在发送SNMP报文之前,使用该密钥来计算验证码,接着将验证码加到SNMP报文之中,再发送SNMP报文,SNMP代理在收到SNMP报文后,使用相同的密钥从SNMP报文中提取出验证码,得到SNMP报文。

    指导思想:尽可能简单,以便缩短基于SNMP的网络管理系统的研发周期。

    作用:定义计算机网络中管理设备和被管理设备之间的通信规则,包括一系列交互消息和方法,用来实现对被管设备的管理,使得网络管理员能够进行包括规划网络、发现并解决网络问题等在内的网络管理工作。

    基于TCP/IP协议。

    管理模型:管理者-被管代理模式,基于SNMP的管理系统采用典型的客户-服务器体系结构。

    SNMP网络管理系统基本组成部分:

    (1)SNMP管理站

    (2)SNMP代理

    (3)SNMP

    (4)SNMP管理信息库(SNMP-MIB)

    SNMP基本命令:

    1.GetRequest命令

    用于SNMP网络管理系统(客户端)向SNMP代理(服务器)请求指定的MIB对象值(如系统名字、系统自启动后正常运行的时间、系统中的网络接口数等),所请求的MIB变量的对象标识符作为该命令的参数。SNMP代理以Response响应GetRequest。

    SNMP代理收到GetRequest命令后的处理情况:

    (1)指定的MIB对象名在本地MIB中不存在,SNMP代理想SNMP管理返回一个Response,将其中的ERROR-STATUS置为noSuchName,并在ERROR-INDEX中指出该MIB对象名在LIST中的位置。

    (2)SNMP代理将要产生的Response长度大于本地长度限制,将向SNMP代理发送的Response中的ERROR-STATUS置为tooBig、ERROR-INDEX置为0。

    (3)SNMP代理因其他原因不能产生正确的Response命令,将向SNMP代理返回的Response中的ERROR-STATUS置为genErr、ERROR-INDEX置为出错变量在变量LIST中的位置。

    (4)若以上情况都无,则SNMP代理向SNMP管理发送一个Response,其中将包含变量名和相应值得对偶表,ERROR-STATUS置为noError,ERROR-INDEX置为0,request-id域的值与收到GetRequest中的request-id相同。

    2.GetNextRequest命令

    使用SNMP代理查询并提取MIB中紧跟当前参数中的对象标识符的下一个对象的值。SNMP代理以Response响应GetNextRequest。

    GetRequest与GetNextRequest结合使用的场景:

    (1)适合于遍历被管资源MIB的各个表。

    (2)快速地查询连续对象。

    (3)对于不了解的对象,可以采用GetRequest获取前一个对象,再采用GetNextRequest。

    3.GetBulkRequest命令

    查询并提取SNMp代理中的大量数据。

    与GetNextRequest相比:效率更高,通过网络发送的SNMP报文更少,基本重复操作仅局限于SNMP代理中。SNMP代理以Response响应GetBulkRequest。

    4.SetRequest命令

    使SNMP管理站可以初始化或重新设置SNMP代理上指定对象的值(如设置设备的名字、关掉一个端口或清除一个地址解析表中的项),需要修改的对象的对象标识符作为参数法相SNMP代理。

    若SNMP代理修改成功,就向SNMP管理返回确认操作有效的Response;若出错,则向SNMP管理返回包相关出错消息的Response。

    SNMP代理收到SetRequest命令后的处理情况:

    (1)若SetRequest对SNMP代理的MIB中的只读变量提出设置请求,则SNMP代理返回一个Response,并设置error status为noSuchName、error index的值是错误变量在变量list中的位置。

    (2)若SNMP代理收到的SetRequest中的变量对偶中的值、类型、长度不符合要求,则SNMP处理返回一个Response,并置error status为badValue、error index的值是错误变量在list中的位置。

    (3)若SNMP代理将要产生的Response长度超过了本地限制,则SNMP代理返回一个Response,并置error status为tooBig、error index的值是0.

    (4)若其他原因导致SET失败,则SNMP代理返回一个Response,并置error status为genErr、error index的值是错误变量在变量list中的位置。

    (5)一切正常,SNMP代理将按SetRequest命令设置MIB中相应对象的值,并在返回的Response中,置error status为noError、error index的值是0。

    5.Response命令

    Response中填写了被请求对象的值。

    6.Trap命令

    即SNMP陷阱,由SNMP代理主动产生并发送给SNMP管理站的非请求消息,SNMP代理使用Trap命令想SNMP管理站异步地通报所在的网络资源发生了特定的事件(如端口失败,链路状态发生变化,热启动,掉电重新启动等),SNMP管理收到后,做出相应的处理。

    通常SNMP代理进程默认的监听端口为161,用来接收SNMP管理发来的命令;SNMP管理进程用端口162接收来自SNMP代理的命令。

    SNMP工作机制:

    目标:保证网络管理信息可以在网络中任意两点之间传送。

    从网络被管资源中手机网络管理信息的方法:

    1.轮询方式

    采用轮询方式原因:

    (1)为了能够获取实时的被管网络资源的管理数据。

    (2)SNMP不要求消息的可靠性,也不保证SNMP报文正确到达。

    缺陷:无法保证网络管理信息获取的实时性,尤其是无法保证获取错误信息的实时性。

    原因:轮询方式涉及无法优化的轮询周期以及网络设备轮训顺序。

    应用范围:适合小型的、快速的、低价格的网络环境中使用。

    2.基于中断的方法

    当网络设备出现异常事件的时候,如设备冷启动等,设备的SNMP代理主动向SNMP管理站发送陷阱消息,报告所发生的异常情况。

    优势:实时性很强。

    不足:被管设备在产生错误或自陷是需要消耗本身的系统资源。若自陷过程必须向SNMP管理站发送大量信息,被管设备就不得不消耗更多的系统资源来产生自陷,对被管设备的正常运行造成影响,也会影响到接收Trap消息的SNMP管理站的其他网络管理操作。

  • 相关阅读:
    python note 30 断点续传
    python note 29 线程创建
    python note 28 socketserver
    python note 27 粘包
    python note 26 socket
    python note 25 约束
    Sed 用法
    python note 24 反射
    python note 23 组合
    python note 22 面向对象成员
  • 原文地址:https://www.cnblogs.com/gly1120/p/9970088.html
Copyright © 2011-2022 走看看