SNMP

功能介绍

SNMP概述

SNMP(Simple Network Management Protocol,简单网络管理协议)是一个用于网络监控和管理的协议。因众多厂家对该协议的支持,SNMP已成为事实上的网管标准,广泛应用于众厂家系统的互连环境中。通过SNMP协议,网络管理员可以对网络上的节点进行信息查询、网络配置、故障定位、容量规划。

SNMP协议版本介绍

SNMPv1

SNMPv1是SNMP协议的第一个正式版本,在RFC 1157中定义。SNMPv1基于团体名认证,SNMPv1点SMI和MIB都比较简单,安全性较差。

SNMPv2C

SNMPv2也是基于共同体(Community-Based)的管理架构,在RFC 1901中定义。SNMPv2在兼容SNMPv1的基础上增加了GetBulk和Inform两个新的协议操作。支持更多的数据类型和错误码信息。

SNMPv3

SNMPv3主要定义了安全方面的扩展能力,通过对数据进行鉴别和加密,提供了以下的安全特性:

确保数据在传输过程中不被篡改。

确保数据从合法的数据源发出。

加密报文,确保数据的机密性。

工作原理

基本概念

SNMP管理系统包括三个部分:

SNMP网络管理器。

SNMP代理。

MIB管理信息库。

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

image.png

SNMP网络管理器

SNMP网络管理器,是采用SNMP来对网络进行控制和监控的系统,也称为NMS (Network Management System)。

SNMP代理

SNMP代理(SNMP Agent,下文简称为Agent)是运行在被管理设备上的软件,负责接受、处理并且响应来自NMS的监控和控制报文,也可以主动发送消息报文给NMS。

MIB

MIB(Management Information Base)是一个虚拟的网络管理信息库。被管理的网络设备中包含大量信息,为了能在SNMP报文中唯一的标识某个特定的管理单元,MIB采用树形层次结构来描述,树的节点表示某个特定的管理单元。采用一串数字来来唯一标识网络设备中的某个管理单元System,MIB则是网络设备的单元标识符的集合。

操作类型

SNMP协议中的NMS和Agent之间的交互信息,定义了6种操作类型:

Get-Request操作:NMS从Agent提取一个或多个参数值。

Get-Next-Request操作:NMS从Agent提取一个或多个参数的下一个参数值。

Get-Bulk操作:NMS从Agent提取批量的参数值。

Set-Request操作:NMS设置Agent的一个或多个参数值。

Get-Response操作:Agent返回的一个或多个参数值,是Agent对NMS前面3个操作的响应操作。

Trap操作:Agent主动发出的报文,通知NMS在Agent端出现的情况。

前面的4种报文是由NMS向Agent发出的,后面两种报文是Agent发给NMS的。NMS向Agent发出的前面3种操作和Agent的应答操作采用UDP的161端口。Agent发出的Trap操作采用UDP的162端口。具体见图1-2。

注意

SNMPv1版本不支持Get-Bulk操作。

SNMP的报交互过程

image.png

SNMP基本功能

SNMP协议交互是应答式的(报文交互参见图1-2)。NSM向Agent主动发起请求,包括Get-request、Get-next-request、Get-bulk和Set-request,Agent接收请求并完成操作后以Get-response作为应答。Agent有时候也会向NSM主动发出Trap和Inform消息,其中Trap消息不需要应答,而Inform消息则需要NSM回送一个Inform-response应答,表示收到消息,否则Agent将会重发Inform消息。

SNMPv1及SNMPv2C工作原理

SNMPv1和SNMPv2C都采用基于共同体(Community-based)的安全架构。通过定义主机地址以及认证名(Community String)来限定能够对代理的MIB进行操作的管理者。

SNMPv1和SNMPv2版本使用认证名来鉴别是否有权使用MIB对象。为了能够管理设备,网络管理系统(NMS)的认证名必须同设备中定义的某个认证名一致。

SNMPv2C增加了Get-bulk操作机制,并且能够返回更加详细的错误信息类型。Get-bulk操作能够一次性地获取表格中的所有信息或者获取大批量的数据,从而减少请求-响应的次数。SNMPv2C错误处理能力的提高包括扩充错误代码以区分不同类型的错误,而在SNMPv1中这些错误仅有一种错误代码。现在通过错误代码可以区分错误类型。由于网络上可能同时存在支持SNMPv1和SNMPv2C的管理工作站,因此SNMP代理必须能够识别SNMPv1和SNMPv2C报文,并且能返回相应版本的报文。

