SNMP 计算机网络管理 实验3(二)SNMP协议工作原理验证与分析

⬜⬜⬜ 🐰🟧🟨🟩🟦🟪(*^▽^*)欢迎光临 🟧🟨🟩🟦🟪🐰⬜⬜⬜

✏️write in front✏️
📝个人主页:陈丹宇jmu
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​
🙉联系作者🙈by QQ:813942269🐧
🌈致亲爱的读者:很高兴你能看到我的文章,希望我的文章可以帮助到你,祝万事顺意🏳️‍🌈
✉️少年不惧岁月长,彼方尚有荣光在 🏆

🚀write in front🚀


 一、实验目的
    学习捕获SNMP报文,通过报文分析理解SNMP协议的工作过程。
二、实验内容与设计思想
实验内容:编写代码,测试
  1)使用snmputilg发送SNMP数据包; 使用wireshark抓包;使用netstat -an查看代理站TCP/UDP连接表,分析并验证SNMP协议的工作过程;
  2)自行挑选MIB-2功能组中IP、ICMP、TCP、UDP等的管理对象(要有列对象),抓包分析其SNMP协议工作过程。
  3)查找标量对象标识符.1.3.6.1.2.1.11.13是什么对象,其实例标识符是什么?若连续多次GET这个实例标识符,得到的值有什么变化?请抓包分析其PDU格式。请截图说明。
三、实验要求:
    撰写实验报告,给出实验小结,问题分析。实验课后5天提交。
四、实验使用环境
    操作系统:Microsoft Windows 7/8/10/11
    设计环境:Windows SNMP服务,MIB Browser,Whireshark3.4 


📋笔记目录

🚀write in front🚀

🌸抓包分析IP组对象实例

📒抓包分析IP组对象中的ipForwarding(1)的get-request 请求报文

📘抓包分析IP组对象中的ipForwarding(1)的get-respond请求报文

📙结论

🚩结尾


🌸抓包分析IP组对象实例

📒抓包分析IP组对象中的ipForwarding(1)的get-request 请求报文

 根据TLVT的编码规则,解释下图中get-request的编码依据。

 答:

1、从RFC1157文档(SNMPv1协议的规范文件),查看get-request的ASN.1(抽象语法表示,见“2.1 网络数据表示”)语法。

RFC1157 GetRequst - PDU如下:

4.1.2.The GetRequest-PDU定义如下图所示:

定义中[0]表明GetRequest的标签为上下文专用标签,标签值为0;类型为SEQUENCE,是构造类型。

IMPLICIT(隐含标签)指用新标签替换老标签,因此编码时只编码新标签(即上下文专用标签)。

2、根据BER(基本编码规则,Basic Encoding Rule)进行编码。

BERASN.1表示的抽象类型值编码为TLV结构的字符串。

2.1 第一部分T的结构为:

根据前面分析:

1GetRequest的标签为上下文专用标签,因此前两位(标签)为10

2)类型为SEQUENCE,是构造类型,因此第三位类型值为1

3“[0]”表示标签值为0,因此后五位为00000

由此可见,TLV中第一个字节T的值为二进制10 1 00000,即1010 0000,对应十六进制数为a0

总结:【10(CONTEXT SPECIFIC)+1(构造类型)+00000([0])】,即1010 0000Ba0H

2.2 第二部分L表示值V的长度。本题中GetRequest PDU的长度为1dH,即十进制29个字节。

2.3 第三部分V表示GetRequest PDU的值,即协议数据单元的内容。根据BER定义,TLV结构的V,可以递归地再编码为TLV结构。

Request-id INTEGER 类型,因此 T 字段的前 2 位都是 00INTEGER 类型是简单类型,第 3 位是 0INTEGER 类型的标签号是 2,后 5 位是00000,因此 T 字段都是 02。因为Request-id、的 V 字段值为374603364,转换为16进制为16 53 FE 64,长度为4字节,所以 L 字段的值为 4。所以 Request-id 的编码为 02 04 16 53 FE 64

同理得

error-status error-index都是 INTEGER 类型,因此 T 字段的前 2 位都是 00INTEGER 类型是简单类型,第 3 位是 0INTEGER 类型的标签号是 2,后 5 位是00000,因此 T 字段都是 02。这 2个字段的长度都是 1 个字节,所以 L 字段的值为 1Request-iderror-status error-index V 字段值分别为 00。所以error-status error-index的编码都为 02 01 00

关于 variable-bindings 格式,在 RFC1157 中也可以找到其定义,在 4.1.1 中有写到。 

 variable-bindings 类型为 SEQUENCE 是构造类型,是通用标签
UNIVERSAL,因此前两位(标签)为 00,类型为简单类型,第三位为 0,标签值为 16,后五位为 10000T 字段为的值为 00110000,对应十六进制数为 30variable-bindings 的值有15个字节,所以 L 字段的值为 00001111,十六进制为 0F

所以variable-bindings的编码如下图所示:

 variable-bindings 下的第一个是 Object Name,类型是 OBJECT IDENTIFIER 为通用标签 UNIVERSAL,标签值为 6。因此前两位(标签)为00,类型为简单类型,第三位为 0,标签值为 6,后五位为 00110T字段为的值为 00000110,对应十六进制数为 06variable-bindings 的值有9个字节,所以 L 字段的值为 00001001,十六进制为 09V 字段的值为 oid,也就是.3.6.1.2.1.2.2.1.4Value 的值是 NULLNULL 类型只有一个值 NULL,其标签是 UNIVERSAL 5。由于这个类型是空类型,无需存储或传送它的值,第二个字节 00 表示值长度为 0

