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

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

目录

10-SNMP配置

本章节下载 10-SNMP配置  (417.30 KB)

10-SNMP配置


1 SNMP

1.1  SNMP简介

SNMP(Simple Network Management Protocol,简单网络管理协议)广泛用于网络设备的远程管理和操作。SNMP允许管理员通过NMS对网络上不同厂商、不同物理特性、采用不同互联技术的设备进行管理,包括状态监控、数据采集和故障处理。

1.1.1  SNMP的网络架构

SNMP网络架构由三部分组成:NMS、Agent和MIB。NMS、Agent和MIB之间的关系如图1-1所示。

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

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

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

图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视图包含某个MIB子树时,NMS可以访问该子树的所有节点;当用户配置MIB视图不包含某个MIB子树时,NMS不能访问该子树的所有节点。

图1-2 MIB树结构

 

1.1.3  SNMP基本操作

SNMP提供四种基本操作:

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

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

·     告警操作:SNMP告警包括Trap和Inform两种。

¡     Trap操作:Agent使用该操作向NMS发送Trap报文。Agent不要求NMS发送回应报文,NMS也不会对Trap报文进行回应。SNMPv1SNMPv2cSNMPv3均支持Trap操作。

¡     Inform操作:Agent使用该操作向NMS发送Inform报文。Agent要求NMS发送回应报文,因此,Inform报文比Trap报文更可靠,但消耗的系统资源更多如果Agent在一定时间内没有收到NMS的回应报文,则会启动重发机制。只有SNMPv2cSNMPv3支持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.1.5  SNMP支持的访问控制方式

SNMP支持的访问控制方式包括:

·     VACM(View-based Access Control Model,基于视图的访问控制模型):将团体名/用户名与指定的MIB视图进行绑定,可以限制NMS能够访问哪些MIB对象,以及对MIB对象不同的操作权限。

·     RBAC(Role Based Access Control,基于角色的访问控制):创建团体名/用户名时,可以指定对应的用户角色,通过用户角色下制定的规则,来限制NMS能够访问哪些MIB对象,以及对MIB对象不同的操作权限。

¡     拥有network-admin或level-15用户角色的SNMP团体/用户,可以对所有的MIB对象进行读写操作;

¡     拥有network-operator用户角色的SNMP团体/用户,可以对所有的MIB对象进行读操作;

¡     拥有自定义用户角色的SNMP团体/用户,可以对角色规则中指定的MIB对象进行操作。

对于同一SNMP用户名/团体名,只能配置一种控制方式,多次使用两种控制方式配置同一用户名/团体名时,以最后一次的配置方式为准。

RBAC配置方式限制的是MIB节点的读写权限,VACM配置方式限制的是MIB视图的读写权限,而一个视图中通常包括多个MIB节点。所以,RBAC配置方式更精准、更灵活。关于RBAC的详细介绍请参见“基础配置”中的“RBAC”。

1.1.6  SNMP攻击防御

设备支持使用以下功能来自动检测并防御SNMP攻击:

·     SNMP静默功能:开启该功能后,如果设备判断当前受到了SNMP攻击,则在静默期内不允许所有的NMS访问设备。

·     SNMP IP地址黑名单:该功能基于IP地址,会在锁定时间内不允许特定的NMS访问设备。

·     SNMP用户黑名单:该功能基于SNMPv3用户名,会在锁定时间内不允许特定的SNMPv3用户名访问设备。

1. SNMP静默功能

SNMP静默功能的原理为:用户开启SNMP功能后,设备会自动创建SNMP静默定时器,并统计1分钟内收到的认证失败的SNMP报文的个数:

·     如果个数小于100,则自动重新开始计数。

·     如果个数大于等于100,则认为设备受到了SNMP攻击,SNMP模块会进入静默状态,设备将不再响应收到的任何SNMP报文。静默时间为4~5分钟,4~5分钟后,自动重新开始计数。

·     SNMP静默功能是否需要通过命令行开启与设备的型号有关,请以设备的实际情况为准。

2. SNMP IP地址黑名单功能

开启SNMP黑名单功能后:

(1)     如果NMS和设备建立SNMP连接失败,设备会将NMS的IP地址加入SNMP IP地址黑名单、锁定该IP地址,并启动观察期。第一次锁定时间为8秒,观察期为固定值5分钟。黑名单中的IP地址在锁定期内不允许和设备建立SNMP连接。

(2)     在第一次锁定时间到达,观察期超期前的这段时间内,该IP地址和设备建立SNMP连接有失败,则认为SNMP认证连续失败。该IP地址会被第二次锁定并重新启动观察期。第二次锁定时间为16秒,观察期为5分钟。

(3)     在第二次锁定时间到达,观察期超期前的这段时间内,该IP地址和设备建立SNMP连接有失败,则认为SNMP认证连续失败。该IP地址会被第三次锁定并重新启动观察期。第三次锁定时间为32秒,观察期为5分钟。

(4)     在第三次锁定时间到达,观察期超期前的这段时间内,该IP地址和设备建立SNMP连接有失败,则认为SNMP认证连续失败。该IP地址会被第四次锁定并重新启动观察期。第四次锁定时间为5分钟,观察期为5分钟。

如果观察期内,该IP地址和设备建立SNMP连接无失败现象,IP地址会被自动解锁,从黑名单中删除。

3. SNMP用户黑名单功能

用户和设备建立SNMPv3连接时,如果指定时间内用户连续认证失败次数超过指定次数,那么该用户会被SNMP加入黑名单进行锁定,在锁定时间内不能使用该用户名访问设备。通过这种方式,可以有效的防止网络非法用户恶意攻击。

对于被锁定的SNMPv3用户,有以下两种解锁方式。被解锁的用户可以继续通过SNMP访问设备。

·     锁定时间达到后,SNMP会自动解锁该用户。

·     对于误锁定的用户名,管理员也可以手工立即将被加入黑名单的SNMPv3用户激活(解锁)。

1.1.7  SNMP一键诊断

SNMP一键诊断功能用于诊断SNMP模块的功能是否运行正常,例如,是否发生过SNMP报文处理失败、SNMP报文处理耗时等事件,帮助用户定位SNMP功能异常问题。关于SNMP一键诊断功能的详细描述和配置请参见“智能运维配置指导”中的“一键诊断”。

1.2  配置任务简介

设备可同时作为SNMP NMS和SNMP Agent。

设备作为SNMP NMS时,配置任务如下:

(1)     配置设备作为NMS

设备作为SNMP Agent时,SNMP配置任务如下:

(2)     (可选)配置设备的MIB节点风格

(3)     开启SNMP功能

(4)     配置SNMP版本

(5)     配置SNMP基本参数

¡     (可选)配置SNMPv1/v2c/v3版本公共参数

¡     配置SNMPv1/v2c团体

¡     配置SNMPv3组和用户

(6)     (可选)配置SNMP攻击防御功能

SNMP静默功能和SNMP黑名单功能均能用于防御SNMP攻击,可以同时配置。但因为两个功能防御攻击的原理不同,在SNMP静默期内,SNMP黑名单功能临时不生效。

¡     开启SNMP静默功能

¡     开启SNMP IP地址黑名单功能

¡     配置SNMPv3用户黑名单功能

¡     显示SNMP IP地址黑名单

(7)     (可选)配置SNMP告警

(8)     (可选)模拟发送SNMP Trap

(9)     (可选)通过SNMP监控配置变化

(10)     (可选)配置可通过MIB节点查询和配置VA接口

(11)     (可选)配置SNMP日志

1.3  配置设备作为NMS

1. 功能简介

设备支持基于Tcl8.5版本的TclSNMP功能。在设备上加载了TclSNMP功能对应的Lib文件后,设备就可以作为一台NMS工作。网络管理员可在该设备上通过标准的Tcl脚本对网络中的其它设备进行get、set等SNMP操作,从而探测目标设备的SNMP Agent功能是否正常,或者对目标设备进行简单的SNMP管理。

图1-3 TclSNMP功能组网应用图

 

2. 配置限制和指导

TclSNMP支持SNMP v1和v2c版本。

TclSNMP暂不支持Trap功能。

3. 配置步骤

(1)     从用户视图进入Tcl配置视图。

tclsh

关于Tcl功能以及tclsh命令的详细介绍,请参见“基础配置指导”中的“Tcl”。