SNMPv1/SNMPv2c报文主要由版本、团体名、SNMP PDU三部分构成,报文结构如图1-3所示。

SNMPv1/SNMPv2c报文结构

image.png

报文中的主要字段定义如下:

版本:表示SNMP的版本,如果是SNMPv1报文则对应字段值为0,SNMPv2c则为1。

团体名:用于在Agent与NMS之间完成认证,以字符串形式表示,支持自行定义。团体名包括“可读”和“可写”两种,执行Get-Request、Get-Next-Request操作时,采用“可读团体名”进行认证;执行Set操作时,则采用“可写团体名”认证。

SNMP PDU:包含PDU类型、请求标识符、变量绑定列表等信息。其中SNMPv1 PDU包括GetRequest PDU、GetNextRequest PDU、SetRequest PDU、Response PDU和Trap PDU几种类型,SNMPv2c PDU在SNMPv1的基础上新增了GetBulkRequest PDU和InformRequest PDU两种类型。

安全

一个认证名有以下属性:

只读(Read-only):为被授权的管理工作站提供对所有MIB变量的读权限。

读写(Read-write):为被授权的管理工作站提供对所有MIB变量的读写权限。

SNMPv3工作原理

SNMPv3重新定义了SNMP架构,将之前的SNMPv1和SNMPv2的功能也纳入到SNMPv3体系中。

网络管理系统(NMS)和SNMP代理(SNMP Agent)都称为SNMP实体。在SNMPv3架构中,SNMP实体分为引擎和应用两大部分,其中SNMP引擎用于发送和接收信息、鉴定和加密信息以及对管理对象的控制访问。SNMP应用指的是SNMP内部的应用程序,利用SNMP引擎提供的服务进行工作。

SNMPv3版本使用基于用户的安全模型(USM)来鉴别是否有权使用MIB对象。为了能够管理设备,网络管理系统(NMS)的用户和安全级别必须同设备中定义的指定SNMP用户一致。

SNMPv3版本规定NSM在管理设备的时候,必须先得知设备上SNMP Agent的引擎标识。SNMPv3定义了Discover和Report操作机制,NSM在不知道Agent引擎标识的情况下,可以先向Agent发送Discover报文,而Agent以Report响应,并在响应报文中携带了引擎标识信息。此后,NSM和Agent之间的管理操作必须携带该引擎标识。

SNMPv3定义了新的报文格式,其报文结构如图1-4所示。

SNMPv3报文结构

image.png

SNMP报文中的主要字段定义如下:

版本:表示SNMP的版本,SNMPv3报文则对应字段值为2。

报头数据:主要包含消息发送者所能支持的最大消息尺寸、消息采用的安全模式等描述内容。

安全参数:包含SNMP实体引擎的相关信息、用户名、认证参数、加密参数等安全信息。

Context EngineID:SNMP唯一标识符,和PDU类型一起决定应该发往哪个应用程序。

Context Name:用于确定Context EngineID对被管理设备的MIB视图。

SNMP PDU:包含PDU类型、请求标识符、变量绑定列表等信息。其中SNMPv3 PDU包括GetRequest PDU、GetNextRequest PDU、SetRequest PDU、Response PDU、Trap PDU、GetBulkRequest PDU和InformRequest PDU。

安全

SNMPv3通过安全模型以及安全级别来确定对数据采用哪种安全机制进行处理。目前可用的安全模型有三种类别:SNMPv1、SNMPv2C、SNMPv3。SNMPv3将SNMPv1和SNMPv2C也纳入到安全模型中。

SNMPv1及SNMPv2C安全模型和级别

安全模型

安全级别

鉴别

加密

SNMPv1

noAuthNoPriv

认证名

SNMPv2c

noAuthNoPriv

认证名

SNMPv3安全模型以及安全级别

安全模型

安全级别

鉴别

加密

说明

SNMPv3

noAuthNoPriv

用户名

通过用户名确认数据的合法性

SNMPv3

authNoPriv

MD5或者SHA

提供基于HMAC-MD5或者HMAC-SHA的数据鉴别机制

SNMPv3

authPriv

