简介

SNMP 是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用层协议。 SNMP 使网络管理员能够管理网络效能,发现并解决网络问题以及规划网络增长。通过 SNMP 接收随机消息(及事件报告)获知网络出现问题。

SNMP的前身是简单网关监控协议(SGMP),用来对通信线路进行管理。随后,人们对SGMP进行了很大的修改,特别是加入了符合Internet定义的SMI和MIB,改进后的协议就是著名的SNMP。基于TCP/IP的SNMP网络管理框架是工业上的现行标准,由3个主要部分组成,分别是管理信息结构SMI(Structure ofManagement Information)、管理信息库MIB和管理协议SNMP。

  • SMI定义了SNMP框架所用信息的组织和标识,为MIB定义管理对象及使用管理对象提供模板。

  • MIB定义了可以通过SNMP进行访问的管理对象的集合。

  • SNMP协议是应用层协议,定义了网络管理者如何对代理进程的MIB对象进行读写操作。

SNMP中的MIB是一种树状数据库,MIB管理的对象,就是树的端节点,每个节点都有唯一位置和唯一名字。IETF规定管理信息库对象识别符(OID,Object Identifier)唯一指定,其命名规则就是父节点的名字作为子节点名字的前缀。MIB树结构如下图所示:

下表列出了常用的一些例子,这些类别是MIB 结构树中mib结点的子树。

MIB类别

包含的相关信息

system

被管理对象(如主机、路由器等设备)系统的总体信息

interface

各个网络接口的相关信息

at

地址转换(如:ARP映射)的相关信息

ip

IP协议的实现和运行相关信息

icmp

ICMP协议的实现和运行相关信息

tcp

TCP协议的实现和运行相关信息

udp

UDP协议的实现和运行相关信息

ospf

OSPF(开发最短路径优先)协议的实现和运行相关信息

bgp

BGP(边界网关)协议的实现和运行相关信息

rmon

远程网络坚实和实现和运行相关信息

Rip-2

RIP协议的实现和运行相关信息

dns

域名系统的实现和运行相关信息

组成部分

一个SNMP管理的网络由下列三个关键组件组成:

  • 网络管理系统(NMS,Network-management systems)

  • 被管理的设备(managed device)

  • 代理者(agent)

网络管理系统运行应用程序,以该应用程序监视并控制被管理的设备。也称为管理实体(managingentity),网络管理员在这儿与网络设备进行交互。网络管理系统提供网络管理需要的大量运算和记忆资源。一个被管理的网络可能存在一个以上的网络管理系统。

被管理的设备是一个网络节点,它包含一个存在于被管理的网络中的SNMP代理者。被管理的设备通过管理信息库(MIB)收集并存储管理信息,并且让网络管理系统能够通过SNMP代理者取得这项信息。任何一个被管理的资源都表示成一个对象,称为被管理的对象。MIB是被管理对象的集合。它定义了被管理对象的一系列属性:对象的名称、对象的访问权限和对象的数据类型等。每个SNMP设备(Agent)都有自己的MIB。MIB也可以看作是NMS(网络管理系统,网络管理系统既可以指一台专门用来进行网络管理的服务器,也可以指某个网络设备中执行管理功能的一个应用程序)和Agent之间的沟通桥梁。它们之间的关系如下图所示:

代理者是一种存在于被管理的设备中的网络管理软件模块。代理者控制本地机器的管理信息,以和SNMP兼容的格式传送这项信息。

技术优点

SNMP是管理进程(NMS)和代理进程(Agent)之间的通信协议。它规定了在网络环境中对设备进行监视和管理的标准化管理框架、通信的公共语言、相应的安全和访问控制机制。网络管理员使用SNMP功能可以查询设备信息、修改设备的参数值、监控设备状态、自动发现网络故障、生成报告等。

SNMP具有以下技术优点:

  • 基于TCP/IP互联网的标准协议,传输层协议一般采用UDP。

  • 自动化网络管理。网络管理员可以利用SNMP平台在网络上的节点检索信息、修改信息、发现故障、完成故障诊断、进行容量规划和生成报告。

  • 屏蔽不同设备的物理差异,实现对不同厂商产品的自动化管理。SNMP只提供最基本的功能集,使得管理任务与被管设备的物理特性和实际网络类型相对独立,从而实现对不同厂商设备的管理。

  • 简单的请求—应答方式和主动通告方式相结合,并有超时和重传机制。

  • 报文种类少,报文格式简单,方便解析,易于实现。

  • SNMPv3版本提供了认证和加密安全机制,以及基于用户和视图的访问控制功能,增强了安全性。

架构方式

主代理