(2)     加载TclSNMP功能对应的Lib文件libtclsnmptools.so(libtclsnmptools.so文件集成在System软件包中,无需额外下载)。

load libtclsnmptools.so

load命令为Tcl标准命令,使用方法请参见Tcl官方资料,本文不做详细描述。

(3)     根据需求执行SNMP Tcl脚本。

tclsnmp-command

4. 配置举例

使用TclSNMP功能获取目标设备(IP地址为192.168.1.1)的运行时间,以此验证目标设备的SNMP Agent功能是否正常。其中,loadsnmpagent sessionxxx get均为Tcl的标准命令,xxx表示SNMP会话的名称。

<Sysname-tcl> tclsh

<Sysname-tcl> load libtclsnmptools.so

<Sysname-tcl> snmpagent session xxx -v2c -c public 192.168.1.1

<Sysname-tcl> xxx get 1.3.6.1.2.1.1.3.0

如果执行以上命令后,能在本设备上回显如下格式的信息,则表明目标设备的SNMP Agent功能正常:

{.1.3.6.1.2.1.1.3.0 = Timeticks: (273076) 0:45:30.76}

1.4  配置设备的MIB节点风格

注意

确认配置本功能,会导致设备立即重启,请谨慎操作。

 

1. 功能简介

应用场景

当设备用于中国南方电网组网或山东电力组网,网络管理员想要使用相应的私有MIB OID来管理设备时,可配置本功能,将设备上MIB节点的风格配置为CSG(China Southern Power Grid,中国南方电网)或SGSD(State Grid Shandong,国电山东电力)。

工作机制

缺省情况下,设备私有MIB根节点的名称为hh3c,根节点的OID为1.3.6.1.4.1.25506,根节点的全路径为iso(1).org(3).dod(6).internet(1).private(4).enterprises(1).hh3c(25506),其它私有MIB节点均挂靠在该根节点的MIB子树上。网络管理员可以使用前缀为1.3.6.1.4.1.25506的OID来访问设备。

配置本功能后,设备私有MIB根节点的名称将变更为对应节点名称,其它私有MIB节点也会挂靠到该根节点的MIB子树上。以便网络管理员可以使用响应前缀的OID来访问设备。

·     CSG风格根节点的OID为1.2.156.11235.6001.60,根节点的全路径为iso(1).member-body(2).cn(156).bwips(11235).enterprise-stand(6001).csg(60)。

·     SGSD风格根节点的OID为1.2.156.11235.5531.60,根节点的全路径为iso(1).member-body(2).cn(156).bwips(11235).sgsd(5531).sgsdStand(60)。

2. 配置限制和指导

要使本命令生效,请根据提示信息选择Y。输入Y并回车后,设备会自动保存当前配置并立即重启,使配置的MIB节点风格生效;如果选择N,则退出命令行的执行流程。

修改设备的MIB节点风格后,当前配置中包含hh3c节点的命令行将不再生效。

3. 配置步骤

请在用户视图下执行以下命令,配置设备的MIB节点风格。

snmp-agent mib-style { csg | sgsd }

缺省情况下,设备的MIB节点风格为H3C。

1.5  开启SNMP功能

1. 配置限制和指导

执行除snmp-agent calculate-password外任何以snmp-agent开头的命令,都可以开启SNMP功能。

当SNMP侦听端口被设备上的其他服务占用时,会导致SNMP功能启动失败。SNMP侦听端口可通过snmp-agent port命令配置,用户可使用display udp verbose命令查看设备上UDP端口的使用情况。关于display udp verbose命令的详细介绍,请参见“三层技术-IP业务”中的“IP性能优化”。

用户修改SNMP模块的相关配置后,如果关闭SNMP Agent功能,这些配置将暂时不生效。执行display current-configuration命令不会显示这些命令,执行save命令,这些配置也不会保存到配置文件。开启SNMP Agent功能后,这些配置会自动立即生效,不需要重复配置。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     启动SNMP功能。

snmp-agent

缺省情况下,SNMP功能处于关闭状态。

1.6  配置SNMP版本

1. 配置限制和指导

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

SNMPv1和SNMPv2c报文中携带的团体名和数据均为明文形式,存在安全隐患,建议使用SNMPv3版本。

