• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 新华三人才研学中心
  • 关于我们

11-网络管理和监控配置指导

目录

04-SNMP配置

本章节下载 04-SNMP配置  (229.8 KB)

04-SNMP配置


1 SNMP

1.1  SNMP简介

SNMP(Simple Network Management Protocol,简单网络管理协议)是互联网中的一种网络管理标准协议,广泛用于实现管理设备对被管理设备的访问和管理。SNMP具有以下优势:

·              支持网络设备的智能化管理。利用基于SNMP的网络管理平台,网络管理员可以查询网络设备的运行状态和参数,设置参数值,发现故障,完成故障诊断,进行容量规划和制作报告。

·              支持对不同物理特性的设备进行管理。SNMP只提供最基本的功能集,使得管理任务与被管理设备的物理特性和联网技术相对独立,从而实现对不同厂商设备的管理。

1.1.1  SNMP的网络架构

SNMP网络架构由三部分组成:NMS、Agent和MIB。

·              NMS(Network Management System,网络管理系统)是SNMP网络的管理者,能够提供友好的人机交互界面,方便网络管理员完成大多数的网络管理工作。

·              Agent是SNMP网络的被管理者,负责接收、处理来自NMS的SNMP报文。在某些情况下,如接口状态发生改变时,Agent也会主动向NMS发送告警信息。

·              MIB(Management Information Base,管理信息库)是被管理对象的集合。NMS管理设备的时候,通常会关注设备的一些参数,比如接口状态、CPU利用率等,这些参数就是被管理对象,在MIB中称为节点。每个Agent都有自己的MIB。MIB定义了节点之间的层次关系以及对象的一系列属性,比如对象的名字、访问权限和数据类型等。被管理设备都有自己的MIB文件,在NMS上编译这些MIB文件,就能生成该设备的MIB。NMS根据访问权限对MIB节点进行读/写操作,从而实现对Agent的管理。

NMS、Agent和MIB之间的关系如图1-1所示。

图1-1 NMS、Agent和MIB关系图

 

1.1.2  MIB和MIB视图

MIB以树状结构进行存储。树的每个节点都是一个被管理对象,它用从根开始的一条路径唯一地识别(OID)。如图1-2所示,被管理对象B可以用一串数字{1.2.1.1}唯一确定,这串数字是被管理对象的OID(Object Identifier,对象标识符)。

MIB视图是MIB的子集合,将团体名/用户名与MIB视图绑定,可以限制NMS能够访问的MIB对象。当用户配置MIB视图包含(included)某个MIB子树时,NMS可以访问该子树的所有节点;当用户配置MIB视图不包含(excluded)某个MIB子树时,NMS不能访问该子树的所有节点。

图1-2 MIB树结构

 

1.1.3  SNMP基本操作

SNMP提供四种基本操作:

·              Get操作:NMS使用该操作查询Agent MIB中节点的值。

·              Set操作:NMS使用该操作设置Agent MIB中节点的值。

·              Trap操作:Agent使用该操作向NMS发送Trap信息。Agent不要求NMS发送回应报文,NMS也不会对Trap信息进行回应。SNMPv1、SNMPv2c和SNMPv3均支持Trap操作。

·              Inform操作:Agent使用该操作向NMS发送Inform信息。Agent要求NMS发送回应报文,因此,Inform信息比Trap信息更可靠。如果Agent在一定时间内没有收到NMS的回应报文,则会启动重发机制。只有SNMPv2c和SNMPv3支持Inform操作。

1.1.4  SNMP版本介绍

目前,设备支持SNMPv1、SNMPv2c和SNMPv3三种版本。只有NMS和Agent使用的SNMP版本相同,NMS才能和Agent建立连接。

·              SNMPv1采用团体名(Community Name)认证机制。团体名类似于密码,用来限制NMS和Agent之间的通信。如果NMS设置的团体名和被管理设备上设置的团体名不同,则NMS和Agent不能建立SNMP连接,从而导致NMS无法访问Agent,Agent发送的告警信息也会被NMS丢弃。

·              SNMPv2c也采用团体名认证机制。SNMPv2c对SNMPv1的功能进行了扩展:提供了更多的操作类型;支持更多的数据类型;提供了更丰富的错误代码,能够更细致地区分错误。

