网络管理实验四、SNMP协议分析

1 实验概括

  • 实验目的

捕获SNMP报文,通过报文分析进一步理解SNMP的报文结构、MIB-2树的结构、理解管理信息结构SMI及其规定的ASN.1。

  • 实验内容

1、自行挑选两个网管对象,分别使用get,get-next取其值。
2、使用抓包软件抓取数据包。
3、分析并验证SNMP协议数据:
1)SNMP协议的工作过程;
2)SNMP协议数据单元的格式;
3)MIB-2树的结构;
4)管理信息结构SMI及其规定的ASN.1。

  • 实验要求

1、管理站与代理为不同机器。共有4个数据包:2个对象(分别用get、get-next)*2个包(request,response)=4个。
2、要分析其SNMP结构,指出语法定义、编码依据。对于后面的数据包,只要对新出现的结构类型进行分析即可,不需要重复分析。
3、独立完成分析工作。 4、撰写实验报告,给出实验小结,问题分析。实验课后5天提交。

2 报文分析

2.1 第一组报文

  • 全况
    在这里插入图片描述

2.1.1 get-request分析

  • 全况
    在这里插入图片描述

开始部分: 30 26
30: 表示这是一个构造类型(CONSTRUCTED),标记为序列(SEQUENCE),说明接下来的数据是一系列有序的元素。
26:表示这个序列的总长度为38字节(十六进制26转换为十进制是38,但注意长度字段是包括了自身长度的,所以实际内容长度要减去这两个字节)。

SNMP版本信息: 02 01 01
02: 表示这是一个整数类型(INTEGER)。
01: 这个整数的长度为1字节。
01: 表示SNMP版本号为1(Version 1),00(version 1),02(verison 3)

社区字符串(Community String): 04 06 70 75 62 6c 69 63
04: 表示这是一个OCTET STRING类型,即字节串。
06: 表示这个字符串的长度为6字节。
70 75 62 6c 69 63: 这是社区字符串的Ber编码,解码后为"public",这是SNMP中常用的只读访问权限的社区字符串。

PDU(Protocol Data Unit)开始: a0 19
a0: 表示这是一个上下文特定的标签(CONTEXT-SPECIFIC TAG),用于标记PDU的开始。

类型
值为 0表示 get-request 操作;
值为 1表示 get-next-request 操作;
值为 2表示 get-response 操作;
值为 3表示 set-request 操作;
值为 7表示 informRequest 操作。

19: 表示PDU的长度为25字节(十六进制19转换为十进制是25)。

PDU中的具体信息:
1、Request ID: 02 01 0d,表示请求ID为13(十进制)。
2、Error Status: 02 01 00,表示错误状态为0,意味着没有错误。
在这里插入图片描述

3、Error Index: 02 01 00,表示错误索引为0,也是无错误的指示,当出现 noSuchName、badValue 或 readOnly 的错误时,由代理进程在回答时设置的一个整数。该数值指明引起错误的变量在变量列表中的偏移位置。
4、Variable Bindings的开始: 30 0e,表示Variable Bindings的总长度为14字节(不包括自身长度标记)

  • 30: 构造类型,序列。
  • 0e: 长度为14字节。

5、单个Variable Binding

  • 30 0c: 表示这是一个长度为12字节的序列,代表一个Variable Binding。
  • 06 08 2b 06 01 02 01 01 05 00: 这是OID(Object Identifier)的Ber编码,解码后为.1.3.6.1.2.1.1.5.0,通常对应于系统描述(System Description)。
  • 05 0e: 表示接下来是一个NULL类型的数据,长度为14字节,但在这种上下文中,它实际上指代的是值的缺失或者是一个空值,因为在SNMP中,查询请求常常不携带具体值。

2.1.2 get-response分析

  • 全况
    在这里插入图片描述

开始部分: 30 35
30: 表示这是一个构造类型(SEQUENCE),用于序列化多个元素。
35: 表示这个序列的总长度为53字节(十六进制35转换为十进制是53,包括了自身长度的两个字节)。

SNMP版本信息: 02 01 01
02: 整数类型(INTEGER)。
01: 长度为1字节。
01: SNMP版本为1。

社区字符串: 04 06 70 75 62 6c 69 63
04: OCTET STRING类型。
06: 长度为6字节。
70 75 62 6c 69 63: 解码后为"public",社区字符串。

PDU开始及类型变化: a2 28
a2: 上下文特定的标签,标记PDU开始,但与之前不同,这里的标签号暗示了这是一个SetRequest PDU(因为标签号2在SNMP中通常关联Set操作)。
28: PDU长度为40字节(十六进制28转换为十进制是40)。

SetRequest PDU中的信息:
1、Request ID: 02 01 0d,请求ID为13。
2、Error Status: 02 01 00,无错误。
3、Error Index: 02 01 00,错误索引为0。
4、Variable Bindings开始: 30 1d,长度为29字节(十进制)。

  • 30: 构造类型,序列。
  • 1d: 长度为29字节。

5、单个Variable Binding:

  • 30 1b: 该Variable Binding的长度为27字节。
  • 06 08 2b 06 01 02 01 01 05 00: OID编码,解码为.1.3.6.1.2.1.1.5.0,系统描述对象。
  • 04 0f: 表示接下来是一个OCTET STRING类型的数据,长度为15字节(十进制)。
  • 4c 41 50 54 4f 50 2d 41 43 38 48 45 37 35 34: 解码后的字符串为"LAPTOP-AC8HE754",这通常是设置的系统描述信息,这里表示一台计算机的主机名。

2.2 第二组报文

  • 全况
    在这里插入图片描述

2.2.1 get-next-request分析

  • 全况
    在这里插入图片描述

