实验八 SNMP网络管理报文信息解析
一、实验目的
:
1.理解
SNMP协议的工作原理;
2.理解
SNMP协议的作用。
二、实验内容:
1.通过仿真
SNMP数据包,学习SNMP协议的格式;
2.学习使用
SNMP 工具,了解MIB以及基本的MIB变量;
3.学习
SNMP协议的作用;
4.了解
SNMP与UDP的关系。
三、实验原理:
用于网络管理站与被管设备的网管代理之间交互管理信息的协议。管理信息的结构使用一种概念树。树叶表示各种对象,帮助用户了解互连网络的结构。网络管理站通过
SNMP协议向被管设备的网管代理发出各种请求报文,网管代理则接收这些请求后完成相应的操作。SNMP为应用层协议,是TCP/IP协议簇的一部分,它是通过UDP用户数据报协议来操作的。
网络管理员对网络及其设备的管理有三种方式:本地终端方式、远程
Telnet命令方式和基于
SNMP的代理/服务器方式。
1
、SNMP的报文格式:
'>1
图
5-1 SNMP报文格式
字段说明:
共同体:
共同体字段是一个字符串。这是管理进程和代理进程之间的口令,是明文格式。默认值是
public
。
PDU
类型
|
名 称
|
描 述
|
0
|
get-request
|
从代理进程提取一个或多个参数值
|
1
|
get-next-request
|
从代理进程提取一个或多个参数的下一个参数值
|
2
|
get-response
|
应答一个取操作
|
3
|
set-request
|
设置代理进程的一个或多个参数值
|
4
|
trap
|
代理进程主动发出的报文,通知管理进程有某些事情发生
|
表5-1 PDU类型
请求标识:
请求标识由管理进程设置,由代理进程在
get-response
中返回。管理进程通过它来确定代理进程发出的响应与管理进程发出的查询是否匹配。
差错状态
|
名 称
|
描 述
|
0
|
noError
|
没有错误
|
1
|
tooBig
|
代理进程无法把响应放在一个SNMP消息中发送
|
2
|
noSuchName
|
操作不存在的变量
|
3
|
badValue
|
set
操作的值或语义有错误
|
4
|
readOnly
|
管理进程试图修改一个只读变量
|
5
|
genErr
|
其他错误
|
表5-2 差错状态
差错索引:
是一个整数偏移量,指明当有差错发生时,差错发生在哪一个参数。它是由代理进程标注的,只有在发生
noSuchName
、
badValue
、
readOnly
差错时才标注。
trap
类型
|
名 称
|
描 述
|
0
|
coldStart
|
代理进程对自己初始化
|
1
|
warmStart
|
代理进程对自己重新初始化
|
2
|
linkDown
|
一个接口已经从工作状态改变为故障状态,报文中的第一个变量标识此接口
|
3
|
linkUp
|
一个接口已经从故障状态改变为工作状态,报文中的第一个变量标识此接口
|
4
|
authenticationFailure
|
从SNMP管理进程收到无效共同体的报文
|
5
|
egpNeighborLoss
|
一个EGP邻站已改变为故障状态。报文中的第一个变量包含此邻站的IP地址
|
6
|
enterpriseSpecific
|
在这个特定的代码字段中查找trap信息
|
表5-3 trap类型
SNMP
管理站用Get-Request消息从拥有SNMP代理的网络设备中检索信息,而SNMP代理则用Get-Response消息响应。Get-Next-Request用于和Get-Request组合起来查询特定的表对象中的列元素。如:
首先通过下面的原语获得所要查询的设备的接口数:
{iso org(3) dod(6) internet(1) mgmt(2) mib(1) interfaces(2) ifNumber(2)}
然后再通过下面的原语,进行查询(其中第一次用Get-Request,其后用Get-Next-Request):
{iso org(3) dod(6) internet(1) mgmt(2) mib(1) interfaces(2) ifTable(2)}
2
、详细原理请参考教材
四、实验步骤:
u
查看网络信息库(MIB)
本练习的目的是学习了解
MIB2库的内容。实验步骤如下:
1、安装
MIB BROWSER.exe文件
2、在
主机名称栏中键入局域网主机IP地址
3、查找该键入
IP地址主机MIBW值
依次展开节点:(在下部显示对不同信息的描述)
-iso(国际标准化组织)
1
-org(国际组织)
3
-dod(美国国防部)
6
-internet(互联网)
1
-mgmt(管理组织机构)
2
-mib2(管理信息库)
1
得到
mib2节点:1.3.6.1.2.1
4、查看节点
mib2下的8个组:
-system(系统)
1
-interface(接口)
2
-at(地址翻译)
3
-ip(
IP信息)4
-icmp(
ICMP信息)5
-tcp(
TCP信息)6
-udp(
UDP信息)7
-egp(外部网关协议信息)
8
单击获取按钮在右侧信息框中会有相应的变量信息;
例如:点击
system组节点;会列出该组节点下的7个变量;
- sysDescr
;系统的文字描述
- sysObjectID
;在子树1.3.6.1.2.1.1.2中的厂商标识
- sysUpTime
;从系统的网管部分启动以来运行的时间(百分之一秒为单位)
- sysContact
;联系人的名字及联系方式
- sysName
;节点的完全合格的名称
- sysLocation
;节点的物
理位置
- sysServices
;
指示节点提供的服务的值。
点击
sysName
变量,在右边的窗口出现该变量的值。
记录
system
组下的
变量的对象标识都是多少?
图
5-2 SNMP编辑视图
5、
点击其他的组节点,查看相应的变量。
u
启动分析器抓取获得MIB管理对象的过程:
图 5-3 SNMP协议视图
u
编辑并发送SNMP数据包
SNMP服务是建立在
UDP协议之上的,SNMP数据封装在UDP数据包内,故对SNMP数据的编辑即是对UDP数据字段内容的编辑。
1、打开协议仿真编辑器,在界面初始状态下,程序会自动新建一个单帧,可以利用协议仿真编辑器打开时默认的以太网帧进行编辑;
2、填写该帧的以太网协议首部:
⑴目的
MAC地址:网关的MAC地址;
源
MAC地址:本机的地址
⑵类型或长度字段:
0800(即IP协议的类型值)
3、填写
IP协议头信息:
⑴总长度:
IP长度+UDP长度+SNMP长度;
⑵高层协议类型:选择上层协议类型为
UDP协议,其类型值为17;
⑶目的
IP地址:为代理主机(待管理设备)的IP地址。可以设为:202.198.156.254;
⑷源
IP地址:本机IP
⑸计算
IP头的校验和;
4、填写
UDP协议信息:
⑴源端口:自选
⑵目的端口:
161(SNMP代理进程的UDP端口号)
⑶
UDP长度:UDP报头长度与UDP数据长度(SNMP部分)之和。
⑷编辑
39个字节的SNMP数据字段:点击SNMP的数据出现编辑框,添入下列信息:
30 25 02 01 00 04 06 70 75 62 6C 69 63 A1 18 02
01 01 02 01 00 02 01 00 30 0D 30 0B 06 07 2B 06
01 02 01 01 05 05 00
⑸校验和:覆盖
UDP首部(含伪首部)和数据(SNMP)两部分。计算方法参考实验五。
5、点击工具栏或菜单栏中的“发送”,在弹出对话框上选择“发送”按钮,发送
SNMP报文;
6、在协议分析器一端截获该
SNMP请求报文及SNMP响应报文,并记录分析响应报文的内容。