通过SNMP进行配置文件管理举例
关键词:SNMP、NMS、Agent、FTP、TFTP、当前配置、下次启动配置文件
摘 要:NET-SNMP是SNMP协议的一套开源实现工具,可作为NMS或Agent。本文主要介绍NET-SNMP作为NMS通过SNMP协议进行配置文件管理,即实现上传、下载、运行Agent(H3C设备)上的配置文件等操作。
缩略语:SNMP、NMS、MIB、FTP、TFTP
缩略语  | 英文全名  | 中文解释  | 
SNMP  | Simple Network Management Protocol  | 简单网络管理协议  | 
NMS  | Network Management System  | 网络管理系统  | 
MIB  | Management Information Base  | 管理信息库  | 
FTP  | File Transfer Protocol  | 文件传输协议  | 
TFTP  | Trivial File Transfer Protocol  | 一般文件传输协议  | 
目 录
3.1.1 hh3cCfgOperateType对象(1.3.6.1.4.1.25506.2.4.1.2.4.1.2).. 5
3.1.2 hh3cCfgOperateProtocol对象(1.3.6.1.4.1.25506.2.4.1.2.4.1.3).. 6
3.1.3 hh3cCfgOperateFileName对象(1.3.6.1.4.1.25506.2.4.1.2.4.1.4).. 6
3.1.4 hh3cCfgOperateServerAddress对象(1.3.6.1.4.1.25506.2.4.1.2.4.1.5).. 7
3.1.5 hh3cCfgOperateUserName对象(1.3.6.1.4.1.25506.2.4.1.2.4.1.6).. 7
3.1.6 hh3cCfgOperateUserPassword对象(1.3.6.1.4.1.25506.2.4.1.2.4.1.7).. 7
3.1.7 hh3cCfgOperateRowStatus对象(1.3.6.1.4.1.25506.2.4.1.2.4.1.9).. 7
3.2 hh3cCfgOperateResultTable. 8
3.2.1 hh3cCfgOperateResultOptIndex对象(1.3.6.1.4.1.25506.2.4.1.2.5.1.2).. 8
3.2.2 hh3cCfgOperateResultOpType对象(1.3.6.1.4.1.25506.2.4.1.2.5.1.3).. 8
3.2.3 hh3cCfgOperateState对象(1.3.6.1.4.1.25506.2.4.1.2.5.1.4).. 9
4 使用SNMP v1、v2c进行配置文件管理举例... 9
SNMP是网络中管理设备(NMS)和被管理设备(Agent)之间的通信规则,NMS通过Get和Set等操作获取、设置Agent上变量的值,从而实现对Agent的远程管理、监控。
目前市场上有多种NMS产品,其中Net-SNMP作为一种开源实现的NMS在业界被广泛使用。它提供了一套完整的应用程序,实现了SNMPv1/v2c/v3功能。本文将描述如何使用Net-SNMP工具通过访问MIB对象来进行配置文件管理,具体包括:
l running2Startup,将当前配置保存到下次启动配置文件
l startup2Running,用下次启动配置文件更新系统当前配置
l running2Net,将当前配置备份到FTP/TFTP服务器
l net2Running,将FTP/TFTP服务器上的配置文件下载到本机并立即执行
l net2Startup,将FTP/TFTP服务器上的配置文件下载到本机替代当前启动配置文件的内容
l startup2Net,将下次启动配置文件上传到FTP/TFTP服务器进行配置备份
启动配置文件是用于设备启动的配置文件,是一系列命令的集合。将配置保存到下次启动配置文件后,如果设备重启,系统在启动过程中会自动读取、执行启动配置文件中的配置,从而使设备迅速恢复到指定的配置状态。
本文主要用到Net-SNMP的snmpset功能和snmpwalk功能。
l snmpset功能:即执行一次SNMP Set操作,用来设置Agent上指定MIB对象的值。命令行格式为snmpset [OPTIONS] AGENT OID TYPE VALUE [OID TYPE VALUE]...。
l snmpwalk功能:即执行一次SNMP Walk操作,用来获取Agent上多个MIB对象的值。命令行格式为snmpwalk [OPTIONS] AGENT [OID]。
以上两条命令行中,各参数的含义如下:
参数  | 说明  | 
snmpset  | 命令关键字,表示执行Set操作  | 
snmpwalk  | 命令关键字,表示执行Walk操作  | 
OPTIONS  | 命令行选项(常用选项请参见表1)  | 
AGENT  | Agent的IP地址  | 
OID  | Agent上MIB对象的OID  | 
TYPE  | MIB对象的类型,取值为i、u、t、a、o、s、x、d、b、n之一,本文中用到: l i表示整数(integer) l a表示IP地址(IpAddress) l s表示字符串(string)  | 
VALUE  | 将设置的MIB对象的值  | 
[OID TYPE VALUE]...  | 表示一次可以设置多个变量的值,一组OID TYPE VALUE确定一个变量的值  | 
选项  | 说明  | 举例  | 
-h  | 显示命令帮助信息  | -h  | 
-v  | 设置使用的SNMP版本,取值为1、2c或3  | -v 1  | 
-c  | 设置团体名  | -c public  | 
-a  | 设置认证协议类型,取值为MD5或SHA  | -a MD5  | 
-A  | 设置认证密码  | -A 12345678  | 
-e  | 设置安全引擎ID  | -e 800063A203000056000000  | 
-u  | 设置用户名  | -u v3user  | 
-x  | 设置加密协议类型,取值为DES  | -x DES  | 
-X  | 设置加密密码  | -X 12345678  | 
-m  | 加载MIB列表,取值为MIB文件名(取值为ALL时表示加载所有文件)  | -m ALL 或-m d:/net-snmp/xxx.mib  | 
-M  | 指定MIB文件所在目录列表  | -M d:/nets-snmp  | 
![]()
本文使用的Net-SNMP工具来自于http://www.net.snmp.org/,关于这个工具的详细介绍,请访问该网站。
本文通过访问H3C私有MIB来实现配置文件管理。如果想要通过对象的名称访问这些节点,在访问前需要先通过H3C网站将相关MIB文件下载到NMS上,并在NMS上编译这些文件。如果不编译相关MIB文件,则只能通过对象OID进行访问。
相关的MIB文件包括:rfc2578.sm2、rfc2579.sm2、rfc2580.sm2、hh3c-oid.mib或huawei-3com-oid.mib、hh3c-config-man.mib或h3c-config-man.mib。其中,
l rfc2578.sm2、rfc2579.sm2、rfc2580.sm2、hh3c-oid.mib是为编译hh3c-config-man.mib服务的;
l rfc2578.sm2、rfc2579.sm2、rfc2580.sm2、huawei-3com-oid.mib是为编译h3c-config-man.mib服务的;
l 实际访问的是hh3c-config-man.mib或h3c-config-man.mib中的对象。
hh3c-oid.mib和hh3c-config-man.mib是H3C new风格的MIB文件,huawei-3com-oid.mib和h3c-config-man.mib是H3C compatible风格的MIB文件。使用哪个MIB文件由设备当前的MIB风格决定。在Agent上使用display mib-snmp命令查看设备的MIB风格,如果“Current MIB style”显示为:
l new,则表示设备当前使用H3C new风格的MIB文件。
l compatible,则表示设备当前使用H3C compatible风格的MIB文件。
H3C new风格的MIB文件中的节点名称全部以hh3c开头,OID全部以1.3.6.1.4.1.25506开头;H3C compatible风格的MIB文件中的节点名称全部以h3c开头,OID全部以1.3.6.1.4.1.2011.10开头。比如hh3c-config-man.mib中的节点hh3cCfgOperateType(OID为1.3.6.1.4.1.25506.2.4.1.2.4.1.2),h3c-config-man.mib中的节点h3cCfgOperateType(OID为1.3.6.1.4.1.2011.10.2.4.1.2.4.1.2),它们指的都是设备上的同一个变量,只是MIB风格不同而已。
鉴于当前设备缺省情况下均采用H3C New风格的MIB文件,所以,下面将重点介绍与配置文件管理密切相关的hh3c-config-man.mib文件中MIB节点。
该表主要实现通过SNMP进行NMS和设备之间的配置文件操作。
hh3cCfgOperateTable是一个操作表,表中定义了多个列对象。每个列对象下可以包含多个实体,实体的OID为“列对象OID.n”,n为实体编号,实体不同,n的取值不同。实体编号由用户指定,只要与当前编号不冲突即可。相同编号的实体属于同一行,行索引即为实体编号。通过定义行状态可以对该行的所有实体进行一次操作。
hh3cCfgOperateTable中定义了多个MIB对象,与配置文件管理相关的主要有如下几个:
对象名称  | hh3cCfgOperateType  | 
对象OID  | 1.3.6.1.4.1.25506.2.4.1.2.4.1.2  | 
对象描述  | 指定配置文件操作类型,比如running2Startup、startup2Running等  | 
备注  | 该对象取值的具体含义,请参见0  | 
对象类型  | 列对象(该对象下生成的实体对象的类型为integer)  | 
表2 hh3cCfgOperateType取值描述表
取值  | 操作  | 描述  | 
1  | running2Startup  | l 把当前运行的配置保存到下次启动配置文件中,相当于执行save命令。 l 如果下次启动配置文件不存在,则创建一个默认的配置文件并把当前配置保存到其中(不同型号的产品创建的文件的名称可能不同)  | 
2  | startup2Running  | 用下次启动配置文件更新系统当前配置,即执行该配置文件中的内容。如果当前启动的配置文件不存在,则操作失败并返回13(opFileOpenError)错误码  | 
3  | running2Net  | 把当前系统运行的配置通过网络发送到远端服务器指定位置的文件中  | 
4  | net2Running  | 用从网络上通过某种文件传输协议获取的配置文件更新当前系统的配置,即在Agent上执行一次该配置文件  | 
5  | net2Startup  | 用从网络上通过某种文件传输协议获取的配置文件替代当前启动配置文件的内容,并将该文件设置为下次启动配置文件。如果当前启动的配置文件不存在,则创建一个默认的配置文件来保存传过来的文件内容(不同型号的产品创建的文件的名称可能不同)  | 
6  | startup2Net  | 把下次启动配置文件通过某种文件传输协议传送到网络上指定的位置。如果当前启动的配置文件不存在,则操作失败并返回13(opFileOpenError)错误码  | 
对象名称  | hh3cCfgOperateProtocol  | 
对象OID  | 1.3.6.1.4.1.25506.2.4.1.2.4.1.3  | 
对象描述  | 指定文件传输协议,不指定该对象的值时使用FTP协议  | 
备注  | 该对象取值可能为: l 1:表示使用FTP协议 l 2:表示使用TFTP协议  | 
对象类型  | 列对象(该对象下生成的实体对象的类型为integer)  | 
对象名称  | hh3cCfgOperateFileName  | 
对象OID  | 1.3.6.1.4.1.25506.2.4.1.2.4.1.4  | 
对象描述  | 指定配置文件名  | 
备注  | 如果hh3cCfgOperateType对象值为3、4或者5,则必须指定文件名(可以包含文件的路径)。 l 如果hh3cCfgOperateType对象值为3,则hh3cCfgOperateFileName的值为目的文件名 l 如果hh3cCfgOperateType对象值为4或者5,则hh3cCfgOperateFileName的值为待传输源文件的文件名 其它情况无需指定文件名  | 
对象类型  | 列对象(该对象下生成的实体对象的类型为string)  | 
对象名称  | hh3cCfgOperateServerAddress  | 
对象OID  | 1.3.6.1.4.1.25506.2.4.1.2.4.1.5  | 
对象描述  | 指定FTP/TFTP服务器的IP地址  | 
备注  | l 如果hh3cCfgOperateType对象值为3、4、5或者6,必须指定服务器IP地址,不能为全0和全F l 其它情况下无需指定IP地址  | 
对象类型  | 列对象(该对象下生成的实体对象的类型为IpAddress)  | 
对象名称  | hh3cCfgOperateUserName  | 
对象OID  | 1.3.6.1.4.1.25506.2.4.1.2.4.1.6  | 
对象描述  | 指定FTP用户名  | 
备注  | 如果hh3cCfgOperateType对象值为3、4、5或者6,并且hh3cCfgOperateProtocol的值为1,需要使用该对象来指定登录的用户名  | 
对象类型  | 列对象(该对象下生成的实体对象的类型为string)  | 
对象名称  | hh3cCfgOperateUserPassword  | 
对象OID  | 1.3.6.1.4.1.25506.2.4.1.2.4.1.7  | 
对象描述  | 指定hh3cCfgOperateUserName中用户对应的密码  | 
备注  | 如果hh3cCfgOperateType对象值为3、4、5或者6,并且hh3cCfgOperateProtocol的值为1,需要使用该对象来指定登录的用户密码  | 
对象类型  | 列对象(该对象下生成的实体对象的类型为string)  | 
对象名称  | hh3cCfgOperateRowStatus  | 
对象OID  | 1.3.6.1.4.1.25506.2.4.1.2.4.1.9  | 
对象描述  | 配置hh3cCfgOperateTable表中每一行的状态  | 
备注  | 取值可能为: l 1:active,表示Agent可以使用该行 l 2:notInService,表示Agent可以使用该行,与行一致性等因素无关 l 3:notReady,表示行已经创建,但因为缺乏重要信息而不可用 l 4:creatAndGo,表示创建一行,并立即执行 l 5:creatAndWait,表示创建一行,但不立即执行。可以将行状态手工设置为active,来触发执行 l 6:destroy,表示删除一行  | 
对象类型  | 列对象(该对象下生成的实体对象的类型为integer)  | 
该表用来记录hh3cCfgOperateTable中定义的操作的执行结果。通过hh3cCfgOperateTable执行一个操作后,hh3cCfgOperateResultTable中就会创建一行。该行对应的各列中分别记录hh3cCfgOperateTable操作的实体编号(即hh3cCfgOperateTable中的行索引)、操作类型、操作结果等。hh3cCfgOperateResultTable中每行的编号由系统自动生成,从1开始递增。
hh3cCfgOperateResultTable中定义了多个MIB对象,与配置文件管理相关的主要有如下几个:
对象名称  | hh3cCfgOperateResultOptIndex  | 
对象OID  | 1.3.6.1.4.1.25506.2.4.1.2.5.1.2  | 
对象描述  | 表示该行对应的hh3cCfgOperateTable中的行索引  | 
备注  | 无  | 
对象类型  | 列对象(该对象下生成的实体对象的类型为integer)  | 
对象名称  | hh3cCfgOperateResultOpType  | 
对象OID  | 1.3.6.1.4.1.25506.2.4.1.2.5.1.3  | 
对象描述  | 记录对应hh3cCfgOperateTable中的操作类型  | 
备注  | 无  | 
对象类型  | 列对象(该对象下生成的实体对象的类型为integer)  | 
对象名称  | hh3cCfgOperateState  | 
对象OID  | 1.3.6.1.4.1.25506.2.4.1.2.5.1.4  | 
对象描述  | 记录对应操作的结果  | 
备注  | 该对象取值可能为: l 1:opInProgress,表示当前操作正在进行。如果涉及读写设备Flash等需要较长时间的操作,会返回该状态; l 2:opSuccess,表示操作成功完成; l 其它值表示操作失败  | 
对象类型  | 列对象(该对象下生成的实体对象的类型为integer)  | 
使用SNMP v1或者v2c版本配置基本相同,本文以SNMP v1为例。如果网络上运行的SNMP是v2c版本的,则只需将本举例中-v参数的值改为2c即可。
l 网管工作站(NMS)与设备(Agent)通过以太网相连。
l FTP/TFTP服务器,提供文件上传和下载服务。
l NMS上运行Net-SNMP软件,要求在NMS上通过SNMP v1、团体名private对Agent进行配置文件管理。
图1 通过SNMP进行配置文件管理组网图

l 在Agent上配置接口参数:指定接口的IP地址,保证Agent和NMS路由的可达。
l Agent上需要完成SNMP功能基本配置(包括SNMP的版本、SNMP团体名),使得NMS和Agent之间可以互访。
l 查看Agent支持的MIB风格,确定需要使用的MIB对象。
l 将Net-SNMP软件中的snmpset.exe和snmpwalk.exe文件放到NMS的C:\usr\bin路径下,通过MIB对象进行配置文件管理。
l 如果使用FTP协议传输文件,需要在FTP server上运行FTP服务器软件,配置用户名和密码;如果使用TFTP协议传输文件,需要在TFTP server上运行TFTP服务器软件。(使用FTP协议时需要将1.3.6.1.4.1.25506.2.4.1.2.4.1.3.4值设为1,还需要设置用户名和密码;使用TFTP协议时只需要将1.3.6.1.4.1.25506.2.4.1.2.4.1.3.4值设为2,不需要设置用户名和密码。本举例使用FTP传输协议)
# 本举例采用H3C设备作为FTP server,需要在FTP server上使能FTP server功能,配置FTP用户(假设为ftp),密码(假设为123123123123)等参数。
<System> system-view
[System] local-user ftp
[System-luser-ftp] password simple 123123123123
[System-luser-ftp] authorization-attribute level 3
[System-luser-ftp] service-type ftp
# 配置Agent的IP地址为192.168.1.40/24,并确保Agent与NMS之间路由可达。
l 如果Ethernet1/1是三层接口,请进行以下配置:
<Sysname> system-view
[Sysname] interface ethernet 1/1
[Sysname-Ethernet1/1] ip address 192.168.1.40 24
[Sysname-Ethernet1/1] quit
l 如果Ethernet1/1是二层接口,请进行以下配置:
<Sysname> system-view
[Sysname] vlan 2
[Sysname-vlan2] port Ethernet 1/1
[Sysname-vlan2] quit
[Sysname] interface vlan-interface 2
[Sysname-Vlan-interface2] ip address 192.168.1.40 24
[Sysname-Vlan-interface2] quit
# 配置SNMP版本。为了防止Agent和NMS因为版本问题导致不能建立SNMP连接,建议将版本参数配置为all,表示支持v1、v2c、v3三个版本。
<Sysname> system-view
[Sysname]snmp-agent sys-info version all
# 配置可读属性团体名均为public,配置可写属性团体名均为private。
[Sysname] snmp-agent community read public
[Sysname] snmp-agent community write private
# 查看设备当前支持的MIB文件风格,以便决定使用哪些MIB对象。
[Sysname] display mib-style
Current MIB style: new
Next reboot MIB style: new
以上显示信息表明,设备当前支持的MIB文件风格为new,所以使用根节点为1.3.6.1.4.1.25506的MIB对象。(如果Current MIB style显示为compatible,则下面的配置步骤中需要将1.3.6.1.4.1.25506替换为1.3.6.1.4.1.2011.10即可)
(1) 将当前运行的配置信息保存到下次启动配置文件(running2Startup)
C:\usr\bin> snmpset -v 1 -c private 192.168.1.40 1.3.6.1.4.1.25506.2.4.1.2.4.1.2.1 i 1 1.3.6.1.4.1.25506.2.4.1.2.4.1.9.1 i 4
将返回下面的响应信息:
iso.3.6.1.4.1.25506.2.4.1.2.4.1.2.1 = INTEGER: 1
iso.3.6.1.4.1.25506.2.4.1.2.4.1.9.1 = INTEGER: 4
# 通过snmpwalk命令查看保存操作的执行情况。
C:\usr\bin> snmpwalk -v 1 -c public 192.168.1.40 1.3.6.1.4.1.25506.2.4.1.2.5.1
将返回下面的响应信息:
iso.3.6.1.4.1.25506.2.4.1.2.5.1.2.1 = INTEGER: 1
iso.3.6.1.4.1.25506.2.4.1.2.5.1.3.1 = INTEGER: 1
iso.3.6.1.4.1.25506.2.4.1.2.5.1.4.1 = INTEGER: 2
iso.3.6.1.4.1.25506.2.4.1.2.5.1.5.1 = Timeticks: (245) 0:00:02.45
iso.3.6.1.4.1.25506.2.4.1.2.5.1.6.1 = Timeticks: (214998) 0:35:49.98
以上显示信息表明此次running2Startup操作成功。
(2) 将当前运行的配置信息备份到FTP服务器(running2Net)
# 使用FTP协议将Agent上的当前配置备份到FTP server(192.168.1.46),用户名为ftp,密码为123,文件名为aa.cfg。
C:\usr\bin> snmpset -v 1 -c private 192.168.1.40 1.3.6.1.4.1.25506.2.4.1.2.4.1.2.2 i 3 1.3.6.1.4.1.25506.2.4.1.2.4.1.3.2 i 1 1.3.6.1.4.1.25506.2.4.1.2.4.1.4.2 s aa.cfg 1.3.6.1.4.1.25506.2.4.1.2.4.1.5.2 a 192.168.1.46 1.3.6.1.4.1.25506.2.4.1.2.4.1.6.2 s ftp 1.3.6.1.4.1.25506.2.4.1.2.4.1.7.2 s 123123123123 1.3.6.1.4.1.25506.2.4.1.2.4.1.9.2 i 4
将返回下面的响应信息:
iso.3.6.1.4.1.25506.2.4.1.2.4.1.2.2 = INTEGER: 3
iso.3.6.1.4.1.25506.2.4.1.2.4.1.3.2 = INTEGER: 1
iso.3.6.1.4.1.25506.2.4.1.2.4.1.4.2 = STRING: "aa.cfg"
iso.3.6.1.4.1.25506.2.4.1.2.4.1.5.2 = IpAddress: 192.168.1.46
iso.3.6.1.4.1.25506.2.4.1.2.4.1.6.2 = STRING: "ftp"
iso.3.6.1.4.1.25506.2.4.1.2.4.1.7.2 = STRING: "123123123123"
iso.3.6.1.4.1.25506.2.4.1.2.4.1.9.2 = INTEGER: 4
# 可以通过snmpwalk命令查看上述配置操作的执行情况:
C:\usr\bin> snmpwalk -v 1 -c public 192.168.1.40 1.3.6.1.4.1.25506.2.4.1.2.5.1
将返回下面的响应信息:
iso.3.6.1.4.1.25506.2.4.1.2.5.1.2.1 = INTEGER: 2
iso.3.6.1.4.1.25506.2.4.1.2.5.1.3.1 = INTEGER: 3
iso.3.6.1.4.1.25506.2.4.1.2.5.1.4.1 = INTEGER: 2
iso.3.6.1.4.1.25506.2.4.1.2.5.1.5.1 = Timeticks: (243) 0:00:02.43
iso.3.6.1.4.1.25506.2.4.1.2.5.1.6.1 = Timeticks: (181608) 0:30:16.08
以上显示信息表明此次running2Net操作成功。
也可以在FTP server(192.168.1.46)上使用dir命令查看是否有文件aa.cfg,再使用more aa.cfg命令查看文件的内容是否正确,来验证操作是否成功。
(3) 将FTP服务器上的配置文件恢复到设备中并执行该配置文件(net2Running)
C:\usr\bin> snmpset -v 1 -c private 192.168.1.40 1.3.6.1.4.1.25506.2.4.1.2.4.1.2.3 i 4 1.3.6.1.4.1.25506.2.4.1.2.4.1.3.3 i 1 1.3.6.1.4.1.25506.2.4.1.2.4.1.4.3 s test.cfg 1.3.6.1.4.1.25506.2.4.1.2.4.1.5.3 a 192.168.1.46 1.3.6.1.4.1.25506.2.4.1.2.4.1.6.3 s ftp 1.3.6.1.4.1.25506.2.4.1.2.4.1.7.3 s 123123123123 1.3.6.1.4.1.25506.2.4.1.2.4.1.9.3 i 4
将返回下面的响应信息:
iso.3.6.1.4.1.25506.2.4.1.2.4.1.2.3 = INTEGER: 4
iso.3.6.1.4.1.25506.2.4.1.2.4.1.3.3 = INTEGER: 1
iso.3.6.1.4.1.25506.2.4.1.2.4.1.4.3 = STRING: "test.cfg"
iso.3.6.1.4.1.25506.2.4.1.2.4.1.5.3 = IpAddress: 192.168.1.46
iso.3.6.1.4.1.25506.2.4.1.2.4.1.6.3 = STRING: "ftp"
iso.3.6.1.4.1.25506.2.4.1.2.4.1.7.3 = STRING: "123123123123"
iso.3.6.1.4.1.25506.2.4.1.2.4.1.9.3 = INTEGER: 4
# 可以通过snmpwalk命令查看上述配置操作的执行情况:
C:\usr\bin> snmpwalk -v 1 -c public 192.168.1.40 1.3.6.1.4.1.25506.2.4.1.2.5.1
将返回下面的响应信息:
iso.3.6.1.4.1.25506.2.4.1.2.5.1.2.1 = INTEGER: 3
iso.3.6.1.4.1.25506.2.4.1.2.5.1.3.1 = INTEGER: 4
iso.3.6.1.4.1.25506.2.4.1.2.5.1.4.1 = INTEGER: 2
iso.3.6.1.4.1.25506.2.4.1.2.5.1.5.1 = Timeticks: (1083) 0:00:10.83
iso.3.6.1.4.1.25506.2.4.1.2.5.1.6.1 = Timeticks: (470443) 1:18:24.43
以上显示信息表明表示此次net2Running操作成功。
在Agent(192.168.1.40)上使用display current-configuration命令可以看到Agent当前运行的配置不但包括Agent当前启动配置文件中的配置还包括test.cfg文件中的配置。
(4) 将FTP服务器上的配置文件test.cfg恢复到设备的Flash中(net2Startup)
# 将Agent上当前配置文件的内容替换为test.cfg文件的内容,并将当前配置文件指定为下次启动配置文件。
C:\usr\bin> snmpset -v 1 -c private 192.168.1.40 1.3.6.1.4.1.25506.2.4.1.2.4.1.2.4 i 5 1.3.6.1.4.1.25506.2.4.1.2.4.1.3.4 i 1 1.3.6.1.4.1.25506.2.4.1.2.4.1.4.4 s test.cfg 1.3.6.1.4.1.25506.2.4.1.2.4.1.5.4 a 192.168.1.46 1.3.6.1.4.1.25506.2.4.1.2.4.1.6.4 s ftp 1.3.6.1.4.1.25506.2.4.1.2.4.1.7.4 s 123123123123 1.3.6.1.4.1.25506.2.4.1.2.4.1.9.4 i 4
将返回下面的响应信息:
iso.3.6.1.4.1.25506.2.4.1.2.4.1.2.4 = INTEGER: 5
iso.3.6.1.4.1.25506.2.4.1.2.4.1.3.4 = INTEGER: 1
iso.3.6.1.4.1.25506.2.4.1.2.4.1.4.4 = STRING: "test.cfg"
iso.3.6.1.4.1.25506.2.4.1.2.4.1.5.4 = IpAddress: 192.168.1.46
iso.3.6.1.4.1.25506.2.4.1.2.4.1.6.4 = STRING: "ftp"
iso.3.6.1.4.1.25506.2.4.1.2.4.1.7.4 = STRING: "123123123123"
iso.3.6.1.4.1.25506.2.4.1.2.4.1.9.4 = INTEGER: 4
# 可以通过snmpwalk命令查看上述配置操作的执行情况:
C:\usr\bin> snmpwalk -v 1 -c public 192.168.1.40 1.3.6.1.4.1.25506.2.4.1.2.5.1
将返回下面的响应信息:
iso.3.6.1.4.1.25506.2.4.1.2.5.1.2.1 = INTEGER: 4
iso.3.6.1.4.1.25506.2.4.1.2.5.1.3.1 = INTEGER: 5
iso.3.6.1.4.1.25506.2.4.1.2.5.1.4.1 = INTEGER: 2
iso.3.6.1.4.1.25506.2.4.1.2.5.1.5.1 = Timeticks: (264) 0:00:02.64
iso.3.6.1.4.1.25506.2.4.1.2.5.1.6.1 = Timeticks: (418007) 1:09:40.07
以上显示信息表明此次net2Startup操作成功。
在Agent(192.168.1.40)上使用more命令可以看到当前配置文件的内容与test.cfg的内容一致,使用display startup命令可以看到下次启动配置文件与当前配置文件一致。
(5) 将设备Flash中的启动配置文件备份到FTP服务器(startup2Net)
C:\usr\bin> snmpset -v 1 -c private 192.168.1.40 1.3.6.1.4.1.25506.2.4.1.2.4.1.2.5 i 6 1.3.6.1.4.1.25506.2.4.1.2.4.1.3.5 i 1 1.3.6.1.4.1.25506.2.4.1.2.4.1.4.5 s bb.cfg 1.3.6.1.4.1.25506.2.4.1.2.4.1.5.5 a 192.168.1.46 1.3.6.1.4.1.25506.2.4.1.2.4.1.6.5 s ftp 1.3.6.1.4.1.25506.2.4.1.2.4.1.7.5 s 123123123123 1.3.6.1.4.1.25506.2.4.1.2.4.1.9.5 i 4
将返回下面的响应信息:
iso.3.6.1.4.1.25506.2.4.1.2.4.1.2.5 = INTEGER: 6
iso.3.6.1.4.1.25506.2.4.1.2.4.1.3.5 = INTEGER: 1
iso.3.6.1.4.1.25506.2.4.1.2.4.1.4.5 = STRING: "bb.cfg"
iso.3.6.1.4.1.25506.2.4.1.2.4.1.5.5 = IpAddress: 192.168.1.46
iso.3.6.1.4.1.25506.2.4.1.2.4.1.6.5 = STRING: "ftp"
iso.3.6.1.4.1.25506.2.4.1.2.4.1.7.5 = STRING: "123123123123"
iso.3.6.1.4.1.25506.2.4.1.2.4.1.9.5 = INTEGER: 4
# 可以通过snmpwalk命令查看上述配置操作的执行情况:
C:\usr\bin> snmpwalk -v 1 -c public 192.168.1.40 1.3.6.1.4.1.25506.2.4.1.2.5.1
将返回下面的响应信息:
iso.3.6.1.4.1.25506.2.4.1.2.5.1.2.1 = INTEGER: 5
iso.3.6.1.4.1.25506.2.4.1.2.5.1.3.1 = INTEGER: 6
iso.3.6.1.4.1.25506.2.4.1.2.5.1.4.1 = INTEGER: 2
iso.3.6.1.4.1.25506.2.4.1.2.5.1.5.1 = Timeticks: (11) 0:00:00.11
iso.3.6.1.4.1.25506.2.4.1.2.5.1.6.1 = Timeticks: (356309) 0:59:23.09
以上显示信息表明此次startup2Net操作成功。
也可以在FTP server(192.168.1.46)上使用dir命令查看是否有文件bb.cfg,再使用more bb.cfg命令查看文件的内容是否正确,来验证操作是否成功。
l 网管工作站(NMS)与设备(Agent)通过以太网相连。
l FTP/TFTP服务器,提供文件上传和下载服务。
l NMS上运行Net-SNMP软件,要求在NMS上通过SNMP v3、用户名v3user(认证方式为MD5,认证密码为aaaaaaaaaa,加密算法为DES56,加密密码是bbbbbbbbbb)对Agent进行配置文件管理。
图2 通过SNMP进行配置文件管理组网图