MD5或者SHA

DES

提供基于HMAC-MD5或者HMAC-SHA的数据鉴别机制提供基于CBC-DES的数据加密机制

引擎标识

引擎标识用于唯一标识一个SNMP引擎。由于每个SNMP实体仅包含一个SNMP引擎,它将在一个管理域中唯一标识一个SNMP实体。因此,作为一个实体的SNMPv3代理必须拥有一个唯一的引擎标识,即SnmpEngineID。

引擎标识为一个OCTET STRING,长度为5~32字节长。在RFC 3411中定义了引擎标识的格式:

前4个字节标识厂商的私有企业号(由IANA分配),用HEX表示。

第5个字节表示剩下的字节如何标识。

0:保留。

1:后面4个字节是一个Ipv4地址。

2:后面16个字节是一个Ipv6地址。

3:后面6个字节是一个MAC地址。

4:文本,最长27个字节,由厂商自行定义。

5:16进制值,最长27个字节,由厂商自行定义。

6-127:保留。

128-255:由厂商特定的格式。

协议规范

RFC 1157,Simple Network Management Protocol (SNMP)

RFC 1901,Introduction to Community-based SNMPv2

RFC 2578,Structure of Management Information Version 2 (SMIv2)

RFC 2579,Textual Conventions for SMIv2

RFC 3411,An Architecture for Describing Simple Network Management Protocol (SNMP) Management Frameworks

RFC 3412,Message Processing and Dispatching for the Simple Network Management Protocol (SNMP)

RFC 3413,Simple Network Management Protocol (SNMP) Applications

RFC 3414,User-based Security Model (USM) for version 3 of the Simple Network Management Protocol (SNMPv3)

RFC 3415,View-based Access Control Model (VACM) for the Simple Network Management Protocol (SNMP)

RFC 3416,Version 2 of the Protocol Operations for the Simple Network Management Protocol (SNMP)

RFC 3417,Transport Mappings for the Simple Network Management Protocol (SNMP)

RFC 3418,Management Information Base (MIB) for the Simple Network Management Protocol (SNMP)

RFC 3419,Textual Conventions for Transport Addresses

配置任务概览

SNMP配置任务如下:

配置SNMP基本功能

(可选)配置Trap功能

(可选)配置屏蔽Agent功能

(可选)配置SNMP控制参数

配置SNMP基本功能

功能简介

配置SNMP功能后,可以通过NMS访问Agent。

配置限制与指导

配置认证名时,如果没有指定访问权限,则缺省的访问权限是只读(Read-only)。

配置基于视图的访问控制(VACM)功能时需要同时配置NMP用户组。将指定用户和一个组关联,再将某个组与某个视图关联。一个组内的用户具有相同的访问权限。通过这种方式判定操作关联的管理对象是否在视图允许之内,只有在视图允许之内的管理对象才被允许访问。

配置SNMPv3版本的用户时,可以指定安全级别、认证算法(MD5或SHA)、认证口令、加密算法(目前只有DES)和加密口令。

配置SNMP攻击防护检测功能,能够在连续认证失败后做出对应的处理策略。

对于被永久禁止的源IP地址,只有管理员进行手动解除后,该源IP地址才能重新访问认证。对于被禁止一段时间内认证的源IP地址,当设置的禁止时间超时或者管理员手工解除后该源IP地址才能重新访问认证。

缺省情况下,不对community和user进行密码字典检查,如果不希望团体名和用户名太简单而容易被破解,可以启动对community和user进行密码字典检查,该功能需要与全局配置命令password policy一起使用。

SNMP日志功能将记录NMS对SNMP Agent的Get、Ge-Next和Set操作。当进行Get和Get-Next操作时,Agent会记录NMS用户的IP地址、操作类型、操作节点的OID。当进行Set操作时,Agent会记录NMS用户的IP地址、操作类型、操作的节点的OID、设置的值。这些日志将被发送到设备的信息中心,级别为informational,即作为设备的一般提示信息。大量的日志记录会影响设备的性能,正常情况下,建议关闭SNMP日志功能。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

(可选)配置SNMP视图。

snmp-server view view-name oid-tree { include | exclude }

使用基于视图的访问控制(VACM)功能时需要进行配置。

缺省情况下,配置一个default视图,允许访问所有的MIB对象。

