snmp总结一:概述
snmp总结一:概述
SNMP概述
SNMP是英文"Simple Network Management Protocol"的缩写,中文意思是"简单网络管理协议"。SNMP是一种简单网络管理协议,它属于TCP/IP五层协议中的应用层协议,用于网络管理的协议。SNMP主要用于网络设备的管理。由于SNMP协议简单可靠 ,受到了众多厂商的欢迎,成为了目前最为广泛的网管协议。
SNMP是管理进程(NMS)和代理进程(Agent)之间的通信协议。它规定了在网络环境中对设备进行监视和管理的标准化管理框架、通信的公共语言、相应的安全和访问控制机制。网络管理员使用SNMP功能可以查询设备信息、修改设备的参数值、监控设备状态、自动发现网络故障、生成报告等。
SNMP具有以下技术优点:
- 基于 TCP/IP 互联网的标准协议,传输层协议一般采用 UDP。
- 自动化网络管理。网络管理员可以利用 SNMP 平台在网络上的节点检索信息、修改信息、发现故障、完成故障诊断、进行容量规划和生成报告。
- 屏蔽不同设备的物理差异,实现对不同厂商产品的自动化管理。SNMP 只提供最基本的功能集,使得管理任务与被管设备的物理特性和实际网络类型相对独立,从而实现对不同厂商设备的管理。
- 简单的请求—应答方式和主动通告方式相结合,并有超时和重传机制。
- 报文种类少,报文格式简单,方便解析,易于实现。
- SNMPv3 版本提供了认证和加密安全机制,以及基于用户和视图的访问控制功能,增强了安全性。
SNMP网络架构
SNMP网络架构由三部分组成:NMS、Agent和MIB。
2.1 NMS简介
NMS是网络中的管理者,是一个利用SNMP协议对网络设备进行管理和监视的系统。NMS既可以指一台专门用来进行网络管理的服务器,也可以指某个设备中执行管理功能的一个应用程序。NMS可以向Agent发出请求,查询或修改一个或多个具体的参数值。同时,NMS可以接收Agent主动发送的Trap信息,以获知被管理设备当前的状态。
2.2 Agent简介
Agent是网络设备中的一个应用模块,用于维护被管理设备的信息数据并响应NMS的请求,把管理数据汇报给发送请求的NMS。
Agent接收到NMS的请求信息后,完成查询或修改操作,并把操作结果发送给NMS,完成响应。同时,当设备发生故障或者其他事件的时候,Agent会主动发送Trap信息给NMS,通知设备当前的状态变化。
2.3 MIB简介
任何一个被管理的资源都表示成一个对象,称为被管理的对象。MIB是被管理对象的集合。它定义了被管理对象的一系列属性:对象的名称、对象的访问权限和对象的数据类型等。每个Agent都有自己的MIB。MIB也可以看作是NMS和Agent之间的一个接口,通过这个接口,NMS可以对Agent中的每一个被管理对象进行读/写操作,从而达到管理和监控设备的目的。NMS、Agent和MIB之间的关系如下图所示。

SNMP版本
SNMP 主要有 SNMPv1、SNMPV2c、SNMPv3 几种最常用的版本。
3.1 SNMPv1
SNMPv1 是 SNMP 协议的最初版本,提供最小限度的网络管理功能。SNMPv1 的 SMI 和 MIB 都比较简单,且存在较多安全缺陷。
SNMPv1 采用团体名认证。团体名的作用类似于密码,用来限制 NMS 对 Agent 的访问。如果 SNMP 报文携带的团体名没有得到 NMS/Agent 的认可,该报文将被丢弃。
3.2 SNMPv2c
SNMPv2c 也采用团体名认证。在兼容 SNMPv1 的同时又扩充了 SNMPv1 的功能:它提供了更多的操作类型(GetBulk 操作等);支持更多的数据类型(Counter32 等);提供了更丰富的错误代码,能够更细致地区分错误。
3.3 SNMPv3
SNMPv3 主要在安全性方面进行了增强,它采用了 USM 和 VACM 技术。USM 提供了认证和加密功能,VACM 确定用户是否允许访问特定的 MIB 对象以及访问方式。
- SNMP协议原理
4.1 SNMP操作
SNMP 支持多种操作,主要为以下几种基本操作:
Get 操作:NMS 使用该操作从 Agent 获取一个或多个参数值。
GetNext 操作:NMS 使用该操作从 Agent 获取一个或多个参数的下一个参数值。
Set 操作:NMS 使用该操作设置 Agent 一个或多个参数值。
Response 操作:Agent 返回一个或多个参数值。该操作是前面三种操作的响应。
Trap 操作:Agent 主动发出的操作,通知 NMS 有某些事情发生。