主代理是一个在可运行SNMP的网络组件上运作的软件,可回应从管理站发出的SNMP要求。它的角色类似客户端/服务器结构(Client/Server)术语中的服务器。主代理依赖子代理提供有关特定功能的管理信息。

如果系统当前拥有多个可管理的子系统,主代理就会传递它从一个或多个子代理处收到的请求。这些子代理在一个子系统以及对那个子系统进行监测和管理操作的接口内为关心的对象建模。主代理和子代理的角色可以合并,在这种情况下我们可以简单的称之为代理(agent)。

子代理

子代理是一个在可运行SNMP的网络组件上运作的软件,运行在特定子系统的特定管理信息库(MIB,Management Information Base)中定义的信息和管理功能。子代理的一些能力有:

搜集主代理的信息

配置主代理的参数

回应管理者的要求

产生警告或陷阱

对协议和管理信息结构的良好分离使得使用SNMP来监测和管理同一网络内上百的不同子系统非常简单。MIB模型运行管理OSI参考模型的所有层,并可以扩展至诸如数据库,电子邮件以及J2EE参考模型之类的应用。

管理站

管理者或者管理站提供第三个组件。它和一个客户端/服务器结构下的客户端一样工作。它根据一个管理员或应用程序的行为发出管理操作的请求,也接收从代理处获得的TRAP。

协议种类

目前, SNMP 有 3 种: SNMPV1 、 SNMPV2 、 SNMPV3。第 1 版和第 2 版没有太大差距,但 SNMPV2 是增强版本,包含了其它协议操作。与前两种相比, SNMPV3 则包含更多安全和远程配置。为了解决不同 SNMP 版本间的不兼容问题, RFC3584 中定义了三者共存策略。

SNMP 还包括一组由RMON、RMON2、MTB、MTB2、OCDS及OCDS定义的扩展协议。

协议结构

SNMP 是一种应用程序协议,封装在UDP中。各种版本的 SNMP 信息通用格式如下所示:

Version Community PDU

Version:SNMP 版本号。管理器和代理器必须使用相同版本的 SNMP。需要删除具有不同版本号的信息,并不对它们作进一步的处理。

Community:团体名称,用于在访问代理器之前认证管理器。

PDU(协议数据单元):SNMPv1、v2 和 v3 中的 PDU 类型和格式将在对应文件中作具体介绍。

在分层网络结构,例如在开放式系统互联(OSI)模型中,在传输系统的每一层都将建立协议数据单元(PDU)。PDU包含来自上层的信息和当前层的实体附加的信息,这个PDU会被传送到下一较低的层。物理层实际以一种编帧的位流形式传输这些PDU,这些PDU由协议栈的较高层建造。接收系统自下而上传送这些分组通过协议栈,并在协议栈的每一层分离出PDU中的相关信息。

每一层附加到PDU上的信息,是指定给另一个系统的同等层的,这就是对等层进行一次通信会话协调的过程。通过从传输层段剥离报头,执行协议数据检测以确定作为传输层段的部分数据的协议段的数据,以及执行标志验证和剥离,从而处理数据段。同时提供用于处理数据段的技术,其中接收到协议数据单元的报头部分。利用所接收的报头部分来确定将储存在应用空间中的数据的字节数。而且,利用所接收的报头部分来确定下一个协议数据单元的下一个报头部分。然后,发出窥视命令以获得下一个报头部分。另外提供用于利用所储存的部分循环冗余校验摘要和剩余数据来执行循环冗余校验的技术。

SNMP规定了5种协议数据单元PDU(也就是SNMP报文),用来在管理进程和代理之间的交换。

  • get-request操作:从代理进程处提取一个或多个参数值

  • get-next-request操作:从代理进程处提取紧跟当前参数值的下一个参数值

  • set-request操作:设置代理进程的一个或多个参数值

  • get-response操作:返回的一个或多个参数值。这个操作是由代理进程发出的,它是前面三种操作的响应操作。

  • trap操作:代理进程主动发出的报文,通知管理进程有某些事情发生。

前面的3种操作是由管理进程向代理进程发出的,后面的2个操作是代理进程发给管理进程的,为了简化起见,前面3个操作今后叫做get、get-next和set操作。

注意:在代理进程端是用熟知端口161俩接收get或set报文,而在管理进程端是用熟知端口162来接收trap报文。

开发和使用

第一版

SNMP的第一个RFC系列出现在1988年:

RFC 1065:基于TCP/IP网络的管理信息的结构和认定

RFC 1066:以基于TCP/IP网络的网络管理为基础的管理信息

RFC 1067:一个简单网络管理协议

这些协议被废除经由:

RFC 1155:基于TCP/IP网络的管理信息的结构和认定

RFC 1156:以基于TCP/IP网络的网络管理为基础的管理信息

RFC 1157:一个简单网络管理协议

SNMP协议工作在OSI模型的应用层(第七层)。它(在第一版中)指定了四种核心协议数据单元(PDU):

GET,用来得到一条管理信息。GET命令从设备读取数据,这些数据通常是操作参数,例如连接状态、接口名称等。

GETNEXT,用来反复得到管理信息的串行

SET,用来给一个被管理的子系统制造一个变化。SET命令允许设置设备的某些参数,这类功能一般有限制,例如关闭某个网络接口、修改路由器参数等功能。

TRAP,用来报告一个关于被管理子系统的警告或其他异步事件

典型的,SNMP为代理使用UDP端口161,为管理站使用UDP端口162。

第一版因为其脆弱的安全性而备受争议。客户端的认证使用明码传送。在80年代,SNMP第一版被设计出来的时期,互联网标准的认证/安全并不被主要的协议设计团体所重视。

第二版

SNMP第二版(RFC 1441–RFC 1452)修订了第一版并且包含了在性能、安全、机密性和管理者之间通信这些领域的改进。它引入了GETBULK以取代反复的GETNEXT,藉以在单个请求中获取大量的管理数据。然而,SNMP第二版的新安全系统被认为过于复杂,而不被广泛接受。

SNMP v2c(基于社区的SNMP第二版)定义于RFC 1901–RFC 1908,一开始也非正式的被称为SNMP第1.5版。SNMPv2c包含SNMP第二版除了受争议的新SNMP第二版安全模型以外的部份,并以SNMP第一版的简单的基于社区的安全性方案取而代之。

SNMP v2u(基于用户的SNMP第二版)定义于RFC 1909–RFC 1910。这是一个SNMP第一版和SNMP第二版的折衷方案,试图提供比SNMP第一版更好的安全性,又不遭遇SNMP第二版的高复杂度。这产生一个被商业化的变种,称为SNMP v2*,而且它的机制最后被SNMP第三版的两个安全性框架之一采用。

第三版

Internet工程工作小组(IETF)把在RFC3411-RFC3418(STD0062)中定义的SNMP第三版作为2004年的标准版本。IETF将先前的版本定为“Obsolete”或“Historical”。

实际上,SNMP实现通常支持多个版本:典型的SNMPv1、SNMPv2c以及SNMPv3。参见RFC3584“Internet标准网络管理框架第一、二、三版间的共存”。

SNMP第三版提供三项重要的服务:认证、隐私和访问控制。

应用

在大型网络管理中,网络管理员比较头痛的问题就是如何实时了解不在身边的网络设备的运行状况。若要一台一台的去查看网络设备的运行现状,那明显不是很现实。实际网络中,利用SNMP协议自动帮助管理员收集网络运行状况的方法应用最为广泛。通过这种方法,网络管理员只需要坐在自己的位置上,就可以了解全公司的网络设备的运行情况。有了这个简单网络管理协议(SNMP),网络管理员可以很方便的在SNMP Agent和NMS之间交换管理信息。SNMP的主要作用就是帮助企业网络管理人员更方便的了解网络性能、发现并解决网络问题、规划网络的未来发展。

SNMP开发工具包

snmp4j是一个开源的基于java语言开发的snmp工具包,基于jdk1.8。

一般便宜的设备都不支持SNMP协议,因为这种低端的接入设备根本没有网络管理的必要,并且家用设备 一般都在3台以内,所以Snmp协议也用不到的。

SNMP walk与get的区别

snmpwalk是对OID值的遍历(比如某个OID值下面有N个节点,则依次遍历出这N个节点的值。如果对某个叶子节点的OID值做walk,则取得到数据就不正确了,因为它会认为该节点是某些节点的父节点,而对其进行遍历,而实际上该节点已经没有子节点了,那么它会取出与该叶子节点平级的下一个叶子节点的值,而不是当前请求的节子节点的值。)SNMPWALK是一个通过SNMP GET-NEXT类型PDU,实现对目标AGENT的某指定MIB分支信息进行完整提取输出的命令工作。

snmpget是取具体的OID的值。(适用于OID值是一个叶子节点的情况)