(可选)配置SNMP用户组。

snmp-server group group-name { v1 | v2c | v3 { auth | noauth | priv } } [ read readview ] [ write writeview ] [ access { [ ipv6 ipv6-acl-name ] acl-name | acl-number } ]

缺省情况下,未配置用户组。

配置认证名和访问权限。

snmp-server community [ 0 | 7 | secret [ 0 | 8 ] ] community [ view view-name ] [ ro | rw ] [ host ipv4-address | host ipv6-address ] [ ipv6 ipv6-acl-name ] [ acl-name | acl-number ]

缺省情况下,未配置认证名,并且所有团体的访问权限为只读。

当使用SNMPv1和SNMPv2C版本管理网络设备时必须在Agent设备上配置认证名。

配置SNMP用户。

snmp-server user username group-name { v1 | v2c | v3 [ encrypted | interactive ] [ auth { md5 | sha | sha2-256 | sha2-512 } auth-password ] [ priv { des56 | acs128 } priv-password ] } [ access { [ ipv6 ipv6-acl-name ] acl-name | acl-number } ]

缺省情况下,未配置SNMP用户。

使用SNMPv3版本管理网络设备时必须配置用户。

(可选)开启Agent功能。

enable service snmp-agent

缺省情况下,Agent功能处于开启状态。

(可选)开启SNMP攻击防护检测功能。

snmp-server authentication attempt attempt-times exceed { lock | lock-time lock-time | unlock }

缺省情况下, SNMP攻击防护检测功能处于关闭状态。

(可选)配置对community和user进行密码字典检查。

snmp-server enable secret-dictionary-check

缺省情况下,未配置对community和user进行密码字典检查。

(可选)配置SNMP日志功能(记录NMS对SNMP Agent的Get、Get-Next和Set操作)。

snmp-server logging { authentication { fail | success } | get-operation | set-operation | trap-info }

缺省情况下,SNMP日志记录功能中NMS对SNMP Agent的Get、Get-Next操作的日志记录功能处于关闭状态,Set操作的日志记录功能处于开启状态。

配置Trap功能

功能简介

配置Trap功能后,Agent能够主动向NMS发送Trap消息。

配置限制与指导

配置Agent主动给NMS发送Trap消息时,需要配置NMS的主机地址。即snmp-server host命令与全局配置命令snmp-server enable traps一起使用。

可以配置多个不同的SNMP主机用于接收Trap消息。一个主机可以使用不同Trap类型组合,不同的端口,不同的VRF转发表。对于相同主机(相同端口、相同VRF配置),最后的一次配置会和前面的配置合并,即如要给相同主机发送不同Trap消息,可以分别配置不同Trap类型,最终这些配置会合并到一起。

如果需要系统在设备reload或reboot之前给NMS发送Trap消息通知系统重启时,需在Agent上配置发送系统重启Trap功能。

当接口发送Link Trap功能打开时,如果接口发生Link状态变化,SNMP将发出Link Trap,反之则不发。

缺省情况下,SNMP报文从哪个接口出去,就使用哪个接口的IP地址作为源地址,当希望固定使用一个本地IP地址作为SNMP的源地址以便于管理时,需在Agent上配置发送Trap消息的源地址功能。

snmp-server trap-format private命令可配置发送Trap消息携带私有格式字段,包含的字段目前支持的有告警发生时间,各个字段的具体数据类型和数据范围可参见RUIJIE-TRAP-FORMAT-MIB.mib文件说明。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

(可选)配置NMS主机地址。

snmp-server host [ vrf vrf-name ] { ipv4-addrress | ipv6 ipv6-address | domain domain-name } [ informs | traps ] [ version { { 1 | 2c } [ 0 | 7 ] community | 3 { auth | noauth | priv } username } ] [ udp-port port-number ] [ notification-type ]

缺省情况下,未配置SNMP主机地址。

(可选)配置Agent主动向NMS发送Trap消息。

snmp-server enable traps [ notification-type ]

缺省情况下,禁止SNMP向NMS主动发送Trap消息。

(可选)配置发送系统重启Trap功能。

snmp-server system-shutdown

缺省情况下,SNMP系统重启通知功能处于关闭状态。

(可选)配置发送Trap消息的源地址。

snmp-server trap-source interface-type interface-number

缺省情况下,SNMP报文从哪个接口出去,就使用哪个接口的IP地址作为源地址。

(可选)配置发送Trap消息时携带私有字段。

snmp-server trap-format private

缺省情况下,SNMP Trap消息不携带私有字段。

配置Inform尝试发送次数与超时发送时间。

snmp-server inform { retries retry-number | timeout timeout }

缺省情况下,inform尝试发送次数为3,Inform超时发送时间为15秒。

进入接口配置模式。

进入三层以太网接口配置模式。

interface ethernet-type interface-number

进入三层聚合接口配置模式。

interface aggregateport interface-number

进入SVI接口配置模式。

interface vlan interface-number

(可选)配置接口发送Link Trap功能。

snmp trap link-status

缺省情况下,接口发送Link Trap功能处于打开状态。

配置屏蔽Agent功能

功能简介

通过配置屏蔽Agent服务的时候,可以减少端口对外开放,减少被网络攻击的可能。

配置限制与指导

缺省情况下,SNMP代理功能服务处于关闭状态,在设置SNMP代理参数(例如NMS主机地址、认证名和访问权限等)时,会自动打开SNMP代理服务,服务开关命令enable service snmp-agent也必须同时打开,SNMP代理服务才能生效,但只要关闭了其中的一个,SNMP代理服务将不会生效。使用no snmp-server命令将屏蔽所有SNMP代理服务配置(即使用show running-config命令查看时不会显示配置,重新开启SNMP代理服务可以恢复),而no enable service snmp-agent命令会直接关闭SNMP所有服务(即snmp代理功能被禁用了,不接收报文、不发送响应报文及trap),但不会屏蔽代理的配置信息,但不会屏蔽SNMP代理配置。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

配置屏蔽设备SNMP代理功能。

no snmp-server

缺省情况下,SNMP代理功能处于开启状态。

配置关闭设备SNMP代理功能。

no enable service snmp-agent

缺省情况下,SNMP代理功能处于开启状态。

配置SNMP控制参数

功能简介

对设备的联系方式、设备位置、序列号、发送Trap消息等基本参数进行配置后,NMS通过访问设备的这些参数,便可以得知设备的联系人,设备所在的物理位置等信息。

配置限制与指导

当SNMP的请求报文太多导致SNMP任务的CPU占用比较高,可以配置SNMP流控,限制SNMP任务每秒处理的请求报文个数,从而控制SNMP任务的CPU占用情况。

SNMP协议包含v1、v2c、v3三个协议版本功能,如果实际使用场景中,仅使用指定的版本功能进行MIB交互管理,可以使用no snmp-server enable version [ v1 | v2c | v3 ]命令将未使用的协议版本关闭。

配置步骤

进入特权模式。

enable

进入全局配置模式。

configure terminal

配置系统的联系方式。

snmp-server contact contact-text

缺省情况下,系统的联系方式为空。

配置系统位置。

snmp-server location location-text

缺省情况下,系统的位置信息为空。

配置系统序列码。

snmp-server chassis-id chassis-id-text

缺省情况下,系统序列码60FF60。

SNMP系统序列号一般使用机器的序列号,以便对设备进行识别。

配置设备的网元信息。

snmp-server net-id net-id-text

缺省情况下,设备网元编码信息为空。

配置SNMP代理最大数据报文长度。

snmp-server packetsize packetsize

缺省情况下,SNMP代理最大数据报文长度为1472字节。

配置SNMP服务UDP端口号。

snmp-server udp-port port-number

缺省情况下,SNMP服务使用的UDP端口号为161。

配置SNMP服务设备源端口。

snmp-server source-interface interface-type interface-number

缺省情况下,使用任意已配置合法IP地址的设备源端口接收SNMP报文。

配置Trap消息报文的队列长度。

snmp-server queue-length queue-length

缺省情况下,Trap消息报文的队列长度为100。

配置发送Trap消息的时间间隔。

snmp-server trap-timeout trap-timeout-time

缺省情况下,发送Trap消息重发的超时时间为300毫秒。

配置SNMP流控。

snmp-server flow-control pps packet-count

缺省情况下,每秒处理的SNMP请求报文数量为300。

配置SNMP协议版本开关。

no snmp-server enable version [ v1 | v2c | v3 ]

缺省情况下,v1和v2c协议版本处于关闭状态,v3协议版本功能处于开启状态。

