SNMP概述


  开启SNMP协议就可以应用网管软件与IT运维管理系统来扫描发现支持SNMP协议的网络设备,并对这些IT设备进行自动化与智能化的管理。

1 概述

  SNMP是Simple Network Manger Protocol(简单网络管理协议)的缩写,在1988年8月就成为一个网络管理标准RFC1157。到目前,因众多厂家对该协议的支持,SNMP已成为事实上的网管标准,适合于在多厂家系统的互连环境中使用。利用SNMP协议,网络管理员可以对网络上的节点进行信息查询、网络配置、故障定位、容量规划,网络监控和管理是SNMP的基本功能。
  SNMP是一个应用层协议,为客户机/服务器模式,包括三个部分:
  - SNMP网络管理器
  - SNMP代理
  - MIB管理信息库
  SNMP网络管理器,是采用SNMP来对网络进行控制和监控的系统,也称为NMS (Network Management System)。常用的运行在NMS上的网管平台有HP OpenView 、CiscoView、CiscoWorks 2000,锐捷网络针对自己的网络设备,开发了一套网管软件——Star View。这些常用的网管软件可以方便的对网络设备进行监控和管理。
  SNMP代理(SNMP Agent)是运行在被管理设备上的软件,负责接受、处理并且响应来自NMS的监控和控制报文,也可以主动发送一些消息报文给NMS。
  NMS和Agent的关系可以用如下的图来表示:

1.png

图1 网络管理站(NMS)与网管代理(Agent)的关系图

  MIB(Management Information Base)是一个虚拟的网络管理信息库。被管理的网络设备中包含了大量的信息,为了能够在SNMP报文中唯一的标识某个特定的管理单元,MIB采用树形层次结构来描述网络设备中的管理单元。树的节点表示某个特定的管理单元。如下图MIB对象命名树,为了唯一标识网络设备中的某个管理单元System,可以采用一串的数字来表示,如{1.3.6.1.2.1.1}这一串数字即为管理单元的Object Identifier(单元标识符),MIB则是网络设备的单元标识符的集合。

1.jpg

图2 MIB树形层次结构

2 SNMP协议版本

  目前SNMP支持以下版本:
  
  - lSNMPv1 :简单网络管理协议的第一个正式版本,在RFC1157中定义。
  - SNMPv2C:基于共同体(Community-Based)的SNMPv2管理架构, 在RFC1901中定义的一个实验性协议。
  - SNMPv3 :通过对数据进行鉴别和加密,提供了以下的安全特性:
  1. 确保数据在传输过程中不被篡改;
  2. 确保数据从合法的数据源发出;
  3. 加密报文,确保数据的机密性;
  SNMPv1和SNMPv2C都采用基于共同体(Community-based)的安全架构。通过定义主机地址以及认证名(Commumity String)来限定能够对代理的MIB进行操作的管理者。
  SNMPv2C增加了Get-bulk操作机制并且能够对管理工作站返回更加详细的错误信息类型。Get-bulk操作能够一次性地获取表格中的所有信息或者获取大批量的数据,从而减少请求-响应的次数。SNMPv2C错误处理能力的提高包括扩充错误代码以区分不同类型的错误,而在SNMPv1中这些错误仅有一种错误代码。现在通过错误代码可以区分错误类型。由于网络上可能同时存在支持SNMPv1和SNMPv2C的管理工作站,因此SNMP代理必须能够识别SNMPv1和SNMPv2C报文,并且能返回相应版本的报文。

3 SNMP管理操作

  SNMP协议中的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操作)。下图描述了这几种种操作。

1.png

图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口的错误信息。

4 SNMP安全

  SNMPv1和SNMPv2版本使用认证名用来鉴别是否有权使用MIB对象。为了能够管理设备,网络管理系统 (NMS)的认证名必须同设备中定义的某个认证名一致。
  一个认证名可以有以下属性:
  - 只读(Read-only):为被授权的管理工作站提供对所有MIB变量的读权限。
  - 读写(Read-write):为被授权的管理工作站提供对所有MIB变量的读写权限。
  在SNMPv2的基础上, SNMPv3通过安全模型以及安全级别来确定对数据采用哪种安全机制进行处理;目前可用的安全模型有三种类别:SNMPv1、SNMPv2C、SNMPv3。
  下表为目前可用的安全模型以及安全级别

2.png


5 SNMP 引擎标识

  引擎标识用于唯一标识一个SNMP引擎。由于每个SNMP实体仅包含一个SNMP引擎,它将在一个管理域中唯一标识一个SNMP实体。因此,作为一个实体的SNMPv3代理器必须拥有一个唯一的引擎标识,即SnmpEngineID。
  引擎标识为一个OCTET STRING,长度为5——32字节长。在RFC3411中定义了引擎标识的格式:
  - 前4个字节标识厂商的私有企业号(由IANA分配),用HEX表示。
  - 第5个字节表示剩下的字节如何标识:
  0:保留
  1:后面4个字节是一个Ipv4地址。
  2:后面16个字节是一个Ipv6地址。
  3:后面6个字节是一个MAC地址。
  4:文本,最长27个字节,由厂商自行定义。
  5:16进制值,最长27个字节,由厂商自行定义。
  6-127:保留。
  128-255:由厂商特定的格式。

0 个评论

要回复博客请先登录注册