• 沒有找到結果。

SNMP(Simple Network Management Protocol,简单网络管理协议)是专门设计用来在 IP 网络 管理网络节点(服务器、工作站、路由器、交换机等)的一种标准应用层协议。SNMP 是通过 UDP 协议工作的,所以其中的消息格式都是以 UDP 数据报格式封装的。通过 SNMP 协议,可以在 一个站点管理网络中所有支持该协议的设备。本节要介绍如何在 Cisco Catalyst 以太网交换机(如 Catalyst 3550/3750/4500/6500 等系列)中配置和使用 SNMP 管理网络设备。

5.4.1 理解 SNMP

SNMP 管理系统包含一个 SNMP 管理器(安装了 SNMP 管理应用程序的站点)、一个 SNMP 代 理和一个 MIB(Management Information Base,管理信息库)。SNMP 管理器可以是安装了像 CiscoWorks 这样的站点,SNMP 代理和 MIB 都是位于交换机内部的。它们三者之间的关系可以用 图 5-8 表示。这样来看,本节后面介绍的 SNMP

配置也只是针对交换机上的 SNMP 代理和 MIB 而 言 , 并 不 是 直 接 配 置 SNMP 管 理 器 的 , 因 为 SNMP 管理器不是交换机。当然,在交换机上配 置 SNMP 代理、MIB 时,必须定义 SNMP 管理器 与 SNMP 代理之间的关系。

SNMP 代理包含 SNMP 管理器可以请求和修

改的 MIB 变量。SNMP 管理器可以从 SNMP 代理那里得到变量的值,也可以把修改后的变量值存 储在 SNMP 代理中。SNMP 代理收集从 MIB 中得到的数据、有关设备参数的信息库和网络数据。

SNMP 代理也可响应 SNMP 管理器的请求,以获取或者设置数据。

SNMP 代理可以主动发送 Trap 通知到 SNMP 管理器(Trap 是 SNMP 管理器发送的网络情形的 警报消息)。Trap 消息通常意味着有异常用户认证、重新启动、链路状态启用或关闭、MAC 地址寻 址、一个 TCP 连接关闭、邻居连接丢失,或者其他重要事件发生。当然,也可以不用 SNMP 代 理,让 SNMP 管理器直接与 MIB 进行联系,毕竟它是 SNMP 管理器与 MIB 之间请求和消息发送 的代理,具体配置方法将在本节后面详细介绍。

1.SNMP 版本

目前,SNMP 有 3 种主要版本:SNMPv1、SNMPv2、SNMPv3。v1 和 v2 没有太大差别,但 SNMPv2 是增强版本,包含了其他协议操作。与前两个版本相比,SNMPv3 则包含更多安全和远程 配置。为了解决不同 SNMP 版本间的不兼容问题,RFC 3584 文档中定义了三者共存策略。下面介 绍的是在 Catalyst 3750/4500 及以后交换机中支持的 SNMP 版本:

SNMP v1:SNMP 的最初正式应用完整互联网标准版本,在 RFC 1157 中定义。

SNMPv2C 家族:以基于公共字符串(community-string-based)的 SNMPv2C 管理架构取 代基于参与(Party-based)管理模式的 SNMPv2 家族安全架构,同时保留整体检索,并改 进了 SNMPv2 家族中的错误处理方式。它包含以下子版本:

 SNMPv2:SNMP 的第二个版本,是一个互联网标准的草案版本,在 RFC 1902~1907 中定义。

图 5-8 SNMP 管理系统结构

最 系 统 的 交换 机 配 置与 管 理 手册

 SNMPv2C:基于公共字符串管理架构的 SNMPv2,是一个修订的互联网协议,在 RFC 1901 中定义。

SNMPv3:SNMPv3 是一个能协商操作的版本,在 RFC 2273~2275 中定义。SNMPv3 通 过身份认证和加密数据包来提供在网络中对设备的安全访问。它包括以下特性:

 消息完整性检查:确保消息数据包在传送过程中没有被破坏。

 身份认证:确保消息是来自合法的源。

 加密:重新混合消息包的内容,以阻止未授权的源读取包中的内容。

SNMPv1 和 SNMPv2C 使用公共字符串安全架构。SNMP 管理器公共组成员可以通过 IP 地址 访问控制列表和密码访问 SNMP 代理所定义的 MIB。

SNMPv2C 包括一个整体检索机制,并可为管理器提供更详细的错误消息报告。整体检索机制 可以检索表格和大量的信息,减少了需要往返传送的消息数量。SNMPv2C 改进了 SNMPv1 的错误 处理方式,包括扩展了用于区别不同类型错误事件的错误代码。这些事件在 SNMPv1 中是以单一 错误代码提供报告的,而在 SNMPv2C 的出错返回报告中报告了错误类型。

SNMPv3 提供了安全模式(Security Model)和安全级别(Security Level)。安全模式是一个用 户和组的身份认证策略;安全级别是在安全模式中的安全许可级别。一个安全级别和安全模式的组 合决定了在处理 SNMP 数据包时采用哪个安全机制。可用的安全模式有:SNMPv1、SNMPv2C 和 SNMPv3。

不同安全级别和安全模式组合的特性如表 5-14 所示。

表 5-14 SNMP 安全模式和级别

模式 级别 身份认证 加密 结果

SNMPv1 noAuthNoPriv Community string(公共字符串) 无 在身份认证中使用一个公共字符串来进行匹配 SNMPv2C noAuthNoPriv Community string(公共字符串) 无 在身份认证中使用一个公共字符串来进行匹配

SNMPv3 noAuthNoPriv Username(用户名) 无 在身份认证中使用一个用户名来匹配

SNMPv3 authNoPriv MD5 或者 SHA 无 提供基于 HMAC-MD5 或者 HMAC-SHA 算法的 身份认证

SNMPv3 AuthPriv(需要加密

软件映象) MD5 或者 SHA DES

提供基于 HMAC-MD5 或者 HMAC-SHA 算法的 身份认证。在基于 CBC-DES(DES 56)身份认 证标准基础上提供 DES 56 位数据加密

必须配置 SNMP 代理来使用管理器支持的 SNMP 版本。因为一个 SNMP 代理可以与多个 SNMP 管理器通信,所以可以配置软件支持使用 SNMPv1、SNMPv2C 和 SNMPv3 版本协议。

2.SNMP 管理器功能

SNMP 管理就是安装了 SNMP 管理应用程序的站点,与安装了其他服务器软件的站点具有一 定管理功能一样,SNMP 管理器的作用就是用于管理网络中的设备。SNMP 管理器使用在 MIB 中 的信息来完成表 5-15 所示的操作。

表 5-15 SNMP 操作

操作 描述

get-request 从指定的变量中检索变量值

get-next-request 从一个表内的一个变量中检索变量值,SNMP 管理器并不需要知道确切的变量名,而是在表格中按

照顺序检索的方式查找所需的变量的

get-bulk-request2 检索大数据块,如一个表内的多行,或者需要传送多个小数据块。仅在 SNMPv2 及以后版本中支持 get-response 通过 NMS 为 get-request、get-next-request 和 set-request 发送应答

set-request 在指定变量中存储值

trap 在发生一些事件后,通过 SNMP 代理发送到 SNMP 管理器的主动消息

3.SNMP 代理功能

交换机上的 SNMP 代理具体负责代理 SNMP 管理器的以下请求:

最 系 统 的交 换 机 配置 与 管 理手 册

获取 MIB 变量:SNMP 代理检索被 SNMP 管理器请求的 MIB 变量,并以检索到的变量值 响应 SNMP 管理器中的 NMS(网络管理系统)。

设置 MIB 变量:SNMP 代理在响应 NMS 消息中提供这一功能。SNMP 代理改变由 NMS 请求的 MIB 变量值。

SNMP 代理也会主动发送 trap 触发消息,以通知 NMS 在 SNMP 代理上所发生的重要事件。包括 但不限于以下事件:端口/模块打开或者关闭了、生成树拓扑结构发生了改变、身份认证失败等。

