首页 > 其他分享 >SNMP学习笔记之SNMP报文以及不同版本(SNMPv1、v2c、v3)的区别

SNMP学习笔记之SNMP报文以及不同版本(SNMPv1、v2c、v3)的区别

时间:2023-06-08 15:24:46浏览次数:35  
标签:报文 SNMP Agent v2c v3 Trap 版本 SNMPv1

SNMP学习笔记之SNMP报文以及不同版本(SNMPv1、v2c、v3)的区别

本篇文章将重点分析SNMP报文,并对不同版本(SNMPv1、v2c、v3)进行区别!

四、SNMP协议数据单元

在SNMP管理中,管理站(NMS)和代理(Agent)之间交换的管理信息构成了SNMP报文,报文的基本格式如下图1:

SNMP学习笔记之SNMP报文以及不同版本(SNMPv1、v2c、v3)的区别_数据类型

                                                              图 1

SNMP主要有SNMPv1、SNMPV2c、SNMPv3几种最常用的版本。

1、SNMPv1

 

SNMPv1是SNMP协议的最初版本,提供最小限度的网络管理功能。SNMPv1的SMI和MIB都比较简单,且存在较多安全缺陷。

SNMPv1采用团体名认证。团体名的作用类似于密码,用来限制NMS对Agent的访问。如果SNMP报文携带的团体名没有得到NMS/Agent的认可,该报文将被丢弃。

报文格式如下图2:

SNMP学习笔记之SNMP报文以及不同版本(SNMPv1、v2c、v3)的区别_数据类型_02

                                                                 图 2

从上图可以看出,SNMP消息主要由Version、Community、SNMP PDU几部分构成。其中,报文中的主要字段定义如下:

Version:SNMP版本

Community:团体名,用于Agent与NMS之间的认证。团体名有可读和可写两种,如果是执行Get、GetNext操作,则采用可读团体名进行认证;如果是执行Set操作,则采用可写团体名进行认证。

Request ID:用于匹配请求和响应,SNMP给每个请求分配全局唯一的ID。

Error status:用于表示在处理请求时出现的状况,包括noError、tooBig、noSuchName、badValue、readOnly、genErr。

Error index:差错索引。当出现异常情况时,提供变量绑定列表(Variable bindings)中导致异常的变量的信息。

Variable bindings:变量绑定列表,由变量名和变量值对组成。

enterprise:Trap源(生成Trap信息的设备)的类型。

Agent addr:Trap源的地址。

Generic trap:通用Trap类型,包括coldStart、warmStart、linkDown、linkUp、authenticationFailure、egpNeighborLoss、enterpriseSpecific。

Specific trap:企业私有Trap信息。

Time stamp:上次重新初始化网络实体和产生Trap之间所持续的时间,即sysUpTime对象的取值。

用Wireshark抓取的SNMPv1版本的报文格式如下图3:

SNMP学习笔记之SNMP报文以及不同版本(SNMPv1、v2c、v3)的区别_响应报文_03

 

                                                                                                      图 3

192.168.2.1是Agent的ip地址,192.168.2.110是NMS的ip地址

从上图可以看到,SNMPv1版本的安全性不太好,可以抓取到community也即是团体名;tarp操作只有发送报文没有响应报文。

 


2、SNMPv2c

SNMPv2c也采用团体名认证。在兼容SNMPv1的同时又扩充了SNMPv1的功能:它提供了更多的操作类型(GetBulk和inform操作);支持更多的数据类型(Counter32等);提供了更丰富的错误代码,能够更细致地区分错误。

在v1版本中只有数据类型的错误码,而v2c版本中增加了不少,如下图4:

SNMP学习笔记之SNMP报文以及不同版本(SNMPv1、v2c、v3)的区别_数据类型_04

                                             图 4

SNMPv2报文格式如下图5:

SNMP学习笔记之SNMP报文以及不同版本(SNMPv1、v2c、v3)的区别_SNMP报文版本_05

                                                               图 5

 

比较SNMPv1而言,SNMPv2c新增了GetBulk操作报文和inform操作报文。GetBulk操作所对应的基本操作类型是GetNext操作,通过对Non repeaters和Max repetitions参数的设定,高效率地从Agent获取大量管理对象数据。而inform操作也就是相当于Trap的升级操作,但是二者又有什么不同之处呢?Trap报文发出去之后不会收到响应报文,而inform报文在发出报文之后能收到响应报文。

抓取的报文格式如下:

(1)GetBulk操作,批量获取数据,如下图6:

SNMP学习笔记之SNMP报文以及不同版本(SNMPv1、v2c、v3)的区别_数据类型_06

                                                                                               图 6

(2)inform操作,可以看到它与trap操作的区别,有个响应报文,如下图7:

SNMP学习笔记之SNMP报文以及不同版本(SNMPv1、v2c、v3)的区别_数据类型_07

                                                                                              图 7

 

SNMPv2c修改了Trap报文格式。SNMPv2c Trap PUD采用SNMPv1 Get/GetNext/Set PDU的格式,并将sysUpTime和snmpTrapOID作为Variable bindings中的变量来构造报文(可参照上图3的get-next的response和下图9SNMPv2的trap进行对比),报文格式如下:

(1)SNMPv1版本的tarp报文格式如下图8:

SNMP学习笔记之SNMP报文以及不同版本(SNMPv1、v2c、v3)的区别_数据类型_08

                                                                                           图 8

(2)SNMPv2的trap报文格式如下图9:

SNMP学习笔记之SNMP报文以及不同版本(SNMPv1、v2c、v3)的区别_响应报文_09

                                                                                           图 9

3、SNMPv3

 