📘抓包分析IP组对象中的ipForwarding(1)的get-respond请求报文

 GetResponse-PDU 在 RFC 文档中的定义如下图所示:

 

定义中 [2] 表明 GetResponse 的标签为“上下文专用标签”,标签值为2。类型为 SEQUENCE 序列类型,这是一种构造类型。IMPLICIT(隐含标签)指用新标签替换老标签,因此编码时只编码新标签(即上下文专用标签)。

根据 BER 编码规则,GetResponse 的标签为“上下文专用标签”,前两位(标签)为 10。类型为SEQUENCE是构造类型,因此第三位类型值为 1。“[2]”表示标签值为 2,因此后五位为00010。T 字段的值为二进制 10100010,对应十六进制数为 a2。

这次抓到的包的长度为29个字节,十六进制表示为1dH。

在error-status显示的值为 noSuchName,错误的反馈的解释为操作使用了一个不存在的变量,因为这里是出错了,所以在get-respond的返回值中并没有得出对端相应的管理信息,Value的值为NULL。

原因分析:

查看ipForwarding的定义为:该实体是否作为Lp网关对该实体接收到的数据报进行转发而不是发送给该实体的指示。IP网关转发数据报。IPhostsdo(通过主机路由源除外)。请注意,对于某些托管节点,该对象只能接受可能值的一个子集。因为管理的对端是不作为网关进行转发数据的,因此响应的结果才是错误的信息。

📙结论

请求的网管设备是不作为网关转发数据的。

🚩结尾


🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​
🌈写给读者:很高兴你能看到我的文章,希望我的文章可以帮助到你,祝万事顺意🏳️‍🌈

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: snmptest是一个由两部分组成的字符串:SNMP和test。SNMP是Simple Network Management Protocol(简单网络管理协议)的缩写,它是一种用于管理和监控网络设备的协议。通过SNMP,网络管理员可以监控网络设备的运行状态,收集设备的信息,以及远程配置设备。SNMP使用了一个统一的管理信息库(Management Information Base,MIB)来存储和描述被管理设备的信息。 而test是英文测试、试验的意思,可能在这个字符串中表示对SNMP进行测试的意图。测试SNMP的目的可能是为了确认网络设备是否正常运行,以及是否可以使用SNMP协议来对其进行管理和监控。 对SNMP进行测试可以包括以下内容:首先,测试网络设备是否支持SNMP协议,并确保设备的SNMP功能已启用。其次,可以使用SNMP管理系统或相关工具向设备发送SNMP请求,例如获取设备的系统信息、检索设备的接口状态等。通过对这些请求的回应,可以判断SNMP功能是否正常工作。同时,还可以测试SNMP的安全性,如测试设备是否能够正确地响应SNMP的访问权限控制。 综上所述,snmptest字符串可能代表对SNMP进行测试的意图,通过测试SNMP功能和安全性,以确保网络设备正常运行,并能够通过SNMP协议进行管理和监控。 ### 回答2: snmptest是一个字符串,它可能代表着SNMP测试的相关内容。SNMP是简单网络管理协议(Simple Network Management Protocol)的缩写,是一种用于网络设备管理协议SNMP用于管理和监控网络设备,通过在网络中的代理之间进行信息传递,为网络管理员提供了对网络设备的集中管理和监控能力。SNMP测试即通过使用SNMP协议来对网络设备进行测试和验证SNMP测试可以用于检查网络设备的健康状况、配置正确性以及运行状态。它可以测试设备的响应时间、设备是否能够正确地接收和处理SNMP请求等。通过进行SNMP测试,管理员可以及时发现和解决设备出现的问题,确保网络的正常运行。 SNMP测试通常包括以下步骤:首先是设备的连接和配置,即将需要测试的设备连接到网络,并正确配置设备的SNMP代理。接下来是发送SNMP请求,通过向设备发送标准的SNMP请求,测试设备是否能够正确地响应。最后是分析和记录测试结果,将设备的响应时间、请求成功率等数据进行分析,以便管理员根据测试结果进行后续的网络管理和优化工作。 总之,SNMP测试是一种常用的网络设备管理和监控方法,它通过使用SNMP协议来对网络设备进行测试和验证,帮助管理员发现和解决设备问题,确保网络的正常运行。 ### 回答3: snmptest是一个字符串,它可能代表某个测试的名称或标识符。根据字符串的命名规则和语境,可以推测snmptest与SNMP(Simple Network Management Protocol,简单网络管理协议)相关。 SNMP是一种常用于网络管理协议,用于监控和管理网络设备,如路由器、交换机和服务器等。通过SNMP管理者可以获取设备的性能指标、配置信息、错误报告等。snmptest这个字符串可能是指关于SNMP的某个测试或实验。 可能的解释之一是,snmptest是一种用于测试SNMP可用性或功能的工具或软件。它可以用于检测、模拟或探测SNMP代理是否正常工作,或者用于验证SNMP的配置和设置是否正确。通过对snmptest进行执行,可以得出关于SNMP实现的可靠性和准确性的评估结果。 另外,snmptest也可能是一种编写的测试脚本或程序。在此情况下,snmptest可能被用于自动化地执行SNMP测试,并且可以自动收集并分析测试结果,以便快速定位和解决问题。 总之,由于缺乏更多的背景信息,对于snmptest字符串的具体含义无法确定,但可以推测它与SNMP相关,可能代表某种测试工具、测试脚本或测试名称。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

陈丹宇jmu

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

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

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

打赏作者

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

抵扣说明:

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

余额充值