执行前四种操作时设备使用 UDP 协议采用 161 端口发送报文,执行 Trap 操作时设备使用 UDP 协议采用 162 端口发送报文。由于收发采用了不同的端口号,所以一台设备可以同时作为 Agent 和 NMS。
4.2 SNMP报文
4.2.1 报文格式
一个 SNMP 报文共有三个部分组成,即公共 SNMP 首部、get/set 首部、trap 首部、变量绑定。

4.2.2 编码规则 BRE
在具体系统中,我们需要用具体的编码规则将 ASN.1 语法表示的抽象数据转换成具体的比特流。SNMP 使用的编码方法是 BER(Basic Encoding Rule)。BER 的数据都由三个域构成:标识域(tag)+长度域(length)+值域(value)。
标识域 标识域 的编码规则
标识域指明数据的类型,占用 1 个字节,常见的类型有:
BOOL(0x01); INT(0x02); OCTSTR(0x04); NULL(0x05); OBJID(0x06); ENUM(0x0A); SEQ(0x30);
SETOF(0x31); IPADDR(0x40); COUNTER(0x41); GAUGE(0x42); TIMETICKS(0x43); OPAQUE(0x44)
长度域的编码规则
长度域指明值域的长度,不定长,一般为一到三个字节。其格式可分为短格式(后面的值域没有超过 127 长)和长格式。

length=30=>1E(30 没有超过 127,长度域为 0001 1110)
length=169=>81 A9(169 超过 127,长度域为 1000 0001 1010 1001,169 是后 8 位的值,前八位的第一个 1 表示这是长格式的表示方法,前八位的后七位表示后面有多少个字节表示针对的长度,这里,是 000 0001,后面有一个字节表示真正的长度,1010 1001 是 169,后面的值有 169 个字节长。)
4.2.3 实例分析