·              SNMPv3采用USM(User-Based Security Model,基于用户的安全模型)认证机制。网络管理员可以设置认证和加密功能。认证用于验证报文发送方的合法性,避免非法用户的访问;加密则是对NMS和Agent之间的传输报文进行加密,以免被窃听。采用认证和加密功能可以为NMS和Agent之间的通信提供更高的安全性。

1.2  配置SNMP基本参数

由于SNMPv3版本的配置和SNMPv1版本、SNMPv2c版本的配置有较大区别,所以下面分两种情况介绍SNMP基本功能的配置,详见表1-1表1-2

1.2.1  配置SNMPv3版本基本参数

1. 配置限制和指导

建立SNMPv3连接时,是否进行认证和加密,受snmp-agent group v3snmp-agent usm-user v3两条命令的影响:

·              创建组时,如果不指定authenticationprivacy参数,则表示不认证不加密。此时,使用和该组绑定的用户名建立SNMP连接时,均不认证不加密。即便用户配置了认证密码/加密密码,认证密码/加密密码也不生效。

·              创建组时,如果指定authentication参数,则表示认证不加密。此时,使用和该组绑定的用户名建立SNMP连接时,均认证不加密。即便用户配置了加密密码,加密密码也不生效。该组内的用户必须配置认证密码,否则,不能建立SNMP连接。

·              创建组时,如果指定privacy参数,则表示认证加密。此时,使用和该组绑定的用户名建立SNMP连接时,均认证加密。该组内的用户必须配置认证密码和加密密码,否则,不能建立SNMP连接。

2. 配置步骤

表1-1 配置SNMPv3版本基本参数

操作

命令

说明

进入系统视图

system-view

-

(可选)启动SNMP Agent服务

snmp-agent

缺省情况下,SNMP Agent服务处于关闭状态

执行除snmp-agent calculate-password外任何以snmp-agent开头的命令,都可以启动SNMP Agent服务

(可选)配置设备的维护联系信息

snmp-agent sys-info contact sys-contact

缺省情况下,维护联系信息为Hangzhou H3C Tech. Co., Ltd.

(可选)配置设备的物理位置信息

snmp-agent sys-info location sys-location

缺省情况下,物理位置信息为Hangzhou, China

启用SNMPv3版本

snmp-agent sys-info version { all | { v1 | v2c | v3 } * }

缺省情况下,系统启用SNMPv3版本

(可选)设置本地SNMP实体的引擎ID

snmp-agent local-engineid engineid

缺省情况下,设备引擎ID为公司的“企业号+设备信息”

SNMPv3版本的用户名、密文密码等都和引擎ID相关联,如果更改了引擎ID,则原引擎ID下配置的用户名、密码失效。

(可选)设置远端SNMP实体的引擎ID

snmp-agent remote { ip-address | ipv6 ipv6-address } [ vpn-instance vpn-instance-name ] engineid engineid

缺省情况下,设备上没有配置远端SNMP实体的引擎ID

当设备需要向目的主机(能够解析Trap和Inform信息的设备,通常为NMS)发送SNMPv3 Inform信息时,该步骤必选

(可选)创建MIB视图或更新MIB视图内容

snmp-agent mib-view { excluded | included } view-name oid-tree [ mask mask-value ]

缺省情况下,设备上已创建了四个视图,视图名均为ViewDefault:

·       视图一包含MIB子树iso

·       视图二不包含子树snmpUsmMIB

·       视图三不包含子树snmpVacmMIB

·       视图四不包含子树snmpModules.18

MIB视图是MIB的子集,由视图名和MIB子树来唯一确定一个MIB视图。视图名相同但包含的子树不同,则认为是不同的视图。除缺省视图外,用户最多可以创建16个MIB视图

创建SNMPv3组

snmp-agent group v3 group-name [ authentication | privacy ] [ read-view view-name ] [ write-view view-name ] [ notify-view view-name ] [ acl acl-number | acl ipv6 ipv6-acl-number ] *

缺省情况下,设备上没有配置SNMP组,新配置的SNMP组采用不认证、不加密方式

(可选)计算用户给定明文密码通过加密算法处理后的密文密码

