In the journey to CCIE there are a great number of labs that we can be doing, such as INE, Narbik, CCIECert, Cisco 360 etc etc. So chances are our switches and routers are going to be reloaded a number of times with varying configurations.
Thankfully we can make the process a little easier and store a number of configurations on the equipment and change between these at our leisure.
The IOS supports a number of commands that can help us with this, so lets have a look at how we can manage the respective configs for a number of different labs.
The first command is mkdir, we can make a directory on the flash storage with the command
mkdir flash:/myConfigsand confirm that its been created using the command
dir flash:The output should look like this:
Router#dir flash Directory of flash:/ 1 -rw- 20570916 Jun 6 2000 19:19:48 +00:00 c1841-spservices9-mz.124.16b.bin 2 drw- 0 Jul 23 2013 11:11:42 +00:00 myConfigs
So now we have a nice place holder for our respective configs and we can begin filling this with our configuration files.
So lets make some very basic configurations. I am using an 1841 router, its got a serial interface that will connect to the BB1 router (the frame-relay backbone).
I assign a description to the Serial 0/0/0 interface:
Interface Serial0/0/0 description Link to BB1 - INE
Like I said its a basic configuration! And now lets copy this to the myConfigs folder, and check that its there:
Router#copy run flash:/myConfigs/INE.txt Destination filename [/myconfigs/INE.txt]? 694 bytes copied in 0.744 secs (933 bytes/sec) Router#dir flash:/myconfigs Directory of flash:/myConfigs/ 12 -rw- 694 Jul 23 2013 11:20:28 +00:00 INE.txt
On the second line just hit enter to accept the offered destination filename.
So we now have one configuration. Lets make another one:
Router#conf t Router(config)#int Serial 0/0/0 Router(config-if)#desc Link to BB1 - 360 Router(config-if)#exit Router(config)#exit Router#copy run flash:/myConfigs/360.txt Destination filename [/myconfigs/360.txt]? 694 bytes copied in 1.268 secs (547 bytes/sec) Router#dir flash:/myconfigs Directory of flash:/myConfigs/ 12 -rw- 694 Jul 23 2013 11:20:28 +00:00 INE.txt 13 -rw- 694 Jul 23 2013 11:24:16 +00:00 360.txt
So now we have two configurations - but how can we easily switch between them?
One option is to copy the file name back to the startup config and reload the router
Router#copy flash:/myConfigs/INE.txt startup-config
But this means your router is down for a few minutes. Another way is to use the configure replace command.
At the moment our router is running the 360 config, we can see this by doing sh run | beg Serial0/0/0 and we can see the following:
Router#sh run | beg Serial0/0/0 interface Serial0/0/0 description Link to BB1 - 360 no ip address !
To make our router run the INE configuration we can use the command configure replace and specify the file we are going to substitute as the current running config:
Router#configure replace flash:/myConfigs/INE.txt This will apply all necessary additions and deletions to replace the current running configuration with the contents of the specified configuration file, which is assumed to be a complete configuration, not a partial configuration. Enter Y if you are sure you want to proceed. ? [no]: Y Total number of passes: 1 Rollback Done Router# *Jul 23 11:33:32.947: Rollback:Acquired Configuration lock. Router# *Jul 23 11:33:34.035: %PARSER-3-CONFIGNOTLOCKED: Unlock requested by process '3'. Configuration not locked. Router#sh run | beg Serial0/0/0 interface Serial0/0/0 description Link to BB1 - INE no ip address !
So now we can easily and quickly switch between multiple configurations!
We can also push multiple configurations onto the flash file system through tftp, or another method such as SCP. Here I am using SCP, firstly I copy a configuration to the SCP client hosted on a laptop, then I edited the file and saved it under the name CCIECert.txt, and then copied it back to the router. Lastly I did a configure replace to set it as the current running config:
Router#copy flash:/myConfigs/INE.txt scp: Address or name of remote host []? 10.250.1.10 Destination username [Router]? Destination filename [INE.txt]? Writing INE.txt Password: ! 694 bytes copied in 12.968 secs (54 bytes/sec) Router#copy scp: flash:/myConfigs/CCIECert.txt Address or name of remote host []? 10.250.1.10 Source username [Router]? Source filename []? CCIECert.txt Destination filename [/myConfigs/CCIECert.txt]? Password: ! 699 bytes copied in 11.392 secs (61 bytes/sec) Router#dir flash:/myConfigs Directory of flash:/myConfigs/ 12 -rw- 694 Jul 23 2013 11:20:28 +00:00 INE.txt 13 -rw- 694 Jul 23 2013 11:24:16 +00:00 360.txt 14 -rw- 699 Jul 23 2013 12:25:12 +00:00 CCIECert.txt Router#configure replace flash:/myConfigs/CCIECert.txt This will apply all necessary additions and deletions to replace the current running configuration with the contents of the specified configuration file, which is assumed to be a complete configuration, not a partial configuration. Enter Y if you are sure you want to proceed. ? [no]: y Total number of passes: 1 Rollback Done Router# *Jul 23 12:26:41.679: Rollback:Acquired Configuration lock. *Jul 23 12:26:43.331: %PARSER-3-CONFIGNOTLOCKED: Unlock requested by process '3'. Configuration not locked. Router# Router# *Jul 23 12:26:44.791: %LINK-5-CHANGED: Interface FastEthernet0/0, changed state to administratively down *Jul 23 12:26:45.791: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to down Router#sh run | beg Serial0/0/0 interface Serial0/0/0 description Link to BB1 - CCIECert no ip address !
So there we have it, its easy to host multiple configurations and switch between them quickly. just remember to save your work as you go!