如果在IPv6环境下,要使用SNMP告警功能,请将SNMP版本号配置为v2c或者v3

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置设备支持的SNMP版本。

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

缺省情况下,未配置设备支持的SNMP版本。

多次执行该命令配置不同的版本时,各配置均生效,设备会和NMS协商一个版本进行通信

1.7  配置SNMPv1/v2c/v3版本公共参数

1.7.1  配置限制和指导

设备出厂时,已分配了全网唯一的SNMP引擎ID。并且,SNMPv3版本的用户名、密文密码等都和引擎ID相关联,如果更改了引擎ID,则原引擎ID下配置的用户名、密码失效。所以,通常情况下,请不要修改设备的SNMP引擎ID。

当开启SNMP Agent功能时,如果SNMP侦听端口正被设备上的其它服务占用,会导致SNMP功能启动失败。此时,可修改SNMP侦听端口。如果指定的新端口仍被其它服务占用,则新端口配置失败。建议修改前使用display udp verbose命令查看设备上UDP端口的使用情况。关于display udp verbose命令的详细介绍,请参见“三层技术-IP业务”中的“IP性能优化”。

当使用ACL对访问设备的NMS进行限制时,只有全局ACL和创建SNMP团体、组和用户时配置的ACL均允许通过的NMS,才能使用对应的团体名、用户名访问设备。如果未引用ACL、引用的ACL不存在、或者引用的ACL下没有配置规则时,表示当前配置不对NMS进行过滤。

1.7.2  配置步骤

(1)     进入系统视图。

system-view

(2)     配置SNMP服务的侦听端口号。

snmp-agent port port-number

缺省情况下,SNMP服务的侦听端口号是161。

配置本命令时,如果该端口已被设备上的其他服务占用,则会配置失败。

当该端口被设备上的其他服务占用时,会导致SNMP功能启动失败。用户可使用display udp verbose命令查看UDP端口的使用情况。

(3)     配置本设备的SNMP引擎ID。

snmp-agent local-engineid engineid

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

(4)     配置远端SNMP实体的引擎ID。

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

缺省情况下,未配置远端SNMP实体的引擎ID。

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

(5)     创建或者更新MIB视图。

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

缺省情况下,存在四个MIB视图,名称均为ViewDefault。

¡     视图一包含MIB子树iso。

¡     视图二不包含子树snmpUsmMIB。

¡     视图三不包含子树snmpVacmMIB。

¡     视图四不包含子树snmpModules.18。

MIB视图由视图名和MIB子树来唯一确定。视图名相同但包含的子树不同,则认为是不同的视图。

(6)     为SNMP配置全局ACL。

snmp-agent acl [ ipv6 ] { acl-number | name acl-name }

缺省情况下,未为SNMP配置全局ACL。

(7)     配置SNMP管理信息。

¡     配置设备的维护联系信息。

snmp-agent sys-info contact sys-contact

缺省情况下,设备的维护联系信息为New H3C Technologies Co., Ltd.

¡     配置设备的物理位置信息。

snmp-agent sys-info location sys-location

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

(8)     创建SNMP上下文。

snmp-agent context context-name

缺省情况下,不存在SNMP上下文。

(9)     配置Agent能处理的SNMP报文的最大长度。

snmp-agent packet max-size byte-count

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

(10)     配置SNMP响应报文的DSCP(Differentiated Services Code Point,差分服务代码点)优先级。

snmp-agent packet response dscp dscp-value

缺省情况下,SNMP响应报文的DSCP优先级为63。

1.7.3  显示SNMP公共参数

可在任意视图下执行以下命令:

·     显示SNMP设备的系统信息。

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

·     显示SNMP支持的MIB节点信息。

display snmp-agent mib-node [ details | index-node | trap-node [ name-string ] | verbose ]

·     显示MIB视图的信息。

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

·     显示SNMP上下文。

display snmp-agent context [ context-name ]

·     显示本设备的SNMP引擎ID。

display snmp-agent local-engineid

·     显示远端SNMP实体引擎信息。

display snmp-agent remote [ { ipv4-address | ipv6 ipv6-address } [ vpn-instance vpn-instance-name ] ]