snmp-agent calculate-password plain-password mode { md5 | sha } { local-engineid | specified-engineid engineid }

-

创建SNMPv3用户

snmp-agent usm-user v3 user-name group-name [ remote { ip-address | ipv6 ipv6-address } [ vpn-instance vpn-instance-name ] ] [ { cipher | simple } authentication-mode { md5 | sha } auth-password [ privacy-mode { aes128 | des56 } priv-password ] ] [ acl acl-number | acl ipv6 ipv6-acl-number ] *

当设备需要向目的主机发送SNMPv3 Inform信息时,remote ip-address参数必选

如果使用cipher参数,则后面的auth-passwordpriv-password都必须输入并被视为密文密码

(可选)设置Agent能处理的SNMP报文的最大长度

snmp-agent packet max-size byte-count

缺省情况下,Agent能处理的SNMP报文的最大长度为1500

 

1.2.2  配置SNMPv1/v2c版本基本参数

表1-2 配置SNMPv1/v2c版本基本参数

操作

命令

说明

进入系统视图

system-view

-

(可选)启动SNMP Agent服务

snmp-agent

缺省情况下,SNMP Agent服务处于关闭状态

执行除snmp-agent calculate-password外任何以snmp-agent开头的命令,都可以启动SNMP Agent服务

(可选)配置设备的维护联系信息

snmp-agent sys-info contact sys-contact

缺省情况下,维护联系信息为Hangzhou H3C Tech. Co., Ltd.

(可选)配置设备的物理位置信息

snmp-agent sys-info location sys-location

缺省情况下,物理位置信息为Hangzhou, China

启用SNMPv1/v2c版本

snmp-agent sys-info version { all | { v1 | v2c | v3 } * }

缺省情况下,系统启用SNMPv3版本

(可选)设置本地SNMP实体的引擎ID

snmp-agent local-engineid engineid

缺省情况下,设备引擎ID为公司的“企业号+设备信息”

(可选)创建MIB视图或更新MIB视图内容

snmp-agent mib-view { excluded | included } view-name oid-tree [ mask mask-value ]

缺省情况下,设备上已创建了四个视图,视图名均为ViewDefault:

·       视图一包含MIB子树iso

·       视图二不包含子树snmpUsmMIB

·       视图三不包含子树snmpVacmMIB

·       视图四不包含子树snmpModules.18

MIB视图是MIB的子集,由视图名和MIB子树来唯一确定一个MIB视图。视图名相同但包含的子树不同,则认为是不同的视图。除缺省视图外,用户最多可以创建16个MIB视图

设置访问权限

直接设置

创建SNMP团体

snmp-agent community { read | write } community-name [ mib-view view-name ] [ acl acl-number | acl ipv6 ipv6-acl-number ] *

二者选其一

直接设置是以SNMPv1和SNMPv2c版本的团体名进行设置

间接设置是先创建SNMP组,再向创建的组中添加的用户,用户相当于SNMPv1和SNMPv2c版本的团体名,在NMS上配置的团体名需要跟Agent上配置的用户名一致

缺省情况下,不存在任何SNMP组和SNMP团体

间接设置

创建SNMPv1/v2c组

snmp-agent group { v1 | v2c } group-name [ read-view view-name ] [ write-view view-name ] [ notify-view view-name ] [ acl acl-number | acl ipv6 ipv6-acl-number ] *

创建SNMPv1/v2c用户

snmp-agent usm-user { v1 | v2c } user-name group-name [ acl acl-number | acl ipv6 ipv6-acl-number ] *

(可选)设置Agent能处理的SNMP报文的最大长度

snmp-agent packet max-size byte-count

缺省情况下,Agent能处理的SNMP报文的最大长度为1500

 

1.3  配置SNMP日志

SNMP日志可以记录NMS对Agent的GET请求、SET请求和SET响应信息,不能记录GET响应信息。

·              当进行GET操作时,Agent会记录NMS用户的IP地址、GET操作的节点名和节点OID。

·              当进行SET操作时,Agent会记录NMS用户的IP地址、SET操作的节点名、节点OID、节点值以及SET操作返回的错误码和错误索引。

