分类: LINUX
2010-12-02 10:42:21
SNMP是Simple Network Manger Protocol(简单网络管理协议)的缩写,在1988年8月就成为一个网络管理标准RFC1157。到目前,因众多厂家对该协议的支持,SNMP已成为事实上的网管标准,适合于在多厂家系统的互连环境中使用。利用SNMP协议,网络管理员可以对网络上的节点进行信息查询、网络配置、故障定位、容量规划,网络监控和管理是SNMP的基本功能。
SNMP是一个应用层协议,为客户机/服务器模式,包括三个部分:
l SNMP网络管理器
l SNMP代理
l MIB管理信息库
SNMP网络管理器,是采用SNMP来对网络进行控制和监控的系统,也称为NMS (Network Management System)。常用的运行在NMS上的网管平台有HP OpenView 、CiscoView、CiscoWorks 2000,锐捷网络针对自己的网络设备,开发了一套网管软件--Star View。这些常用的网管软件可以方便的对网络设备进行监控和管理。
SNMP代理(SNMP Agent)是运行在被管理设备上的软件,负责接受、处理并且响应来自NMS的监控和控制报文,也可以主动发送一些消息报文给NMS。
NMS和Agent的关系可以用如下的图来表示:
图1 网络管理站(NMS)与网管代理(Agent)的关系图
MIB(Management Information Base)是一个虚拟的网络管理信息库。被管理的网络设备中包含了大量的信息,为了能够在SNMP报文中唯一的标识某个特定的管理单元,MIB采用树形层次结构来描述网络设备中的管理单元。树的节点表示某个特定的管理单元。如下图MIB对象命名树,为了唯一标识网络设备中的某个管理单元System,可以采用一串的数字来表示,如{
图2 MIB树形层次结构
目前SNMP支持以下版本:
l SNMPv1 :简单网络管理协议的第一个正式版本,在RFC1157中定义。
l SNMPv
l SNMPv3 :通过对数据进行鉴别和加密,提供了以下的安全特性:
1. 确保数据在传输过程中不被篡改;
2. 确保数据从合法的数据源发出;
3. 加密报文,确保数据的机密性;
SNMPv1和SNMPv
SNMPv
数据,从而减少请求-响应的次数。SNMPv
协议中的NMS和Agent之间的交互信息,定义了6种操作类型:
1. Get-request操作:NMS从Agent提取一个或多个参数值。
2. Get-next-request操作:NMS从Agent提取一个或多个参数的下一个参数值。
3. Get-bulk操作:NMS从Agent提取批量的参数值;
4. Set-request操作:NMS设置Agent的一个或多个参数值。
5. Get-response操作:Agent返回的一个或多个参数值,是Agent对NMS前面3个操作的响应操作。
6. Trap操作:Agent主动发出的报文,通知NMS有某些事情发生。
前面的4个报文是由NMS向Agent发出的,后面两个是Agent发给NMS的(注意:SNMPv1版本不支持Get-bulk操作)。下图描述了这几种种操作。
图3 SNMP的报文类型
NMS向Agent发出的前面3种操作和Agent的应答操作采用UDP的161端口。Agent发出的Trap操作采用UDP的162端口。
~ 注意:
通过SNMP对R2700交换卡(NM2-24ESW/NM2-16ESW)进行管理时,NM2-16ESW会获取到不存在的17~26口的错误信息;NM2-24ESW会获取到不存在的25~26口的错误信息。
SNMPv1和SNMPv2版本使用认证名用来鉴别是否有权使用MIB对象。为了能够管理设备,网络管理系统 (NMS)的认证名必须同设备中定义的某个认证名一致。
一个认证名可以有以下属性:
l 只读(Read-only):为被授权的管理工作站提供对所有MIB变量的读权限。
l 读写(Read-write):为被授权的管理工作站提供对所有MIB变量的读写权限。
在SNMPv2的基础上, SNMPv3通过安全模型以及安全级别来确定对数据采用哪种安全机制进行处理;目前可用的安全模型有三种类别:SNMPv1、SNMPv
下表为目前可用的安全模型以及安全级别
安全模型 |
安全级别 |
鉴别 |
加密 |
说明 |
SNMPv1 |
noAuthNoPriv |
认证名 |
无 |
通过认证名确认数据的合法性 |
SNMPv |
noAuthNoPriv |
认证名 |
无 |
通过认证名确认数据的合法性 |
SNMPv3 |
noAuthNoPriv |
用户名 |
无 |
通过用户名确认数据的合法性 |
SNMPv3 |
authNoPriv |
MD5或者SHA |
无 |
提供基于HMAC-MD5或者HMAC-SHA的数据鉴别机制 |
SNMPv3 |
authPriv |
MD5或者SHA |
DES |
提供基于HMAC-MD5或者HMAC-SHA的数据鉴别机制 提供基于CBC-DES的数据加密机制 |
引擎标识用于唯一标识一个SNMP引擎。由于每个SNMP实体仅包含一个SNMP引擎,它将在一个管理域中唯一标识一个SNMP实体。因此,作为一个实体的SNMPv3代理器必须拥有一个唯一的引擎标识,即SnmpEngineID。
引擎标识为一个OCTET STRING,长度为5~32字节长。在RFC3411中定义了引擎标识的格式:
l 前4个字节标识厂商的私有企业号(由IANA分配),用HEX表示。
l 第5个字节表示剩下的字节如何标识:
0:保留
1:后面4个字节是一个Ipv4地址。
2:后面16个字节是一个Ipv6地址。
3:后面6个字节是一个MAC地址。
4:文本,最长27个字节,由厂商自行定义。
5:16进制值,最长27个字节,由厂商自行定义。
6-127:保留。
128-255:由厂商特定的格式。