1.8  配置SNMPv1/v2c团体

1.8.1  功能简介

用户可以基于名称配置SNMPv1/v2c团体,或者基于用户配置SNMPv1/v2c团体。两种配置方式,效果相同。基于用户配置指的是先创建SNMP组,再向创建的组中添加SNMPv1/v2c用户,SNMPv1/v2c用户相当于SNMPv1/v2c的团体名,在NMS上配置的团体名需要跟设备上配置的SNMPv1/v2c用户名一致。

1.8.2  配置限制和指导

为了安全起见,只有具有network-admin或者level-15用户角色的用户登录设备后才能创建SNMP团体、用户或组。其它角色的用户,即使授权了SNMP特性或相应命令的操作权限,也不能执行相应命令。

1.8.3  基于名称配置SNMPv1/v2c团体

(1)     进入系统视图。

system-view

(2)     直接创建SNMP团体。请选择其中一项进行配置。

¡     VACM方式:

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

¡     RBAC方式:

snmp-agent community [ simple | cipher ] community-name user-role role-name [ acl { ipv4-acl-number | name ipv4-acl-name } | acl ipv6 { ipv6-acl-number | name ipv6-acl-name } ] *

(3)     (可选)创建团体名到SNMP上下文的映射。

snmp-agent community-map community-name context context-name

1.8.4  基于用户配置SNMPv1/v2c团体

(1)     进入系统视图。

system-view

(2)     通过创建用户来创建SNMP团体。

a.     创建SNMPv1/v2c组:

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

b.     创建SNMPv1/v2c用户:

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

(3)     (可选)创建团体名到SNMP上下文的映射。

snmp-agent community-map community-name context context-name

1.8.5  显示SNMP团体

可在任意视图下执行以下命令,显示SNMPv1或SNMPv2c团体信息。

display snmp-agent community [ read | write ]

1.9  配置SNMPv3组和用户

1.9.1  配置限制和指导

配置权限注意事项

为了安全起见,只有具有network-admin或者level-15用户角色的用户登录设备后才能创建SNMP用户或组。其它角色的用户,即使授权了SNMP特性或相应命令的操作权限,也不能执行相应命令。

安全级别配置注意事项

SNMP组可以定义安全级别、视图权限等信息,配置在此组内的用户都具有这些公共属性。

SNMPv3支持三种安全模式,这三种安全模式按照安全性从高到低分为:

·     Privacy:认证加密。

·     Authentication:认证不加密。

·     None:不认证不加密。

在设备上创建SNMP用户组和SNMPv3用户时,均可指定安全级别,在NMS上也可以指定安全级别。在指定安全级别时,有如下要求:

·     请确保SNMPv3用户的安全级别≥NMS上指定的安全级别≥SNMP用户组的安全级别,否则,无法建立SNMP连接。

·     如果SNMPv3用户的安全级别、NMS的安全级别、SNMP用户组配置的级别不同,最终采用NMS上指定的安全级别。

¡     如果NMS上指定的安全级别包含认证,则SNMPv3用户的安全级别也必须包含认证,且设备侧配置的认证密码和认证算法必须和NMS侧一致。

¡     如果NMS上指定的安全级别包含加密,则SNMPv3用户的安全级别也必须包含加密,且设备侧配置的加密密码和加密算法必须和NMS侧一致。

1.9.2  配置SNMPv3组和用户

(1)     进入系统视图。

system-view

(2)     创建SNMPv3组。

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

(3)     (可选)为明文密码计算对应的密文密码。

snmp-agent calculate-password plain-password mode { 3desmd5 | 3dessha | 3dessha224 | 3dessha256 | 3dessha384 | 3dessha512 | aes192md5 | aes192sha | aes192sha224 | aes192sha256 | aes192sha384 | aes192sha512 | aes256md5 | aes256sha | aes256sha224 | aes256sha256 | aes256sha384 | aes256sha512 | md5 | sha | sha224 | sha256 | sha384 | sha512 } { local-engineid | specified-engineid engineid }

(4)     创建SNMPv3用户。请选择其中一项进行配置。

¡     VACM方式:

