预览加载中,请您耐心等待几秒...
1/8
2/8
3/8
4/8
5/8
6/8
7/8
8/8

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

SNMP编程指南一 主要内容: SNMP(简单网络管理协议)概念 SNMP网络架构 SNMP协议版本 SNMP操作 SNMP报文结构 学习目标: 了解SNMP(简单网络管理协议)概念 熟悉SNMP网络架构 了解SNMP协议版本 熟悉SNMP操作 了解SNMP报文结构 掌握重点: SNMP网络架构 SNMP操作 疑难点: SNMP网络架构 一.SNMP(简单网络管理协议)概念 SNMP是管理进程(NMS)和代理进程(Agent)之间的通信协议。它规定了在网络环境中对设备进行监视和管理的标准化管理框架、通信的公共语言、相应的安全和访问控制机制。网络管理员使用SNMP功能可以查询设备信息、修改设备的参数值、监控设备状态、自动发现网络故障、生成报告等。 二.SNMP网络架构 SNMP网络架构由三部分组成:NMS、Agent和MIB。 1NMS简介 NMS是网络中的管理者,是一个利用SNMP协议对网络设备进行管理和监视的系统。NMS既可以指一台专门用来进行网络管理的服务器,也可以指某个设备中执行管理功能的一个应用程序。 NMS可以向Agent发出请求,查询或修改一个或多个具体的参数值。同时,NMS可以接收Agent主动发送的Trap信息,以获知被管理设备当前的状态。 2Agent简介 Agent是网络设备中的一个应用模块,用于维护被管理设备的信息数据并响应NMS的请求,把管理数据汇报给发送请求的NMS。 Agent接收到NMS的请求信息后,完成查询或修改操作,并把操作结果发送给NMS,完成响应。同时,当设备发生故障或者其他事件的时候,Agent会主动发送Trap信息给NMS,通知设备当前的状态变化。 3MIB简介 3.1MIB定义 任何一个被管理的资源都表示成一个对象,称为被管理的对象。MIB是被管理对象的集合。它定义了被管理对象的一系列属性:对象的名称、对象的访问权限和对象的数据类型等。每个Agent都有自己的MIB。NMS、Agent和MIB之间的关系如图1所示。 3.2OID和子树 MIB是以树状结构进行存储的。树的节点表示被管理对象,它可以用从根开始的一条路径唯一地识别,这条路径就称为OID)。如图2所示。管理对象system可以用一串数字{1.3.6.1.2.1.1}唯一标识,这串数字就是system的OID。 子树可以用该子树根节点的OID来标识。如以private为根节点的子树的OID为private的OID——{1.3.6.1.4}。 四.SNMP版本 SNMP主要有SNMPv1、SNMPV2c、SNMPv3几种最常用的版本。 4.1SNMPv1 SNMPv1是SNMP协议的最初版本,提供最小限度的网络管理功能。SNMPv1的SMI和MIB都比较简单,且存在较多安全缺陷。 SNMPv1采用团体名认证。团体名的作用类似于密码,用来限制NMS对Agent的访问。如果SNMP报文携带的团体名没有得到NMS/Agent的认可,该报文将被丢弃。 4.2SNMPv2c SNMPv2c也采用团体名认证。在兼容SNMPv1的同时又扩充了SNMPv1的功能:它提供了更多的操作类型(GetBulk操作等);支持更多的数据类型(Counter32等);提供了更丰富的错误代码,能够更细致地区分错误。 4.3SNMPv3 SNMPv3主要在安全性方面进行了增强,它采用了USM和VACM技术。USM提供了认证和加密功能,VACM确定用户是否允许访问特定的MIB对象以及访问方式。 五.SNMP操作 SNMP支持多种操作,主要为以下几种基本操作: Get操作:NMS使用该操作从Agent获取一个或多个参数值。 GetNext操作:NMS使用该操作从Agent获取一个或多个参数的下一个参数值。 Set操作:NMS使用该操作设置Agent一个或多个参数值。 Response操作:Agent返回一个或多个参数值。该操作是前面三种操作的响应。 Trap操作:Agent主动发出的操作,通知NMS有某些事情发生。 执行前四种操作时设备使用UDP协议采用161端口发送报文,执行Trap操作时设备使用UDP协议采用162端口发送报文。由于收发采用了不同的端口号,所以一台设备可以同时作为Agent和NMS。 六.SNMP报文 根据SNMP的不同版本和不同操作,定义了以下报文格式: 6.1SNMPv1报文 图4SNMPv1报文格式 从图4可以看出,SNMP消息主要由Version、Community、SNMPPDU几部分构成。其中,报文中的主要字段定义如下: Version:SNMP版本。 Community:团体名,用于Agent与NMS之间的认证。团体名有可读和可写两种,如果是执行Get、GetNext操作,则采用可读团体名进行认证;如果是执行Se