H3C 5800系列交换机通过mib方式保存当前配置至下次启动文件的方法
一、 组网:
无
二、 问题描述:
通过SNMP方式实现将设备的当前运行配置文件保存到设备的FLASH中,并将其设置为下次启动配置文件。
三、 过程分析:
交换机上可以通过以下mib节点实现将当前运行配置保存至下次启动配置文件的功能。
Mib-style格式为compatible时使用以下节点:
Mib-style格式为new时使用以下节点:
上述节点在使用前必须先创建实例,然后才能实现相应功能。创建实例时,V5平台的设备对实例索引的取值没有限制,不像V3平台的设备要求将索引的高16位填成设备的实体索引。V3平台的设备可以在h3cFtmManMIB节点中获取到设备的实体索引,V5平台不支持FTM-MIB。
四、 解决方法:
下面介绍在mib-broswer中的具体操作过程。
4.1查看设备的mib-style格式。
[H3C]dis mib-style
Current MIB style: new
Next reboot MIB style: new
[H3C]
4.2查看设备flash中配置文件的信息,当前flash中不存在相应的配置文件信息。
dir Directory of flash:/
0 -rw- 7655 Apr 26 2000 12:45:23 config.cwmp
1 -rw- 287 Apr 26 2000 12:45:23 system.xml
2 -rw- 6757549 Apr 26 2000 12:23:42 logfile.log
3 -rw- 9112 Apr 26 2000 20:37:55 patchs5800.bin
4 -rw- 6 Apr 26 2000 20:41:04 patchstate
515712 KB total (412546 KB free)
4.3查看设备的下次启动文件,下次启动文件为NULL。
dis startup MainBoard:
Current startup saved-configuration file: NULL
Next main startup saved-configuration file: NULL
Next backup startup saved-configuration file: NULL
4.4设置相应节点的值,右键hh3cCfgOperateEntry节点,选择Multiple Varable Bindings—>Prompt For Instance。
4.5创建索引为1的实例。
4.6删除无关节点,只保留hh3cCfgOperateType和hh3cCfgOperateRowStatus节点。
此处不需要保留hh3cCfgOperateFileName节点。V5平台与V3平台不同。因为running2Startup操作时,在V5平台的设备上hh3cCfgOperateFileName节点不起作用。并且目前不能通过MIB设置配置文件名字,只是当flash中下次启动文件不存在时,生成默认的(config.cfg)文件,如果下次启动文件存在,则将当前配置保存在对应的下次启动文件中。
4.7如果误删除了操作中必须的节点,也不必将整个过程重新开始。按以下步骤恢复误删除的节点,下文以恢复hh3cCfgOperateType节点为例。首先,右键空白处,选择New,弹出Select对话框(见第8步)。
4.8选择Select对话框中红框中的按钮,从mib树中选取相应节点,然后在自动生成的oid值后面添加索引值或者直接点击右面的三角符号从下拉菜单里选取曾经使用过的oid值,或直接输入相应的oid值。
4.9点击第8步提到的按钮,在弹出的mib目录树中找到hh3cCfgOperateType节点并双击。注意这里不要点击下面的ok按钮,而是要双击hh3cCfgOperateType节点。如果非要点击ok按钮的话,那么需要把图中Run index discovery for tables的复选框中的勾去掉。(默认选中)。这里如果将该复选框去选择,将不会出现第10部,会直接进入第11步。
4.10双击h3cCfgOperateType节点会弹出Select Table Instance对话框,可以选择已存在的index(双击),如果不选择index或不存在index可供选择,需要在自动生成的oid值后面直接手动添加index值,这时只需直接点击关闭按钮即可。
4.11在自动生成的oid值后面手动添加实例索引号(此处以1为例)并设置该实例的Value值。这里可以直接在对话框中输入,也可以点击对话框右边的手型按钮从下拉菜单中选择。
4.12添加节点后如发现某个节点取值不正确,可以在对应的节点上直接右键—> Edit ,对相应的节点进行编辑。设置时直接将节点的value设置为整形数值即可,也可以从下拉菜单中选择。
4.13到此步为止节点hh3cCfgOperateType和hh3cCfgOperateRowStatus都已经设置完毕,其取值分别为running2Startup(1)和creatAndGo(4)。
4.14点击Get按钮右面的黑色小三角,将Get按钮替换为Set按钮。
4.15点击Set按钮,同时在对话框的状态栏中会提示Last successful poll at 2011-10-15 12:30:10,这表明对该节点设置执行成功。
4.16查看设备当前flash中的文件,发现flash中生成了config.cfg文件。
dir Directory of flash:/
0 -rw- 4257 Apr 26 2000 14:08:24 config.cfg
1 -rw- 287 Apr 26 2000 14:08:22 system.xml
2 -rw- 7655 Apr 26 2000 14:08:22 config.cwmp
3 -rw- 6757549 Apr 26 2000 12:23:42 logfile.log
4 -rw- 9112 Apr 26 2000 20:37:55 patchs5800.bin
5 -rw- 6 Apr 26 2000 20:41:04 patchstate
515712 KB total (412538 KB free)
4.17查看设备的下次启动文件,下次启动文件并没有改变。
display startup MainBoard:
Current startup saved-configuration file: NULL
Next main startup saved-configuration file: NULL
Next backup startup saved-configuration file: NULL
这里是正常现象,在V5平台上把某个配置文件设置为下次启动文件的具体步骤请参考下文。
running2Startup的动作是将设备运行配置保存到下次启动配置文件中,如果flash中下次启动配置文件不存在则从驱动获取缺省配置文件名,然后生成这个缺省配置文件(config.cfg)。该操作不会自动设置保存的文件为下次启动配置文件,如果需要设置该文件为下次启动文件则需要对其他mib节点进行操作。不同型号的设备默认的下次启动文件名字可能会不同。
4.18读取 hh3cCfgOperateEntry节点的值,该节点下存在以创建的实例1。
***** SNMP QUERY STARTED *****
1: hh3cCfgOperateType.1 (integer) running2Startup(1)
2: hh3cCfgOperateProtocol.1 (integer) ftp(1)
3: hh3cCfgOperateEndNotificationSwitch.1 (integer) false(2)
4: hh3cCfgOperateRowStatus.1 (integer) active(1)
***** SNMP QUERY FINISHED *****
4.19这时再通过上述方式(实例索引仍为1)保存配置,就会发生错误。
hh3cCfgOperateRowStatus节点设置的值为createAndGo(4)。这个值的意思是要创建实例,但是经过上述的过程已经创建了索引为1的实例,所以再次创建时会报错。这里如果想再次通过该方式进行配置文件的保存,必须先删除hh3cCfgOperateEntry节点下的该实例,才可以再次创建1这个实例。或者换个实例索引进行操作。将对应实例的hh3cCfgOperateRowStatus节点的值设置为destroy(6)可以实现对应实例的删除。
4.20基于以上操作后,如想再次执行保存配置的动作,请参考以下步骤。
在这里介绍两种方式:
4.20.1第一种方式较简单,首先将hh3cCfgOperateRowStatus节点的值设置为notInService(2) ,然后再次将该节点的值设置为active(1),这样设备就会再次执行保存当前配置的操作。
具体操作过程这里不再详细的说明,可以参考H3C 3100设备的操作方式。操作前后两次查看flash中文件的情况如下,从时间上可以看出保存动作执行成功。
dir Directory of flash:/
0 -rw- 4257 Apr 26 2000 15:40:02 config.cfg
1 -rw- 287 Apr 26 2000 15:39:59 system.xml
515712 KB total (412538 KB free)
dir Directory of flash:/
0 -rw- 4257 Apr 26 2000 15:41:57 config.cfg
1 -rw- 287 Apr 26 2000 15:41:54 system.xml
515712 KB total (412538 KB free)
4.20.2第二种方式较复杂,可以通过将hh3cCfgOperateRowStatus节点的值设置为destroy(6)来删除刚刚创建的实例,然后按开始的步骤重新操作:
1)Walk hh3cCfgOperateEntry节点,可知现存在实例1。
***** SNMP QUERY STARTED *****
1: hh3cCfgOperateType.1 (integer) running2Startup(1)
2: hh3cCfgOperateProtocol.1 (integer) ftp(1)
3: hh3cCfgOperateEndNotificationSwitch.1 (integer) false(2)
4: hh3cCfgOperateRowStatus.1 (integer) active(1)
***** SNMP QUERY FINISHED *****
2)以删除实例1为例,说明具体删除过程。在hh3cCfgOperateRowStatus节点上右击,从下拉菜单中选择Set选项。随后会弹出对话框要求选取对应的实例,选取(双击)实例1。
3)选取了实例索引后会生成以下对话框,右击Value to Set文本框右面的手型按钮可弹出一个对话框,从下拉菜单中可以设置该节点的取值为destroy(6),之后单击set按钮执行对该节点的设置。
执行该节点的设置时在mib broswer中会有如下的提示信息,此信息表明删除该节点的对应实例成功:
***** SNMP SET-RESPONSE START *****
1: hh3cCfgOperateRowStatus.1 (integer) destroy(6)
***** SNMP SET-RESPONSE END *****
4)然后walk hh3cCfgOperateEntry节点,发现实例1被删除了,这时再通过实例1来保存配置就不会报错了。
***** SNMP QUERY STARTED *****
***** SNMP QUERY FINISHED *****
4.21将上述生成的文件设置为下次启动文件。
4.21.1从hh3cSysCFGFileEntry 节点获取设备flash中配置文件及对应的索引。如config.cfg文件的索引为7340033。
***** SNMP QUERY STARTED *****
1: hh3cSysCFGFileName.7340033 (octet string) config.cfg [63.6F.6E.66.69.67.2E.63.66.67 (hex)]
2: hh3cSysCFGFileSize.7340033 (integer) 4257
3: hh3cSysCFGFileLocation.7340033 (octet string) flash:/ [66.6C.61.73.68.3A.2F (hex)]
***** SNMP QUERY FINISHED *****
4.21.2设置hh3cSysReloadRowStatus节点的值为notInService(2)。
4.21.3通过设置hh3cSysReloadCfgFile 节点将config.cfg文件设置为下次启动文件。其中该节点的值为上面读取的config.cfg文件对应的索引值(7340033)。
4.21.4再次设置hh3cSysReloadRowStatus节点的值为active(1)以激活上述的配置。
4.21.5查看下次启动文件
dis startup MainBoard:
Current startup saved-configuration file: NULL
Next main startup saved-configuration file: flash:/config.cfg
Next backup startup saved-configuration file: NULL
4.22设置下次启动文件也可采用以下这种方式。
先把hh3cSysReloadRowStatus节点设置为destroy(6)以删除该节点,然后再重新创建,过程类似于上述保存配置文件的步骤,这里不再详细说明。有以下注意的地方。
4.22.1首先walk hh3cSysReloadScheduleEntry节点:
***** SNMP QUERY STARTED *****
1: hh3cSysReloadEntity.7340032 (integer) 112
2: hh3cSysReloadCfgFile.7340032 (integer) 7340033
3: hh3cSysReloadImage.7340032 (integer) 7340034
4:hh3cSysReloadReason.7340032 (octet string) Upgrade
[55.70.67.72.61.64.65 (hex)]
5: hh3cSysReloadScheduleTime.7340032 (octet string)
2000-4-26,12:1:37.48 [07.D0.04.1A.0C.01.25.30 (hex)]
6: hh3cSysReloadRowStatus.7340032 (integer) active(1)
7: hh3cSysReloadScheduleTagList.7340032 (octet string)
Network-SuperVisor [4E.65.74.77.6F.72.6B.2D.53.75.70.65.72.56.69.73.6F.72 (hex)]
***** SNMP QUERY FINISHED *****
下次创建的实例其索引要求为上述walk的结果(7340032),并且hh3cSysReloadEntity节点的值必须为上次walk出的结果,此处为112。这两个值不同的交换机会不同。
文中涉及的节点的oid值
hh3cSysReloadScheduleEntry 1.3.6.1.4.1.25506.2.3.1.3.3.1
hh3cSysReloadEntity 1.3.6.1.4.1.25506.2.3.1.3.3.1.2
hh3cSysReloadCfgFile 1.3.6.1.4.1.25506.2.3.1.3.3.1.3
hh3cSysReloadRowStatus 1.3.6.1.4.1.25506.2.3.1.3.3.1.7
hh3cCfgOperateEntry 1.3.6.1.4.1.25506.2.4.1.2.4.1
hh3cCfgOperateType 1.3.6.1.4.1.25506.2.4.1.2.4.1.2
hh3cCfgOperateRowStatus 1.3.6.1.4.1.25506.2.4.1.2.4.1.9
hh3cSysCFGFileEntry 1.3.6.1.4.1.25506.2.3.1.5.2.1
hh3cSysReloadScheduleEntry 1.3.6.1.4.1.25506.2.3.1.3.3.1
hh3cSysReloadEntity 1.3.6.1.4.1.25506.2.3.1.3.3.1.2
hh3cSysReloadCfgFile 1.3.6.1.4.1.25506.2.3.1.3.3.1.3
hh3cSysReloadRowStatus 1.3.6.1.4.1.25506.2.3.1.3.3.1.7
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作