SNMP简单网络管理协议及开发测试工具相关推荐

  1. 理解并演示:SNMP简单网络管理协议(200-120新考点)

    SNMP(SimpleNetwork Management Protocol,简单网络管理协议),基于TCP/IP工作,能对企业网络中支持SNMP功能的设备进行集中网络管理.这些设备包括服务器.工作站 ...

  2. SNMP简单网络管理协议

    声明:以下内容是学习谌玺老师视频整理出来(http://edu.51cto.com/course/course_id-861.html) SNMP(Simple Network Management ...

  3. 网络管理 - SNMP 简单网络管理协议

    文章目录 1 概述 1.1 结构 1.2 操作 2 SNMP 2.1 报文格式 2.2 五大报文类型 2.3 三大组件 3 扩展 3.1 网工软考真题 1 概述 #mermaid-svg-Bisiwk ...

  4. SNMP简单网络管理协议总结

    目录 一.SNMP是什么? 二.SNMP能干什么? 三.SNMP怎么工作的? 四.设备怎么配置SNMP协议? 一.SNMP是什么? SNMP(Simple Network Management Pro ...

  5. [转]采用SNMP(简单网络管理协议)实现国税系统广域网络性能管理的研究

    出处:http://www.ctax.org.cn/news/rdzt/bjdl/yxzp/jsyy/yxj/t20110104_624943.shtml 内容提要:随着Internet应用的急剧增长 ...

  6. 简单网络管理协议SNMP

    简单网络管理协议SNMP 目  录 1. 网络管理基本概念....................................................................... ...

  7. SNMP(简单网络管理协议)介绍

    提供:ZStack云计算 系列教程 本教程为如何利用SNMP实现网络监控与管理系列三篇中的第一篇. 内容介绍 作为系统管理员,我们的主要工作就是收集来自服务器与基础设施的准确信息.目前多种工具都能够帮 ...

  8. 交换机 snmp协议 java_配置交换机的简单网络管理协议(SNMP)用户

    配置交换机的简单网络管理协议(SNMP)用户 客观 简单网络管理协议(SNMP)是在网络帮助记录,存储和关于设备的共用信息的网络管理协议.这帮助管理员解决网络问题.SNMP使用管理信息基础(MIB)存 ...

  9. 简单网络管理协议SNMP(史上最全)

    简单网络管理协议(SNMP)是TCP/IP协议簇的一个应用层协议.在1988年被制定,并被Internet体系结构委员会(IAB)采纳作为一个短期的网络管理解决方案:由于SNMP的简单性,在Inter ...

  10. snmp 获得硬件信息_计算机网络基础课程—简单网络管理协议(SNMP)

    简单网络管理协议 (Simple Network Management Protocol) •除了提供网络层服务的协议和使用那些服务的应用程序,因特网还需要运行一些让管理员进行设备管理.调试问题.控制 ...

最新文章

  1. 在线作图|微生物多样性分析——物种累计曲线
  2. mysql数据库隐式表_详解MySQL数据库常见的索引问题:无索引,隐式转换,附实例说明...
  3. 使用java.util.LinkedList模拟实现内存页面置换算法--LRU算法
  4. 新的信息论诞生前的若干问题分析
  5. c语言定义数组a10 指定各元素,C语言填空题.doc
  6. quora html5,英语口语练习_Quora精选:外国人眼中5个最美英文单词_沪江英语
  7. C#LeetCode刷题之#34-在排序数组中查找元素的第一个和最后一个位置(Find First and Last Position of Element in Sorted Array)
  8. 小汤学编程之MySQL(三)——约束、多表查询、事务和数据库其他操作
  9. VMware VMFS文件系统元数据不一致问题处理
  10. Swift教程_零基础学习Swift完整实例(八)_swift完整实例(添加View的动画效果、添加View的阴影)...
  11. 公共云计算彼端的数据能否得到有效保护?
  12. mysql游戏调整等级_mysql求游戏排名
  13. “Chart“ 图表控件基本操作
  14. 成都哪所专科院校有计算机专业,成都哪些高职院校有计算机应用技术
  15. Gym 100962J Jimi Hendrix (DFS + 树形dp)
  16. 如何看待2022年秋招后开端岗一片红海?
  17. 180422 3步法Windows10引导Ubuntu开机启动
  18. 2013驾考科目一理论知识重点归纳
  19. 获得淘宝商品详情原数据接口调用展示
  20. 品牌舆情总结及品牌修复,品牌舆情监测监控怎么做?

热门文章

  1. 小米笔记本 镜像_2020年小米笔记本Air 13.3原装WIN10出厂系统ISO镜像1607原版下载...
  2. pom文件中的dependencyManagement和dependency
  3. 雷达通信一体化波形设计综述
  4. 变位齿轮重合度计算公式_齿轮变位系数的优化选择
  5. LFW人脸数据集测试协议及编程实现
  6. 国家信息安全漏洞库最新动态发布,墨云科技成为CNNVD技术支撑单位
  7. fanuc服务器显示6,FANUC常用系统参数说明 (6页)-原创力文档
  8. 李宏毅2020机器学习资料汇总
  9. 工具 | 实用的嵌入式软件测试工具
  10. 联想 yoga213笔记本,无线网卡无法打开-“硬件无线网络关闭无法打开 ‘问题解决方法。Intel 7260AC NGW NGFF接口网卡,蓝牙WIFI模块...