配置文件是思科网络设备的核心。这个配置文件就好像是操作系统的注册表文件,如果注册表损坏的坏或者配置不准确的话,那么操作系统就将无法启动或者运行不稳定。
交换机也是如果。配置文件如果出现错误,那么交换机等网络设备就将无法正常工作。笔者在这篇文章中就给大家谈谈,如果管理好交换机配置文件,最大程度的消除一些配置文件相关的安全隐患,来提高配置文件的安全性。
一、配置文件存放的位置
如上图所示,一般情况下思科交换机配置文件会存储在三个地方,分别为RAM(交换 机内存,断电后这里面的内容会丢失)、NVRAM(交换机内部的又一种内存,非易失性随机访问存储器)、TFTP服务器。这三个位置都可以用来存放交换机 的配置文件,不过他们的作用是不同的。在谈他们的具体差异之前,笔者认为网络管理员,特别是刚基础思科网络设备的技术人员,有必要了解两个基本的概念,即 启动配置与运行配置。启动配置,顾名思义,就是在启动过程中对交换机进行的配置,也就是通常所说的初始化配置。运行配置就是交换机在运行过程中的配置。如 有些所谓的动态参数,可以在交换机运行的过程中直接进行修改。了解这两个概念之后,对于上面这张示意图就比较容易了解了。
首先交换机在启动的时候,会从NVRAM(非易失性随机访问存储器)中读取交换机 配置文件文件。利用这个初始配置文件中所规定的内容来初始化交换机。在这个过程中需要注意的一点是,由于RAM内存中的配置文件在断电后会丢失,所以交换 机启动之前,RAM中是没有内容的。在启动的过程中,交换机的RAM从NVRAM中读取配置文件,在自己的RAM中生成一个配置文件的副本,然后利用这个 副本中的内容来进行初始化。也就是说,在初始化之前,交换机会先从NVRAM中复制配置文件到自己的RAM中。而不是说直接通过NVRAM中的配置文件来 进行初始化。此时我们可以把NVRAM中的配置文家看作是启动配置文件。而在RAM中的配置文件看作是运行配置文件。
其次需要注意的是,一般情况下启动配置文件与运行配置文件是相同的。但是,如果在 启动的过程中对交换机配置文件进行更改,此时启动配置文件与运行配置文件就有可能不同。其实这跟数据库的初始化参数类似。数据库的参数一般包括两类,分别 为动态参数与静态参数。动态参数的话可以在数据库运行状态中进行更改。不过数据库的设计比思科的IOS设计的好,可以控制在更改动态参数的时候,只是更改 内存中的内容(相当于交换机配置文件)还是同时更改内存中的内容与初始化参数文件(相当于交换机的启动配置文件)。对于交换机来说,更改某些动态参数的时 候,其只会将更改后的内容保存到RAM中。但是这个RAM在断电后,即交换机重新启动后会丢失。也就是说,在下次重新启动交换机的时候,交换机的IOS系 统会再次利用启动配置文件来进行初始化。但是上次更改的内容没有保存到启动配置文件中,所以上次的更新就会丢失。网络管理员可能需要重新进行配置。显然这 是网络管理员不希望看到的。
二、管理配置文件的要点
简单的说,要管理好交换机配置文件,就是要在适当的时候、适当的地点及时运行 copy命令。通过使用copy命令,IOS软件能够将配置文件从一个组件或者设备移动到其他需要的组件与设备上去。这个命令主要有两参数,第一个参数表 示配置文件的源位置,即需要被复制的文件。第二个参数表示目标位置,即要将这个配置文件复制到哪个地方。如使用copy running-config tftp命令,就可以将运行配置文件复制到网络上的TFTP服务器来进行配置。不过在复制的时候,需要注意,如果目标位置有相同的配置文件,则这个命令会 将目标文件中相同名字的配置文件覆盖掉。不过这句话说其来容易,做起来可是比较难。具体来说,需要做到一下几点。
首先,当RAM中的运行配置文件进行更改之后,需要将最新的运行配置文件进行备 份。这主要是因为RAM内存中的内容断电后会丢失。如果网络管理员希望在交换机运行过程中对其进行的更改,在交换机下次启动的时候仍然有效。那么就需要将 这个更改的内容保存在启动配置文件中。如果要实现这个目的,可以通过使用命令copy running-config startup-config。这个命令的含义就是将运行配置文件保存到启动配置文件中。如此的话,就会将交换机的最近更新的内容保存了下来。
其次需要注意的是,在将RAM中的运行配置文件复制到NVRAM中的时候,需要先 确保当前配置的准确性。也就是说,当我们修改了RAM中的运行配置文件相关参数之后,一般不会急着将相关的内容复制到NVRAM中。而是需要先对其进行测 试与追踪,以判断新设置的参数是否符合我们预计的需求。也就是要判断新参数是否起作用了,是否满足用户的需要。只有确保新配置的参数运行正常的情况下,才 能够将这个更新保存到启动配置文件中。否则的话,万一这个参数设置有错误,那么在下次启动的时候就可能会出现问题。为了安全起见,最好在将运行配置文件复 制到NVRAM中的时候,能够先对NVRAM中内容进行备份。
这主要是因为在使用copy running-config startup-config命令的时候,命令会自动覆盖目标位置的启动配置文件。此时如果运行配置文件有错误,那么连神仙也回天无力了。为此笔者建立网 络管理员,在管理配置文件的时候,要小心又小心,宁可多走一步。如在保存更新之前,先将原先的启动配置文件在tftp服务器上备份一份。如此的话,即使最 近的配置有问题,而网络管理员又保存了的话,也可以利用备份后的配置文件来启动交换机。要完成这个功能,网络管理员可以运行命令copy start tftp(将启动配置文件保存到TFTP服务器上)。如果启动配置文件有问题的话,还可以使用copy tftp start命令,将备份的配置文件复制到NVRAM中,让交换机使用这个配置文件来进行初始化。
第三,除了在NVRAM与tftp服务器之间可以相互复制之外,在RAM与 tftp服务器之间也可以进行相互的复制。如网络管理员更新了交换机配置文件的某个参数,如设置了虚拟局域网。此时可能在短时间内很难判断当前的配置是否 准确。可能需要运行一个星期甚至更长的时间才能够做出判断。此时最好不要轻易的去更新启动配置文件中的内容。笔者建议的方法是先将RAM中的运行配置文件 复制到tftp服务器中,实现一个暂时的过渡。当确定配置没有问题后,再将这个运行配置文件复制、替换掉启动配置文件,以保存最新的可用更新。要实现这个 需求的话,可以使用命令copy run tftp(将运行配置文件复制到tftp服务器上)或者使用命令copy tftp run(将tftp服务器上的配置文件复制到ram中去)这两个命令来实现。
笔者最好强调一遍,怎么配置运行配置文件或者初始参数文件涉及到很多内容,具有很 大的难度。但是如果管理配置文件,则这个copy命令是核心。而使用好这个命令的关键,就是在对配置文件进行任何更改之前,进行备份。并在确保更新内容可 用之后,及时将其保存到断电后不易丢失的NVRAM中或者网络的tftp服务器上。