浅谈SNMP协议

一.SNMP的基本概念:

SNMP(Simple Network Manager Protocol)简单网络管理协议。由一组网络管理的标准组成,包含一个应用层协议、数据库模型和一组资源对象。

该协议能够支持网络管理系统,用于监测连接到网络上的设备是否有任何引起管理上关注的情况。

目标是保证管理信息在任意两点中转送,便于网络管理员在网络上的任何节点检索信息,进行修改,寻找故障;完成故障诊断,容量规划和报告生成。

独立于被管设备,采用轮询机制,提供最基本的功能集。

 

二.SNMP协议模型:

1.网管站NMS对网络设备发出各种查询报文,并接收来自被管设备的相应和陷阱(trap)报文(在一些紧急的情况下,如接口状态发生改变等时候,主动通知NMS),并将结果显示出来。

2.代理AGENT是驻留在被管设备上的一个进程,负责接受、处理来自网管站的请求报文,然后从设备上其他协议模块中取得管理变量的数值,形成响应报文,反送给NMS。

3.管理信息库MIB:任何一个被管理的资源都表示成一个对象,称为被管理的对象。MIB是被管理对象的集合。它定义了被管理对象的一系列属性:对象的名称、对象的访问权限和对象的数据类型等。每个SNMP设备(Agent)都有自己的MIB。MIB也可以看作是NMS(网管系统)和Agent之间的沟通桥梁。

 

三.SNMP报文:

浅谈SNMP协议_第1张图片
版本:写入版本字段的是版本号减1,对于SNMP(即SNMPV1)则应写入0。

团体名:共同体就是一个字符串,作为管理进程和代理进程之间的明文口令,常用的是6个字符“public”。

团体名定义身份认证和访问控制的一个SNMP agent 和一组SNMP manager的集合。

身份验证:核对团体名;控制访问:read-only,read-write。

协议数据单元PDU:根据PDU的类型,填入0~4中的一个数字,对应关系如下。

SNMP一共有五种报文,所以其PDU也有五种。

0.GET-REQUEST:从某变量取值(NSM发送)

1.GET-NEXT REQUEST:从表格中取下一个值(NSM发送)

2.GET-RESPONSE:相应取操作(Agent发送)

3.SET-REQUEST:把一数值存入具体变量(NSM发送)

4.TRAP:报告事件信息(Agent发送)

 

四.SNMP的运行过程:

驻留在被管设备上的AGENT从UDP端口161接受来自网管站的报文,经解码、团体名验证、分析得到管理变量在MIB树中对应的节点,从相应的模块中得到管理变量的值,再形成响应报文,编码发送回网管站。网管站得到响应报文后,再经同样的处理,最终显示结果。

详细介绍Agent接受到报文后才采取的动作:

第一步:解码生成用内部数据结构表示的报文,如果解码过程中出现错误导致解码失败则丢弃该报文,不做进一步处理。

第二步:将报文中的版本号取出,如果本Agent支持的SNMP版本不一致,则丢弃该报文,不做进一步处理。

第三步:将报文中的团体名取出,此团体名由发的NMS填写。如与本设备认可的团体名不符,则丢弃该报文,不做进一步处理,同时产生一个陷阱报文,

第四步:从通过验证的ASN.1对象中提出协议数据单元PDU,如果失败,丢弃报文,不做进一不处理。否则处理PDU,结果将产生一个报文,该报文的发送目的地址应同收到报文的源地址一致。

 

 


 

 

 

 

 

 

 

你可能感兴趣的:(网络协议,snmp)