SNMP 技术白皮书


SNMP技术白皮书 杭州华三通信技术有限公司 www.h3c.com.cn 第1页,共15页 SNMP技术白皮书 关键词:SNMP、MIB、OID、Agent、NMS 摘 要:网络技术飞速发展,网络设备数量越来越多,设备类型也多种多样。如何有效的管理 这些设备呢?我们可以通过SNMP功能来实现这一目标。本文将重点介绍SNMP的基 本概念、工作原理以及主要应用。 缩略语: 缩略语 英文全名 中文解释 MIB Management Information Base 管理信息库 NMS Network Management Station 网络管理站 OID Object Identifier 对象标识符 SNMP Simple Network Management Protocol 简单网络管理协议 SMI Structure of Management Information 管理信息结构 USM User-based Security Model 基于用户的安全模型 VACM View-based Access Control Model 基于视图的访问控制模型 PDU protocol data unit 协议数据单元 SNMP技术白皮书 杭州华三通信技术有限公司 www.h3c.com.cn 第2页,共15页 目 录 1 概述 .......................................................................................................................................3 1.1 产生背景 ......................................................................................................................3 1.2 技术优点 ......................................................................................................................3 2 特性介绍 ................................................................................................................................4 2.1 SNMP网络架构............................................................................................................4 2.1.1 NMS简介 ...........................................................................................................4 2.1.2 Agent简介..........................................................................................................4 2.1.3 MIB简介.............................................................................................................4 2.2 SNMP版本...................................................................................................................6 2.2.1 SNMPv1 ............................................................................................................6 2.2.2 SNMPv2c ..........................................................................................................6 2.2.3 SNMPv3 ............................................................................................................7 2.3 SNMP操作...................................................................................................................7 2.4 SNMP报文...................................................................................................................7 2.4.1 SNMPv1报文 .....................................................................................................8 2.4.2 SNMPv2c报文 ...................................................................................................9 2.4.3 SNMPv3报文 .....................................................................................................9 2.5 SNMP协议原理..........................................................................................................10 2.5.1 SNMPv1和SNMPv2c实现机制 ........................................................................10 2.5.2 SNMPv3实现机制............................................................................................12 3 H3C实现的技术特色 ............................................................................................................13 4 典型组网案例 .......................................................................................................................14 4.1 组网图........................................................................................................................14 4.2 组网环境 ....................................................................................................................14 5 附录 .....................................................................................................................................14 5.1 相关协议 ....................................................................................................................14 5.2 参考文献 ....................................................................................................................15 SNMP技术白皮书 杭州华三通信技术有限公司 www.h3c.com.cn 第3页,共15页 1 概述 1.1 产生背景 如今,网络与人们的生活和工作联系越来越紧密,但随着网络的普及引发了两大问 题: z 网络规模逐渐增大,网络设备的数量成级数增加,网络管理员很难及时监控 所有设备的状态、发现并修复故障。 z 网络设备可能来自不同的厂商,如果每个厂商都提供一套独立的管理接口 (比如命令行),将使网络管理变得越来越复杂。 为解决以上两大问题,一套覆盖服务、协议和管理信息库的标准(SNMP)孕育而 生。 1.2 技术优点 SNMP是管理进程(NMS)和代理进程(Agent)之间的通信协议。它规定了在网 络环境中对设备进行监视和管理的标准化管理框架、通信的公共语言、相应的安全 和访问控制机制。网络管理员使用SNMP功能可以查询设备信息、修改设备的参数 值、监控设备状态、自动发现网络故障、生成报告等。 SNMP具有以下技术优点: z 基于 TCP/IP 互联网的标准协议,传输层协议一般采用 UDP。 z 自动化网络管理。网络管理员可以利用 SNMP 平台在网络上的节点检索信 息、修改信息、发现故障、完成故障诊断、进行容量规划和生成报告。 z 屏蔽不同设备的物理差异,实现对不同厂商产品的自动化管理。SNMP 只提 供最基本的功能集,使得管理任务与被管设备的物理特性和实际网络类型相 对独立,从而实现对不同厂商设备的管理。 z 简单的请求—应答方式和主动通告方式相结合,并有超时和重传机制。 z 报文种类少,报文格式简单,方便解析,易于实现。 z SNMPv3 版本提供了认证和加密安全机制,以及基于用户和视图的访问控制 功能,增强了安全性。 SNMP技术白皮书 杭州华三通信技术有限公司 www.h3c.com.cn 第4页,共15页 2 特性介绍 2.1 SNMP网络架构 SNMP网络架构由三部分组成:NMS、Agent和MIB。 2.1.1 NMS简介 NMS是网络中的管理者,是一个利用SNMP协议对网络设备进行管理和监视的系 统。NMS既可以指一台专门用来进行网络管理的服务器,也可以指某个设备中执 行管理功能的一个应用程序。 NMS可以向Agent发出请求,查询或修改一个或多个具体的参数值。同时,NMS可 以接收Agent主动发送的Trap信息,以获知被管理设备当前的状态。 2.1.2 Agent简介 Agent是网络设备中的一个应用模块,用于维护被管理设备的信息数据并响应NMS 的请求,把管理数据汇报给发送请求的NMS。 Agent接收到NMS的请求信息后,完成查询或修改操作,并把操作结果发送给 NMS,完成响应。同时,当设备发生故障或者其他事件的时候,Agent会主动发送 Trap信息给NMS,通知设备当前的状态变化。 2.1.3 MIB简介 1. MIB 任何一个被管理的资源都表示成一个对象,称为被管理的对象。MIB是被管理对象 的集合。它定义了被管理对象的一系列属性:对象的名称、对象的访问权限和对象 的数据类型等。每个Agent都有自己的MIB。MIB也可以看作是NMS和Agent之间的 一个接口,通过这个接口,NMS可以对Agent中的每一个被管理对象进行读/写操 作,从而达到管理和监控设备的目的。NMS、Agent和MIB之间的关系如图1所 示。 图1 NMS、Agent和MIB关系图 SNMP技术白皮书 杭州华三通信技术有限公司 www.h3c.com.cn 第5页,共15页 2. MIB视图 MIB视图是MIB的子集合,配置Agent时用户可以将团体名/用户名与MIB视图绑 定,从而限制NMS能够访问的MIB对象。用户可以配置MIB视图内的对象为 excluded或included。excluded表示当前视图不包括该MIB子树的所有节点; included表示当前视图包括该MIB子树的所有节点。 3. OID和子树 MIB是以树状结构进行存储的。树的节点表示被管理对象,它可以用从根开始的一 条路径唯一地识别,这条路径就称为OID)。如图2所示。管理对象system可以用 一串数字{1.3.6.1.2.1.1}唯一标识,这串数字就是system的OID。 子树可以用该子树根节点的OID来标识。如以private为根节点的子树的OID为 private的OID——{1.3.6.1.4}。 图2 MIB树结构示意图 4. 子树掩码 子树掩码可以和子树OID共同来确定一个视图的范围。子树掩码用十六进制格式表 示,转化成二进制后,每个比特位对应OID中的一个小节,其中, z 1 表示精确匹配,即要访问的节点 OID 与 MIB 对象子树 OID 对应小节的值必 须相等; z 0 表示通配,即要访问的节点 OID 与 MIB 对象子树 OID 对应小节的值可以不 相等。 例如:子树掩码为0xDB(二进制格式为11011011),子树OID为1.3.6.1.6.1.2.1, SNMP技术白皮书 杭州华三通信技术有限公司 www.h3c.com.cn 第6页,共15页 则对应关系如图3所示,所确定的视图就包括子树OID为1.3.*.1.6.*.2.1(*表示可为 任意数字)的子树下的所有节点。 图3 子树OID与子树掩码对应关系图 说明: z 若子树掩码的 bit 数目大于子树 OID 的小节数,则匹配时,子树掩码的第一位与子 树 OID 的第一小节对齐,第二位与第二小节对齐,以此类推,子树掩码中多出的 bit 位将被忽略 z 若子树掩码的 bit 数目小于子树 OID 的小节数,则匹配时,子树掩码的第一位与子 树 OID 的第一小节对齐,第二位与第二小节对齐,以此类推,子树掩码中不足的 bit 位将自动设置为 1; z 如果没有指定子树掩码,则使用缺省子树掩码(全 1)。 2.2 SNMP版本 SNMP主要有SNMPv1、SNMPV2c、SNMPv3几种最常用的版本。 2.2.1 SNMPv1 SNMPv1是SNMP协议的最初版本,提供最小限度的网络管理功能。SNMPv1的 SMI和MIB都比较简单,且存在较多安全缺陷。 SNMPv1采用团体名认证。团体名的作用类似于密码,用来限制NMS对Agent的访 问。如果SNMP报文携带的团体名没有得到NMS/Agent的认可,该报文将被丢弃。 2.2.2 SNMPv2c SNMPv2c也采用团体名认证。在兼容SNMPv1的同时又扩充了SNMPv1的功能: 它提供了更多的操作类型(GetBulk操作等);支持更多的数据类型(Counter32 等);提供了更丰富的错误代码,能够更细致地区分错误。 SNMP技术白皮书 杭州华三通信技术有限公司 www.h3c.com.cn 第7页,共15页 2.2.3 SNMPv3 SNMPv3主要在安全性方面进行了增强,它采用了USM和VACM技术。USM提供 了认证和加密功能,VACM确定用户是否允许访问特定的MIB对象以及访问方式。 1. USM(基于用户的安全模型) USM引入了用户名和组的概念,可以设置认证和加密功能。认证用于验证报文发 送方的合法性,避免非法用户的访问;加密则是对NMS和Agent之间传输的报文进 行加密,以免被窃听。通过有无认证和有无加密等功能组合,可以为NMS和Agent 之间的通信提供更高的安全性。 2. VACM(基于视图的访问控制模型) VACM技术定义了组、安全等级、上下文、MIB视图、访问策略五个元素,这些元 素同时决定用户是否具有访问的权限,只有具有了访问权限的用户才能管理操作对 象。在同一个SNMP实体上可以定义不同的组,组与MIB视图绑定,组内又可以定 义多个用户。当使用某个用户名进行访问的时候,只能访问对应的MIB视图定义的 对象。 2.3 SNMP操作 SNMP支持多种操作,主要为以下几种基本操作: z Get 操作:NMS 使用该操作从 Agent 获取一个或多个参数值。 z GetNext 操作:NMS 使用该操作从 Agent 获取一个或多个参数的下一个参数 值。 z Set 操作:NMS 使用该操作设置 Agent 一个或多个参数值。 z Response 操作:Agent 返回一个或多个参数值。该操作是前面三种操作的响 应。 z Trap 操作:Agent 主动发出的操作,通知 NMS 有某些事情发生。 执行前四种操作时设备使用UDP协议采用161端口发送报文,执行Trap操作时设备 使用UDP协议采用162端口发送报文。由于收发采用了不同的端口号,所以一台设 备可以同时作为Agent和NMS。 2.4 SNMP报文 根据SNMP的不同版本和不同操作,定义了以下报文格式: SNMP技术白皮书 杭州华三通信技术有限公司 www.h3c.com.cn 第8页,共15页 2.4.1 SNMPv1报文 图4 SNMPv1报文格式 从图4可以看出,SNMP消息主要由Version、Community、SNMP PDU几部分构 成。其中,报文中的主要字段定义如下: z Version:SNMP 版本。 z Community:团体名,用于 Agent 与 NMS 之间的认证。团体名有可读和可 写两种,如果是执行 Get、GetNext 操作,则采用可读团体名进行认证;如 果是执行 Set 操作,则采用可写团体名进行认证。 z Request ID:用于匹配请求和响应,SNMP 给每个请求分配全局唯一的 ID。 z Error status:用于表示在处理请求时出现的状况,包括 noError、tooBig、 noSuchName、badValue、readOnly、genErr。 z Error index:差错索引。当出现异常情况时,提供变量绑定列表(Variable bindings)中导致异常的变量的信息。 z Variable bindings:变量绑定列表,由变量名和变量值对组成。 z enterprise:Trap 源(生成 Trap 信息的设备)的类型。 z Agent addr:Trap 源的地址。 z Generic trap:通用 Trap 类型,包括 coldStart、warmStart、linkDown、 linkUp、authenticationFailure、egpNeighborLoss、enterpriseSpecific。 z Specific trap:企业私有 Trap 信息。 z Time stamp:上次重新初始化网络实体和产生 Trap 之间所持续的时间,即 sysUpTime 对象的取值。 SNMP技术白皮书 杭州华三通信技术有限公司 www.h3c.com.cn 第9页,共15页 2.4.2 SNMPv2c报文 Variable bindings Value1 snmpTrap OID.0 Value2 Variable bindings …… Trap PDU (SNMPv2c) PDU type Request ID 0 0 GetBulk PDU PDU type Request ID Non repeaters Max repetitions sysUp Time.0 图5 SNMPv2c报文格式 比较SNMPv1而言,SNMPv2c新增了GetBulk操作报文。GetBulk操作所对应的基 本操作类型是GetNext操作,通过对Non repeaters和Max repetitions参数的设定, 高效率地从Agent获取大量管理对象数据。 SNMPv2c 修改了Trap 报文格式。SNMPv2c Trap PUD 采用SNMPv1 Get/GetNext/Set PDU 的格式,并将sysUpTime 和 snmpTrapOID 作为Variable bindings中的变量来构造报文。 2.4.3 SNMPv3报文 SNMPv3修改了消息的格式,但是PDU部分的格式同SNMPv2c是保持一致的。图6 只列出消息格式。 图6 SNMPv3消息格式 其中,整个SNMPv3消息可以使用认证机制,并对EngineID、ContextName、 PDU消息体部分进行加密。RequestID、MaxSize、Flags 、SecurityModel 、 SecurityParameters构成SNMPv3消息头。 报文中的主要字段定义如下: z RequestID:请求报文的序列号。 z MaxSize:消息发送者所能够容纳的消息最大字节,同时也表明了发送者能 够接收到的最大字节数。 z Flags:消息标识位,占一个字节,只有最低的三个比特位有效,比如 0x0 表 示不认证不加密,0x1 表示认证不加密,0x3 表示认证加密,0x4 表示发送 report PDU 标志等。 SNMP技术白皮书 杭州华三通信技术有限公司 www.h3c.com.cn 第10页,共15页 z SecurityModel:消息的安全模型值,取值为 0~3。0 表示任何模型,1 表示 采用 SNMPv1 安全模型,2 表示采用 SNMPv2c 安全模型,3 表示采用 SNMPv3 安全模型。 z ContextEngineID:唯一识别一个 SNMP 实体。对于接收消息,该字段确定 消息该如何处理;对于发送消息,该字段在发送一个消息请求时由应用提 供。 z ContextName:唯一识别在相关联的上下文引擎范围内部特定的上下文。 SecurityParameters又包括以下主要字段: z AuthoritativeEngineID:消息交换中权威 SNMP 的 snmpEngineID,用于 SNMP 实体的识别、认证和加密。该取值在 Trap、Response、Report 中是 源端的 snmpEngineID,对 Get、GetNext、GetBulk、Set 中是目的端的 snmpEngineID。 z AuthoritativeEngineBoots:消息交换中权威 SNMP 的 snmpEngineBoots。 表示从初次配置时开始,SNMP 引擎已经初始化或重新初始化的次数。 z AuthoritativeEngineTime:消息交换中权威 SNMP 的 snmpEngineTime,用 于时间窗判断。 z UserName:用户名,消息代表其正在交换。NMS 和 Agent 配置的用户名必 须保持一致。 z AuthenticationParameters:认证参数,认证运算时所需的密钥。如果没有使 用认证则为空。 z PrivacyParameters:加密参数,加密运算时所用到的参数,比如 DES CBC 算法中形成初值 IV 所用到的取值。如果没有使用加密则为空。 2.5 SNMP协议原理 2.5.1 SNMPv1和SNMPv2c实现机制 SNMPv1/SNMPv2c实现机制基本一致,SNMPv2c丰富了错误码,新增了GetBulk 操作。下面以在SNMPv1版本环境执行Get、GetNext和Set操作为例来描述 SNMPv1/SNMPv2c的实现机制。 1. Get操作 NMS想要获取被管理设备MIB节点sysName的值(sysName对象在允许访问视图 内),使用public为可读团体名,过程如下: SNMP技术白皮书 杭州华三通信技术有限公司 www.h3c.com.cn 第11页,共15页 (1) NMS 给 Agent 发送 Get 请求,请求报文主要字段将被设置为:Version 字段 的值为 1,Community 字段的值为 public,PDU 里 Variable bindings 中 Name1 字段的值为 sysName.0。 (2) Agent 给 NMS 发送 Get 响应,说明是否获取成功。如果成功,则 Response PDU 里 Variable bindings 中 Value1 字段的值为设备的名字(比如 Agent010-H3C);如果获取失败,则在 Error status 字段填上出错的原因, 在 Error index 填上出错的位置信息。 图7 Get操作 2. GetNext操作 NMS 想要获取被管理设备MIB 节点sysName 的下一个节点sysLocation 的值 (sysName和sysLocation对象都在允许访问视图内),使用public为可读团体名, 过程如下: (1) NMS 给 Agent 发送 GetNext 请求,请求报文主要字段将被设置为:Version 字段的值为 1,Community 字段的值为 public,PDU 里 Variable bindings 中 Name1 字段的值为 sysName.0。 (2) Agent 给 NMS 发送 GetNext 响应。如果成功,则 Response PDU 里 Variable bindings 中 Name1 字段值为 sysName.0 的下一个节点 sysLocation.0, Value1 字段的值为(比如 Beijing China);如果获取失 败,则在 Error status 字段填上出错的原因,在 Error index 填上出错的位置 信息。 图8 GetNext操作 3. Set操作 NMS想要设置被管理设备MIB节点sysName的值为Device01,使用private为可写 SNMP技术白皮书 杭州华三通信技术有限公司 www.h3c.com.cn 第12页,共15页 团体名,过程如下: (1) NMS 给 Agent 发送 Set 请求,请求报文主要字段将被设置为:Version 字段 的值为 1,Community 字段的值为 private,PDU 里 Variable bindings 中 Name1 字段的值为 sysName.0,Value1 字段的值填为 Device01。 (2) Agent 给 NMS 发送 Set 响应,说明是否设置成功。如果成功,则 Response PDU 里 Variable bindings 中 Value1 字段的值填为设备的新名字(比如 Device01);如果设置失败,则在 Error status 字段填上出错的原因,在 Error index 填上出错的位置信息。 图9 Set操作 4. Trap操作 当设备发生某些异常需要通知NMS时,Agent会主动发出Trap报文。例如:设备某 端口网线被拔出,Agent发送linkDown的Trap消息给NMS。Version字段的值为1, Community字段的值为public,PDU中enterprise字段为sysObjectID.0的取值(比 如为enterprises.25506),Generic trap字段值为linkDown,Variable bindings字 段携带接口相关信息。 图10 Trap操作 2.5.2 SNMPv3实现机制 SNMPv3各操作的实现机制同SNMPv1和SNMPv2c基本一样,其主要区别在于 SNMPv3新增加了认证和加密、解密的处理。下面以SNMPv3使用认证和加密方式 执行get操作为例来描述其实现机制,过程如下: (1) NMS 首先发送不带任何认证和加密参数的 Get 请求,Flags 字段设置为 0x4 ,以获取 contextEngineID 、 contextName 、 AuthoritativeEngineID 、 AuthoritativeEngineBoots、AuthoritativeEngineTime 等相关参数的值。 SNMP技术白皮书 杭州华三通信技术有限公司 www.h3c.com.cn 第13页,共15页 (2) Agent 解析消息,发送 report 报文,并携带上述相关参数的值。 (3) NMS 再次给 Agent 发送 Get 请求,请求报文主要字段将被设置为:Version 字段的值为 3,将(2)获取到的参数值填入相应字段,PDU 里 Variable bindings 中 Name1 字段的值为 sysName.0,并且根据配置的认证算法计算 出 AuthenticationParameters ,使用配置的加密算法计算出 PrivacyParameters,并使用配置的加密算法对 PDU 数据进行加密。 (4) Agent 首先对消息进行认证,认证通过后对 PDU 报文进行解密。解密成功 后,则获取 sysName.0 对象的值,并将 Response PDU 里 Variable bindings 中 Value1 字段的值填为设备的名字(比如 Agent010)。如果认 证、解密失败或者获取参数值失败,则在 Error status 字段填上出错的原因, 在 Error index 填上出错的位置信息。最后对 PDU 进行加密,设置 contextEngineID 、 contextName 、 AuthoritativeEngineID 、 AuthoritativeEngineBoots 、 AuthoritativeEngineTime 、 AuthenticationParameters、PrivacyParameters 等参数,发送响应报文。 Get请求获取SecurityParameters参数 返回SecurityParameters参数值 NMS Agent 使用获取的参数对消息鉴别、数据加密 发送Get请求,获取sysName的值 如果SecurityParameters参数合法,对消息鉴别、数据解密, 获取sysName的值,响应NMS 图11 SNMPv3 Get操作 3 H3C实现的技术特色 H3C设备支持SNMPv1、SNMPv2c、SNMPv3三个版本,为了兼容SNMPv3, SNMPv1和SNMPv2c版本也可以配置组、用户和视图,这时,只需要将NMS侧的 团体名参数设置为设备上配置的用户名即可。用户可以同时使能多个版本,但需要 和NMS侧的版本一致。 SNMP技术白皮书 杭州华三通信技术有限公司 www.h3c.com.cn 第14页,共15页 4 典型组网案例 4.1 组网图 H3C Agent 1.1.1.3/24 H3C Agent 1.1.1.2/24 NMS 1.1.1.1/24 IP network 图12 SNMP典型组网图 4.2 组网环境 网络中的设备生产厂商不同,设备型号也不一致,需要对网络和设备的运行进行监 控和管理。 5 附录 5.1 相关协议 z RFC1155 z RFC2578 z RFC2579 z RFC3411 z RFC3412 z RFC3414 z RFC3415 SNMP技术白皮书 杭州华三通信技术有限公司 www.h3c.com.cn 第15页,共15页 5.2 参考文献 z “系统分册”中的“SNMP 配置” z “系统分册”中的“SNMP 命令” Copyright ©2008 杭州华三通信技术有限公司 版权所有,保留一切权利。 非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。 本文档中的信息可能变动,恕不另行通知。
还剩14页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享pdf获得金币 ] 1 人已下载

下载pdf

pdf贡献者

fraylord

贡献于2012-03-07

下载需要 10 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf