`
阅读更多

SNMP协议  

   简单网络管理协议(SNMP:Simple Network Management Protocol)是由互联网工程任务组(IETF:Internet Engineering Task Force )定义的一套网络管理协议。该协议基于简单网关监视协议(SGMP:Simple Gateway Monitor Protocol)。利用SNMP,一个管理工作站可以远程管理所有支持这种协议的网络设备,包括监视网络状态、修改网络设备配置、接收网络事件警告等。 虽然SNMP开始是面向基于IP的网络管理,但作为一个工业标准也被成功用于电话网络管理。
1. SNMP基本原理
  SNMP采用了Client/Server模型的特殊形式:代理/管理站模型。对网络的管理与维护是通过管理工作站与SNMP代理间的交互工作完成的。每个SNMP从代理负责回答SNMP管理工作站(主代理)关于MIB 定义信息的各种查询。下图10是NMS公司网络产品中SNMP协议的实现模型。
1.gif

  SNMP代理和管理站通过SNMP协议中的标准消息进行通信,每个消息都是一个单独的数据报。SNMP使用UDP(用户数据报协议)作为第四层协议(传输协议),进行无连接操作。SNMP消息报文包含两个部分:SNMP报头和协议数据单元PDU。数据报结构如下图
2.gif

版本识别符(version identifier):确保SNMP代理使用相同的协议,每个SNMP代理都直接抛弃与自己协议版本不同的数据报。

团体名(Community Name):用于SNMP从代理对SNMP管理站进行认证;如果网络配置成要求验证时,SNMP从代理将对团体名和管理站的IP地址进行认证,如果失败,SNMP从代理将向管理站发送一个认证失败的Trap消息

协议数据单元(PDU):其中PDU指明了SNMP的消息类型及其相关参数。

2. 管理信息库MIB
    IETF规定的管理信息库MIB(由中定义了可访问的网络设备及其属性,由对象识别符(OID:Object Identifier)唯一指定。MIB是一个树形结构,SNMP协议消息通过遍历MIB 树形目录中的节点来访问网络中的设备。  
    下图给出了NMS系统中SNMP可访问网络设备的对象识别树(OID:Object Identifier)结构。
3.gif

下图给出了对一个DS1线路状态进行查询的OID设置例子。  

4.gif

3. SNMP的五种消息类型

SNMP中定义了五种消息类型:Get-Request、Get-Response、Get-Next-Request、Set-Request、Trap  
(1)Get-Request 、Get-Next-Request与Get-Response   
SNMP 管理站用Get-Request消息从拥有SNMP代理的网络设备中检索信息,而SNMP代理则用Get-Response消息响应。Get-Next- Request用于和Get-Request组合起来查询特定的表对象中的列元素。如:首先通过下面的原语获得所要查询的设备的接口数:
{iso org(3) dod(6) internet(1) mgmt(2) mib (1) interfaces(2) ifNumber(2)}
后再通过下面的原语,进行查询(其中第一次用Get-Request,其后用Get-Next-Request):
{iso org(3) dod(6) internet(1) mgmt(2) mib (1) interfaces(2) ifTable(2)}

(2)Set-Request
SNMP管理站用Set-Request 可以对网络设备进行远程配置(包括设备名、设备属性、删除设备或使某一个设备属性有效/无效等)。
(3)Trap
SNMP代理使用Trap向SNMP管理站发送非请求消息,一般用于描述某一事件的发生。

 

SNMP管理信息库MIB  

管理信息库MIB指明了网络元素所维持的变量(即能够被管理进程查询和设置的信息)。MIB 给出了一个网络中所有可能的被管理对象的集合的数据结构。SNMP的管理信息库采用和域名系统DNS相似的树型结构,它的根在最上面,根没有名字。下图画的是管理信息库的一部分,它又称为对象命名(objectnamingtree)。  
mib.gif

管理信息库的对象命名举例

    对象命名树的顶级对象有三个,即ISO、ITU-T和这两个组织的联合体。在ISO的下面有4个结点,其中的饿一个(标号3)是被标识的组织。在其下面有 一个美国国防部(Department of Defense)的子树(标号是6),再下面就是Internet(标号是1)。在只讨论Internet中的对象时,可只画出Internet以下的子 树(图中带阴影的虚线方框),并在Internet结点旁边标注上{1.3.6.1}即可。  在Internet结点下面的第二个结点是mgmt(管理),标号是2。再下面是管理信息库,原先的结点名是mib。1991年定义了新的版本MIB- II,故结点名现改为mib -2,其标识为{1.3.6.1.2.1},或{Internet(1) .2.1}。这种标识为对象标识符。
  最初的结点mib将其所管理的信息分为8个类别,见表1。现在de mib -2所包含的信息类别已超过40个。

  表1 最初的结点mib 管理的信息类别

 mib2.JPG

     应当指出,MIB的定义与具体的网络管理协议无关,这对于厂商和用户都有利。厂商可以在产品(如路由器)中包含SNMP代理软件,并保证在定义新的MIB 项目后该软件仍遵守标准。用户可以使用同一网络管理客户软件来管理具有不同版本的MIB的多个路由器。当然,一个没有新的MIB 项目的路由器不能提供这些项目的信息。
     这里要提一下MIB中的对象{1.3.6.1.4.1},即enterprises(企业),其所属结点数已超过3000。例如IBM为 11.3.6.1.4.1.2},Cisco为{1.3.6.1.4.1.9},Novell为{1.3.6.1.4.1.23}等。世界上任何一个公 司、学校只要用电子邮件发往iana-mib @isi.edu进行申请即可获得一个结点名。这样各厂家就可以定义自己的产品的被管理对象名,使它能用SNMP进行管理。

分享到:
评论

相关推荐

    基于W5500+STM32的SNMP协议应用

    基于W5500+STM32的SNMP协议应用 本文档讲述了基于W5500+STM32的SNMP协议应用,主要概括了W5500简介、SNMP协议简介、Net-SNMP软件包等内容。 一、W5500简介 W5500是韩国WIZnet公司生产的一款以太网控制芯片,它...

    java调用snmp协议

    Java调用SNMP协议主要涉及的是网络管理与监控方面的技术,SNMP(Simple Network Management Protocol,简单网络管理协议)是一种广泛用于网络设备管理和监控的标准协议。在Java中,可以通过一些库来实现对SNMP的支持...

    snmp_Java进行SNMP通信_SNMP协议_snmp配置_常用OID_snmp.jar_snmp4j_.jar

    snmp协议详细讲解.doc ToolsetAdministratorGuide.pdf ToolsetQuickStartGuide.pdf 常用oids.txt 为什么积分越来越少,每次都评论的?别忘了点击评论上方的“五角星”才算评分,评分后就会返回积分+1分!

    SNMP协议详解PDF

    《深入解析SNMP协议》 **一、简述** **1.1 概况** SNMP,即简单网络管理协议(Simple Network Management Protocol),是一种专为网络管理服务设计的应用层协议,最早在1988年由Internet工程任务组织(IETF)提出,...

    ESXI开启snmp协议方法.docx

    ### ESXI开启SNMP协议的方法 #### 一、引言 在现代数据中心环境中,为了确保系统的稳定运行并及时发现潜在的问题,对服务器进行有效的监控变得至关重要。VMware ESXi作为一款广泛使用的虚拟化平台,提供了丰富的...

    SNMP_WALK获取SNMP协议oid的非常好用的工具

    "SNMP_WALK"是利用SNMP协议进行数据查询的一个功能,它能够遍历设备的MIB(Management Information Base)树,获取指定OID(Object Identifier,对象标识符)的所有子节点信息。 SNMP_WALK工具通常是一个命令行实用...

    SNMP Tester 5.2.1(SNMP协议测试软件)

    SNMP Tester 5.2.1 是一个专门用于测试SNMP协议功能的工具,它能帮助用户确保SNMP协议在各种网络环境中正确运行。 该软件包含了以下几个关键组件: 1. **libeay32.dll**:这是OpenSSL库的一部分,提供了加密算法...

    SNMP协议应用程序

    SNMP协议的应用程序则是通过实现SNMP协议来对网络进行监控和管理的软件工具。 SNMP主要由三部分构成:管理站(Manager)、代理(Agent)和管理信息库(MIB,Management Information Base)。管理站是执行管理任务的...

    SNMP的配置开启及H3C设备如何配置SNMP协议

    "SNMP配置开启及H3C设备如何配置SNMP协议" SNMP(Simple Network Management Protocol)是一种应用层协议,用于管理和监控网络设备。SNMP协议由三个部分组成:SNMP网络管理器、SNMP代理和MIB管理信息库。 SNMP网络...

    snmp协议.docsnmp协议.doc

    3. SNMP协议:规定了管理站(Manager)与代理(Agent)之间的通信协议,用于读取、设置MIB对象值和接收陷阱(Trap)通知。 4. 版本识别符和团体名:版本识别符确保双方使用相同版本的SNMP协议,而团体名则用于认证,...

    SNMP协议功能 总体介绍

    SNMP 协议功能总体介绍 SNMP(Simple Network Management Protocol)即简单网络管理协议,是一种无连接协议,为网络管理系统提供了底层网络管理的框架。SNMP 协议的应用范围非常广泛,诸多种类的网络设备、软件和...

    snmp协议详解 下载

    SNMP 协议详解 SNMP(Simple Network Management Protocol)是一种应用层协议,用于管理和监控网络设备。SNMP 协议的主要组成部分包括管理信息库(MIB)、管理信息结构(SMI)、SNMP 协议和安全机制。 管理信息库...

    各种网络设备开通snmp协议

    SNMP协议在网络设备上的应用 SNMP(Simple Network Management Protocol,简单网络管理协议)是一种常用的网络管理协议。SNMP协议允许管理员通过一个management station来监控和管理网络设备。SNMP协议能够提供对...

    ARDUINO单片机SNMP协议代码(Actual_SNMP_Agent.zip)

    标题中的"ARDUINO单片机SNMP协议代码(Actual_SNMP_Agent.zip)"指出,这个压缩包包含了使用ARDUINO单片机实现SNMP(简单网络管理协议)的源代码。SNMP是一种广泛应用于网络设备管理和监控的标准协议,它允许系统...

    snmp协议控制利盟打印机

    在本例中,我们将深入探讨如何利用SNMP协议来控制利盟打印机,特别是进行热重启、调整进纸盒设置以及获取打印机的状态。 首先,SNMP协议基于TCP/IP协议栈,使用UDP协议进行通信,其主要由三部分组成:管理站...

    利用snmp协议获取机器设备信息 代码

    本主题主要探讨如何利用SNMP协议和Java编程语言来获取机器设备的信息。 在Java中,我们可以使用SNMP库来实现对设备信息的获取。常见的Java SNMP库有SNMP4J,这是一个开放源码的SNMP API,支持SNMP v1、v2c和v3。...

    C#实现snmp协议的部分功能源代码

    在C#中实现SNMP协议,可以利用.NET框架提供的System.Management命名空间,或者使用第三方库来简化开发过程。 首先,我们需要了解SNMP的基本概念: 1. SNMP版本:SNMP有三个主要版本,分别是SNMPv1、SNMPv2c和SNMPv3...

    snmp.rar_C++实现snmp协议_SNMP_SNMP 开发_snmp -baijiahao_snmp c++

    利用C++实现SNMP协议,包括最常用的GET,GETNEXT操作等。

Global site tag (gtag.js) - Google Analytics