snmp-agent usm-user v3 user-name group-name [ remote { ipv4-address | ipv6 ipv6-address } [ vpn-instance vpn-instance-name ] ] [ { cipher | simple } authentication-mode { md5 | sha | sha224 | sha256 | sha384 | sha512 } auth-password [ privacy-mode { 3des | aes128 | aes192 | aes256 | des56 } priv-password ] ] [ acl { ipv4-acl-number | name ipv4-acl-name } | acl ipv6 { ipv6-acl-number | name ipv6-acl-name } ] *

¡     RBAC方式:

snmp-agent usm-user v3 user-name user-role role-name [ remote { ipv4-address | ipv6 ipv6-address } [ vpn-instance vpn-instance-name ] ] [ { cipher | simple } authentication-mode { md5 | sha | sha224 | sha256 | sha384 | sha512 } auth-password [ privacy-mode { 3des | aes128 | aes192 | aes256 | des56 } priv-password ] ] [ acl { ipv4-acl-number | name ipv4-acl-name } | acl ipv6 { ipv6-acl-number | name ipv6-acl-name } ] *

当设备需要向目的主机发送SNMPv3 Inform报文时,remote参数必选。

(5)     (可选)为通过RBAC方式创建的SNMPv3用户添加角色。

snmp-agent usm-user v3 user-name user-role role-name

缺省情况下,使用创建SNMPv3用户时指定的角色。

1.9.3  显示SNMP组和用户

可在任意视图下执行以下命令:

·     显示SNMP组信息。

display snmp-agent group [ group-name ]

·     显示SNMPv3用户信息。

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

1.10  配置SNMP攻击防御功能

SNMP静默功能和SNMP黑名单功能均能用于防御SNMP攻击,可以同时配置。但因为两个功能防御攻击的原理不同,在SNMP静默期内,SNMP黑名单功能临时不生效。

1.10.1  开启SNMP静默功能

(1)     进入系统视图。

system-view

(2)     开启SNMP静默功能。

snmp-agent silence enable

缺省情况下,SNMP静默功能处于关闭状态。

1.10.2  开启SNMP IP地址黑名单功能

(1)     进入系统视图。

system-view

(2)     开启SNMP IP地址黑名单功能。

snmp-agent blacklist ip-block enable

缺省情况下,SNMP IP地址黑名单功能处于关闭状态。

 

1.10.3  配置SNMPv3用户黑名单功能

1. 锁定SNMPv3用户

(1)     进入系统视图。

system-view

(2)     开启SNMPv3用户黑名单功能。

snmp-agent denylist user enable

缺省情况下,SNMPv3用户黑名单处于关闭状态。

(3)     配置SNMPv3用户连续认证失败次数和周期。

snmp-agent denylist user authfailure times period period-time

缺省情况下,SNMPv3用户在5分钟内连续认证失败5次后,系统将锁定该用户。

(4)     配置SNMPv3用户加入黑名单后被锁定的时间。

snmp-agent denylist user timeout time

缺省情况下,SNMPv3用户被加入黑名单后的锁定时间为5分钟。

2. 立即解锁SNMPv3用户

请在用户视图下执行以下命令,将被加入黑名单的SNMPv3用户激活。

snmp-agent denylist user activate user-name

1.10.4  显示SNMP IP地址黑名单

在任意视图下执行以下命令,可以显示SNMP IP地址黑名单信息。

display snmp-agent denylist ip statistics

 

1.11  配置SNMP告警

1.11.1  功能简介

SNMP告警信息包括Trap和Inform两种,用来告知NMS设备上发生了重要事件,比如,用户的登录/退出,接口状态变成up/down等。业务模块开启告警功能后,会将生成的告警信息发送给SNMP模块,SNMP根据当前的配置封装成Trap和(或)Inform报文发送。如无特殊说明,本文中的告警信息均指Trap和Inform两种信息。

1.11.2  开启告警功能

1. 配置限制和指导

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

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

如果在IPv6环境下,要使用SNMP告警功能,请将SNMP版本号配置为v2c或者v3

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启SNMP告警功能。

snmp-agent trap enable [ configuration | protocol | standard [ authentication | coldstart | linkdown | linkup | warmstart ] * | system ]

缺省情况下,SNMP配置告警、标准告警和系统告警功能处于开启状态,其他各模块告警功能是否开启请参见各模块手册。

