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

2024-04-20 18:52

本文主要是介绍网络管理实验三、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协议的工作流程,而且也明白了对象和实例的区别,受益匪浅;

这篇关于网络管理实验三、SNMP协议工作原理验证与分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/921052

相关文章

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

MySQL中的MVCC底层原理解读

《MySQL中的MVCC底层原理解读》本文详细介绍了MySQL中的多版本并发控制(MVCC)机制,包括版本链、ReadView以及在不同事务隔离级别下MVCC的工作原理,通过一个具体的示例演示了在可重... 目录简介ReadView版本链演示过程总结简介MVCC(Multi-Version Concurr

C#使用DeepSeek API实现自然语言处理,文本分类和情感分析

《C#使用DeepSeekAPI实现自然语言处理,文本分类和情感分析》在C#中使用DeepSeekAPI可以实现多种功能,例如自然语言处理、文本分类、情感分析等,本文主要为大家介绍了具体实现步骤,... 目录准备工作文本生成文本分类问答系统代码生成翻译功能文本摘要文本校对图像描述生成总结在C#中使用Deep

Redis主从/哨兵机制原理分析

《Redis主从/哨兵机制原理分析》本文介绍了Redis的主从复制和哨兵机制,主从复制实现了数据的热备份和负载均衡,而哨兵机制可以监控Redis集群,实现自动故障转移,哨兵机制通过监控、下线、选举和故... 目录一、主从复制1.1 什么是主从复制1.2 主从复制的作用1.3 主从复制原理1.3.1 全量复制

Redis主从复制的原理分析

《Redis主从复制的原理分析》Redis主从复制通过将数据镜像到多个从节点,实现高可用性和扩展性,主从复制包括初次全量同步和增量同步两个阶段,为优化复制性能,可以采用AOF持久化、调整复制超时时间、... 目录Redis主从复制的原理主从复制概述配置主从复制数据同步过程复制一致性与延迟故障转移机制监控与维

SSID究竟是什么? WiFi网络名称及工作方式解析

《SSID究竟是什么?WiFi网络名称及工作方式解析》SID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称,在无线网络中,设备通过SSID来识别和连接到特定的无线网络... 当提到 Wi-Fi 网络时,就避不开「SSID」这个术语。简单来说,SSID 就是 Wi-Fi 网络的名称。比如

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R

Redis连接失败:客户端IP不在白名单中的问题分析与解决方案

《Redis连接失败:客户端IP不在白名单中的问题分析与解决方案》在现代分布式系统中,Redis作为一种高性能的内存数据库,被广泛应用于缓存、消息队列、会话存储等场景,然而,在实际使用过程中,我们可能... 目录一、问题背景二、错误分析1. 错误信息解读2. 根本原因三、解决方案1. 将客户端IP添加到Re

Redis主从复制实现原理分析

《Redis主从复制实现原理分析》Redis主从复制通过Sync和CommandPropagate阶段实现数据同步,2.8版本后引入Psync指令,根据复制偏移量进行全量或部分同步,优化了数据传输效率... 目录Redis主DodMIK从复制实现原理实现原理Psync: 2.8版本后总结Redis主从复制实

锐捷和腾达哪个好? 两个品牌路由器对比分析

《锐捷和腾达哪个好?两个品牌路由器对比分析》在选择路由器时,Tenda和锐捷都是备受关注的品牌,各自有独特的产品特点和市场定位,选择哪个品牌的路由器更合适,实际上取决于你的具体需求和使用场景,我们从... 在选购路由器时,锐捷和腾达都是市场上备受关注的品牌,但它们的定位和特点却有所不同。锐捷更偏向企业级和专