`
forhope
  • 浏览: 366937 次
  • 性别: Icon_minigender_1
  • 来自: 帝都
社区版块
存档分类
最新评论
阅读更多
SNMP是英文“Simple Network Management Protocol”的缩写,中文意思是“简单网络管理协议”。SNMP是目前最常用的环境管理协议。SNMP被设计成与协议无关,所以它可以在IP,IPX,AppleTalk,OSI以及其他用到的传输协议上被使用。SNMP是一系列协议组和规范,它们提供了一种从网络上的设备中收集网络管理信息的方法。SNMP也为设备向网络管理工作站报告问题和错误提供了一种方法。
    目前,几乎所有的网络设备生产厂家都实现了对SNMP的支持。领导潮流的SNMP是一个从网络上的设备收集管理信息的公用通信协议。设备的管理者收集这些信息并记录在管理信息库(MIB)中。这些信息报告设备的特性、数据吞吐量、通信超载和错误等。MIB有公共的格式,所以来自多个厂商的SNMP管理工具可以收集MIB信息,在管理控制台上呈现给系统管理员。
    SNMP提供了一种统一的、跨平台的设备管理办法。

概念太抽象,先来看一个例子。
我们来做一个最简单的Snmp操作:获取一台机器的机器名,假设其IP是192.168.1.1。
    首先要给192.168.1.1安装Snmp环境。Window组件的管理监视工具里包含Snmp,只需要安装一下就可以了。Snmp默认的通信端口是161/162,有的系统需要手动设置,这个可以通过创建筛选器列表来实现,具体怎么设置网上很多,大家可以去搜索一下。另外需要关闭192.168.1.1的防火墙。

接下来需要一个能够进行Snmp通信的工具,比较简单的有snmputil,大家可以去网上下载。
snmputil的命令规则是:
snmputil [get|getnext|walk] agent community oid [oid ...]
[get|getnext|walk]为消息类型,我们此次进行的操作是get
agent指Snmp代理即你想进行操作的网络设备的ip或名称,即192.168.1.1
community:分区域,即密码,默认是public
oid:想要操作的MIB数据对象号,设备名称对应的MIB对象号是.1.3.6.1.2.1.1.5.0

打开命令行窗口,进入snmputil所在路径,键入
snmputil get 192.168.1.1 public .1.3.6.1.2.1.1.5.0
如果参数都正确,控制台就会显示出192.168.1.1的机器名。

不知道现在大家对snmp有没有一个感性的认识,通过get、set这样的操作,我们就可以读取、控制网络设备了。

接下来学习一下和Snmp有关的基本概念吧

代理和管理站的模型

Snmp分2种角色:SNMP管理站(manager,我们的本机127.0.0.1)和SNMP代理(agent,我们操作的机器,比如192.168.1.1)。代理是实际网络设备中用来实现SNMP功能的部分。代理在UDP的161端口接收NMS的读写请求消息,管理站在UDP的162端口接收代理的事件通告消息。所以,一旦获取设备的访问权限(community,默认为public),就可以访问设备信息、改写和配置设备参数。由于采用UDP协议,不需要在代理和管理站之间保持连接。

SNMP的操作命令

SNMP协议之所以易于使用,这是因为它对外提供了三种用于控制MIB对象的基本操作命令。它们是:Get、Set 和 Trap。

Get:管理站读取代理者处对象的值。它是SNMP协议中使用率最高的一个命令,因为该命令是从网络设备中获得管理信息的基本方式。

Set:管理站设置代理者处对象的值。它是一个特权命令,因为可以通过它来改动设备的配置或控制设备的运转状态。它可以设置设备的名称,关掉一个端口或清除一个地址解析表中的项等。

Trap:代理者主动向管理站通报重要事件。它的功能就是在网络管理系统没有明确要求的前提下,由管理代理通知网络管理系统有一些特别的情况或问题发生了。如果发生意外情况,客户会向服务器的162端口发送一个消息,告知服务器指定的变量值发生了变化。通常由服务器请求而获得的数据由服务器的161端口接收。Trap 消息可以用来通知管理站线路的故障、连接的终端和恢复、认证失败等消息。管理站可相应的作出处理。

SNMP的命令和报文

SNMP协议定义了数据包的格式,及网络管理员和管理代理之间的信息交换,它还控制着管理代理的MIB数据对象。因此,可用于处理管理代理定义的各种任务。
    一条SNMP报文由三个部分组成:版本域(version field),分区域(community field)和SNMP协议数据单元域(SNMP protocol data unit field),数据包的长度不是固定的。
    版本域:这个域用于说明现在使用的是哪个版本的SNMP协议。目前,version 1是使用最广泛的SNMP协议。
    分区域:分区(community)是基本的安全机制,用于实现SNMP网络管理员访问SNMP管理代理时的身份验证。类似于密码,默认值为public。分区名(Community name)是管理代理的口令,管理员被允许访问数据对象的前提就是网络管理员知道网络代理的口令。如果把配置管理代理成可以执行Trap命令,当网络管理员用一个错误的分区名查询管理代理时,系统就发送一个autenticationFailure trap报文。

PDU  : 协议数据单元。是SNMP消息中的数据区, 即Snmp通信时报文数据的载体。

MIB  : 管理信息库

管理信息数据库(MIB)是一个信息存储库,它包含了管理代理中的有关配置和性能的数据,有一个组织体系和公共结构,其中包含分属不同组的许多个数据对象。
    MIB数据对象以一种树状分层结构进行组织,这个树状结构中的每个分枝都有一个专用的名字和一个数字形式的标识符。结构树的分枝实际表示的是数据对象的逻辑分组。而树叶,有时候也叫节点(node),代表了各个数据对象。在结构树中使用子树表示增加的中间分枝和增加的树叶。
    使用这个树状分层结构,MIB浏览器能够以一种方便而且简洁的方式访问整个MIB数据库。MIB浏览器是这样一种工具,它可以遍历整棵MIB结构树,通常以图形显示的形式来表示各个分枝和树叶对象。可以通过其数字标识符来查找MIB中的数据对象,这个数字标识符号从结构树的顶部(或根部)开始,直到各个叶子节点(即数据对象)为止。这种访问方式和文件系统的组织方式一致。两者的主要区别在于文件系统中的路径名可以以绝对也可以以相对方式表示,而MIB数据对象只能以绝对方式表示,不能使用相对方式。
    每一个节点都有一个对象标识符(OID)来唯一的标识,每个节点用数字和字符两种方式显示,其中对象标识符OID是由句点隔开的一组整数,也就是从根节点通向它的路径。一个带标号节点可以拥有包含其它带标号节点为它的子树,如果没有子树它就是叶子节点,它包含一个值并被称为对象。比如网络设备名的oid是.1.3.6.1.2.1.1.5.0,其值为设备名称的字符串。
    网络资源被抽象为对象进行管理。但SNMP中的对象是表示被管资源某一方面的数据变量。对象被标准化为跨系统的类,对象的集合被组织为管理信息库(MIB)。MIB作为设在代理者处的管理站访问点的集合,管理站通过读取MIB中对象的值来进行网络监控。管理站可以在代理者处产生动作,也可以通过修改变量值改变代理者处的配置。
分享到:
评论

相关推荐

    SnmpWalk.zip_SNMP_snmp WALK_snmpwalk _snmpwalk实现

    SNMP(简单网络管理协议)是一种广泛用于网络设备管理的标准协议,它允许网络管理员远程监控和配置网络设备。`snmpwalk`是SNMP工具箱中的一个重要命令行工具,用于遍历网络设备上的MIB(Management Information Base...

    qt-snmp.zip_linux snmp_qt snmp_snmp QT_snmp++_snmp++ qt

    QT SNMP库是一个用于在Qt应用程序中实现简单网络管理协议(SNMP)功能的开源库。SNMP是一种广泛使用的网络管理协议,它允许管理员监控和管理网络设备,如路由器、交换机、服务器等。QT SNMP库使得开发人员能够在...

    SNMP测试工具,snmp tester

    SNMP(Simple Network Management Protocol,简单网络管理协议)是一种广泛应用于网络设备管理的标准协议,它允许网络管理员远程监控和管理网络设备,如路由器、交换机、服务器等。SNMP测试工具,如Paessler SNMP ...

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

    这是我学习SNMP从零开始的学习资料,因为这方面的资料网上比较少,现拿出来和大家分享! 目录: docs_1.4.1 jar/jpcap.jar jar/SNMP4J.jar jar/snmp4jclt-1.2.1.zip jar/snmp.jar 基于java的Oid获取软件.rar Java...

    snmp4j.rar_SNMP_SNMP4J.jar_snmp4j的jar包_网络设备监控

    SNMP(Simple Network Management Protocol,简单网络管理协议)是一种广泛应用于网络设备监控的标准协议,它允许网络管理员远程管理和监控网络设备的状态,如路由器、交换机、服务器等。SNMP4J是一个Java实现的SNMP...

    net-snmp,snmpwalk(windows最新版本)

    该工具是运行于windows平台的exe可执行文件,跟linux平台的snmpwalk功能类似,使用方法:cmd→cd到该exe文件的目录→snmpwalk.exe + option(通过snmpwalk.exe -h可以获得相关参数及运用方法,包括version、...

    snmp4j-1.9.3d.zip_snmp4j-1.9.3d_snmp管理工具

    标题中的"snmp4j-1.9.3d.zip_snmp4j-1.9.3d_snmp管理工具"表明这是一个版本为1.9.3d的SNMP4J库的压缩包,它包含了对SNMP协议的支持和一些管理功能。 SNMP,全称Simple Network Management Protocol,是一种应用层...

    snmp5.7.2安装部署

    SNMP 5.7.2 安装部署详解 SNMP(Simple Network Management Protocol,简单网络管理协议)是一种应用层协议,用于管理互联网上众多厂家生产的软硬件平台。SNMP 的目标是管理互联网上的网络设备,监测连接到网络上的...

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

    SNMP (Simple Network Management Protocol) 是一种广泛应用于网络设备管理的标准协议,允许网络管理员远程监控和配置网络设备。SNMP Tester 5.2.1 是一个专门用于测试SNMP协议功能的工具,它能帮助用户确保SNMP协议...

    基于SNMP4J的SNMP操作实现代码

    SNMP(Simple Network Management Protocol)是一种广泛用于网络设备管理的标准协议,它允许网络管理员远程监控和配置网络设备。SNMP4J是一个Java库,为SNMP协议提供了全面的支持,包括v1、v2c和v3这三个版本。本文...

    net-snmp-5.9.4

    SNMP(简单网络管理协议)是Internet上广泛使用的网络管理协议,它为网络设备提供了标准化的管理和监控方式。net-snmp项目是SNMP协议的一个开源实现,版本5.9.4则是该项目的一个稳定版本,具有强大的功能和广泛的...

    snmp4j实现snmp trap 发送与接收

    SNMP4J 实现 SNMP Trap 发送与接收 SNMP(Simple Network Management Protocol,简易网络管理协议)是一种广泛应用于网络管理的协议,SNMP4J 是一个基于 Java 的 SNMP 库,提供了完整的 SNMP 功能实现。本文将详细...

    snmptest测试工具

    SNMP测试工具,如“snmptest”,是用于验证SNMP功能是否正常运作的软件,帮助网络管理员检查设备的SNMP配置、性能和故障排查。 snmptest工具通常是命令行界面的,它提供了一系列的功能来交互地与SNMP兼容的设备通信...

    C语言实现的snmp服务源码

    在IT领域,SNMP(简单网络管理协议)是一种广泛用于管理网络设备的标准协议。它允许网络管理员监控和配置网络设备,如路由器、交换机、服务器等。C语言是编程领域中的基础语言,其效率高、灵活性强,因此常被用来...

    net-snmp使用说明

    snmpd 是一个 SNMP 代理进程,能够响应 SNMP 请求并提供相关信息。 Net-SNMP 提供的查询工具有很多,以下将介绍常用的几个。基本的查询命令格式为:snmpwalk [APPLICATION OPTIONS] [COMMON OPTIONS] [OID] ...。...

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

    SNMP(Simple Network Management Protocol,简单网络管理协议)是一种广泛应用于网络设备监控和管理的协议。它允许网络管理员远程收集和配置网络设备的信息,如路由器、交换机、服务器等。"SNMP_WALK"是利用SNMP...

    SNMP实例大全--snmp4j(get ,trap,set,取mib)

    SNMP(Simple Network Management Protocol)是一种广泛用于网络设备管理的协议,它允许网络管理员远程监控和配置网络设备。本文将详细介绍SNMP实例,特别是通过Java库snmp4j实现的GET、GETNEXT、SET操作以及TRAP...

    snmp.rar_SNMP_linux snmp_linux snmp++_snmp精简

    SNMP(简单网络管理协议)是网络管理员用来监控和管理网络设备的标准协议,它允许远程收集和配置网络设备的信息。在Linux系统中,SNMP的使用可以帮助我们有效地管理和监控服务器、路由器、交换机等网络设备。这个...

    windows10/11-snmp离线安装包文件-离线安装snmp方案

    SNMP(Simple Network Management Protocol)是一种广泛用于网络设备管理的标准协议,它允许管理员远程监控和配置网络设备,如路由器、交换机、服务器等。在Windows 10或11操作系统中,SNMP服务可以用来管理和监控...

    snmp4j包来读取snmp协议数据

    SNMP(Simple Network Management Protocol,简单网络管理协议)是一种广泛应用于网络设备管理的协议,它允许网络管理员远程监控和管理网络设备。在Java环境中,SNMP4J库为开发者提供了便利,可以用来读取和操作SNMP...

Global site tag (gtag.js) - Google Analytics