网络管理实验三、SNMP协议工作原理验证与分析

1 实验概括

  • 实验目的:
    学习捕获SNMP报文,通过报文分析理解SNMP协议的工作过程。

  • 实验内容:
    1) 使用snmputilg发送SNMP数据包; 使用wireshark抓包;使用netstat –an查看代理站TCP/UDP连接表;
    2) 自行挑选MIB-2功能组中IP、ICMP、TCP、UDP等的管理对象(要有列对象),综合前面一点,抓包分析SNMP的工作过程;
    3) 查找标量对象标识符.1.3.6.1.2.1.11.13是什么对象,其实例标识符是什么?若连续多次GET这个实例标识符,得到的值有什么变化?请抓包分析其PDU格式。请截图说明。

2 实验内容

2.1

使用snmputilg发送SNMP数据包; 使用wireshark抓包;使用netstat –an查看代理站TCP/UDP连接表,分析并验证SNMP协议的工作过程(在2.2进行分析验证,这里不再赘述);

  • 使用snmputilg发送SNMP数据包;

在这里插入图片描述

  • 使用wireshark抓包;

在这里插入图片描述
在这里插入图片描述

  • 使用netstat –an查看代理站TCP/UDP连接表

最主要是以下图这一条条目
在这里插入图片描述
UDP 0.0.0.0:161 表示本地终端实时监视所有接口的UDP 161进程,也就是SNMP进程*:*表示允许所有的进程(IP+端口)都可以对该进程进行访问操作,如果禁用SNMP服务,则本地就不会存在该条目,则snmp无法正常工作;
在这里插入图片描述
至于是否被接受访问,就需要看是否有访问权限了;
在这里插入图片描述

2.2

自行挑选MIB-2功能组中IP、ICMP、TCP、UDP等的管理对象(要有列对象),抓包分析其SNMP协议工作过程。
注:我们选择抓取管理对象UDP的信息来进行SNMP协议的报文分析(使用的抓包软件是MIB BROSWER)

  • 首先,我们使用get-Request方法获取udpInDatagrams的信息,会出现如下的报文

在这里插入图片描述

  • 先打开 get-request报文,开始请求报文分析

在这里插入图片描述

  • UDP Dst Port 161
    从传输层可以看出SNMP协议是基于UDP的协议且SNMP的端口号是161,使用UDP而不使用TCP的主要原因有以下两点:1、SNMP协议多是在内网部署,而内网的环境相对可控(可靠性较高),所以不需要使用TCP来保证可靠性;2、SNMP协议本身就很占用CPU资源,特别对于SNMP管理站来说,大量的发送和接收SNMP报文不是一件轻松的事,如果还需要维持TCP连接,那更是雪上加霜,所以选择无连接的UDP协议作为底层协议;
  • Version
    SNMP的协议主要有三种版本,v1、v2、v3,v2是对v1的优化版本,新增了一些请求的方法,比如后面要讲的getBulkRequest,v3较v2的而言新增了加密的功能,加强了协议整体的安全性;双方版本不支持则无法进行SNMP的正常工作;
  • community
    用于身份认证,管理站和代理的community不一致,则无法进行后续的snmp操作
  • get-request(0)
    常用的snmp请求类报文有以下几种:
    GetRequest-PDU:值为0,用于请求代理站对应OID的值;
    GetNextRequest-PDU:值为1,用广度搜索的方法获取当前OID对应的子层的首个OID的值,如果没有子层则获取下一个同层的OID对应的值;
    在这里插入图片描述
    SetRequest-PDU:值为2,用于设置代理上对应OID的值。
    GetBulkRequest-PDU:值为5(这是SNMPv2新增的报文类型,不存在于SNMPv1中),用广度搜索的方法获取当前OID对应的下层所有的OID对应的值;
    Trap-PDU:值为6,用于请求获取代理上的日志信息;
    InformRequest-PDU:值为7(SNMPv2c引入的报文类型),作用同Trap-PDU,只是需要代理回复一个Ack报文保证可靠性。
  • request-id
    每次管理站产生一个request类的报文,就会生产一个新的request-id,response-id值和其一致,用于确定response的对象是哪一个request;
  • 1.3.6.1.2.1.7:value(null)
    是一种K/V值,OID表示Key,OID的值是Value,注意并不是请求的就是这个OID对应的值,这得取决于请求报文的类型,如果是getRequest那么就是请求对应OID的值;如果是其他的,如getNextRequest,则是在此OID的基础上获取其子层的第一个OID的值,在这里就是1.6.1.2.1.7.1.0,我们在回复报文中标注的OID也可以验证;
    在这里插入图片描述
  • 再打开get-response报文,进行回复报文分析

在这里插入图片描述

  • get-response(2)
    表示回复报文的类型值为2;
  • 1.3.6.1.2.1.7.1.0:66536
    表示回复的是这个OID对应的值;
  • SNMP的工作过程