SNMPv3主要在安全性方面进行了增强,它采用了USM和VACM技术。USM提供了认证和加密功能,VACM确定用户是否允许访问特定的MIB对象以及访问方式。

USM(基于用户的安全模型)

USM引入了用户名和组的概念,可以设置认证和加密功能。认证用于验证报文发送方的合法性,避免非法用户的访问;加密则是对NMS和Agent之间传输的报文进行加密,以免被窃听。通过有无认证和有无加密等功能组合,可以为NMS和Agent之间的通信提供更高的安全性。

VACM(基于视图的访问控制模型)

VACM技术定义了组、安全等级、上下文、MIB视图、访问策略五个元素,这些元素同时决定用户是否具有访问的权限,只有具有了访问权限的用户才能管理操作对象。在同一个SNMP实体上可以定义不同的组,组与MIB视图绑定,组内又可以定义多个用户。当使用某个用户名进行访问的时候,只能访问对应的MIB视图定义的对象。

由于v3版本的增加了不少内容,所以决定在下一篇文章中再详细的讲解SNMPv3。

 

标签:报文,SNMP,Agent,v2c,v3,Trap,版本,SNMPv1
From: https://www.cnblogs.com/cqx6388/p/17466568.html

相关文章

  • 华为认证 | HCIE-存储 V3.0 即将发布!
    华为认证HCIE-StorageV3.0(中文版)预计将于2023年6月30日正式对外发布。为了帮助您做好学习、培训和考试计划,现进行预发布通知,请您关注。01发布概述基于“平台+生态”战略,围绕“云-管-端”协同的新ICT技术架构,华为公司打造了覆盖ICT领域的认证体系。包含ICT基础设施认证、基础软硬......
  • yum源导入KEY值----warning: rpmts_HdrFromFdno: Header V3 RSA/SHA1 Signature, key
    Totalsize:42MDownloadingPackages:warning:rpmts_HdrFromFdno:HeaderV3RSA/SHA1Signature,keyIDc105b9de:NOKEYRetrievingkeyfromfile:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5GPGkeyretrievalfailed:[Errno14]Couldnotopen/readfile:///......
  • 关于Yolov3-Tiny算法
    1.Yolov3-Tiny模型YOLOv3-Tiny网络模型一共有24层,包括13个卷积层,6个最大池化层,2个route层,1个上采样层以及2个输出Yolo层。一共有13层卷积层,网络参数及计算量适中,适合在ZYNQ嵌入式平台上加速。1.1卷积层目的:提取输入特征图多个层次的特征。假设卷积层有N组卷积核(每组卷......
  • Taurus.mvc .Net Core 微服务开源框架发布V3.1.7:让分布式应用更高效。
    前言:自首个带微服务版本的框架发布:Taurus.MVCV3.0.3微服务开源框架发布:让.NET架构在大并发的演进过程更简单已经过去快1年了,在这近一年的时间里,版本经历了N个版本的迭代。如今,是时候写文章介绍一下了:以下介绍中,仅以.NetCore6为示例代码。框架支持在.NetFramework2.0+......
  • Permute 3 Mac(万能格式转换工具) v3.10.2中文版
    Permute3Mac是一款功能强大的万能格式转换工具,专为macOS系统设计。它可以帮助用户轻松、快速地将音频、视频和图像文件转换成各种格式,以满足用户不同的需求。→→↓↓载Permute3MacPermute3Mac支持多种文件格式的导入和输出,包括MP4、MOV、MKV、AVI、FLAC、MP3、PNG......
  • AI安防视频汇聚融合平台EasyCVR v3.2版本托盘显示优化
    EasyCVR基于云边端协同,可支持海量视频的轻量化接入与汇聚管理。平台兼容性强、拓展度高,可提供视频监控直播、视频轮播、视频录像、云存储、回放与检索、智能告警、服务器集群、语音对讲、云台控制、电子地图、平台级联等功能。为了便于用户二次开发、调用与集成,我们也提供了丰富的A......
  • 企业级springboot项目架构模板V3.0,开箱即用
    此次3.0更新点:1.加入文件服务(quick-storage)功能支持OSS、FTP存储(该服务支持以SDK的方式引入)2.修复sentinel因path路径问题导致流控失效问题3.修复word模板生成PDF文件工具类时首次生成时,图片生成没有成功写入FTP的问题,原因为临时文件路径问题。4.修改部分类的包路径5.auth服......
  • 百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 基于 Paddle Serving快速使用(服
    目录安装Docker安装PaddleOCR安装准备PaddleServing的运行环境,模型转换PaddleServingpipeline部署重启测试百度飞桨(PaddlePaddle)-PP-OCRv3文字检测识别系统预测部署简介与总览百度飞桨(PaddlePaddle)-PP-OCRv3文字检测识别系统PaddleInference模型推理(离线部署)......
  • 百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 基于 Paddle Serving快速使用(服
    百度飞桨(PaddlePaddle)-PP-OCRv3文字检测识别系统预测部署简介与总览百度飞桨(PaddlePaddle)-PP-OCRv3文字检测识别系统PaddleInference模型推理(离线部署)百度飞桨(PaddlePaddle)-PP-OCRv3文字检测识别系统基于PaddleServing快速使用(服务化部署)PaddleServing......
  • 百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 预测部署简介与总览
    百度飞桨(PaddlePaddle)-PP-OCRv3文字检测识别系统预测部署简介与总览百度飞桨(PaddlePaddle)-PP-OCRv3文字检测识别系统PaddleInference模型推理(离线部署)百度飞桨(PaddlePaddle)-PP-OCRv3文字检测识别系统基于PaddleServing快速使用(服务化部署)1.预测部署简介......