监视与维护

可以通过show命令行查看功能配置后的运行情况以验证配置效果。

可以通过执行clear命令来清除各类信息。

注意

在设备运行过程中执行clear命令,可能因为重要信息丢失而导致业务中断。

SNMP监视与维护

作用

命令

清除SNMP连续认证失败后被锁定的源IP地址表

clear snmp locked-ip [ ipv4 ipv4-address | ipv6 ipv6-address ]

查看SNMP的状态信息

show snmp [ group | host | locked-ip | process-mib-time | mib | user | version | view ]

典型配置举例

基于SNMPv2c的基本功能配置举例

组网需求

以图1-5为例,通过SNMP网络管理器,来对网络设备进行管理和监控。

组网图

SNMPv2基本功能组网图

image.png

配置步骤

# 开启SNMP代理功能。

Device> enable

Device# configure terminal

Device(config)# enable service snmp-agent

# 配置名称为comm_v1的读写团体。

Device(config)# snmp-server community comm_v2 rw

# 配置Agent的IP地址。配置接口GigabitEthernet 0/1的地址为192.168.3.1/24。

Device(config)# interface gigabitEthernet 0/1

Device(config-if-gigabitEthernet 0/1)# ip address 192.168.3.1 255.255.255.0

Device(config-if-gigabitEthernet 0/1)# exit

验证配置结果

# 通过ping命令验证Agent与NMS三层可达。

Device# ping 192.168.3.2

Sending 5, 100-byte ICMP Echoes to 192.168.3.2, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms.

# 通过show service命令查看SNMP代理功能是否开启。

Device# show service

snmp-agent    : enabled

ssh-server    : disabled

telnet-server : enabled

配置文件

Agent的配置文件

interface GigabitEthernet 0/1

ip address 192.168.2.1 255.255.255.0

!

snmp-server community comm_v2 rw

!

end

基于SNMPv3的SNMP基本功能配置举例

组网需求

网络管理站和被管理的网络设备通过网络连接,在网络管理站上,通过SNMP网络管理器,访问网络设备上的管理信息数据库,以及接收来自网络设备主动发出的消息,来对网络设备进行管理和监控。

网络工作站(NMS)基于用户的认证加密模式对网络设备(Agent)进行管理。

网络设备能够控制用户访问MIB对象的操作权限。

网络设备能够主动向网管工作站发送验证加密的消息。

组网图

SNMPv3基本功能组网图

image.png

配置要点

配置MIB视图和SNMP用户组。

配置SNMP用户。

配置SNMP主机。

配置Agent的IP地址。

配置步骤

# 创建一个名称为view1点MIB视图,包含关联的MIB对象为1.3.6.1.2.1.1;再创建一个MIB视图“view2”,包含关联的MIB对象(1.3.6.1.2.1.1.4.0)。

Device> enable

Device# configure terminal

Device(config)# snmp-server view view1 1.3.6.1.2.1.1 include

# 创建一个名称为view2点MIB视图,包含关联的MIB对象为1.3.6.1.2.1.1.4.0。

Device(config)# snmp-server view view2 1.3.6.1.2.1.1.4.0 include

创建一个名称为g1的SNMP用户组,版本号为v3,安全级别为priv协议的认证加密模式,设置视图view1为可读视图,view2视图为可写视图。

Device(config)# snmp-server group g1 v3 priv read view1 write view2

# 配置SNMP用户。创建名称为user1的用户,属于组g1,选择版本号为v3,配置认证方式为MD5协议认证,认证密码为123,加密方式为DES56加密协议,加密密码为321。

Device(config)# snmp-server user user1 g1 v3 auth md5 123 priv des56 321

# 配置SNMP主机:配置主机地址为192.168.3.2,SNMP版本号为3,安全级别为priv的认证加密模式,关联对应的用户名为user1。

Device(config)# snmp-server host 192.168.3.2 traps version 3 priv user1

# 配置Agent主动向NMS发送Trap消息。

Device(config)# snmp-server enable traps

# 配置Agent的IP地址。配置接口GigabitEthernet 0/1的地址为192.168.3.1/24。

Device(config)# interface gigabitEthernet 0/1

Device(config-if-gigabitEthernet 0/1)# ip address 192.168.3.1 255.255.255.0