30 4b :表示整个 snmp 报文的编码方式为 30 ,即是 SEQUENCE 类型表示 snmp 报文的长度为 4b,即为 75
02 01 00 :02 表示该字段是 INTERGER 类型,01 表示该字段占用一个字节,00 表示版本号为 1
04 06 70 75 62 6c 69 63 :04 表示该字段为 OCTET STRING 类型,06 表示该字段的长度 ,70 75 62 6c 69 63 表示 “public”
a0 3e :a 是该字段的固定值,0 表示这是一个 get-request 报文,3e 表示 PUD 还有 62 个字节
02 01 48 : 02 表示该字段是 INTERGER 类型 ,01 表示该字段占用一个字节,48 表示request-id 为 72
02 01 00 :02 表示该字段是 INTERGER 类型 ,01 表示该字段占用一个字节,00 表示报文的差错状态为 0
02 01 00 :02 表示该字段是 INTERGER 类型 ,01 表示该字段占用一个字节,00 表示报文的差错索引为 0
30 33 : 30 表示编码类型为 30 ,即是 SEQUENCE 类型,33 表示后续 “键 - 值”区域占用 51 个字节
30 0f 06 0b 2b 06 01 02 01 19 03 02 01 05 01 05 00 : 30 表 示 编 码 类 型 为 30 , 即 是SEQUENCE 类型,0f 表示该字段共有 15 个字节,06 表示第一个变量为键,0b 表示键长为 11个字节,2b 06 01 02 01 19 03 02 01 05 01 表示 1.3.6.1.2.1.25.3.2.1.5.1 , 00 表示该值的字段的长度为 0,即为空
snmp总结一:概述的更多相关文章
- SNMP基础知识
注:本篇博客并非原创,仅是学习笔记 1. 概述1.1 诞生背景1.2 SNMP简介1.3 版本1.4 术语1.5 网络结构1.6 MIB简介2. Linux的SNMP安装 1. 概述 1.1 诞生背景 ...
- 自学Zabbix11.1 Zabbix 配置SNMP监控
点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 自学Zabbix11.1 Zabbix 配置SNMP监控 1. 概述 zabbix采集数据方式: ...
- 【SNMP】SNMP概述
SNMP概述 SNMP(Simple Network Management Protocol,简单网络管理协议)是目前UDP/IP网络中应用最为广泛的网络管理协议,它提供了一个管理框架来监控和维护互联 ...
- SNMP学习笔记之SNMP简单概述
0x00 SNMP简单概述 0.1.什么是Snmp SNMP是英文"Simple Network Management Protocol"的缩写,中文意思是"简单网络管理 ...
- SNMP简单概述
一.SNMP简单概述 1.1.什么是Snmp SNMP是英文"Simple Network Management Protocol"的缩写,中文意思是"简单网络管理协议& ...
- SNMP概述–运维必知的协议基础
一.什么是SNMP? SNMP是 “Simple Network Management Protocol” 的缩写,中文意思是简单网络管理协议,它是由互联网工作小组在RFC1157中定义的应用层 ...
- 网络监测工具之Zabbix的搭建与测试方法(二)-- SNMP、OID和MIB概述
概念 SNMP是专门设计用于在 IP 网络管理网络节点的一种标准协议,它是一种应用层协议.SNMP使网络管理员能够管理网络效能,发现并解决网络问题以及规划网络增长.通过SNMP接收随机消息(及事件报告 ...
- SNMP 原理与实战详解
原文地址:http://freeloda.blog.51cto.com/2033581/1306743 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法 ...
- 《TCP/IP详解卷1:协议》第1章 概述-读书笔记
章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...
- SNMP协议入门
SNMP协议入门 1.引言 基于TCP/IP的网络管理包含3个组成部分: 1) 一个管理信息库MIB(Management Information Base).管理信息库包含所有代理进程的所有可被查询 ...
随机推荐
- 堆排序(topk 问题)(NB)
博客地址:https://www.cnblogs.com/zylyehuo/ # _*_coding:utf-8_*_ # 比较排序 import random def sift(li, low, h ...
- K8S组件详解
K8S的控制平面.和工作节点是集群正常运行的核心,通过这两部分的协同工作,K8S才能够实现高效的容器编排.管理.和自动化运维. K8S Kubernetes(简称K8s),是一个开源的容器编排平台,用 ...
- CAS和OAuth2.0区别
CAS和OAuth2.0区别 CAS (Central Authentication Service) 和 OAuth 2.0 都是身份验证和授权技术,但它们在工作原理和适用场景上有明显的差异. CA ...
- Delphi 非主窗体(即子窗体)在任务栏显示按钮
type TForm2 = class(TForm) private { Private declarations } public { Public declarations } procedure ...
- 从 sum 求和谈 axis=1 or 0
二维数组 axis=0:表示从上往下 axis=1:表示从左往右 temp = np.array([[1, 2], [3, 4]]) print("原矩阵数组:\n",temp) ...
- DateTime.ToString(String) 格式化方法
小故事: 群里有位问了个问题:"dateime.now 怎么取20170610 这样格式的数据啊?"...然后等了好久,没人帮忙回答下(这里肯定少不了歧视和异议). 虽然问题很简单 ...
- 🎀B站-网页优化插件BewlyBewly
简介 一个开源的B站网页优化浏览器插件,对B站网页进行了调整和优化,页面更具视觉吸引力和用户友好性. 源码 https://github.com/BewlyBewly/BewlyBewly 支持 插件 ...
- C#/.NET/.NET Core技术前沿周刊 | 第 34 期(2025年4.7-4.13)
前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...
- eolinker环境变量配置:用例执行前给把某参数设置为全局参数的方法
特别注意:需要使用全局变量或者预处理前务必阅读本链接https://www.cnblogs.com/becks/p/13713278.html 1.场景分析 注册会员流程共计有添加数据,校验数据,提交 ...
- 2319. 判断矩阵是否是一个 X 矩阵
2319. 判断矩阵是否是一个 X 矩阵 题解: 模拟 class Solution { public boolean checkXMatrix(int[][] grid) { int n = gri ...