4.SNMP 公共字符串

SNMP 公共字符串(Community String)是一个起着密码作用的文本串,其被用来鉴别在管理 器站点和一个包含 SNMP 信息的 SNMP 代理之间的信息发送。这个公共字符串被发送到在管理器 和代理之间的每个数据包,是以嵌入密码方式验证对 MIB 对象和功能的访问。

公共字符串可以具有以下属性之一:

只读(Read-only,RO):具有以只读方式访问授权的管理器以及在 MIB 中的所有对象,

除了公共字符串外,但是不允许进行写入操作。

读写(Read-write,RW):具有以读写方式访问授权的管理器以及在 MIB 中的所有对象,

但是不允许访问公共字符串。

全部读写(Read-write-all):具有以读写方式访问授权的管理器以及在 MIB 中的所有对 象,包括公共字符串。

5.使用 SNMP 访问 MIB 变量

CiscoWorks 网络管理软件是 NMS 的一个示例,使用交换机 MIB 变量来设置设备变量,并为指 定信息轮询网络中的设备。轮询的结果可以以图形方式显示。它可以为排除网络故障提供分析,并 可提高网络性能,校验设备配置,监控流量负载等。

在图 5-9 中,SNMP 代理从 MIB 中搜集数据,然后在需要时,SNMP 代理可以发送 trap 触发 或者事件通知到 SNMP 管理器。也就是说,一般情况下,SNMP 管理器是不会直接与 MIB 联系,

从 MIB 中搜集数据的,而是直接从 SNMP 代理中获得变量值,则 SNMP 代理从 MIB 中搜集变量 数据,并保存在 SNMP 代理内存中。

图 5-9 SNMP 网络示例

SNMP 代理所发送的 Trap 用于提醒 SNMP 管理器发生了某种事件,如禁止用户身份认证、重 新启动、链路启用或关闭、MAC 地址跟踪等。SNMP 代理也可以 get-request、get-next-request 和 set-request 消息格式(消息解释参见表 5-17)响应由 SNMP 管理器发送的相关 MIB 查询。

6.SNMP 通知

SNMP 允许交换机在发生特定事件时通过 SNMP 代理发送通知到 SNMP 管理器。SNMP 通知 可以作为 trap 或者通告(Inform)请求这两种方式发送。在使用 snmp-server host 命令指定接收 SNMP 通知的网络设备时,如果有选择 traps 或者 informs 选项,则表示指定要么以 Trap 方式发送 SNMP 通知,要么以 Inform 方式向 SNMP 管理器发送 SNMP 通知。

【注意】SNMPv1 不支持通告。

Trap 是一种随机触发的不可靠的消息发送方式,因为接收者在接收到 Trap 后不会发送确认消

最 系 统 的 交换 机 配 置与 管 理 手册

息,这样发送者就不能确定 Trap 是否已发送。当一个 SNMP 管理器接收到一个 Inform 请求时,它 将以一个 SNMP 响应协议数据单元(Protocol Data Unit,PDU)来发送一个响应消息。如果发送者 没有接收到响应,则 Inform 请求可以重新发送。因为可以重新发送,而且可以接收响应消息,所 以 Inform 与 Trap 相比,更适用于有明确目标的情形。

这一特性使得 Inform 比 Trap 更具有可用性,但同时也要消耗交换机和网络的更多资源。因为 不像 Trap 发送后立即丢弃,Inform 请求会在内存中保存,除非接收到了响应或者请求发送超时。

而且 Trap 请求只发送一次,但是 Inform 请求可以重发或者重试多次。重试会增加网络通信流量,

消耗更多的网络资源。所以,Trap 和 Inform 方式的选择需要在可用性和资源方面做权衡选择。如 果想要 SNMP 管理器接收每一个通知,则建议使用 Inform 请求方式;如果更关心网络或者内存资

消耗更多的网络资源。所以,Trap 和 Inform 方式的选择需要在可用性和资源方面做权衡选择。如 果想要 SNMP 管理器接收每一个通知,则建议使用 Inform 请求方式;如果更关心网络或者内存资

相關文件