Device(config-if-gigabitEthernet 0/1)# exit

验证配置结果

# 通过ping命令验证Agent与NMS三层可达。

Device# ping 192.168.3.2

Sending 5, 100-byte ICMP Echoes to 192.168.3.2, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms.

# 通过show snmp user命令查看SNMP用户。

Device# show snmp user

User name: user1

Engine ID: 800013110300d0f8221120

storage-type: permanent     active

Security level: auth priv

Auth protocol: MD5

Priv protocol: DES

Group-name: g1

# 通过show snmp view命令查看SNMP视图。

Device# show snmp view

view1(include) 1.3.6.1.2.1.1

view2(include) 1.3.6.1.2.1.1.4.0

default(include) 1.3.6.1

# 通过show snmp group命令查看SNMP组。

Device# show snmp group

groupname: g1

securityModel: v3

securityLevel:authPriv

readview: view1

writeview: view2

notifyview:

# 通过show snmp host命令查看用户配置的主机信息。

Device# show snmp host

Notification host: 192.168.3.2

udp-port: 162

type: trap

user: user1

security model: v3 authPriv

# 安装MIB-Browser查询。在IP Address中输入设备的IP地址:192.168.3.1,在UserName中输入“user1”,在Security Level中选择“AuthPriv”,在AuthPassWord中输入“123”,在AuthProtocol中选择“MD5”,在PrivPassWord中输入“321”。点击add item按钮,选择要查询的MIB的具体管理单元,比如System。点击Start按钮,便开始对网络设备进行MIB的查询了,具体的查询结果见图1-7中对话框的最下面的窗口:

MIB-Browser查询示例图

Generated

配置文件

Agent的配置文件

interface GigabitEthernet 0/1

ip address 192.168.2.1 255.255.255.0

!

snmp-server view view1 1.3.6.1.2.1.1 include

snmp-server view view2 1.3.6.1.2.1.1.4.0 include

snmp-server user user1 g1 v3 encrypted auth md5 DE8E9D1158A057A69EF73D1C12C51CC5 priv des56 C767B705F9B261E6D359D4BFBDAF9CF4

snmp-server group g1 v3 priv read view1 write view2

snmp-server host 192.168.3.2 traps version 3 priv user1

snmp-server enable traps

!

end

Trap基本功能配置举例

组网需求

网管工作站(NMS)基于共同体认证模式对网络设备(Agent)进行管理,网络设备能够主动向网管工作站发送消息。

组网图

Trap基本功能组网图

image.png

配置步骤

# 配置Agent与NMS三层可达,配置Agent的接口gigabitEthernet 0/1的IP地址为192.168.3.1。

Device> enable

Device# configure terminal

Device(config)#interface gigabitEthernet 0/1

Device(config-if-GigabitEthernet 0/1)#ip address 192.168.3.1 255.255.255.0

Device(config-if-GigabitEthernet 0/1)#exit

# 配置SNMP主机地址为192.168.3.2,消息格式为Version 2c,认证名为user1。配置Agent主动发送Trap消息。

Device> enable

Device# configure terminal

Device(config)# snmp-server host 192.168.3.2 traps version 2c user1

Device(config)# snmp-server enable traps

验证配置结果

# 通过ping命令验证Agent与NMS三层可达。

Device# ping 192.168.3.2

Sending 5, 100-byte ICMP Echoes to 192.168.3.2, timeout is 2 seconds:

< press Ctrl+C to break >

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms.

# 通过show snmp命令查看SNMP的状态信息。

Device# show snmp

Chassis: 1234567890

0 SNMP packets input

0 Bad SNMP version errors

0 Unknown community name

0 Illegal operation for community name supplied

0 Encoding errors

0 Number of requested variables

0 Number of altered variables

0 Get-request PDUs

0 Get-next PDUs

0 Set-request PDUs

0 SNMP packets output

0 Too big errors (Maximum packet size 1472)

0 No such name errors

0 Bad values errors

0 General errors

0 Response PDUs

0 Trap PDUs

SNMP global trap: enabled

SNMP logging: disabled

SNMP agent: enabled

配置文件

Agent的配置文件

interface GigabitEthernet 0/1

ip address 192.168.2.1 255.255.255.0

!

snmp-server host 192.168.3.2 traps version 2c user1

snmp-server enable traps

!

end