06-配置文件管理
本章节下载: 06-配置文件管理 (400.29 KB)
目 录
配置文件是用来保存配置的文件。设备重启后,这些配置继续生效。当网络中多台设备需要批量配置时,可以将相同的配置保存到配置文件,再上传/下载到所有设备,在所有设备上执行该配置文件来实现设备的批量配置。
软件版本中所有的软件功能都被赋予一个缺省值,这些缺省值的集合被称为“空配置”。缺省值无法通过命令行直接查看,可通过查看产品当前软件版本的命令手册,了解各软件功能的缺省值。
设备在出厂时,通常会带有一些基本的配置,称为出厂配置。它用来保证设备在没有配置文件或者配置文件损坏的情况下,能够正常启动、运行。
可以使用display default-configuration命令查看设备的出厂配置。
出厂配置可能与命令行的缺省情况不一致,不同型号的设备会根据需要定制各自的出厂配置。
设备启动时运行的配置即为启动配置。如果没有指定启动配置文件或者启动配置文件损坏,则系统会使用出厂配置作为启动配置。
可以通过以下方式查看启动配置:
· 设备启动后且还没有进行配置前,使用display current-configuration命令查看当前启动配置。
· 使用display startup命令查看本次启动使用的配置文件和下次启动使用的主用、备用配置文件,再使用more命令查看相应配置文件的内容。(more命令的详细介绍请参见“基础配置命令参考”中的“文件系统管理”)
· 使用display saved-configuration命令查看下次启动配置文件的内容。
系统当前正在运行的配置称为当前配置。它包括启动配置和设备运行过程中用户进行的配置。当前配置存放在设备的临时缓存中,如果不保存,设备运行过程中用户进行的配置在设备重启后会丢失。
可以使用display current-configuration命令查看设备的当前配置。
执行save命令保存配置时,系统将自动生成一个文本类型的配置文件和一个二进制类型的配置文件,两个文件的内容完全相同。
· 文本类型配置文件:后缀名为“.cfg”,可以通过more命令查看,或使用文本编辑器修改该文件的内容。文本类型配置文件可以单独保存到存储介质中,无需对应的二进制类型的配置文件。
· 二进制类型配置文件:后缀为“.mdb”,仅能够使用软件解析该类配置文件,用户不能读取和编辑文件内容。二进制类型的配置文件不能单独保存到存储介质中,必须有对应的文本类型的配置文件。该类型配置文件的加载速度快,设备启动时优先使用该类型配置文件。
设备启动时,文本类型配置文件和二进制类型配置文件的选择规则如图1-1所示。
如无特殊说明,下文描述的配置文件均指文本类型的配置文件。
设备上可以同时存在多个配置文件。设备本次启动使用的配置文件称为当前启动配置文件;设备下次启动使用的配置文件称为下次启动配置文件。
设备支持配置两个下次启动配置文件,一个为主用配置文件,一个为备用配置文件。
设备启动时,配置文件的选择规则如下:
(2) 如果主用下次启动配置文件不存在或损坏,使用备用下次启动配置文件。
(3) 如果主用和备用下次启动配置文件都不存在或损坏,则使用出厂配置启动。
配置文件对内容和格式有严格定义,如果配置文件内容或格式不符合要求,则设备在进行配置恢复或配置回滚时,不能完全恢复至配置文件中的配置状态。为保证配置文件的正确运行,建议使用设备自动生成的配置文件。如果需要手工修改配置文件,请在设备上修改配置并保存后获取配置文件,不要将配置文件下载到本地修改,以免不符合配置文件的规范而导致配置文件无效。
另外,若各配置命令存在依赖关系,配置恢复或配置回滚时命令可能执行失败。
配置文件的内容和格式规则如下:
· 配置文件的内容为命令的完整形式。
· 配置文件中的命令行参数里不能包含无效字符,命令行参数或关键字之间的空格是英文字符的空格。
对于某些命令,“?”和“\t”(Tab键)被定义为命令行参数的无效字符,所以,这两个字符不能在命令行参数中体现。例如,对于sysname命令,参数中不能包含无效字符“?”和“\t”,而如果配置文件中包含命令“sysname abc??”,则在进行配置恢复或配置回滚时,此命令不能被执行。
· 配置文件以命令视图为基本框架,同一命令视图的命令组织在一起,形成一节,节与节之间用#隔开。
· 配置文件的首行必须以#开始。
· 以return结束。
下面摘录了配置文件的部分内容。
#
local-user root class manage
password hash $h$6$Twd73mLrN8O2vvD5$Cz1vgdpR4KoTiRQNE9pg33gU14Br2p1VguczLSVyJLO2huV5Syx/LfDIf8ROLtVErJ/C31oq2rFtmNuyZf4STw==
service-type ssh telnet terminal
authorization-attribute user-role network-admin
authorization-attribute user-role network-operator
#
interface Vlan-interface1
ip address 192.168.1.84 255.255.255.0
#
配置回滚是在不重启设备的情况下,将当前的配置回退到指定配置文件中的配置状态。
配置回滚主要应用于:
· 当前配置错误,且错误配置太多不方便定位或逐条回退,需要将当前配置回滚到某个正确的配置状态。
· 设备的应用环境变化,需要使用某个配置文件中的配置信息运行,在不重启设备的情况下将当前配置回滚到指定配置文件中的配置状态。
设备运行于FIPS模式时,本特性部分配置相对于非FIPS模式有所变化,具体差异请见本文相关描述。有关FIPS模式的详细介绍请参见“安全配置指导”中的“FIPS”。
配置文件加密功能就是设备在执行save命令将当前配置保存到配置文件的同时,将配置文件使用主密钥进行加密。关于主密钥的详细介绍请参见“安全配置指导”中的“公钥管理”。
本功能加密后的配置文件,只能被运行相同主密钥的设备识别和解析。
开启配置文件加密功能后,执行save命令生成的配置文件是加密后的配置文件,将不能使用more命令查看加密配置文件(后缀名为“.cfg”的配置文件)的内容,但是加密配置文件可以参与配置差异的比较(如可以使用display current-configuration diff命令比较下次启动配置文件与运行配置之间的差异、可以将加密后的配置文件作为display diff命令的参数)。
(1) 进入系统视图。
system-view
(2) 开启配置文件加密功能。
configuration encrypt
缺省情况下,配置文件加密功能处于关闭状态。
设备支持多个管理员共同管理一台设备。如果多个管理员均登录设备,且同时配置设备,很可能会出现配置冲突,导致业务异常。
此时,经过用户名和密码认证登录的管理员,可以使用自己登录设备的用户名来锁定设备配置权限,仅允许自己修改设备配置,其他登录用户不能修改配置只能查询配置。
设备配置权限被锁定后,如果其他管理员想要修改配置,请先执行display configuration exclusive by-user-name命令查看锁定设备配置权限的用户名,再解除配置锁定,便可修改配置。
仅经过用户名和密码认证的用户可以配置本功能。
(1) 进入系统视图。
system-view
(2) 锁定设备配置权限。
configuration exclusive by-user-name user-name
缺省情况下,设备配置权限未被锁定。
缺省情况下,当用户执行“save [ safely ] [ backup | main ] [ force ] [ changed ]”或“reset saved-configuration”命令时,各成员设备会同时把当前运行配置保存到指定的配置文件中,并将该配置文件设置为设备的下次启动配置文件,以保证各成员设备配置文件内容的一致;或各成员设备会同时把下次启动配置文件删除。这涉及到跨设备文件操作,当设备上存在大量配置时,会耗时较长。
如果关闭配置文件同步功能,当用户执行“save [ safely ] [ backup | main ] [ force ] [ changed ]”或“reset saved-configuration”命令时,只有主设备把当前运行配置保存到指定的配置文件中,并将该配置文件设置为主设备的下次启动配置文件;从设备不会保存当前运行配置,也不会重新设置下次启动配置文件;或者只有主设备把下次启动配置文件删除。这会导致主设备和从设备上的下次启动配置文件不一致,请用户根据实际需求配置本功能。
(1) 进入系统视图。
system-view
(2) 关闭配置文件同步功能。
undo standby auto-update config
缺省情况下,配置文件同步保存功能处于开启状态。
保存配置前,配置仅保存在内存中,设备重启后,设备将恢复为出厂配置。如果要使当前配置在设备重启后仍然生效,则需要将当前配置保存到下次启动配置文件中。
在保存当前运行配置时,请不要重启设备或者给设备断电,以免造成下次启动配置文件丢失。
如果成员设备退出IRF,该成员设备的配置不会丢失,仍然保存在内存中,但是会从当前运行配置中删除。成员设备再次加入IRF时,对应配置自动从内存中恢复到当前运行配置中。
如果成员设备退出后,将当前运行配置保存到了下次启动配置文件中,该成员设备的配置不会写入到配置文件中。如需将退出的成员设备的配置保存到下次启动配置文件中,请执行如下操作:
(1) 将成员设备重新加入IRF并重启该成员设备。
(2) 待成员设备正常工作后,执行display current-configuration命令,确认成员设备的配置已恢复到当前运行配置中。
(3) 保存当前运行配置到下次启动配置文件中。
如果在成员设备退出IRF后,执行了重启操作,该成员设备的配置将无法恢复。
缺省情况下,执行save [ safely ] [ backup | main ] [ force ] [ changed ]命令,会将配置文件同时保存到所有成员设备,如果只需将配置文件保存到主设备,请关闭配置文件同步功能。有关配置文件同步功能的详细介绍请参见1.5 关闭配置文件同步功能。
可在任意视图下执行本命令,保存当前配置。
· 将当前配置保存到指定文件,但不会将该文件设置为下次启动配置文件。
save file-url [ all | slot slot-number ]
· 将当前配置保存到所有成员设备存储介质的根目录下,并将该文件设置为下次启动配置文件。
save [ safely ] [ backup | main ] [ force ] [ changed ]
为了安全起见,建议选用safely参数。执行该命令时,请不要重启设备或者给设备断电,以免造成下次启动配置文件丢失。
执行save命令时,可能会导致当前已经存在的配置文件被覆盖,请根据设备提示谨慎操作。
用户通过命令可以查看两份配置文件、指定配置文件与当前运行配置、指定配置文件与下次启动文件、当前运行配置与下次启动文件之间的差异。用户可根据差异来决定是否保存当前配置或者进行配置替换。
将下次启动配置文件和其他配置文件进行比较时:
· 优先使用主用下次启动配置文件。
· 如果主用下次启动配置文件不可用,则使用备用下次启动配置文件。
· 如果主用下次启动配置文件和备用下次启动配置文件都不可用,系统会给出相应的错误提示信息。
可在任意视图下执行本命令,显示配置差异。请选择其中一项进行配置。
· 显示指定配置文件和指定配置文件、当前运行配置、下次启动配置文件之间的差异。
display diff configfile file-name-s { configfile file-name-d | current-configuration | startup-configuration }
· 显示当前运行配置和指定配置文件、下次启动配置文件之间的差异。
display diff current-configuration { configfile file-name-d | startup-configuration }
· 显示下次启动配置文件和指定配置文件之间的差异。
display diff startup-configuration configfile file-name-d
· 显示下次启动配置文件与当前运行配置之间的差异。请选择其中一项进行配置。
¡ 方式一
display diff startup-configuration current-configuration
¡ 方式二
display current-configuration diff
备份当前配置任务如下:
(1) 配置备份参数
(2) 备份当前配置
请至少选择其中一项进行配置。
¡ 自动备份当前配置
¡ 手动备份当前配置
备份当前配置前必须设置备份文件的保存路径和文件名前缀。可以设置将备份文件保存在本地,或者保存在远程SCP服务器上。
如果设置备份文件保存在本地,设备备份当前运行配置时,将当前的配置以前缀_序号.cfg格式(例如archive_1.cfg)保存到该命令指定路径下的配置文件中。序号自动从1开始编号,依次加1,累加至1000后重新从1开始编号。
如果设置备份文件保存在本地,修改备份文件的保存路径或文件名前缀后,备份序号从1开始重新自动编号,原来的备份文件不再作为备份文件而作为普通配置文件存在,此后执行display archive configuration命令不会显示原来的备份配置文件信息。
如果设置备份文件保存在远程SCP服务器,设备备份当前运行配置时,将在远程服务器指定的路径下生成以“前缀_YYYYMMDD_HHMMSS.cfg”命名的配置文件(其中YYYYMMDD和HHMMSS为设备当前系统时间,例如archive_20170526_203430.cfg)。
FIPS模式下,不支持将配置文件备份到远程SCP服务器的功能。
archive configuration server命令和archive configuration location命令具有互斥性,不能同时配置。设置备份文件保存在远程SCP服务器后,如要使用archive configuration location命令指定配置文件备份到本地时使用的参数,需先使用undo archive configuration server恢复缺省情况。同理,设置备份文件保存在本地后,要指定配置文件备份到远程SCP服务器时使用的参数,需先使用undo archive configuration location命令恢复缺省情况。
如果设置备份文件保存在本地,备份文件数量达到上限后,再次保存备份文件时,系统将删除保存时间最早的备份文件,以保存新的备份文件。
如果设置备份文件保存到远程SCP服务器,且需要备份的文件和远程SCP服务器上的已有文件重名,SCP服务器上的已有文件将被覆盖,因此建议用户及时将SCP服务器上的配置文件备份到其他路径。
如果备份文件保存到远程SCP服务器,必须保证本地配置文件参数与服务器侧参数保持一致,否则备份操作将会失败。
配置文件在远程SCP服务器上的备份数量不受archive configuration max配置的限制。
执行undo archive configuration location命令后,用户将不能手工备份当前配置到本地,系统也不再自动备份当前配置到本地。同时,archive configuration max和archive configuration interval命令会恢复为缺省情况、display archive configuration的显示信息会被清除。
执行undo archive configuration server命令后,用户将不能手工备份当前配置到远程SCP服务器,系统也不再自动备份当前配置到远程SCP服务器。同时,archive configuration interval命令会恢复为缺省情况、display archive configuration的显示信息会被清除。
(1) 进入系统视图。
system-view
(2) 配置备份配置文件的本地保存路径和文件名前缀。
archive configuration location directory filename-prefix filename-prefix
缺省情况下,未配置备份配置文件的本地保存路径和文件名前缀。
directory必须是主设备上已存在的路径,且参数中不能包含成员编号。
(3) (可选)配置备份配置文件的最大数。
archive configuration max file-number
缺省情况下,备份配置文件的最大数为5。
请根据系统剩余存储空间配置备份配置文件的最大数。
(1) 进入系统视图。
system-view
(2) 配置备份配置文件在远程SCP服务器的保存路径、文件名前缀。
archive configuration server scp { ipv4-address | ipv6 ipv6-address } [ port port-number ] [ vpn-instance vpn-instance-name ] [ directory directory ] filename-prefix filename-prefix
缺省情况下,未配置备份配置文件在远程SCP服务器的保存路径和文件名前缀。
(3) 配置登录远程SCP服务器的用户名。
archive configuration server user user-name
缺省情况下,未配置登录远程SCP服务器的用户名。
(4) 配置登录远程SCP服务器的密码。
archive configuration server password { cipher | simple } string
缺省情况下,未配置登录远程SCP服务器的密码。
设备支持自动备份和手动备份两种备份配置的方式。
· 自动备份当前配置:系统按照已配置的时间间隔自动备份当前配置。
· 手动备份当前配置:用户随时可以执行手动备份命令行备份当前配置。例如,需要对设备进行复杂配置过程中,不定期手动备份当前配置,以便配置错误时,使用配置回滚功能将当前配置回滚至正确情况。
如果设置备份文件保存在本地,备份当前配置功能只将当前配置备份到主设备的备份路径下,不会保存到从设备,建议在所有成员设备的文件路径下都创建备份路径并进行配置备份,防止主备倒换后该功能失效。
备份当前配置过程中,建议不要修改配置文件的备份参数,若修改了备份参数,则该参数不会立即生效,设备仍然会按照原参数设置将当前配置保存在旧的备份路径下,且执行display archive configuration命令不会显示该备份配置文件。
(1) 进入系统视图。
system-view
(2) 开启自动备份当前配置功能,并设置自动备份的时间间隔。
archive configuration interval interval
缺省情况下,自动备份当前配置功能处于关闭状态。
请在用户视图下执行本命令,手动备份当前配置。
archive configuration
配置回滚时,系统将对比当前配置和回滚配置文件中配置的差异,并做如下处理:
· 不处理当前配置与回滚配置文件中相同的命令。
· 对于存在于当前配置但不存在于回滚配置文件的命令,回滚操作将取消当前配置中的命令,即执行相应的反向操作。
· 对于存在于回滚配置文件但不存在于当前配置的命令,回滚操作将执行这些命令。
· 对于当前配置和回滚配置文件中不同的命令,配置回滚将先取消这些配置,再执行回滚配置文件中的相应命令。
执行配置回滚操作时(执行configuration replace file命令)不能进行主从设备倒换操作,否则可能造成配置回滚终止。
配置能否回滚成功由命令的具体处理决定,存在以下情况时,某条命令会回滚失败,系统会跳过回滚失败的命令,直接处理下一条命令:
· 命令不支持完整undo命令,即直接在配置命令前添加undo关键字构成的命令不存在,设备不识别。比如命令A [ B ] C,对应的undo命令为undo A C,但是配置A B C回滚的时候,系统会去自动执行undo A B C,此时系统会认为不支持undo A B C而造成配置A B C回滚失败。
· 配置不能取消(如硬件相关的命令)。
· 若不同视图下的各配置命令存在依赖关系,命令可能执行失败。
· 使用的配置文件不是由save命令、自动备份或手工备份生成的完整文件,或是不同类型设备的配置文件,配置回滚可能不能完全恢复至配置文件中的配置状态。因此,需要用户确保回滚配置文件中配置的正确性和与当前设备的兼容性。
(1) 进入系统视图。
system-view
(2) 执行配置回滚。
configuration replace file filename
配置回滚是在不重启设备的情况下,将当前的配置回退到指定配置文件中的配置状态,回滚前的配置将会丢失。配置回滚过程中,可能会导致业务中断,请谨慎使用。
filename可以是明文配置文件或者被加密的配置文件,但必须是本地保存的配置文件。
使用配置延迟提交功能,需要使用configuration commit delay命令指定配置提交超时时间,之后所进行的配置,可以使用configuration commit命令延迟提交。
执行configuration commit delay命令后,系统会创建一个定时器和一个配置回滚点(配置回滚点记录了系统当前的配置),之后所做的配置会下发生效,但是如果在定时器超时前,没有执行configuration commit命令,系统会自动将配置回滚到配置回滚点的状态。
在用户对设备进行远程配置时,可以使用本功能,以防止错误配置导致网络中断,用户不能再连接到设备。
使用配置延迟提交功能时,请注意:
· 请在单一用户的环境下使用配置延迟提交功能。
· 在设备执行配置回滚时,请停止其他配置,等待配置回滚完成后再继续操作。
· 在定时器超时前,如果再次执行configuration commit delay命令,系统会更新定时器为新指定的配置提交超时时间间隔,但不再创建配置回滚点。
· configuration commit delay命令是一次生效命令。使用此命令指定了配置提交超时时间后,若执行了configuration commit命令或者延迟时间超时,需要再次使用配置延迟提交功能,请重新指定配置提交超时时间。
(1) 进入系统视图。
system-view
(2) 设置配置提交超时时间。
configuration commit delay delay-time
(3) (可选)提交当前配置。
configuration commit
提交执行configuration commit delay命令后的配置。
执行undo startup saved-configuration命令并重启IRF或IRF中的成员设备时,会导致IRF分裂,请谨慎使用。
主用下次启动配置文件和备用下次启动配置文件可以设置为同一文件,但为了更可靠,建议设置为不同的文件,或者将一份配置保存在两个不同名的文件中,一个设置为主用,一个设置为备用。
在执行undo startup saved-configuration命令之后,系统会将主用/备用下次启动配置文件均设置为NULL,但不会删除该文件。
执行save命令将当前配置保存到指定配置文件时,系统会自动把该文件设置为设备的主用下次启动配置文件。详细配置请参见“1.6 保存当前配置”。
所有成员设备的下次启动配置文件必须是相同的文件,因此,使用本命令前,请确保指定的配置文件已经保存在所有成员设备相同类型存储介质的根目录下,否则,操作失败。
(1) 配置下次启动时的配置文件。请选择其中一项进行配置。
¡ 请在用户视图下执行本命令,配置下次启动时的配置文件。
startup saved-configuration cfgfile [ backup | main ]
缺省情况下,没有配置下次启动配置文件。
¡ 可在任意视图下执行本命令,在保存当前配置到配置文件的同时设置该配置文件为下次启动配置文件。
save [ safely ] [ backup | main ] [ force ]
不指定main和backup参数时,缺省使用main。
(2) (可选)可在任意视图下执行以下命令,验证配置。
¡ 显示用于本次及下次启动的配置文件的名称。
display startup
¡ 查看下次启动配置文件的内容。
display saved-configuration
备份是指将设备的主用下次启动配置文件备份到指定的TFTP服务器。
恢复是指将TFTP服务器上保存的配置文件下载到设备并设置为主用下次启动配置文件。
设备运行于FIPS模式时,不支持备份或者恢复主用下次启动配置文件。
在执行配置文件的备份操作前,请进行以下操作:
· 保证设备与服务器之间的路由可达,服务器端开启了TFTP服务,执行备份操作的客户端设备已获得了相应的读写权限。
· 在任意视图下使用display startup命令查看设备是否设置了下次启动配置文件。如果没有指定下次启动配置文件,或者配置文件不存在,备份操作将失败。
请在用户视图下执行本命令,将设备的主用下次启动配置文件备份到指定的TFTP服务器。
backup startup-configuration to { ipv4-server | ipv6 ipv6-server } [ dest-filename ] [ vpn-instance vpn-instance-name ]
(1) 请在用户视图下执行本命令,将TFTP服务器上保存的配置文件下载到设备并设置为主用下次启动配置文件。
restore startup-configuration from { ipv4-server | ipv6 ipv6-server } src-filename [ vpn-instance vpn-instance-name ]
(2) (可选)可在任意视图下执行以下命令,验证配置。
¡ 显示用于本次及下次启动的配置文件的名称。
display startup
¡ 查看下次启动配置文件的内容。
display saved-configuration
当用户不再使用当前系统指定的下次启动配置文件启动设备时,使用该功能可将下次启动配置文件从设备上删除。
主备用下次启动配置文件都删除后,设备重启将采用出厂配置启动。
用户可以只删除主用下次启动配置文件,或者只删除备用下次启动配置文件。
如果设备的主用下次启动配置文件和备用下次启动配置文件相同,仅执行一次删除操作(例如指定了backup参数),系统只将相应的下次启动配置文件设置为NULL,不删除该文件,需要再次执行删除操作(指定main参数),才能将该配置文件彻底删除。
请在用户视图下执行本命令,删除下次启动配置文件。
reset saved-configuration [ backup | main ]
缺省情况下,执行该命令会将下次启动配置文件从所有的成员设备上彻底删除,请谨慎使用。如果只需从主设备上删除下次启动配置文件,请关闭配置文件同步功能。有关配置文件同步功能的详细介绍请参见1.5 关闭配置文件同步功能。
不指定main和backup参数时,删除主用下次启动配置文件。
在完成上述配置后,在任意视图下执行display命令可以显示配置文件的使用情况。用户可以通过查看显示信息验证配置的效果。
操作 |
命令 |
显示备份配置文件的相关信息 |
display archive configuration |
显示设备当前生效的配置 |
display current-configuration [ [ configuration [ module-name ] | exclude-provision | interface [ interface-type [ interface-number ] ] ] [ all ] | slot slot-number ] [ by-section { begin | exclude | include } regular-expression ] |
显示下次启动配置文件与运行配置之间的差异 |
display current-configuration diff |
显示出厂配置 |
display default-configuration |
查看两份配置之间的差异 |
display diff configfile file-name-s { configfile file-name-d | current-configuration | startup-configuration } display diff current-configuration { configfile file-name-d | startup-configuration } display diff startup-configuration { configfile file-name-d | current-configuration } |
显示下次启动配置文件的内容 |
display saved-configuration [ by-section { begin | exclude | include } regular-expression ] |
显示用于本次及下次启动的配置文件的名称 |
display startup |
锁定设备配置权限 |
display configuration exclusive by-username |
显示当前视图下生效的配置 |
display this [ all ] [ by-section { begin | exclude | include } regular-expression ] |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!