目录
(1)Get-Request、Get-Next-Requset、Set-Request、Response和Inform PDU的格式
一、SNMP简介
1.背景
SNMP是广泛应用于TCP/IP网络的一种通用网络管理协议,可以实现对全网中所有设备的集中管理,远比CLI和Web管理方式更加高效。而且,因为SNMP是国际通用协议,所以各大品牌设备都支持。一套SNMP的网络管理系统可以对不同种类和不同厂商的设备进行统一管理,从而提升网络的管理效率。
2.SNMP管理的网络架构
在SNMP中有两类重要的实体,一类是采用SNMP对网络设备进行监控、管理的应用层软件,在一套主机上运行着网络管理进程,使用UDP 162端口,可以被看成是SNMP客户端,每个被管理设备在配置了SNMP功能后,使用UDP 161端口和运行代理(Agent)进程,可以被看成是SNMP服务器,代理进程负责维护被管理设备的信息数据,并响应来自NMS的请求,把管理数据汇报给发送请求的NMS。
基于SNMP管理的网络架构
二、SNMP MIB
1.SNMP MIB简介
表面上就看,NMS管理的是设备,事实上管理的是设备商的一个个被管理对象,每台设备可能包括多个被管理对象,可以是设备中的某个硬件(如某个设备接口),也可以是在硬件、软件上配置的参数集合。SNMP通过MIB描述被管理设备商的各个对象。
被管设备上的代理进程收到NMS的请求信息,通过MIB完成响应的指令后,并把操作结果响应给NMS,当系统发声故障或者发生其他事件时,设备也会通过代理进程主动发从Trap信息给NMS,报告设备当前的状态变化。
SNMP中的MIB是一个分层结构,我们称为对象命名树,或对象标识符(OID)树
SNMP MIB对象命名树
在MIB对象命名树中,每一个节点代表一类对象。每类对象既有一个名称,又有一个节点标识,就是小括号中的数字。节点标识只要求在树中同层次节点间唯一,分支中各节点标识以小圆点(.)分隔,由上至下串行连接起来就形成了OID,每个对象的OID在整个对象命名树中时唯一的。
MIB对象命名树的顶级对象有三个,即ITU-T的ccitt(0),IOS的ios(1)和ITU-T、IOS两个组织的联合体join-ios-ccitt(2),形成了3个子树,这3个顶级对象旁边的数字代表了它们对应的标识,分别是0、1、2。
2.MIB分类
(1)公有MIB
一般由RFC定义,主要用来对各种公有协议(IP、ICMP、TCP、UDP等)进行结构化设计和接口标准化处理。大多数的设备制造商都需要按照RFC的定义来提供SNMP接口,这部分对应的MIB是对象命名树中的mib节点下面的对象。
(2)私有MIB
是公有MIB的必要补充。公司自行研发的私有协议或者特有功能时,可以利用私有MIB来完善SNMP接口的管理功能,同时对第三方网络管理软件管理存在私有协议或特有功能的设备提供支持,这部分对应的MIB是在internet(1)-private(4)-enterprise(1)节点下面的对象。
3.被管理设备的基本属性
(1)对象表示符
就是由对象所在分支中各节点对象的节点表示,自上而下以小圆点分隔组成的一串数字,如mib对象的OID为1.3.6.1.2.3.
(2)对象的状态
包括current(当前可用)、mandatory(必备)、optional(可选)、obsolete(禁用)、deprecate(已废弃)等,不同的SNMP版本支持的状态类型不完全一样。
(3)对象的访问权限
包括read-only(只读)、read-write(读写、可以读写、修改配置信息)、read-create(可以读取信息,修改配置,新增配置和删除配置)和no-accessible(不可存取、无法进行任何操作),不同的SNMP版本支持权限完全不一样。
(4)对象的数据类型
包括integer32、octetsring、object identifier、bull、ipaddress、counter32、counter64、gauge32、unsigned32、timeticks、opaque、BIT STRING等,不同的SNMP版本支持的数据类型完全不一样。