l 在Agent上配置接口参数:指定接口的IP地址,保证Agent和NMS路由的可达。
l Agent上需要完成SNMP功能基本配置(包括SNMP的版本、组、用户、认证和加密参数),使得NMS和Agent之间可以互访。
l 查看Agent支持的MIB风格,确定需要使用的MIB对象。
l 将Net-SNMP软件中的snmpset.exe和snmpwalk.exe文件放到NMS的C:\usr\bin路径下,通过MIB对象进行配置文件管理。
l 如果使用FTP协议传输文件,需要在FTP server上运行FTP服务器软件,配置用户名和密码;如果使用TFTP协议传输文件,需要在TFTP server上运行TFTP服务器软件。(使用FTP协议时需要将1.3.6.1.4.1.25506.2.4.1.2.4.1.3.4值设为1,还需要设置用户名和密码;使用TFTP协议时只需要将1.3.6.1.4.1.25506.2.4.1.2.4.1.3.4值设为2,不需要设置用户名和密码。本举例使用FTP传输协议)
# 本举例采用H3C设备作为FTP server,需要在FTP server上使能FTP server功能,配置FTP用户(假设为ftp),密码(假设为123123123123)等参数。
<System> system-view
[System] local-user ftp
[System-luser-ftp] password simple 123123123123
[System-luser-ftp] authorization-attribute level 3
[System-luser-ftp] service-type ftp
# 配置Agent的IP地址为192.168.1.40/24,并确保Agent与NMS之间路由可达。
l 如果Ethernet1/1是三层接口,请进行以下配置:
<Sysname> system-view
[Sysname] interface ethernet 1/1
[Sysname-Ethernet1/1] ip address 192.168.1.40 24
[Sysname-Ethernet1/1] quit
l 如果Ethernet1/1是二层接口,请进行以下配置:
<Sysname> system-view
[Sysname] vlan 2
[Sysname-vlan2] port Ethernet 1/1
[Sysname-vlan2] quit
[Sysname] interface vlan-interface 2
[Sysname-Vlan-interface2] ip address 192.168.1.40 24
[Sysname-Vlan-interface2] quit
# 配置SNMP版本。为了防止Agent和NMS因为版本问题导致不能建立SNMP连接,建议将版本参数配置为all,表示支持v1、v2c、v3三个版本。
<Sysname> system-view
[Sysname]snmp-agent sys-info version all
# 设置SNMP参数:使用的用户名为v3user,认证方式为MD5,认证密码为aaaaaaaaaa,加密算法为DES56,加密密码是bbbbbbbbbb。
l 根据实际需要,用户可以自行选择是否对交互的SNMP报文进行认证,是否对交互的SNMP报文进行加密,本举例采用的是既认证又加密;
l 为了让设置的认证、加密密码在设备重启后能够继续生效,这里先将明文密码加密,然后在创建用户时直接使用加密后的密码进行配置。
[Sysname] snmp-agent calculate-password aaaaaaaaaa mode md5 local-engineid
The secret key is: 17CED5A1298DF35A643D81EC14E0E816
[Sysname] snmp-agent calculate-password bbbbbbbbbb mode md5 local-engineid
The secret key is: 5D3250992503990147EEB03B04CF2190
[Sysname] snmp-agent group v3 test
[Sysname] snmp-agent usm-user v3 v3user test cipher authentication-mode md5 17CED5A1298DF35A643D81EC14E0E816 privacy-mode des56 5D3250992503990147EEB03B04CF2190
请参见4.3.3 配置NMS。只需要将配置步骤中的“snmpset -v 1 -c private”替换为“snmpset -v 3 -a MD5 -A aaaaaaaaaa -u v3user -x DES -X bbbbbbbbbb”、“snmpwalk -v 1 -c private”替换为“snmpwalk -v 3 -a MD5 -A aaaaaaaaaa -u v3user -x DES -X bbbbbbbbbb”即可。
Copyright © 2009 杭州华三通信技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
本文档中的信息可能变动,恕不另行通知。
