snmp总结一:概述

  1. SNMP概述

    SNMP是英文"Simple Network Management Protocol"的缩写,中文意思是"简单网络管理协议"。SNMP是一种简单网络管理协议,它属于TCP/IP五层协议中的应用层协议,用于网络管理的协议。SNMP主要用于网络设备的管理。由于SNMP协议简单可靠 ,受到了众多厂商的欢迎,成为了目前最为广泛的网管协议。

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

    SNMP具有以下技术优点:

  • 基于 TCP/IP 互联网的标准协议,传输层协议一般采用 UDP。
  • 自动化网络管理。网络管理员可以利用 SNMP 平台在网络上的节点检索信息、修改信息、发现故障、完成故障诊断、进行容量规划和生成报告。
  • 屏蔽不同设备的物理差异,实现对不同厂商产品的自动化管理。SNMP 只提供最基本的功能集,使得管理任务与被管设备的物理特性和实际网络类型相对独立,从而实现对不同厂商设备的管理。
  • 简单的请求—应答方式和主动通告方式相结合,并有超时和重传机制。
  • 报文种类少,报文格式简单,方便解析,易于实现。
  • SNMPv3 版本提供了认证和加密安全机制,以及基于用户和视图的访问控制功能,增强了安全性。
  1. 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之间的关系如下图所示。

  1. 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 对象以及访问方式。
  1. 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总结一:概述的更多相关文章

  1. SNMP基础知识

    注:本篇博客并非原创,仅是学习笔记 1. 概述1.1 诞生背景1.2 SNMP简介1.3 版本1.4 术语1.5 网络结构1.6 MIB简介2. Linux的SNMP安装 1. 概述 1.1 诞生背景 ...

  2. 自学Zabbix11.1 Zabbix 配置SNMP监控

    点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 自学Zabbix11.1 Zabbix 配置SNMP监控 1. 概述 zabbix采集数据方式: ...

  3. 【SNMP】SNMP概述

    SNMP概述 SNMP(Simple Network Management Protocol,简单网络管理协议)是目前UDP/IP网络中应用最为广泛的网络管理协议,它提供了一个管理框架来监控和维护互联 ...

  4. SNMP学习笔记之SNMP简单概述

    0x00 SNMP简单概述 0.1.什么是Snmp SNMP是英文"Simple Network Management Protocol"的缩写,中文意思是"简单网络管理 ...

  5. SNMP简单概述

    一.SNMP简单概述 1.1.什么是Snmp SNMP是英文"Simple Network Management Protocol"的缩写,中文意思是"简单网络管理协议& ...

  6. SNMP概述–运维必知的协议基础

    一.什么是SNMP?   SNMP是  “Simple Network Management Protocol” 的缩写,中文意思是简单网络管理协议,它是由互联网工作小组在RFC1157中定义的应用层 ...

  7. 网络监测工具之Zabbix的搭建与测试方法(二)-- SNMP、OID和MIB概述

    概念 SNMP是专门设计用于在 IP 网络管理网络节点的一种标准协议,它是一种应用层协议.SNMP使网络管理员能够管理网络效能,发现并解决网络问题以及规划网络增长.通过SNMP接收随机消息(及事件报告 ...

  8. SNMP 原理与实战详解

    原文地址:http://freeloda.blog.51cto.com/2033581/1306743 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法 ...

  9. 《TCP/IP详解卷1:协议》第1章 概述-读书笔记

    章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...

  10. SNMP协议入门

    SNMP协议入门 1.引言 基于TCP/IP的网络管理包含3个组成部分: 1) 一个管理信息库MIB(Management Information Base).管理信息库包含所有代理进程的所有可被查询 ...

随机推荐

  1. 堆排序(topk 问题)(NB)

    博客地址:https://www.cnblogs.com/zylyehuo/ # _*_coding:utf-8_*_ # 比较排序 import random def sift(li, low, h ...

  2. K8S组件详解

    K8S的控制平面.和工作节点是集群正常运行的核心,通过这两部分的协同工作,K8S才能够实现高效的容器编排.管理.和自动化运维. K8S Kubernetes(简称K8s),是一个开源的容器编排平台,用 ...

  3. CAS和OAuth2.0区别

    CAS和OAuth2.0区别 CAS (Central Authentication Service) 和 OAuth 2.0 都是身份验证和授权技术,但它们在工作原理和适用场景上有明显的差异. CA ...

  4. Delphi 非主窗体(即子窗体)在任务栏显示按钮

    type TForm2 = class(TForm) private { Private declarations } public { Public declarations } procedure ...

  5. 从 sum 求和谈 axis=1 or 0

    二维数组 axis=0:表示从上往下 axis=1:表示从左往右 temp = np.array([[1, 2], [3, 4]]) print("原矩阵数组:\n",temp) ...

  6. DateTime.ToString(String) 格式化方法

    小故事: 群里有位问了个问题:"dateime.now 怎么取20170610 这样格式的数据啊?"...然后等了好久,没人帮忙回答下(这里肯定少不了歧视和异议). 虽然问题很简单 ...

  7. 🎀B站-网页优化插件BewlyBewly

    简介 一个开源的B站网页优化浏览器插件,对B站网页进行了调整和优化,页面更具视觉吸引力和用户友好性. 源码 https://github.com/BewlyBewly/BewlyBewly 支持 插件 ...

  8. C#/.NET/.NET Core技术前沿周刊 | 第 34 期(2025年4.7-4.13)

    前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...

  9. eolinker环境变量配置:用例执行前给把某参数设置为全局参数的方法

    特别注意:需要使用全局变量或者预处理前务必阅读本链接https://www.cnblogs.com/becks/p/13713278.html 1.场景分析 注册会员流程共计有添加数据,校验数据,提交 ...

  10. 2319. 判断矩阵是否是一个 X 矩阵

    2319. 判断矩阵是否是一个 X 矩阵 题解: 模拟 class Solution { public boolean checkXMatrix(int[][] grid) { int n = gri ...