⬜⬜⬜ (*^▽^*)欢迎光临 ⬜⬜⬜
✏️write in front✏️
个人主页:陈丹宇jmu
欢迎各位→点赞 + 收藏⭐️ + 留言
联系作者by QQ:813942269
致亲爱的读者:很高兴你能看到我的文章,希望我的文章可以帮助到你,祝万事顺意️
✉️少年不惧岁月长,彼方尚有荣光在
一、 实验目的
捕获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天提交。
目录
验证SNMP协议的工作过程
分析SNMP数据单元的格式
使用WireShark抓包工具抓取SNMP协议的报文。结果如下图所示:
管理代码:
snmputil get 192.168.43.143 72.21.10.173 public .1.3.6.1.2.1.1.1.0
snmputil walk 172.21.10.210 public .1.3.6.1.2.1.4.20.1.1
可以明显地看出,SNMP 是基于请求/响应模型进行工作的,客户端发送一个请求,服务器对请求的内容进行回应。
查看SNMP协议传输层报文分析SNMP协议的工作过程:
如下所示,管理站向代理系统发出的get—request报文在传输层是通过UDP发出的,发送到代理系统的161目的端口。
而代理系统在接收到管理站发出的请求报文后,会对该报文进行相应,代理系统向管理站发送get—respone响应报文,该报文通过代理系统的161端口发出。
通过进一步的学习,我知道,UDP端口号161用于SNMP代理向SNMP管理程序发送信息,也称为SNMP读端口,SNMP管理程序通过该端口获取被管理设备的状态信息;UDP端口号162用于SNMP管理程序向SNMP代理发送信息,也称为SNMP写端口,SNMP管理程序通过该端口向被管理设备发送控制和配置信息。
需要注意的是,SNMP协议使用的是UDP协议,不同于TCP协议,因此设计的端口号不同,其目的是使SNMP通信更加高效,减少网络传输的负担。
使用netstat -an查看代理站TCP/UDP连接表
如下图所示,系统的161端口处在活动状态。
对于表项的理解:
SNMP协议是基于UDP协议传输的,而UDP协议是无连接的,只是监听,并没有因为数据包的发送就成登记一条连接。
以下是SNMP协议工作的基本过程:
管理器系统向被管理设备发送请求,以获取所需的信息,如系统配置、设备状态或运行指标等。
被管理设备或代理收到请求后,会根据请求中的OID值来查找相应的MIB(Management Information Base)对象,这些对象保存了设备性能和状态数据。
如果找到所需的MIB对象,设备或代理将该对象的值作为响应返回给管理器。
如果未找到所需的MIB对象,则设备或代理将错误信息或其他相关的信息返回给管理器。
管理器系统接收到响应信息后,可以对其进行处理,例如显示在UI界面上或将其保存到文件中等。
总体而言,SNMP协议的工作过程可以概括为“请求-响应”模式。SNMP管理器向SNMP代理设备发送请求,代理设备将响应返回给管理器,管理器再进行相应的处理。这种通信方式使得管理员可以轻松地管理网络设备,并能够快速响应设备的状态和性能问题。
总结一下,SNMP协议的工作过程包括管理器向代理发送请求,代理响应请求并返回相应的值,管理器接收响应并进行相应的处理。
注明:下面所示的是SNMPv1版本的报文格式:
报文中每个字段的含义如下:
如上图可以看出GetRequest PDU, GetNextRequest PDU,SetRequest PDU,GetResponse PDU的格式是相同的。