构建SNMP协议的Walk请求
Walk 请求与 Get 请求类似,实际上是一个 Get-next-request 请求。区别在于,Walk 请求是获取对象标识符在系统树中所处位置的下一个对象标识符,并请求参数值。
netwox 工具中编号为 160 的模块实现了 SNMP Walk 请求功能,它可以向 SNMP 服务设备发送 Walk 请求,获取指定对象标识符的下一个对象标识符。语法格式如下:
【实例】已知支持 SNMP 协议的远程网络设备地址为 198.13.107.218。在主机 192.168.59.133 上构建 SNMP Get 请求,获取指定标识符的下一个标识符的值。
1) 获取网络接口描述信息,执行命令如下:
执行命令后输出信息如下:
2) 通过抓包可以看到构建的 SNMP Walk 请求包和对应的响应包,如图所示。
其中,第 18 个数据包的源 IP 地址为 192.168.59.133,目标 IP 地址为 198.13.107.218,Info 列中的基本信息为 get-next-request 1.3.6.1.2.1.2.2.1.2。其中,1.3.6.1.2.1.2.2.1.2 表示 OID,get-next-request 表示要获取该 OID 的下一个 OID。
该数据包的报文信息如下:
3) 捕获到的返回数据包,如图所示。
该数据包为对应的响应包。此时在报文中可以看到,对象名为 1.3.6.1.2.1.2.2.1.2.1,该 OID 是命令中指定的 OID 的下一个 OID。
4) 指定再次向下一个 OID 发送请求,捕获的数据包如图所示。
从图中的数据包报文中可以看到,对象名为 1.3.6.1.2.1.2.2.1.2.1,表示向下一个 OID 发送了请求。
netwox 工具中编号为 160 的模块实现了 SNMP Walk 请求功能,它可以向 SNMP 服务设备发送 Walk 请求,获取指定对象标识符的下一个对象标识符。语法格式如下:
netwox -q OID -i IP
其中,-q 选项用来指定对象标识符,表示要获取该标识符的下一个对象标识符;-i 选项用来指定 SNMP 服务地址。【实例】已知支持 SNMP 协议的远程网络设备地址为 198.13.107.218。在主机 192.168.59.133 上构建 SNMP Get 请求,获取指定标识符的下一个标识符的值。
1) 获取网络接口描述信息,执行命令如下:
root@daxueba:~# netwox 160 -q ".1.3.6.1.2.1.2.2.1.2" -i 198.13.107.218
命令中 .1.3.6.1.2.1.2.2.1.2 为网络接口描述信息的标识符。执行命令后输出信息如下:
.1.3.6.1.2.1.2.2.1.2.1: 'LOOPBACK'
以上输出信息显示了下一个标识符,这里为 .1.3.6.1.2.1.2.2.1.2.1,并且获取到了对应的值为 LOOPBACK。表示网络接口为回环接口。2) 通过抓包可以看到构建的 SNMP Walk 请求包和对应的响应包,如图所示。
该数据包的报文信息如下:
Simple Network Management Protocol version: version-1 (0) community: public data: get-next-request (1) #PDU类型, 这里值为1, 表示为Walk请求 get-next-request request-id: 222961396 error-status: noError (0) error-index: 0 variable-bindings: 1 item 1.3.6.1.2.1.2.2.1.2: Value (Null) Object Name: 1.3.6.1.2.1.2.2.1.2 (iso.3.6.1.2.1.2.2.1.2) #对象名(变量名) Value (Null)从输出信息可以看到,报文中 PDU 类型为 1,请求的变量名为对象标识符 1.3.6.1.2.1.2.2.1.2。
3) 捕获到的返回数据包,如图所示。
4) 指定再次向下一个 OID 发送请求,捕获的数据包如图所示。
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算