这些日志将被发送到设备的信息中心,级别为informational。通过设置信息中心的参数,最终决定SNMP日志的输出规则(即是否允许输出以及输出方向)。SNMP每条日志信息中记录的node域(信息内容对应的MIB节点名)和value域(信息内容对应的MIB节点值)的长度之和不能超过1024字节,超出的部分将不会被输出。有关信息中心的详细介绍请参见“网络管理和监控配置指导”中的“信息中心”。

表1-3 配置SNMP日志功能

操作

命令

说明

进入系统视图

system-view

-

打开SNMP日志开关

snmp-agent log { all | get-operation | set-operation }

缺省情况下,SNMP日志开关处于关闭状态。

大量的日志记录会占用设备的存储空间,影响设备的性能。正常情况下,建议关闭SNMP日志功能

 

1.4  配置SNMP告警

SNMP告警信息包括Trap和Inform两种,用来告知NMS设备上发生了重要事件,比如,用户的登录/退出,接口状态变成up/down等。如无特殊说明,本文中的告警信息均指Trap和Inform两种信息。

1.4.1  开启告警功能

因为告警信息通常较多,会占用设备内存,影响设备性能,所以建议用户根据需要开启指定模块的告警功能,生成相应的告警信息。

如果要求接口在链路状态发生改变时生成相应的告警信息,需要在全局和接口下均开启接口链路状态变化的告警功能。如果要生成其它模块的告警信息,除了使用snmp-agent trap enable命令开启告警功能外,还可能需要执行各个模块的相关配置,详情请参见各模块的相关描述。

开启模块的告警功能后,由各模块决定是否将告警信息发送到控制台或者监控终端,如果要发送到NMS,请参考1.4.2 

表1-4 开启告警功能

操作

命令

说明

进入系统视图

system-view

-

在全局下开启告警功能

snmp-agent trap enable [ bgp | configuration | ospf [ authentication-failure | bad-packet | config-error | grhelper-status-change | grrestarter-status-change | if-state-change | lsa-maxage | lsa-originate | lsdb-approaching-overflow | lsdb-overflow | neighbor-state-change | nssatranslator-status-change | retransmit | virt-authentication-failure | virt-bad-packet | virt-config-error | virt-retransmit | virtgrhelper-status-change | virtif-state-change | virtneighbor-state-change ] * | standard [ authentication | coldstart | linkdown | linkup | warmstart ] * | system ]

缺省情况下,全局下各模块的告警功能处于开启状态

本命令中各参数的支持情况与设备型号有关,请以设备的实际情况为准

进入接口视图

interface interface-type interface-number

-

开启接口链路状态变化的告警功能

enable snmp trap updown

缺省情况下,接口状态变化的告警功能处于开启状态

 

1.4.2  配置告警信息发送参数

如果配置了snmp-agent target-host inform命令,则设备会向指定目的主机(能够解析Trap和Inform信息的设备,通常为NMS)发送Inform信息;如果配置了snmp-agent target-host trap命令,则设备会向指定目的主机发送Trap信息。

设备第一次发送告警信息时,会检查设备和目的主机是否路由可达。如果可达,则直接发送。如果不可达,则先将告警信息缓存在消息队列里,等路由可达后,再发送。为防止告警信息累积占用太多内存,用户可以设置该队列的长度以及告警信息在队列里的保存时间。

·              如果在告警信息的发送队列满时系统又收到了新的告警信息,则系统会自动删除最先收到的告警信息来保存新的告警信息。

·              如果告警信息的发送队列中的某信息到达了已设定的保存时间,则系统会自动删除该告警信息。

1. 配置准备

如果要将告警信息发送给NMS,则需要进行以下配置准备:

(1)      配置SNMP基本参数

(2)      确保设备与NMS路由可达。

2. 配置步骤

表1-5 配置告警信息发送参数

操作

命令

说明

进入系统视图

system-view

-

设置Inform信息的发送参数

snmp-agent target-host inform address udp-domain { ip-address | ipv6 ipv6-address } [ udp-port port-number ] [ vpn-instance vpn-instance-name ] params securityname security-string { v2c | v3 [ authentication | privacy ] }

缺省情况下,设备上没有设置Inform信息的目的主机

设置Trap信息的发送参数