综上所述,SNMP协议的工作过程可以概括为,管理站发送请求类报文给代理,代理根据其中内容回复对应的信息给管理站,这需要代理开启了SNMP协议(也就是系统要监听161号UDP端口),且代理允许接收;来自对应IP的管理站的SNMP协议报文,在此基础上代理和管理站的SNMP版本号要匹配,且community两端要一致;当然,以上前提是代理和管理站的网络本身就是通畅的;

2.3

查找标量对象标识符.1.3.6.1.2.1.11.13是什么对象,其实例标识符是什么?若连续多次GET这个实例标识符,得到的值有什么变化?请抓包分析其PDU格式。请截图说明。

注——对象和实例的区别
一个对象可以有多个实例,比如对象端口号,其实例就是每个端口的端口编号,有几个端口就有几个实例,具体表示方法就是在对象的后面再加上表示事例的后缀;

  • 1.3.6.1.2.1.11.13对象是snmpIntotalReqVar,用于统计代理接收到的请求类SNMP报文的数目,其实例符号为1.3.6.1.2.1.11.13.0
  • 若连续多次GET这个实例标识符,得到的值会逐一递增
  • 抓包分析
  • 经过连续三次对于response的抓包,可以发现Value值递增,OID就是1.3.6.1.2.1.11.13.0,表示代理的该接口接收snmp请求类包的数量,由于向代理发送请求才能获取该值,所以每发一次请求报文,我们获取到的值就加一;其他的报文分析上面有讲,就不再赘述了;

在这里插入图片描述

3 实验小结

在本次的实验中,我通过对于报文的解析,初步了解了SNMP协议的工作流程,而且也明白了对象和实例的区别,受益匪浅;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/1010.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

识周期以备,用周期以对

坐在阳台上喝茶,看着三角梅的花朵绽放着,凋零着,随风飘落… 春夏秋冬,花开花落。不禁感慨生命之渺小,敬畏周期的力量。 今天抽空聊聊周期,周期的核心是均值回归,周期也是“道”。 1 过去40年&am…

深入解析Tomcat的工作流程

tomcat解析 Tomcat是一个广泛使用的开源Servlet容器,用于托管Java Web应用程序。理解Tomcat的工作流程对于开发人员和系统管理员来说是非常重要的。本文将深入探讨Tomcat的工作原理,包括请求处理、线程池管理、类加载、以及与Web服务器之间的通信。 ###…

【错题集-编程题】腐烂的苹果(多源 BFS + 最短路)

题目链接:腐烂的苹果_牛客题霸_牛客网 (nowcoder.com) 一、分析题目 多源 BFS 问题,加一点最短路的思想,固定套路。 二、代码 //看了题解之后AC的代码 class Solution { private:int n, m;bool vis[1010][1010];int dx[4]{-1,0,1,0}, dy[4]{…

Java 集合(ArrayList、LinkedList、HashMap、HashSet、LinkedHashMap、LinkedHashSet)【补充复习】

Java 集合(ArrayList、LinkedList、HashMap、HashSet、LinkedHashMap、LinkedHashSet)【补充复习】 Java 集合概述Collection 接口继承树Map 接口继承树 Collection 接口方法使用 iterator 接口遍历集合元素使用 forearch 遍历集合元素 List 接口List 实…

Java中的栈和队列

1.前言 在计算机科学中,数据结构是用来组织和存储数据的方式,以便可以高效地访问和修改。栈和队列是两种最基本的数据结构,它们在各种计算过程中都有广泛的应用。本文将介绍栈和队列的概念、特性以及它们的一些常见应用。 2.栈 2.1概念 栈…

求不同字符个数(C语言)

一、N-S流程图&#xff1b; 二、运行结果&#xff1b; 三、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;char c 0;int a 0, k 0, n 0, q 0;//提示用户&#xff1b;printf("请输入一段话:…

【Java探索之旅】用面向对象的思维构建程序世界

&#x1f3a5; 屿小夏 &#xff1a; 个人主页 &#x1f525;个人专栏 &#xff1a; Java编程秘籍 &#x1f304; 莫道桑榆晚&#xff0c;为霞尚满天&#xff01; 文章目录 &#x1f4d1;前言一、初识面向对象1.1 什么是面向对象&#xff1f;1.2 面向对象与面向过程 二、类的定义…

【工厂模式】工厂方法模式、抽象工厂模式-简单例子

简单工厂模式&#xff0c;请跳转到我的另一篇博客【工厂模式】简单工厂模式-简单例子-CSDN博客 四、工厂方法模式 &#xff08;1&#xff09;这部分还是不变&#xff0c;创建一个Car接口&#xff0c;和两个实现类。 public interface Car {void name(); }public class WuLing…