开始部分: 30 26
30: 表示构造类型(SEQUENCE),序列化多个元素。
26: 整个序列的总长度为38字节(十六进制26转换为十进制是38,包括自身长度的两个字节)。

SNMP版本信息: 02 01 01
02: 整数类型(INTEGER)。
01: 长度为1字节。
01: 表明SNMP版本为1。

社区字符串: 04 06 70 75 62 6c 69 63
04: OCTET STRING类型。
06: 长度为6字节。
70 75 62 6c 69 63: 解码为"public",社区字符串。

PDU开始及类型变化: a1 19
a1: 上下文特定标签,标志着PDU的开始。这里的标签号1表明这是一个GetNextRequest PDU(因为标签号1通常与GetNext操作相关联)。
19: PDU的长度为25字节(十六进制19转换为十进制是25)。

GetNextRequest PDU中的信息:
1、Request ID: 02 01 0f,请求ID为15。
2、Error Status: 02 01 00,无错误。
3、Error Index: 02 01 00,错误索引为0。
4、Variable Bindings开始: 30 0e,长度为14字节(十进制)。

  • 30: 构造类型,序列。
  • 0e: 长度为14字节。

5、单个Variable Binding:

  • 30 0c: 表示Variable Binding的长度为12字节。
  • 06 08 2b 06 01 02 01 07 02 00: OID编码,解码为.1.3.6.1.2.1.7.2.0,通常与IP转发表项相关。
  • 05 00: 表示该Variable Binding的值部分为空(NULL类型),这是GetNextRequest中常见的,因为它请求的是下一个OID的值而不是提供一个具体的值。

2.2.2 get-response分析

  • 全况
    在这里插入图片描述

开始部分: 30 27
30: 表示构造类型(SEQUENCE),用于序列化多个元素。
27: 整个序列的总长度为39字节(十六进制27转换为十进制是39,包括自身长度的两个字节)。

SNMP版本信息: 02 01 01
02: 整数类型(INTEGER)。
01: 长度为1字节。
01: 表明SNMP版本为1。

社区字符串: 04 06 70 75 62 6c 69 63
04: OCTET STRING类型。
06: 长度为6字节。
70 75 62 6c 69 63: 解码为"public",社区字符串。

PDU开始及类型变化: a2 1a
a2: 上下文特定标签,标志着PDU的开始。这里的标签号2表明这是一个SetRequest PDU。
1a: PDU的长度为26字节(十六进制1a转换为十进制是26)。

SetRequest PDU中的信息:
1、Request ID: 02 01 0f,请求ID为15。
2、Error Status: 02 01 00,无错误。
3、Error Index: 02 01 00,错误索引为0。
4、Variable Bindings开始: 30 0f,长度为15字节(十进制)。

  • 30: 构造类型,序列。
  • 0f: 长度为15字节。

5、单个Variable Binding:

  • 30 0d: 表示Variable Binding的长度为13字节。
  • 06 08 2b 06 01 02 01 07 03 00: OID编码,解码为.1.3.6.1.2.1.7.3.0,这个OID表示udpInErrors。
  • 41 01 01: 表示值部分,这里是一个APPLICATION类型的数据(由41开头),长度为1字节,值为01。表示接收到udp错误包的数量为1。
  • 25
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
好的,下面是一个简单的SNMP网络流量分析课程设计: 1. 选题背景 网络流量是网络管理中一个重要的指标,对于企业和组织来说,了解网络流量的变化趋势和峰值,可以帮助管理员及时发现和解决网络问题。SNMP是一种用于管理网络设备和服务器协议,通过SNMP可以获取网络设备的流量信息。因此,通过SNMP进行网络流量分析,可以帮助管理员了解网络流量的变化情况,及时发现和解决网络问题。 2. 设计目标 本课程设计的目标是通过SNMP进行网络流量分析,了解网络流量的变化情况,及时发现和解决网络问题。具体目标如下: - 掌握SNMP的基本原理和使用方法; - 掌握SNMP客户端工具的使用方法; - 掌握MRTG和Cacti等流量分析工具的使用方法; - 通过实验,了解网络流量的变化情况,并分析网络问题。 3. 设计内容 本课程设计的内容包括以下几个部分: - SNMP基础知识。介绍SNMP的基本原理和使用方法,包括SNMP的版本、MIB、OID、community字符串等概念。 - SNMP客户端工具。介绍SNMP客户端工具的使用方法,包括SNMPWALK、SNMPGET等工具的使用。 - MRTG和Cacti等流量分析工具。介绍MRTG和Cacti等流量分析工具的使用方法,包括配置文件的编辑、图表的生成、图表的解读等。 - 实验设计。设计SNMP网络流量分析实验,包括实验的目的、实验的步骤、实验的数据分析等。 - 实验报告。编写实验报告,包括实验的目的、实验的步骤、实验的数据分析实验结果的总结等。 4. 设计步骤 本课程设计的步骤如下: - 学习SNMP基础知识; - 学习SNMP客户端工具的使用方法; - 学习MRTG和Cacti等流量分析工具的使用方法; - 设计SNMP网络流量分析实验; - 进行实验,并记录实验数据; - 编写实验报告,包括实验的目的、实验的步骤、实验的数据分析实验结果的总结等。 5. 设计要求 本课程设计的要求如下: - 实验过程中,要注意安全和合法性,不得侵犯他人的隐私和权益; - 实验数据要真实、准确、完整,要保证实验的可重复性和有效性; - 实验报告要清晰、简洁、准确,要表达实验的目的、步骤、数据分析实验结果的总结等。 以上就是一个简单的SNMP网络流量分析课程设计。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

辽胜于无

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值