构建SNMP协议的Walk请求

Walk 请求与 Get 请求类似,实际上是一个 Get-next-request 请求。区别在于,Walk 请求是获取对象标识符在系统树中所处位置的下一个对象标识符,并请求参数值。

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 请求包和对应的响应包,如图所示。

其中,第 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。

该数据包的报文信息如下:
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) 捕获到的返回数据包,如图所示。

该数据包为对应的响应包。此时在报文中可以看到,对象名为 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 发送了请求。

相关文章

随着云计算和网络技术的发展,越来越多的数据需要在服务器之...
阿里云服务器Tomcat无法从外部访问一、环境阿里云Ubuntu 12....
购买一系列的东西其实就是花钱买块区域,服务器,域名,云解...
前言昨天买了域名,服务器,然后搭建了环境,然后想他通过默...
前言由于服务器centos6.8安装mysql一直出现不能连接问题,然后...
前言用 SSH客户端登录上以后,自己想要在本地连接服务器上的...