08-SNMP配置
本章节下载: 08-SNMP配置 (450.35 KB)
目 录
设备运行于FIPS模式时,本特性部分配置相对于非FIPS模式有所变化,具体差异请见本文相关描述。有关FIPS模式的详细介绍请参见“安全配置指导”中的“FIPS”。
SNMP(Simple Network Management Protocol,简单网络管理协议)是互联网中的一种网络管理标准协议,广泛用于实现管理设备对被管理设备的访问和管理。SNMP具有以下优势:
· 支持网络设备的智能化管理。利用基于SNMP的网络管理平台,网络管理员可以查询网络设备的运行状态和参数,配置参数值,发现故障,完成故障诊断,进行容量规划和制作报告。
· 支持对不同物理特性的设备进行管理。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关系图
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树结构
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操作。
目前,设备运行于非FIPS模式时,支持SNMPv1、SNMPv2c和SNMPv3三种版本;设备运行于FIPS模式时,只支持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之间的通信提供更高的安全性。
SNMP支持的访问控制方式包括VACM(View-based Access Control Model,基于视图的访问控制模型)和RBAC(Role Based Access Control,基于角色的访问控制)。
将团体名/用户名与指定的MIB视图进行绑定,可以限制NMS能够访问哪些MIB对象,以及对MIB对象不同的操作权限。
创建团体名/用户名时,可以指定对应的用户角色。
· 拥有用户角色为network-admin、mdc-admin或level-15的SNMP团体/用户,可以对所有的MIB对象进行读写操作;
· 拥有用户角色为network-operator或mdc-operator的SNMP团体/用户,可以对所有的MIB对象进行读操作;
· 拥有用户角色为自定义角色的SNMP团体/用户,则根据该用户角色下rule命令创建的用户角色规则来对相应MIB对象进行操作。
对于同一SNMP用户名/团体名,只能配置一种控制方式,多次使用两种控制方式配置同一用户名/团体名时,以最后一次的配置方式为准,推荐使用RBAC方式,安全性更高。有关用户角色及rule命令的详细情况,请参见“基础配置”中的“RBAC”。
RBAC配置方式限制的是MIB节点的读写权限,VACM配置方式限制的是MIB视图的读写权限。RBAC配置方式更精准、更灵活。
设备使用SNMP静默功能可以自动检测并防御SNMP攻击,不需要命令行配置。
其原理为:用户开启SNMP功能后,设备会自动创建SNMP静默定时器,并统计1分钟内收到的认证失败的SNMP报文的个数:
· 如果个数小于100,则自动重新开始计数。
· 如果个数大于等于100,则认为设备受到了SNMP攻击,SNMP模块会进入静默状态,设备将不再响应收到的任何SNMP报文。静默时间为4~5分钟,4~5分钟后恢复到正常工作状态,自动重新开始计数。
由于SNMPv3版本的配置和SNMPv1版本、SNMPv2c版本的配置有较大区别,所以下面分两种情况介绍SNMP基本功能的配置,详见表1-1和表1-2。
· 设备运行于FIPS模式时,不支持SNMPv1/v2c版本。
· 为了安全起见,只有具有network-admin、mdc-admin或者level-15用户角色的用户登录设备后才能创建SNMP团体、用户或组。其它角色的用户,即使授权了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功能后,这些配置会自动立即生效,不需要重复配置。
表1-1 配置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 |
|||
(可选)配置设备的物理位置信息 |
snmp-agent sys-info location sys-location |
|||
配置设备支持SNMPv1/v2c版本 |
snmp-agent sys-info version { all | { v1 | v2c | v3 } *} |
缺省情况下,设备启用SNMPv3版本的SNMP功能 如果在IPv6环境下,要使用SNMP告警功能,请将SNMP版本号配置为v2c或者v3 |
||
(可选)配置本设备的SNMP引擎ID |
snmp-agent local-engineid engineid |
缺省情况下,设备引擎ID为“公司的企业号+设备信息” |
||
(可选)配置远端SNMP实体的引擎ID |
snmp-agent remote { ipv4-address | ipv6 ipv6-address } [ vpn-instance vpn-instance-name ] engineid engineid |
缺省情况下,不存在远端SNMP实体的引擎ID 当设备需要向目的主机(能够解析Trap和Inform报文的设备,通常为NMS)发送SNMPv3 Inform报文时,该步骤必选 |
||
(可选)创建或者更新MIB视图 |
snmp-agent mib-view { excluded | included } view-name oid-tree [ mask mask-value ] |
缺省情况下,存在四个MIB视图,名称均为ViewDefault: · 视图一包含MIB子树iso · 视图二不包含子树snmpUsmMIB · 视图三不包含子树snmpVacmMIB · 视图四不包含子树snmpModules.18 MIB视图是MIB的子集,由视图名和MIB子树来唯一确定一个MIB视图。视图名相同但包含的子树不同,则认为是不同的视图 |
||
配置访问权限 |
直接配置 |
创建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 } ] * |
二者选其一 直接配置是以SNMPv1和SNMPv2c版本的团体名进行配置 间接配置是先创建SNMP组,再向创建的组中添加的用户,用户相当于SNMPv1和SNMPv2c版本的团体名,在NMS上配置的团体名需要跟Agent上配置的用户名一致 缺省情况下,不存在任何SNMP组和SNMP团体 |
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 } ] * |
||||
间接配置 |
创建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 } ] * |
||
创建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 } ] * |
|||
(可选)创建SNMP上下文 |
snmp-agent context context-name |
缺省情况下,不存在SNMP上下文 |
||
(可选)创建团体名到SNMP上下文的映射 |
snmp-agent community-map community-name context context-name |
缺省情况下,不存在团体名到SNMP上下文的映射 |
||
(可选)配置Agent能处理的SNMP报文的最大长度 |
snmp-agent packet max-size byte-count |
缺省情况下,Agent能接收或发送的SNMP报文的最大长度为1500字节 |
||
(可选)配置SNMP服务的侦听端口号 |
snmp-agent port port-num |
缺省情况下,SNMP服务的侦听端口号是161 |
||
(可选)开启存活Trap周期发送功能,并配置发送时间间隔 |
snmp-agent trap periodical-interval interval |
缺省情况下,存活Trap周期发送的时间间隔为60秒 |
||
(可选)配置SNMP响应报文的DSCP(Differentiated Services Code Point,差分服务代码点)优先级 |
snmp-agent packet response dscp dscp-value |
缺省情况下,SNMP响应报文的DSCP优先级为0 |
了安全起见,只有具有network-admin、mdc-admin或者level-15用户角色的用户登录设备后才能创建SNMP团体、用户或组。其它角色的用户,即使授权了SNMP特性或相应命令的操作权限,也不能执行相应命令。
建立SNMPv3连接时,是否进行认证和加密,受snmp-agent group v3和snmp-agent usm-user v3两条命令的影响:
· 创建组时,如果不指定authentication和privacy参数,则表示不认证不加密。此时,使用和该组绑定的用户名建立SNMP连接时,均不认证不加密。即便用户配置了认证密码/加密密码,认证密码/加密密码也不生效。
· 创建组时,如果指定authentication参数,则表示认证不加密。此时,使用和该组绑定的用户名建立SNMP连接时,均认证不加密。即便用户配置了加密密码,加密密码也不生效。该组内的用户必须配置认证密码,否则,不能建立SNMP连接。
· 创建组时,如果指定privacy参数,则表示认证加密。此时,使用和该组绑定的用户名建立SNMP连接时,均认证加密。该组内的用户必须配置认证密码和加密密码,否则,不能建立SNMP连接。
表1-2 配置SNMPv3版本基本参数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
(可选)启动SNMP Agent服务 |
snmp-agent |
缺省情况下,SNMP Agent服务处于关闭状态 执行除snmp-agent calculate-password外任何以snmp-agent开头的命令,都可以启动SNMP Agent服务 |
(可选)配置设备的维护联系信息 |
snmp-agent sys-info contact sys-contact |
缺省情况下,设备的维护联系信息为“New H3C Technologies Co., Ltd.” |
(可选)配置设备的物理位置信息 |
snmp-agent sys-info location sys-location |
缺省情况下,设备的物理位置信息为“Hangzhou, China” |
配置设备支持SNMPv3版本 |
snmp-agent sys-info version { all | { v1 | v2c | v3 } * |
缺省情况下,设备启用SNMPv3版本的SNMP功能 |
(可选)配置本设备的SNMP引擎ID |
snmp-agent local-engineid engineid |
缺省情况下,设备引擎ID为“公司的企业号+设备信息”。 SNMPv3版本的用户名、密文密码等都和引擎ID相关联,如果更改了引擎ID,则原引擎ID下配置的用户名、密码失效。 |
(可选)配置远端SNMP实体的引擎ID |
snmp-agent remote { ipv4-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 ] |
缺省情况下,存在四个MIB视图,名称均为ViewDefault · 视图一包含MIB子树iso · 视图二不包含子树snmpUsmMIB · 视图三不包含子树snmpVacmMIB · 视图四不包含子树snmpModules.18 MIB视图是MIB的子集,由视图名和MIB子树来唯一确定一个MIB视图。视图名相同但包含的子树不同,则认为是不同的视图 |
(可选)创建SNMPv3组 |
非FIPS模式下: 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 } ] * FIPS模式下: 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 } ] * |
缺省情况下,不存在SNMP组 |
(可选)为明文密码计算对应的密文密码 |
非FIPS模式下: 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 } FIPS模式下: snmp-agent calculate-password plain-password mode { aes192sha | aes192sha224 | aes192sha256 | aes192sha384 | aes192sha512 | aes256sha | aes256sha224 | aes256sha256 | aes256sha384 | aes256sha512 | sha | sha224 | sha256 | sha384 | sha512 } { local-engineid | specified-engineid engineid } |
- |
创建SNMPv3用户 |
非FIPS模式下: · 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 } ] * FIPS模式下: · 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 { sha | sha224 | sha256 | sha384 | sha512 } auth-password [ privacy-mode { aes128 | aes192 | aes256 } 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 { sha | sha224 | sha256 | sha384 | sha512 } auth-password [ privacy-mode { aes128 | aes192 | aes256 } priv-password ] [ acl { ipv4-acl-number | name ipv4-acl-name } | acl ipv6 { ipv6-acl-number | name ipv6-acl-name } ] * |
当设备需要向目的主机发送SNMPv3 Inform报文时,remote参数必选 |
(可选)为通过RBAC方式创建的SNMPv3用户添加角色 |
snmp-agent usm-user v3 user-name user-role role-name |
缺省情况下,使用创建SNMPv3用户时指定的角色 |
(可选)创建SNMP上下文 |
snmp-agent context context-name |
缺省情况下,不存在SNMP上下文 |
(可选)配置Agent能处理的SNMP报文的最大长度 |
snmp-agent packet max-size byte-count |
|
(可选)配置SNMP服务的侦听端口号 |
snmp-agent port port-num |
缺省情况下,SNMP服务的侦听端口号是161 |
(可选)开启存活Trap周期发送功能,并配置发送时间间隔 |
snmp-agent trap periodical-interval interval |
缺省情况下,存活Trap周期发送的时间间隔为60秒 |
配置SNMP响应报文的DSCP(Differentiated Services Code Point,差分服务代码点)优先级 |
snmp-agent packet response dscp dscp-value |
缺省情况下,SNMP响应报文的DSCP优先级为0 |
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字节,超出的部分将不会被输出。有关信息中心的详细介绍请参见“网络管理和监控配置指导”中的“信息中心”。
表1-3 配置SNMP日志功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
(可选)打开SNMP日志开关 |
snmp-agent log { all | authfail | get-operation | set-operation } |
大量的日志记录会占用设备的存储空间,影响设备的性能。正常情况下,建议关闭SNMP日志功能。 缺省情况下,SNMP Set操作日志开关处于开启状态,其他日志开关处于关闭状态 |
(可选)打开SNMP告警日志开关 |
snmp-agent trap log |
缺省情况下,SNMP告警日志功能处于关闭状态 |
SNMP告警信息包括Trap和Inform两种,用来告知NMS设备上发生了重要事件,比如,用户的登录/退出,接口状态变成up/down等。如无特殊说明,本文中的告警信息均指Trap和Inform两种信息。
因为告警信息通常较多,会占用设备内存,影响设备性能,所以建议用户根据需要开启指定模块的告警功能,生成相应的告警信息。
如果要求接口在链路状态发生改变时生成相应的告警信息,需要在全局和接口下均开启接口链路状态变化的告警功能。如果要生成其它模块的告警信息,除了使用snmp-agent trap enable命令开启告警功能外,还可能需要执行各个模块的相关配置,详情请参见各模块的相关描述。
如果在IPv6环境下,要使用SNMP告警功能,请将SNMP版本号配置为v2c或者v3。
表1-4 开启告警功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启SNMP告警功能 |
snmp-agent trap enable [ configuration | protocol | standard [ authentication | coldstart | linkdown | linkup | warmstart ] * | system ] |
缺省情况下,SNMP配置告警、标准告警和系统告警功能处于开启状态,其他各模块告警功能是否开启请参见各模块手册 对于协议模块的SNMP告警功能,需要先使能相关协议,本命令才能配置成功。 |
进入接口视图 |
interface interface-type interface-number |
- |
开启接口链路状态变化的告警功能 |
enable snmp trap updown |
缺省情况下,接口状态变化的告警功能处于开启状态 |
如果配置了snmp-agent target-host inform命令,则设备会向指定目的主机(能够解析Trap和Inform报文的设备,通常为NMS)发送Inform报文;如果配置了snmp-agent target-host trap命令,则设备会向指定目的主机发送Trap报文,由于设备NMS收到Trap报文并不会为此发送确认信息,所以发送Trap报文比Inform报文不可靠且占用系统资源少。
对linkUp/linkDown告警信息进行私有扩展后,设备生成和发送的该信息由标准linkUp/linkDown告警信息后增加接口描述和接口类型信息构成。如果NMS不支持该扩展信息,请禁用私有扩展功能。
为了成功发送Inform报文,请确保以下两点:
· NMS通过SNMPv2c或者SNMPv3版本对Agent进行监控管理。
· 如果要通过V3版本对Agent管理,当进行SNMPv3基础配置时,你必须配置NMS所管理设备的引擎ID,同时在创建SNMPv3用户时指定SNMP引擎的IP地址。
设备第一次发送告警信息时,会检查设备和目的主机是否路由可达。如果可达,则直接发送。如果不可达,则先将告警信息缓存在消息队列里,等路由可达后,再发送。为防止告警信息累积占用太多内存,用户可以配置该队列的长度以及告警信息在队列里的保存时间。
· 如果在告警信息的发送队列满时系统又收到了新的告警信息,则系统丢弃新收到的告警信息。
· 如果用户修改队列长度,导致队列中告警信息数量超过告警信息发送队列的长度,系统会丢弃较老的告警信息。
· 如果告警信息的发送队列中的某信息到达了已设定的保存时间,则系统会自动删除该告警信息。
如果要将告警信息发送给NMS,则需要进行以下配置准备:
(1) 配置SNMP基本参数。
(2) 确保设备与NMS路由可达。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置Inform报文的发送参数 |
非FIPS模式下: 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 { cipher-securityname cipher-security-string v2c | securityname security-string { v2c | v3 [ authentication | privacy ] } } FIPS模式下: snmp-agent target-host inform address udp-domain { ipv4-target-host | ipv6 target-host } [ udp-port port-number ] [ vpn-instance vpn-instance-name ] params securityname security-string v3 { authentication | privacy } |
缺省情况下,未配置Inform报文的目的主机 |
配置Trap报文的发送参数 |
非FIPS模式下: snmp-agent target-host trap address udp-domain { ipv4-target-host | ipv6 ipv6-target-host } [ udp-port port-number ] [ vpn-instance vpn-instance-name ] params { cipher-securityname cipher-security-string [ v1 | v2c ] | securityname security-string [ v1 | v2c | v3 [ authentication | privacy ] ] } FIPS模式下: snmp-agent target-host trap address udp-domain { ipv4-target-host | ipv6 ipv6-target-host } [ udp-port port-number ] [ vpn-instance vpn-instance-name ] params securityname security-string v3 { authentication | privacy } |
缺省情况下,未配置Trap报文的目的主机 |
(可选)配置发送的告警信息的源IP地址 |
snmp-agent { inform | trap } source interface-type { interface-number | interface-number.subnumber } |
缺省情况下,使用出接口的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秒 |
(可选)配置告警信息的格式为CMCC |
snmp-agent trap format cmcc |
缺省情况下,设备发往NMS的告警信息的格式为通用格式 |
(可选)配置设备发往NMS的告警信息中携带SN(serial number,设备的序列号) |
snmp-agent trap withsn |
缺省情况下,设备发往NMS的告警信息中不携带SN |
使用本功能,SNMP模块会按照指定的时间间隔定期检测系统当前配置是否发生了变化,如果发生了变化,则通过日志和Trap提醒管理员。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置SNMP模块定期检测系统当前配置是否有变化的时间间隔 |
snmp-agent configuration-examine interval interval |
缺省情况下,SNMP模块定期检测系统当前配置是否有变化的时间间隔为600秒 |
在完成上述配置后,在任意视图下执行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 [ { ipv4-address | 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团体信息 (FIPS模式下不支持该命令) |
display snmp-agent community [ read | write ] |
显示MIB视图的信息 |
display snmp-agent mib-view [ exclude | include | viewname view-name ] |
显示SNMP支持的MIB节点信息 |
display snmp-agent mib-node [ details | index-node | trap-node | verbose ] |
显示SNMP上下文 |
display snmp-agent context [ context-name ] |
设备运行于FIPS模式时,不支持本例。
SNMPv1和SNMPv2c的配置方法相同,下面以SNMPv1为例进行配置。
· NMS与Agent相连,设备的IP地址和掩码如图1-3所示。
· NMS通过SNMPv1对Agent进行监控管理,Agent在故障时能够主动向NMS发送告警信息。
图1-3 SNMPv1配置组网图
(1) 配置Agent
# 配置Agent的IP地址为1.1.1.1/24,并确保Agent与NMS之间路由可达。(配置步骤略)
# 配置Agent支持SNMPv1版本、只读团体名为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告警功能,告警信息发送到主机1.1.1.2,使用的团体名为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
· NMS与Agent相连,设备的IP地址和掩码如图1-4所示。
· NMS通过SNMPv3只能对Agent的SNMP报文的相关信息进行监控管理,Agent在出现故障时能够主动向NMS发送告警信息,NMS上接收SNMP告警信息的默认UDP端口号为162。
· NMS与Agent建立SNMP连接时,需要认证,使用的认证算法为SHA-1,认证密码为123456TESTauth&!。NMS与Agent之间传输的SNMP报文需要加密,使用的加密协议为AES,加密密码为123456TESTencr&!。
图1-4 SNMPv3配置组网图
(1) 配置Agent
# 配置Agent的IP地址为1.1.1.1/24,并确保Agent与NMS之间路由可达。(配置步骤略)
# 创建用户角色test并配置访问权限:用户只能读节点snmpMIB(OID为1.3.6.1.6.3.1)下的对象(本举例验证时会用到linkUp和linkDown节点),不可以访问其它MIB对象。
<Agent> system-view
[Agent] role name test
[Agent-role-test] rule 1 permit read oid 1.3.6.1.6.3.1
# 配置用户角色test具有system(OID为1.3.6.1.2.1.1)的读权限与interfaces(OID为1.3.6.1.2.1.2)的读写权限,以便接口状态变化时,Agent会向NMS发送告警信息。
[Agent-role-test] rule 2 permit read oid 1.3.6.1.2.1.1
[Agent-role-test] rule 3 permit read write oid 1.3.6.1.2.1.2
[Agent-role-test] quit
# 创建用户RBACtest,为其绑定用户角色test,认证算法为SHA-1,认证密码为123456TESTauth&!,加密算法为AES,加密密码是123456TESTencr&!。
[Agent] snmp-agent usm-user v3 RBACtest user-role test simple authentication-mode sha 123456TESTauth&! privacy-mode aes128 123456TESTencr&!
# 配置设备的联系人和位置信息,以方便维护。
[Agent] snmp-agent sys-info contact Mr.Wang-Tel:3306
[Agent] snmp-agent sys-info location telephone-closet,3rd-floor
# 开启NMS告警功能,告警信息发送到主机1.1.1.2,使用的用户名为RBACtest。
[Agent] snmp-agent trap enable
[Agent] snmp-agent target-host trap address udp-domain 1.1.1.2 params securityname RBACtest v3 privacy
(2) 配置NMS
# 配置NMS使用的SNMP版本为SNMPv3,用户名为RBACtest,启用认证和加密功能,认证算法为SHA-1,认证密码为123456TESTauth&!,加密协议为AES,加密密码为123456TESTencr&!。另外,还可以根据需求配置“超时”时间和“重试次数”。具体配置请参考NMS的相关手册。
NMS侧的配置必须和设备侧保持一致,否则无法进行相应操作。
(1) 配置Agent
# 配置Agent的IP地址为1.1.1.1/24,并确保Agent与NMS之间路由可达。(配置步骤略)
# 配置访问权限:用户只能读节点snmpMIB(OID为1.3.6.1.6.3.1)下的对象(本举例验证时会用到linkUp和linkDown节点),不可以访问其它MIB对象。
<Agent> system-view
[Agent] undo snmp-agent mib-view ViewDefault
[Agent] snmp-agent mib-view included test snmpMIB
[Agent] snmp-agent group v3 managev3group privacy read-view test
# 配置访问权限:配置用户具有system(OID为1.3.6.1.2.1.1)和interfaces(OID为1.3.6.1.2.1.2)的读写权限,以便接口状态变化时时,Agent会向NMS发送告警信息。(VACM方式只能将MIB视图中包含的所有节点配置为只读属性或者读写属性,不能仅配置部分节点的属性)
[Agent] snmp-agent mib-view included test 1.3.6.1.2.1.1
[Agent] snmp-agent mib-view included test 1.3.6.1.2.1.2
[Agent] snmp-agent group v3 managev3group privacy read-view test write-view test
# 配置Agent使用的用户名为VACMtest,认证算法为SHA-1,认证密码为123456TESTauth&!,加密算法为AES,加密密码是123456TESTencr&!。
[Agent] snmp-agent usm-user v3 VACMtest managev3group simple authentication-mode sha 123456TESTauth&! privacy-mode aes128 123456TESTencr&!
# 配置设备的联系人和位置信息,以方便维护。
[Agent] snmp-agent sys-info contact Mr.Wang-Tel:3306
[Agent] snmp-agent sys-info location telephone-closet,3rd-floor
# 开启NMS告警功能,告警信息发送到主机1.1.1.2,使用的用户名为VACMtest。
[Agent] snmp-agent trap enable
[Agent] snmp-agent target-host trap address udp-domain 1.1.1.2 params securityname VACMtest v3 privacy
(2) 配置NMS
# 配置NMS使用的SNMP版本为SNMPv3,用户名为VACMtest,启用认证和加密功能,认证算法为SHA-1,认证密码为123456TESTauth&!,加密协议为AES,加密密码为123456TESTencr&!。另外,还可以根据需求配置“超时”时间和“重试次数”。具体配置请参考NMS的相关手册。
NMS侧的配置必须和设备侧保持一致,否则无法进行相应操作。
(1) NMS使用RBACtest用户名访问Agent
· 可查询sysName节点的值,返回结果为Agent。
· 设置sysName节点的值为Sysname,由于没有权限,操作失败。
· 在Agent上关闭或打开接口,NMS上将收到linkUP(OID为1.3.6.1.6.3.1.1.5.4)或linkDown(OID为1.3.6.1.6.3.1.1.5.3) Trap信息。
(2) NMS使用VACMtest用户名访问Agent
· 可查询sysName节点的值,返回结果为Agent。
· 设置sysName节点的值为Sysname,操作成功。
在Agent上关闭或打开接口,NMS上将收到linkUP或linkDown Trap信息。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!