snmp-agent target-host trap address udp-domain { ip-address | ipv6 ipv6-address } [ udp-port port-number ] [ vpn-instance vpn-instance-name ] params securityname security-string [ v1 | v2c | v3 [ authentication | privacy ] ]

缺省情况下,设备上没有设置Trap信息的目的主机

(可选)设置发送告警信息的源地址

snmp-agent { inform | trap } source interface-type interface-number

缺省情况下,由SNMP选择路由出接口的IP地址作为告警信息的源IP地址

(可选)对标准linkUp/linkDown告警信息进行私有扩展

snmp-agent trap if-mib link extended

缺省情况下,系统发送的linkUp/linkDown告警信息的格式为标准格式,不对其进行私有扩展

(可选)设置告警信息发送队列的长度

snmp-agent trap queue-size size

缺省情况下,告警信息的消息队列最多可以存储100条告警信息

(可选)设置告警信息的保存时间

snmp-agent trap life seconds

缺省情况下,告警信息的保存时间为120秒

 

说明

对linkUp/linkDown告警信息进行私有扩展后,设备生成和发送的该信息由标准linkUp/linkDown告警信息后增加接口描述和接口类型信息构成。如果NMS不支持该扩展信息,请禁用私有扩展功能。

 

1.5  SNMP显示和维护

在完成上述配置后,在任意视图下执行display命令,均可以显示配置后SNMP的运行情况,通过查看显示信息,来验证配置的效果。

表1-6 SNMP显示和维护

操作

命令

显示系统维护联络信息、系统位置信息及SNMP版本信息

display snmp-agent sys-info [ contact | location | version ]

显示SNMP报文统计信息

display snmp-agent statistics

显示设备的SNMP实体引擎ID

display snmp-agent local-engineid

显示SNMP组信息

display snmp-agent group [ group-name ]

显示远端SNMP实体引擎信息

display snmp-agent remote [ ip-address [ vpn-instance vpn-instance-name ] | ipv6 ipv6-address [ vpn-instance vpn-instance-name ] ]

显示告警信息队列的基本信息

display snmp-agent trap queue

显示系统当前可以发送告警信息的模块及其告警信息的使能状态

display snmp-agent trap-list

显示SNMPv3用户信息

display snmp-agent usm-user [ engineid engineid | username user-name | group group-name ] *

显示SNMPv1或SNMPv2c团体信息

display snmp-agent community [ read | write ]

显示MIB视图的信息

display snmp-agent mib-view [ exclude | include | viewname view-name ]

 

1.6  SNMPv1/v2c典型配置举例

SNMPv1和SNMPv2c的配置方法相同,下面以SNMPv1为例进行配置。

1. 组网需求

·              NMS与Agent相连,设备的IP地址和掩码如图1-3所示。

·              NMS通过SNMPv1对Agent进行监控管理,Agent在故障时能够主动向NMS发送告警信息。

2. 组网图

图1-3 SNMPv1配置组网图

 

3. 配置步骤

(1)      配置Agent

# 配置Agent的IP地址为1.1.1.1/24,并确保Agent与NMS之间路由可达。(配置步骤略)

# 设置Agent使用的SNMP版本为v1、只读团体名为public,读写团体名为private。

<Agent> system-view

[Agent] snmp-agent sys-info version v1

[Agent] snmp-agent community read public

[Agent] snmp-agent community write private

# 设置设备的联系人和位置信息,以方便维护。

[Agent] snmp-agent sys-info contact Mr.Wang-Tel:3306

[Agent] snmp-agent sys-info location telephone-closet,3rd-floor

# 设置允许向NMS发送告警信息,使用的团体名为public。

[Agent] snmp-agent trap enable

[Agent] snmp-agent target-host trap address udp-domain 1.1.1.2 params securityname public v1

snmp-agent target-host命令中指定的版本必须和NMS上运行的SNMP版本一致,因此需要将snmp-agent target-host命令中的版本参数设置为v1。否则,NMS无法正确接收告警信息。

(2)      配置NMS

# 设置NMS使用的SNMP版本为SNMPv1,只读团体名为public,读写团体名为private。另外,还可以根据需求设置“超时”时间和“重试次数”。具体配置请参考NMS的相关手册。

说明

NMS侧的配置必须和Agent侧保持一致,否则无法通信。

 

(3)      结果验证