对于协议模块的SNMP告警功能,需要先使能相关协议,本命令才能配置成功。

(3)     进入接口视图。

interface interface-type interface-number

(4)     开启接口链路状态变化的告警功能。

enable snmp trap updown

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

1.11.3  配置告警信息发送参数

1. 功能简介

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

·     如果在告警信息发送队列满时系统又收到了新的告警信息,则系统会丢弃新收到的告警信息。

·     如果用户修改队列长度,导致队列中告警信息数量超过告警信息发送队列的长度,系统会丢弃较老的告警信息。

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

对linkUp/linkDown告警信息进行私有扩展后,设备生成和发送的该信息由标准linkUp/linkDown告警信息后增加接口描述和接口类型信息构成。

2. 配置Trap信息发送参数

(1)     进入系统视图。

system-view

(2)     配置Trap报文的发送参数。

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

缺省情况下,未配置Trap报文的目的主机(能够解析Trap和Inform报文的设备,通常为NMS)。

(3)     (可选)配置发送的Trap报文的源IP地址。

snmp-agent trap source interface-type { interface-number | interface-number.subnumber }

缺省情况下,使用出接口的IP地址作为Trap报文的源IP地址。

(4)     (可选)开启存活Trap周期发送功能,并配置发送时间间隔。

snmp-agent trap periodical-interval interval

缺省情况下,存活Trap周期发送的时间间隔为60秒。

 

3. 配置Inform信息发送参数

(1)     进入系统视图。

system-view

(2)     配置Inform报文的发送参数。

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

缺省情况下,未配置Inform报文的目的主机。

仅SNMPv2c和SNMPv3版本支持Inform报文。

(3)     (可选)配置发送的Inform报文的源IP地址。

snmp-agent inform source interface-type { interface-number | interface-number.subnumber }

缺省情况下,使用出接口的IP地址作为Inform报文的源IP地址。

4. 配置告警信息公共发送参数

(1)     进入系统视图。

system-view

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

snmp-agent trap if-mib link extended

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

如果NMS不支持该扩展信息,请关闭私有扩展功能。

(3)     允许生成扩展格式的authenticationfailure告警信息。

snmp-agent trap snmpv2-mib authenticationfailure extended

缺省情况下,系统发送的authenticationFailure告警为标准格式,不对其进行私有扩展。

当SNMP标准告警中的认证失败告警处于开启状态时,本命令才生效。SNMP标准告警中的认证失败告警缺省处于开启状态。

(4)     配置告警信息发送队列的长度。

snmp-agent trap queue-size size

本命令的缺省情况与设备的型号有关,请以设备实际情况为准。

(5)     配置告警信息的保存时间。

snmp-agent trap life seconds

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

(6)     (可选)配置告警信息的格式为CMCC。

snmp-agent trap format cmcc

设备发往NMS的告警信息的格式为非定制格式。

(7)     (可选)配置设备发往NMS的告警信息中携带SN(serial number,设备的序列号)。

snmp-agent trap withsn

缺省情况下,设备发往NMS的告警信息中不携带SN。

1.11.4  显示SNMP告警参数

可在任意视图下执行以下命令:

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

display snmp-agent trap queue

·     显示SNMP告警功能的开启状态。

display snmp-agent trap-list

·     显示SNMP告警信息的丢弃记录。

display snmp-agent trapbuffer drop

·     显示SNMP告警信息的发送记录。

display snmp-agent trapbuffer send

1.11.5  清除SNMP Trapbuffer记录

可在用户视图下执行以下命令,清除SNMP Trapbuffer中的所有记录。

reset snmp-agent trapbuffer

1.12  模拟发送SNMP Trap

1. 功能简介

应用场景

本功能用于测试设备的SNMP Trap功能是否正常、告警配置是否正确以及NMS能否正常收到、解析Trap。如果网管能收到告警,则说明设备的SNMP Trap功能正常,告警配置正确;如果网管未能收到告警,需要进一步定位并处理问题。

工作机制

执行本功能后,设备会模拟自动生成SNMP Trap,并通过SNMP业务模块,发送告警。每个Trap报文发送一次。

模拟生成的SNMP Trap报文中携带的节点的取值按照以下原则来填充:

·     数值类型节点,其填充数据为该节点取值范围的最小值,若无取值范围则填充0。

·     字符串类型节点和IPv6地址类型节点,其填充数据为Test。若参数对字符长度有要求,会截取或者循环填充Test直至满足长度要求。

·     时间戳类型节点,其填充数据为当前系统时间。

·     IPv4地址类型节点,其填充数据为127.0.0.1。

·     比特类型节点,其填充数据为该节点的缺省值,对于没有缺省值的节点,使用节点取值范围的最小值。

·     密码类型节点,其填充数据为******。

·     Object identifier类型节点,其填充数据为该Trap的OID。

·     同一事件的告警和恢复告警按照先后顺序发送。

·     对于某些包含多个同名绑定变量的Trap节点,请按照顺序指定绑定变量及绑定变量的值。未指定的绑定变量将按照以上填充规则填充。

2. 配置准备

执行本命令前:

·     请先开启SNMP功能,否则,命令行执行失败。

·     请使用snmp-agent target-host命令指定接收SNMP告警信息的目的主机,否则,Trap信息将发送失败。

·     (可选)配置SNMP trap其它发送参数。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     模拟发送设备支持的SNMP Trap。请选择其中一项进行配置。

¡     模拟发送设备支持的所有SNMP Trap。

simulate snmp-trap all [ ifindex ifindex ]

¡     模拟发送指定的SNMP Trap。

simulate snmp-trap trap-node name-string [ context context-name ] [ variable-binding { variable-binding-name { hex hex-value | null-string | variable-binding-value } }&<1-n> ]

不同Trap节点可绑定的变量不同,所以n的取值由Trap节点的规格决定,请以实际情况为准。

 

1.13  通过SNMP监控配置变化

1. 功能简介

SNMP模块会按周期检查周期内设备的当前运行配置、启动配置以及启动配置文件是否有变化。如果检测到配置有变化,设备会生成对应的日志;如果检测到配置有变化,且开启了配置变化告警功能,设备在生成日志的同时会生成对应的Trap。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置SNMP模块检查系统配置是否有变化的周期。

snmp-agent configuration-examine interval interval

本命令的缺省情况与设备的型号有关,请以设备的实际情况为准。

(3)     开启配置变化告警功能。

snmp-agent trap enable configuration

缺省情况下,配置变化告警功能处于开启闭状态。

 

1.14  配置可通过MIB节点查询和配置VA接口

1. 功能简介

由于大多情况下,用户不关心VA(Virtual Access,虚拟访问)接口,所以,缺省情况下,不能通过MIB节点查询和配置VA接口。此时,设备会忽略NMS发送的关于VA接口的配置和查询请求,这不仅可以提高设备获取其它接口信息的效率,提升用户体验度,还可以降低设备的工作量,避免CPU资源浪费。有关VA接口的相关介绍,请参见“二层技术-广域网接入配置指导”中的“PPP”。

如果用户需要通过MIB对VA接口进行配置或查询,请配置本功能。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置可通过MIB节点查询和配置VA接口。

snmp virtual-access visible

缺省情况下,不能通过MIB节点查询和配置VA接口。

1.15  配置SNMP日志

1. 功能简介

SNMP日志可以记录NMS对Agent的Get请求、Set请求和Set响应信息,不能记录Get响应信息。同时SNMP日志可以记录Agent对NMS的Trap和Inform操作信息以及SNMP认证失败信息。

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

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

·     当进行Trap和Inform操作时,Agent会向NMS发送告警,Agent会记录告警相关的信息。

·     当进行SNMP认证操作时,如果Agent收到来自NMS的SNMP请求但是没有通过认证,Agent会记录相关日志。

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

2. 配置限制和指导

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

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     打开SNMP日志开关。

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

缺省情况下,SNMP Set操作日志开关处于开启状态,其他日志开关处于关闭状态。

(3)     打开SNMP告警日志开关。

snmp-agent trap log

缺省情况下,SNMP告警日志功能处于关闭状态。

 

1.16  显示SNMP统计信息

可在任意视图下执行以下命令,显示SNMP报文统计信息。

display snmp-agent statistics

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

新华三官网
联系我们