贵阳市人民政府副市长刘岚调研珈和科技

4月9日&#xff0c;贵阳市人民政府副市长、党组成员刘岚一行到珈和科技走访调研&#xff0c;珈和科技总经理冷伟热情接待了考察团&#xff0c;就企业算力需求与合作&#xff0c;特色产业园区建设&#xff0c;科技成果转化落地等方面进行深入交流。 贵阳市教育局局长李波&#…

交换基础配置--单臂路由

1、创建vlan 创建vlan10 创建vlan10和vlan20 创建vlan1到vlan9 vlan1可以不用创建&#xff0c;因为交换机的所有接口默认为vlan1 本实验只需要vlan10和vlan20&#xff0c;以上只是介绍创建vlan的方法。 查看创建的vlan&#xff1a; sw2同理。接着将需要划分vlan的接口划入…

通过PyCharm平台开发Django应用程序

学会使用命令行工具开发Django应用程序是基础&#xff0c;不过更多的时候还是要借助平台开发工具。目前&#xff0c;最好的Django应用程序开发工具就是jetBrains公司推出的PyCharm平台了。 借助PyCharm开发平台&#xff0c;可以极大提高开发Django应用程序的效率&#xff0c;同…

电脑工作者缓解眼部疲劳问题的工具分享

背景 作为以电脑为主要工作工具的人群&#xff0c;特别是开发人员&#xff0c;我们每天都需要长时间紧盯着屏幕&#xff0c;进行代码编写、程序调试、资料查询等工作。这种持续的工作模式无疑给我们的眼睛带来了不小的负担。一天下来&#xff0c;我们常常会感到眼睛干涩、疲劳…

OpenHarmony 视图加载——ImageViewZoom

简介 ImageViewZoom 支持加载 Resource 或 PixelMap 图片&#xff0c;支持设置图像显示类型功能&#xff0c;支持缩放功能&#xff0c;支持平移功能&#xff0c;双击放大功能&#xff0c;可以监听图片大小&#xff0c;资源变化事件&#xff0c;支持清除显示图片功能。 效果展示…

Docker(七):容器监控工具(Portainer、CAdvisor)

一&#xff1a;轻量级可视化监控工具Portainer 可视化监控工具, 可以通过docker安装&#xff0c;用于管理和监控docker&#xff0c;基本上的docker命令都有对应的按钮来操作。 # always 表示docker重启了该容器也跟着重启 docker run -d --name portainer -p 8000:8000 -p 90…

USART(串口通信协议)

USART&#xff08;串口通信协议&#xff09; 【通信的目的】将一个设备的数据传输到另外一个设备&#xff0c;拓展硬件系统 【 通信协议】制定通信的规则&#xff0c;通信双方按照协议进行数据的收发 串口通信中各个参数的含义 【TX】 数据接收脚【RX】 数据发送脚【SCL】 …

Visual Components软件为您带来的价值 衡祖仿真

Visual Components具备丰富的3D仿真功能、快速建模能力、定制化应用程序逻辑和大量预定义组件库等多种特点&#xff0c;为自动化设备制造商、整合商、制造型公司提供简单、 快速和的设计方式&#xff0c;可以有效提高生产效率&#xff0c;并优化资源分配&#xff0c;避免制造过…

用户行为分析模型实践(四)—— 留存分析模型

作者&#xff1a;vivo 互联网大数据团队- Wu Yonggang、Li Xiong 本文是vivo互联网大数据团队《用户行为分析模型实践》系列文章第4篇 -留存分析模型。 本文详细介绍了留存分析模型的概念及基本原理&#xff0c;并阐述了其在产品中具体实现。针对在实际使用过程问题&#xff0…

揭秘消费增值:如何让每次购物都变得更有价值

亲爱的消费者朋友们&#xff0c;大家好&#xff01;我是微三云周丽&#xff0c;今天我将和你分享一种全新的消费理念——消费增值&#xff0c;让你的每一次消费都变得更有价值&#xff01; 在传统的消费观念中&#xff0c;我们通常只是单纯地用钱购买物品或享受服务&#xff0…

WideDeep

这里写目录标题 1. 背景2. 贡献3 模型结构&#xff08;1&#xff09;任务定义&#xff08;2&#xff09;The Wide Component&#xff08;3&#xff09;The Deep Component&#xff08;4&#xff09;联合训练Wide和Deep Model 4. 参考 1. 背景 (1) 广义线性回归通常被用于推荐模…

Scanpy(2)多种可视化

本篇内容为scanpy的可视化方法&#xff0c;可以分为三部分&#xff1a; embedding的散点图&#xff1b;用已知marker genes的聚类识别&#xff08;Identification of clusters&#xff09;&#xff1b;可视化基因的差异表达&#xff1b; 我们使用10x的PBMC数据集&#xff08;…