# 通过查询Agent上相应的MIB节点获取NULL0接口的MTU值,结果为1500:

Send request to 1.1.1.1/161 ...

Protocol version: SNMPv1

Operation: Get

Request binding:

1: 1.3.6.1.2.1.2.2.1.4.135471

Response binding:

1: Oid=ifMtu.135471 Syntax=INT Value=1500

Get finished

# 当使用错误的团体名获取Agent上的MIB节点信息时,NMS上将看到认证失败的Trap信息,即authenticationFailure:

1.1.1.1/2934 V1 Trap = authenticationFailure

SNMP Version = V1

Community = public

Command = Trap

Enterprise = 1.3.6.1.4.1.43.1.16.4.3.50

GenericID = 4

SpecificID = 0

Time Stamp = 8:35:25.68

1.7  SNMPv3典型配置举例

1. 组网需求

·              NMS与Agent相连,设备的IP地址和掩码如图1-4所示。

·              NMS通过SNMPv3只能对Agent的SNMP报文的相关信息进行监控管理,Agent在出现故障时能够主动向NMS发送告警信息。

·              NMS与Agent建立SNMP连接时,需要认证,使用的认证算法为SHA-1,认证密码为authkey。NMS与Agent之间传输的SNMP报文需要加密,使用的加密协议为AES,加密密码为prikey。

2. 组网图

图1-4 SNMPv3配置组网图

 

3. 配置步骤

(1)      配置Agent

# 配置Agent的IP地址为1.1.1.1/24,并确保Agent与NMS之间路由可达。(配置步骤略)

# 设置访问权限:用户只能读写节点snmp(OID为1.3.6.1.2.1.11)下的对象,不可以访问其它MIB对象。

<Agent> system-view

[Agent] undo snmp-agent mib-view ViewDefault

[Agent] snmp-agent mib-view included test snmp

[Agent] snmp-agent group v3 managev3group privacy read-view snmp write-view test

# 设置Agent使用的用户名为managev3user,认证算法为SHA-1,认证密码为authkey,加密算法为AES,加密密码是prikey。

[Agent] snmp-agent usm-user v3 managev3user managev3group simple authentication-mode sha authkey privacy-mode aes128 prikey

# 设置设备的联系人和位置信息,以方便维护。

[Agent] snmp-agent sys-info contact Mr.Wang-Tel:3306

[Agent] snmp-agent sys-info location telephone-closet,3rd-floor

# 设置允许向NMS发送告警信息,使用的用户名为managev3user。

[Agent] snmp-agent trap enable

[Agent] snmp-agent target-host trap address udp-domain 1.1.1.2 params securityname managev3user v3 privacy

(2)      配置NMS

# 设置NMS使用的SNMP版本为SNMPv3,用户名为managev3user,启用认证和加密功能,认证算法为SHA-1,认证密码为authkey,加密协议为AES,加密密码为prikey。另外,还可以根据需求设置“超时”时间和“重试次数”。具体配置请参考NMS的相关手册。

说明

NMS侧的配置必须和设备侧保持一致,否则无法进行相应操作。

 

(3)      结果验证

# 通过查询Agent上相应的MIB节点获取NULL0接口的MTU值,结果为1500:

Send request to 1.1.1.1/161 ...

Protocol version: SNMPv3

Operation: Get

Request binding:

1: 1.3.6.1.2.1.2.2.1.4.135471

Response binding:

1: Oid=ifMtu.135471 Syntax=INT Value=1500

Get finished

# 通过查询Agent上相应的MIB节点获取设备名称时,由于没有权限,结果为空(NULL):

Send request to 1.1.1.1/161 ...

Protocol version: SNMPv3

Operation: Get

Request binding:

1: 1.3.6.1.2.1.1.5.0

Response binding:

1: Oid=sysName.0 Syntax=noSuchObject Value=NULL

Get finished

# 对设备上某个空闲的接口执行shutdownundo shutdown操作,NMS上将看到相应的Trap信息:

1.1.1.1/3374 V3 Trap = linkdown

SNMP Version = V3

Community = managev3user

Command = Trap

1.1.1.1/3374 V3 Trap = linkup

SNMP Version = V3

Community = managev3user

Command = Trap

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们