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管理站的其他网络管理操作。

  • 相关阅读:
    nodejs gulp如何获取参数
    nodejs 获取当前路径的方法
    gulp 如何排除文件和文件夹
    小技巧css解决移动端ios不兼容position:fixed属性,无需插件
    代码协议相关
    zen-coding
    directive 实例讲解
    angular api 地址
    一步一步搭建hibernate4+ spring+ struts2
    华为荣耀6 H60-L02/L12(联通版)救砖包【适用于无限重启】
  • 原文地址:https://www.cnblogs.com/gly1120/p/9970088.html
Copyright © 2011-2022 走看看