Managing Configuration Files
ErrorMessage : Error while constructing the Hinav

null
Downloads: This chapterpdf (PDF - 336.0KB) | Feedback

Managing Configuration Files

Table Of Contents

Managing Configuration Files

Understanding Configuration Files

Types of Configuration Files

Location of Configuration Files

Configuration File Management Task List

Displaying Configuration File Information

Entering Configuration Mode and Selecting a Configuration Source

Modifying the Configuration File at the CLI

Copying Configuration Files from the Router to a Network Server

Copying a Configuration File from the Router to a TFTP Server

Copying a Configuration File from the Router to an rcp Server

About the rcp Username

Copying a Configuration File from the Router to an rcp Server

Copying a Configuration File from the Router to an FTP Server

Understanding the FTP Username and Password

Copying a Configuration File from the Router to the FTP Server

Copying Configuration Files from a Network Server to the Router

Copying a Configuration File from a TFTP Server to the Router

Copying a Configuration File from an rcp Server to the Router

Understanding the rcp Username

Copying a Configuration File from the rcp Server to the Router

Copying a Configuration File from an FTP Server to the Router

Understanding the FTP Username and Password

Copying a Configuration File from an FTP Server to the Router

Maintaining Configuration Files Larger than NVRAM

Compressing the Configuration File

Storing the Configuration in Flash Memory on Class A Flash File Systems

Loading the Configuration Commands from the Network

Controlling the Parser Cache

Clearing the Parser Cache

Disabling the Parser Cache

Reenabling the Parser Cache

Monitoring the Parser

Copying Configuration Files Between Different Locations

Copying Configuration Files from Flash Memory to the Startup or Running Configuration

Copying Configuration Files Between Flash Memory File Systems

Copying a Configuration File Between Local Flash Memory Devices Example

Copying a Configuration File from a Server to Flash Memory Devices

Reexecuting the Configuration Commands in the Startup Configuration File

Clearing Configuration Information

Clearing the Startup Configuration

Deleting a Specified Configuration File

Specifying the Startup Configuration File

Specifying the CONFIG_FILE Environment Variable on Class A Flash File Systems

Configuring the Router to Download Configuration Files

Network Versus Host Configuration Files

Understanding the rcp Username

Understanding the FTP Username and Password

Configuring the Router to Download Configuration Files

Configuring the Router to Download the Network Configuration File

Configuring the Router to Download the Host Configuration File


Managing Configuration Files


This chapter describes how to create, load, and maintain configuration files. Configuration files contain a set of user-configured commands that customize the functionality of your Cisco routing device using Cisco IOS Release 12.2.

The tasks in this chapter assume that you have at least a minimal configuration running on your system. You can create a basic configuration file using the setup command (see the "Using AutoInstall and Setup" chapter in this document for details).

For a complete description of the configuration file management commands in this chapter, refer to the "Configuration File Management Commands" chapter in the Release 12.2 Cisco IOS Configuration Fundamentals Command Reference. To locate documentation of other commands that appear in this chapter, use the Cisco IOS Command Reference Master Index or search online.

To identify hardware or software image support for a specific feature, use Feature Navigator on Cisco.com to search for information about the feature or refer to the software release notes for a specific release. For more information, see the "Identifying Platform Support for Cisco IOS Software Features" section in the "About Cisco IOS Software Documentation" chapter.

Understanding Configuration Files

Configuration files contain the Cisco IOS software commands used to customize the functionality of your Cisco routing device (router, access server, switch, and so on). Commands are parsed (translated and executed) by the Cisco IOS software when the system is booted (from the startup-config file) or when you enter commands at the CLI in a configuration mode.

Types of Configuration Files

Startup configuration files (startup-config) are used during system startup to configure the software. Running configuration files (running-config) contain the current configuration of the software. The two configuration files can be different. For example, you may want to change the configuration for a short time period rather than permanently. In this case, you would change the running configuration using the configure terminal EXEC command but not save the configuration using the copy running-config startup-config EXEC command.

To change the running configuration, use the configure terminal command, as described in the "Modifying the Configuration File at the CLI" section later in this chapter. As you use the Cisco IOS configuration modes, commands generally are executed immediately and are saved to the running configuration file either immediately after you enter them or when you exit a configuration mode.

To change the startup configuration file, you can either save the running configuration file to the startup configuration using the copy running-config startup-config EXEC command or copy a configuration file from a file server to the startup configuration (see the "Copying Configuration Files from a Network Server to the Router" section for more information).

Location of Configuration Files

Configuration files are stored in the following locations:

The running configuration is stored in RAM.

On all platforms except the Class A Flash file system platforms, the startup configuration is stored in nonvolatile random-access memory (NVRAM).

On Class A Flash file system platforms, the startup configuration is stored in the location specified by the CONFIG_FILE environment variable (see the "Specifying the CONFIG_FILE Environment Variable on Class A Flash File Systems" section for more information). The CONFIG_FILE variable defaults to NVRAM and can be a file in the following file systems:

nvram: (NVRAM)

bootflash: (internal Flash memory)

slot0: (first PCMCIA slot)

slot1: (second PCMCIA slot)

Configuration File Management Task List

To understand the management of Cisco IOS software configuration files, perform the tasks described in the following sections:

Displaying Configuration File Information

Entering Configuration Mode and Selecting a Configuration Source

Modifying the Configuration File at the CLI

Copying Configuration Files from the Router to a Network Server

Copying Configuration Files from a Network Server to the Router

Maintaining Configuration Files Larger than NVRAM

Controlling the Parser Cache

Copying Configuration Files Between Different Locations

Reexecuting the Configuration Commands in the Startup Configuration File

Clearing Configuration Information

Specifying the Startup Configuration File

Displaying Configuration File Information

To display information about configuration files, use the following commands in EXEC mode, as needed:

Command
Purpose

Router# show bootvar

Lists the contents of the BOOT environment variable, the name of the configuration file pointed to by the CONFIG_FILE environment variable, and the contents of the BOOTLDR environment variable.

Router# more file-url

Displays the contents of a specified file.

Router# show running-config

Displays the contents of the running configuration file. (Command alias for the more system:running-config command.)

Router# show startup-config

Displays the contents of the startup configuration file. (Command alias for the more nvram:startup-config command.)

On all platforms except the Class A Flash file system platforms, the default startup-config file usually is stored in NVRAM. On the Class A Flash file system platforms, the CONFIG_FILE environment variable points to the default startup-config file. The CONFIG_FILE variable defaults to NVRAM.

Entering Configuration Mode and Selecting a Configuration Source

To enter configuration mode on the router, enter the configure command at the privileged EXEC prompt. The Cisco IOS software responds with the following prompt asking you to specify the terminal, memory, or a file stored on a network server (network) as the source of configuration commands:

Configuring from terminal, memory, or network [terminal]?

Configuring from the terminal allows you to enter configuration commands at the command line, as described in the following section. Configuring from memory loads the startup configuration file. See the "Reexecuting the Configuration Commands in the Startup Configuration File" section for more information. Configuring from the network allows you to load and execute configuration commands over the network. See the "Copying Configuration Files from a Network Server to the Router" section for more information.

Modifying the Configuration File at the CLI

The Cisco IOS software accepts one configuration command per line. You can enter as many configuration commands as you want.

You can add comments to a configuration file describing the commands you have entered. Precede a comment with an exclamation point (!). Because comments are not stored in NVRAM or in the active copy of the configuration file, comments do not appear when you list the active configuration with the show running-config or more system:running-config EXEC command. Comments do not display when you list the startup configuration with the show startup-config or more nvram:startup-config EXEC mode command. Comments are stripped out of the configuration file when it is loaded onto the router. However, you can list the comments in configuration files stored on a File Transfer Protocol (FTP), remote copy protocol (rcp), or Trivial File Transfer Protocol (TFTP) server.

When you configure the software using the CLI, the software executes the commands as you enter them. To configure the software using the CLI, use the following commands beginning in privileged EXEC mode:

 
Command
Purpose

Step 1 

Router# configure terminal

Enters global configuration mode.

Step 2 


Enter the necessary configuration commands. The Cisco IOS documentation set describes configuration commands organized by technology.

Step 3 

Router(config)# end


or

Router(config)# ^Z

Ends the configuration session and exits to EXEC mode.

Note When you press the Ctrl and Z keys simultaneously, ^Z is displayed to the screen.

Step 4 

Router# copy system:running-config nvram:startup-config

Saves the running configuration file as the startup configuration file.

You may also use the copy running-config startup-config command alias, but you should be aware that this command is less precise. On most platforms, this command saves the configuration to NVRAM. On the Class A Flash file system platforms, this step saves the configuration to the location specified by the CONFIG_FILE environment variable (the default CONFIG_FILE variable specifies that the file should be saved to NVRAM).

In the following example, the router prompt name of the router is configured. The comment line, indicated by the exclamation mark (!), does not execute any command.

In this example, the hostname command is used to change the router name from Router to new_name. By pressing Ctrl-Z (^Z) or entering the end command, the user quits configuration mode. The copy system:running-config nvram:startup-config command saves the current configuration to the startup configuration.

Router# configure terminal
Router(config)# !The following command provides the router host name.
Router(config)# hostname new_name
new_name(config)# end
new_name# copy system:running-config nvram:startup-config

When the startup configuration is NVRAM, it stores the current configuration information in text format as configuration commands, recording only nondefault settings. The memory is checksummed to guard against corrupted data.


Note Some specific commands might not get saved to NVRAM. You will need to enter these commands again if you reboot the machine. These commands are noted in the documentation. We recommend that you keep a list of these settings so that you can quickly reconfigure your router after rebooting.


Copying Configuration Files from the Router to a Network Server

You can copy configuration files from the router to a file server using FTP, rcp, or TFTP. For example, you might perform this task to back up a current configuration file to a server before changing its contents, thereby allowing you to later restore the original configuration file from the server.

To copy configuration files from a router to a server, perform the tasks described in the following sections:

Copying a Configuration File from the Router to a TFTP Server

Copying a Configuration File from the Router to an rcp Server

Copying a Configuration File from the Router to an FTP Server

The protocol you use depends on which type of server you are using. The FTP and rcp transport mechanisms provide faster performance and more reliable delivery of data than TFTP because FTP and rcp use the TCP/IP stack, which is connection-oriented.

Copying a Configuration File from the Router to a TFTP Server

In some implementations of TFTP, you must create a dummy file on the TFTP server and give it read, write, and execute permissions before copying a file over it. Refer to your TFTP documentation for more information.

To copy configuration information on a TFTP network server, use the following commands in the EXEC mode, as needed:

Command
Purpose

Router# copy system:running-config tftp:[[[//location]/directory]/filename]

Copies the running configuration file to a TFTP server.

Router# copy nvram:startup-config tftp:[[[//location]/directory]/filename]

Copies the startup configuration file to a TFTP server.

After you have issued the copy command, you may be prompted for additional information or for confirmation of the action. The prompting will depend on how much information you provide in the copy command and the current setting of the file prompt global configuration command.

The following example copies a configuration file from a router to a TFTP server:

Tokyo# copy system:running-config tftp://172.16.2.155/tokyo-confg
Write file tokyo-confg on host 172.16.2.155? [confirm] y

Writing tokyo-confg!!! [OK]

Copying a Configuration File from the Router to an rcp Server

You can copy configuration file from the router to an rcp server.

One of the first attempts to use the network as a resource in the UNIX community resulted in the design and implementation of the remote shell protocol, which included the remote shell (rsh) and remote copy (rcp) functions. Rsh and rcp give users the ability to execute commands remotely and copy files to and from a file system residing on a remote host or server on the network. The Cisco implementation of rsh and rcp interoperates with standard implementations.

The rcp copy commands rely on the rsh server (or daemon) on the remote system. To copy files using rcp, you need not create a server for file distribution, as you do with TFTP. You need only to have access to a server that supports the remote shell (rsh). (Most UNIX systems support rsh.) Because you are copying a file from one place to another, you must have read permission on the source file and write permission on the destination file. If the destination file does not exist, rcp creates it for you.

Although the Cisco rcp implementation emulates the functions of the UNIX rcp implementation—copying files among systems on the network—the Cisco command syntax differs from the UNIX rcp command syntax. The Cisco rcp support offers a set of copy commands that use rcp as the transport mechanism. These rcp copy commands are similar in style to the Cisco TFTP copy commands, but they offer an alternative that provides faster performance and reliable delivery of data. These improvements are possible because the rcp transport mechanism is built on and uses the TCP/IP stack, which is connection-oriented. You can use rcp commands to copy system images and configuration files from the router to a network server and vice versa.

You also can enable rcp support to allow users on remote systems to copy files to and from the router.

To configure the Cisco IOS software to allow remote users to copy files to and from the router, use the ip rcmd rcp-enable global configuration command.

About the rcp Username

The rcp protocol requires a client to send a remote username on each rcp request to a server. When you copy a configuration file from the router to a server using rcp, the Cisco IOS software sends the first valid username it encounters in the following sequence:

1. The username specified in the copy EXEC command, if a username is specified.

2. The username set by the ip rcmd remote-username global configuration command, if the command is configured.

3. The remote username associated with the current tty (terminal) process. For example, if the user is connected to the router through Telnet and was authenticated through the username command, the router software sends the Telnet username as the remote username.

4. The router host name.

For the rcp copy request to execute successfully, an account must be defined on the network server for the remote username. If the server has a directory structure, the configuration file or image is written to or copied from the directory associated with the remote username on the server. For example, if the system image resides in the home directory of a user on the server, you can specify that user name as the remote username.

Use the ip rcmd remote-username command to specify a username for all copies. (Rcmd is a UNIX routine used at the super-user level to execute commands on a remote machine using an authentication scheme based on reserved port numbers. Rcmd stands for "remote command"). Include the username in the copy command if you want to specify a username for that copy operation only.

If you are writing to the server, the rcp server must be properly configured to accept the rcp write request from the user on the router. For UNIX systems, you must add an entry to the .rhosts file for the remote user on the rcp server. For example, suppose the router contains the following configuration lines:

hostname Rtr1
ip rcmd remote-username User0

If the router IP address translates to Router1.company.com, then the .rhosts file for User0 on the rcp server should contain the following line:

Router1.company.com Rtr1

Refer to the documentation for your rcp server for more information.

Copying a Configuration File from the Router to an rcp Server

To copy a startup configuration file or a running configuration file from the router to an rcp server, use the following commands beginning in privileged EXEC mode:

 
Command
Purpose

Step 1 

Router# configure terminal

(Optional) Enters global configuration mode.

Step 2 

Router(config)# ip rcmd remote-username username

(Optional) Changes the default remote username.

Step 3 

Router(config)# end

(Optional) Exits global configuration mode.

Step 4 

Router# copy system:running-config rcp:[[[//[username@]location]/directory]/filename]


or

Router# copy nvram:startup-config rcp:[[[//[username@]location]/directory]/filename]

Specifies that the router running configuration file be stored on an rcp server.

or

Specifies that the router startup configuration file be stored on an rcp server.

After you have issued the copy EXEC command, you may be prompted for additional information or for confirmation of the action. The prompting will depend on how much information you provide in the copy command and the current setting of the file prompt global configuration command.

Storing a Running Configuration File on an rcp Server Example

The following example copies the running configuration file named rtr2-confg to the netadmin1 directory on the remote host with an IP address of 172.16.101.101:

Router# copy system:running-config rcp://netadmin1@172.16.101.101/Rtr2-confg
Write file rtr2-confg on host 172.16.101.101?[confirm]
Building configuration...[OK]
Connected to 172.16.101.101
Router#

Storing a Startup Configuration File on an rcp Server Example

The following example shows how to store a startup configuration file on a server by using rcp to copy the file:

Rtr2# configure terminal 
Rtr2(config)# ip rcmd remote-username netadmin2 
Rtr2(config)# end 
Rtr2# copy nvram:startup-config rcp: 
Remote host[]? 172.16.101.101 
Name of configuration file to write [rtr2-confg]?
Write file rtr2-confg on host 172.16.101.101?[confirm]
![OK]

Copying a Configuration File from the Router to an FTP Server

You can copy a configuration file from the router to an FTP server.

Understanding the FTP Username and Password

The FTP protocol requires a client to send a remote username and password on each FTP request to a server. When you copy a configuration file from the router to a server using FTP, the Cisco IOS software sends the first valid username it encounters in the following sequence:

1. The username specified in the copy EXEC command, if a username is specified.

2. The username set by the ip ftp username global configuration command, if the command is configured.

3. Anonymous.

The router sends the first valid password it encounters in the following sequence:

1. The password specified in the copy command, if a password is specified.

2. The password set by the ip ftp password command, if the command is configured.

3. The router forms a password username@routername.domain. The variable username is the username associated with the current session, routername is the configured host name, and domain is the domain of the router.

The username and password must be associated with an account on the FTP server. If you are writing to the server, the FTP server must be properly configured to accept the FTP write request from the user on the router.

If the server has a directory structure, the configuration file or image is written to or copied from the directory associated with the username on the server. For example, if the system image resides in the home directory of a user on the server, specify that user name as the remote username.

Refer to the documentation for your FTP server for more information.

Use the ip ftp username and ip ftp password global configuration commands to specify a username and password for all copies. Include the username in the copy EXEC command if you want to specify a username for that copy operation only.

Copying a Configuration File from the Router to the FTP Server

To copy a startup configuration file or a running configuration file from the router to an FTP server, use the following commands beginning in privileged EXEC mode:

 
Command
Purpose

Step 1 

Router# configure terminal

(Optional) Enters configuration mode from the terminal. This step is required only if you want to override the default remote username or password (see Steps 2 and 3).

Step 2 

Router(config)# ip ftp username username

(Optional) Specifies the default remote username.

Step 3 

Router(config)# ip ftp password password

(Optional) Specifies the default password.

Step 4 

Router(config)# end

(Optional) Exits global configuration mode. This step is required only if you override the default remote username or password (see Steps 2 and 3).

Step 5 

Router# copy system:running-config ftp:[[[//[username[:password]@]location]
/directory]/filename]


or

Router# copy nvram:startup-config ftp:[[[//[username[:password]@]location]
/directory]/filename]

Copies the running configuration or startup configuration file to an FTP server.

After you have issued the copy EXEC command, you may be prompted for additional information or for confirmation of the action. The prompting will depend on how much information you provide in the copy command and the current setting of the file prompt global configuration command.

Storing a Running Configuration File on an FTP Server Example

The following example copies the running configuration file named rtr2-confg to the netadmin1 directory on the remote host with an IP address of 172.16.101.101:

Router# copy system:running-config ftp://netadmin1:mypass@172.16.101.101/Rtr2-confg
Write file rtr2-confg on host 172.16.101.101?[confirm]
Building configuration...[OK]
Connected to 172.16.101.101
Router#

Storing a Startup Configuration File on an FTP Server Example

The following example shows how to store a startup configuration file on a server by using FTP to copy the file:

Rtr2# configure terminal 
Rtr2(config)# ip ftp username netadmin2 
Rtr2(config)# ip ftp password mypass 
Rtr2(config)# end 
Rtr2# copy nvram:startup-config ftp: 
Remote host[]? 172.16.101.101 
Name of configuration file to write [rtr2-confg]?
Write file rtr2-confg on host 172.16.101.101?[confirm]
![OK]

Copying Configuration Files from a Network Server to the Router

You can copy configuration files from a TFTP, rcp, or FTP server to the running configuration or startup configuration of the router. You may want to perform this function for one of the following reasons:

To restore a backed-up configuration file.

To use the configuration file for another router. For example, you may add another router to your network and want it to have a similar configuration to the original router. By copying the file to the new router, you can change the relevant parts rather than re-creating the whole file.

To load the same configuration commands on to all the routers in your network so that all the routers have similar configurations.

The copy {ftp: | rcp: | tftp:} system:running-config EXEC command loads the configuration files into the router as if you were typing the commands in at the command line. The router does not erase the existing running configuration before adding the commands. If a command in the copied configuration file replaces a command in the existing configuration file, the existing command will be erased. For example, if the copied configuration file contains a different IP address in a particular command than the existing configuration, the IP address in the copied configuration will be used. However, some commands in the existing configuration may not be replaced or negated. In this case, the resulting configuration file will be a mixture of the existing configuration file and the copied configuration file, with the copied configuration file having precedence.

In order to restore a configuration file to an exact copy of a file stored on a server, you need to copy the configuration file directly to the startup configuration (using the copy {ftp: | rcp: | tftp:} nvram:startup-config command) and reload the router.

To copy configuration files from a server to a router, perform the tasks described in the following sections:

Copying a Configuration File from a TFTP Server to the Router

Copying a Configuration File from an rcp Server to the Router

Copying a Configuration File from an FTP Server to the Router

The protocol you use depends on which type of server you are using. The FTP and rcp transport mechanisms provide faster performance and more reliable delivery of data than TFTP. These improvements are possible because the FTP and rcp transport mechanisms are built on and use the TCP/IP stack, which is connection-oriented.

Copying a Configuration File from a TFTP Server to the Router

To copy a configuration file from a TFTP server to the router, use the following commands in EXEC mode, as needed:

Command
Purpose

Router# copy tftp:[[[//location]/directory]/filename] system:running-config

Copies a configuration file from a TFTP server to the running configuration.

Router# copy tftp:[[[//location]/directory]/filename] nvram:startup-config

Copies a configuration file from a TFTP server to the startup configuration.

After you have issued the copy EXEC command, you may be prompted for additional information or for confirmation of the action. The prompting will depend on how much information you provide in the copy command and the current setting of the file prompt global configuration command.

In the following example, the software is configured from the file named tokyo-config at IP address 172.16.2.155:

Router1# copy tftp://172.16.2.155/tokyo-confg system:running-config 
Configure using tokyo-confg from 172.16.2.155? [confirm] y 
Booting tokyo-confg from 172.16.2.155:!!! [OK - 874/16000 bytes]

Copying a Configuration File from an rcp Server to the Router

You can copy configuration files from an rcp server to the router.

Understanding the rcp Username

The rcp protocol requires a client to send a remote username on each rcp request to a server. When you copy a configuration file from the router to a server using rcp, the Cisco IOS software sends the first valid username it encounters in the following sequence:

1. The username specified in the copy EXEC command, if a username is specified.

2. The username set by the ip rcmd remote-username global configuration command, if the command is configured.

3. The remote username associated with the current tty (terminal) process. For example, if the user is connected to the router through Telnet and was authenticated through the username command, the router software sends the Telnet username as the remote username.

4. The router host name.

For the rcp copy request to execute, an account must be defined on the network server for the remote username. If the server has a directory structure, the configuration file or image is written to or copied from the directory associated with the remote username on the server. For example, if the system image resides in the home directory of a user on the server, specify that user name as the remote username.

Copying a Configuration File from the rcp Server to the Router

To copy a configuration file from an rcp server to the running configuration or startup configuration, use the following commands beginning in privileged EXEC mode:

 
Command
Purpose

Step 1 

Router# configure terminal

(Optional) Enters configuration mode from the terminal. This step is required only if you override the default remote username (see Step 2).

Step 2 

Router(config)# ip rcmd remote-username username

(Optional) Specifies the remote username.

Step 3 

Router(config)# end

(Optional) Exits global configuration mode. This step is required only if you override the default remote username (see Step 2).

Step 4 

Router# copy rcp:[[[//[username@]location]/directory]/filename] system:running-config


or

Router# copy rcp:[[[//[username@]location]/directory]/filename] nvram:startup-config

Copies the configuration file from a rcp server to the running configuration or startup configuration.

After you have issued the copy EXEC command, you may be prompted for additional information or for confirmation of the action. The prompting will depend on how much information you provide in the copy command and the current setting of the file prompt global configuration command.

Copy rcp Running-Config Example

The following example copies a configuration file named host1-confg from the netadmin1 directory on the remote server with an IP address of 172.16.101.101, and loads and runs those commands on the router:

Router# copy rcp://netadmin1@172.16.101.101/host1-confg system:running-config
Configure using host1-confg from 172.16.101.101? [confirm]
Connected to 172.16.101.101
Loading 1112 byte file host1-confg:![OK]
Router#
%SYS-5-CONFIG: Configured from host1-config by rcp from 172.16.101.101

Copy rcp Startup-Config Example

The following example specifies a remote username of netadmin1. Then it copies the configuration file named host2-confg from the netadmin1 directory on the remote server with an IP address of 172.16.101.101 to the startup configuration.

Rtr2# configure terminal
Rtr2(config)# ip rcmd remote-username netadmin1
Rtr2(config)# end
Rtr2# copy rcp: nvram:startup-config
Address of remote host [255.255.255.255]? 172.16.101.101
Name of configuration file[rtr2-confg]? host2-confg
Configure using host2-confg from 172.16.101.101?[confirm]
Connected to 172.16.101.101
Loading 1112 byte file host2-confg:![OK]
[OK]
Rtr2#
%SYS-5-CONFIG_NV:Non-volatile store configured from host2-config by rcp from 
172.16.101.101

Copying a Configuration File from an FTP Server to the Router

You can copy configuration files from an FTP server to the router.

Understanding the FTP Username and Password

The FTP protocol requires a client to send a remote username and password on each FTP request to a server. When you copy a configuration file from the router to a server using FTP, the Cisco IOS software sends the first valid username it encounters in the following sequence:

1. The username specified in the copy EXEC command, if a username is specified.

2. The username set by the ip ftp username global configuration command, if the command is configured.

3. Anonymous.

The router sends the first valid password it encounters in the following sequence:

1. The password specified in the copy EXEC command, if a password is specified.

2. The password set by the ip ftp password global configuration command, if the command is configured.

3. The router forms a password username@routername.domain. The variable username is the username associated with the current session, routername is the configured host name, and domain is the domain of the router.

The username and password must be associated with an account on the FTP server. If you are writing to the server, the FTP server must be properly configured to accept the FTP write request from the user on the router.

If the server has a directory structure, the configuration file or image is written to or copied from the directory associated with the username on the server. For example, if the system image resides in the home directory of a user on the server, specify that user name as the remote username.

Refer to the documentation for your FTP server for more information.

Use the ip ftp username and ip ftp password global configuration commands to specify a username and password for all copies. Include the username in the copy command if you want to specify a username for that copy operation only.

Copying a Configuration File from an FTP Server to the Router

To copy a configuration file from an FTP server to the running configuration or startup configuration, use the following commands beginning in privileged EXEC mode:

 
Command
Purpose

Step 1 

Router# configure terminal

(Optional) Allows you to enter global configuration mode. This step is required only if you want to override the default remote username or password (see Steps 2 and 3).

Step 2 

Router(config)# ip ftp username username

(Optional) Specifies the default remote username.

Step 3 

Router(config)# ip ftp password password

(Optional) Specifies the default password.

Step 4 

Router(config)# end

(Optional) Exits global configuration mode. This step is required only if you override the default remote username or password (see Steps 2 and 3).

Step 5 

Router# copy 
ftp:[[[//[username[:password]@]location]/directory
]/filename] system:running-config

or

Router# copy ftp:[[[//[username[:password]@]location]
/directory]/filename] nvram:startup-config

Using FTP, copies the configuration file from a network server to running memory or the startup configuration.

After you have issued the copy EXEC command, you may be prompted for additional information or for confirmation of the action. The prompting will depend on how much information you provide in the copy command and the current setting of the file prompt global configuration command.

Copy FTP Running-Config Example

The following example copies a host configuration file named host1-confg from the netadmin1 directory on the remote server with an IP address of 172.16.101.101, and loads and runs those commands on the router:

Router# copy rcp://netadmin1:mypass@172.16.101.101/host1-confg system:running-config 
Configure using host1-confg from 172.16.101.101? [confirm]
Connected to 172.16.101.101
Loading 1112 byte file host1-confg:![OK]
Router#
%SYS-5-CONFIG: Configured from host1-config by ftp from 172.16.101.101

Copy FTP Startup-Config Example

The following example specifies a remote username of netadmin1. Then it copies the configuration file named host2-confg from the netadmin1 directory on the remote server with an IP address of 172.16.101.101 to the startup configuration.

Rtr2# configure terminal
Rtr2(config)# ip ftp username netadmin1
Rtr2(config)# ip ftp password mypass
Rtr2(config)# end
Rtr2# copy ftp: nvram:startup-config 
Address of remote host [255.255.255.255]? 172.16.101.101
Name of configuration file[rtr2-confg]? host2-confg
Configure using host2-confg from 172.16.101.101?[confirm]
Connected to 172.16.101.101
Loading 1112 byte file host2-confg:![OK]
[OK]
Rtr2#
%SYS-5-CONFIG_NV:Non-volatile store configured from host2-config by ftp from 
172.16.101.101

Maintaining Configuration Files Larger than NVRAM

To maintain a configuration file that exceeds size of NVRAM, perform the tasks described in the following sections:

Compressing the Configuration File

Storing the Configuration in Flash Memory on Class A Flash File Systems

Loading the Configuration Commands from the Network

Compressing the Configuration File

The service compress-config global configuration command specifies that the configuration file be stored compressed in NVRAM. Once the configuration file has been compressed, the router functions normally. When the system is booted, it recognizes that the configuration file is compressed, expands it, and proceeds normally. The more nvram:startup-config EXEC command expands the configuration before displaying it.

Before you compress configuration files, refer to the appropriate hardware installation and maintenance publication. Verify that your system's ROMs support file compression. If not, you can install new ROMs that support file compression.

To compress configuration files, use the following commands beginning in global configuration mode:

 
Command
Purpose

Step 1 

Router(config)# service compress-config

Specifies that the configuration file be compressed.

Step 2 

Router(config)# end

Exits global configuration mode.

Step 3 

Use FTP, rcp, or TFTP to copy the new configuration. If you try to load a configuration that is more than three times larger than the NVRAM size, the following error message is displayed:

"[buffer overflow - file-size/buffer-size bytes]."


or

Router# configure terminal

Enters the new configuration.

Step 4 

Router(config)# copy system:running-config nvram:startup-config

When you have finished changing the running-configuration, saves the new configuration.

The size of the configuration must not exceed three times the NVRAM size. For a 128-KB size NVRAM, the largest expanded configuration file size is 384 KB.

The service compress-config global configuration command works only if you have Cisco IOS software Release 10 or later release boot ROMs. Installing new ROMs is a one-time operation and is necessary only if you do not already have Cisco IOS Release 10 in ROM. If the boot ROMs do not recognize a compressed configuration, the following message is displayed:

Boot ROMs do not support NVRAM compression Config NOT written to NVRAM

The following example compresses a 129-KB configuration file to 11 KB:

Router# configure terminal 
Router(config)# service compress-config 
Router(config)# end 
Router# copy tftp://172.16.2.15/tokyo-confg system:running-config 
Configure using tokyo-confg from 172.16.2.155? [confirm] y 
Booting tokyo-confg from 172.16.2.155:!!! [OK - 874/16000 bytes]
Router# copy system:running-config nvram:startup-config 
Building configuration...
Compressing configuration from 129648 bytes to 11077 bytes
[OK]

Storing the Configuration in Flash Memory on Class A Flash File Systems

On Class A Flash file system routers, you can store the startup configuration in Flash memory by setting the CONFIG_FILE environment variable to a file in internal Flash memory or Flash memory in a PCMCIA slot.

To store the startup configuration in Flash memory, use the following commands beginning in privileged EXEC mode:

 
Command
Purpose

Step 1 

Router# copy nvram:startup-config flash-filesystem:filename

Copies the current startup configuration to the new location to create the configuration file.

Step 2 

Router# configure terminal

Enters global configuration mode.

Step 3 

Router(config)# boot config flash-filesystem:filename

Specifies that the startup configuration file be stored in Flash memory by setting the CONFIG_FILE variable.

Step 4 

Router(config)# end

Exits global configuration mode.

Step 5 

Use FTP, rcp, or TFTP to copy the new configuration. If you try to load a configuration that is more than three times larger than the NVRAM size, the following error message is displayed:

"[buffer overflow - file-size/buffer-size bytes]."


or

Router# configure terminal

Enters the new configuration.

Step 6 

Router# copy system:running-config nvram:startup-config

When you have finished changing the running-configuration, saves the new configuration.

See the "Specifying the CONFIG_FILE Environment Variable on Class A Flash File Systems" section for more information.

The following example stores the configuration file in slot 0:

Router# copy nvram:startup-config slot0:router-config 
Router# configure terminal 
Router(config)# boot config slot0:router-config 
Router(config)# end 
Router# copy system:running-config nvram:startup-config 

Care must be taken when editing or changing a large configuration. Flash memory space is used every time a copy system:running-config nvram:startup-config EXEC command is issued. Because file management for Flash memory, such as optimizing free space, is not done automatically, you must pay close attention to available Flash memory. Use the squeeze command to reclaim used space. We recommend that you use a large-capacity Flash card of at least 20 MB.

Loading the Configuration Commands from the Network

You can also store large configurations on FTP, rcp, or TFTP servers and download them at system startup. To use a network server to store large configurations, use the following commands beginning in privileged EXEC mode:

 
Command
Purpose

Step 1 

Router# copy system:running-config {ftp: | rcp: | tftp:}

Saves the running configuration to an FTP, rcp, or TFTP server.

Step 2 

Router# configure terminal

Enters global configuration mode.

Step 3 

Router(config)# boot network {ftp:[[[//[username[:password]@]location]/director y]/filename] | rcp:[[[//[username@]location]/directory]/filename] | tftp:[[[//location]/directory]/filename]}

Specifies that the startup configuration file be loaded from the network server at startup.

Step 4 

Router(config)# service config

Enables the router to download configuration files at system startup.

Step 5 

Router(config)# end

Exits global configuration mode.

Step 6 

Router# copy system:running-config nvram:startup-config

Saves the configuration.

See the "Copying Configuration Files from the Router to a Network Server" and "Configuring the Router to Download Configuration Files" sections for more information on these commands.

Controlling the Parser Cache

The Cisco IOS command-line parser in the Cisco IOS software performs the translation and execution (parsing) of command lines. The Parser Cache feature was developed to rapidly process large configuration files, thereby dramatically improving load time.

The Parser Cache feature allows the rapid recognition and translation of configuration lines in a configuration file that differ slightly from previously used configuration lines (for example, pvc 0/100, pvc 0/101, and so on) by dynamically creating, caching, and reusing simplified parse graphs. This improvement is useful primarily for configuration files that repeat similar commands hundreds or thousands of times, such as cases in which thousands of virtual circuits must be configured for subinterfaces, or hundreds of access lists must be configured. Performance will improve the most for those files in which the same commands are used repeatedly but the numerical arguments change from command to command.

The Parser Cache is enabled by default on all platforms using Cisco IOS Release 12.1(5)T and later releases. However, users with Cisco devices that do not require large configuration files may want to disable the Parser Cache to free the resources used by this feature. (Memory used by this feature depends on the size of the configuration files parsed, but is generally less than 512 KB.)

To control the Parser Cache feature, perform the tasks described in the following sections. All of these tasks are optional:

Clearing the Parser Cache

Disabling the Parser Cache

Reenabling the Parser Cache

Monitoring the Parser

Clearing the Parser Cache

To free resources or to reset the parser cache memory, you may wish to clear the parse entries and hit/miss statistics stored by the Parser Cache feature. To clear the information stored by the Parser Cache feature, use the following command in privileged EXEC mode:

Command
Purpose

Router# clear parser cache

Clears the parse cache entries and hit/miss statistics stored for the Parser Cache feature.


Disabling the Parser Cache

The Parser Cache feature is enabled by default. To disable the Parser Cache feature, use the following command in global configuration mode:

Command
Purpose

Router(config)# no parser cache

Disables the Parser Cache feature.


When the parser cache is disabled, the no parser cache command line is written to the running configuration file.


Tips If you wish to disable the parser cache to free system resources, you should clear the parser cache before issuing the no parser cache command. You will not be able to clear the parser cache after disabling it.


Reenabling the Parser Cache

To reenable the Parser Cache feature after disabling it, use the following command in global configuration mode:

Command
Purpose

Router(config)# parser cache

Enables the Parser Cache feature.


Monitoring the Parser

Statistics about the last configuration file parsed are kept in the system memory, along with hit/miss statistics on the commands parsed by the Parser Cache feature. "Hits" and "misses" refer to the matches that the parser cache was able to make to similar commands used previously in the configuration session. Those commands that are matched ("hits") be parsed more efficiently. The parser cache cannot improve the parse time for those commands it was unable to match ("misses").

To display the parser statistics, use the following command in privileged EXEC mode:

Command
Purpose

Router# show parser statistics

Displays statistics about the last configuration file parsed and the status of the Parser Cache feature.


The following example shows sample output from the show parser statistics command:

Router# show parser statistics 
Last configuration file parsed:Number of Commands:1484, Time:1272 ms

Parser cache:disabled, 0 hits, 0 misses

The show parser statistics command displays two sets of data, as follows:

The number of commands in the configuration file that was last copied into the running configuration, and the time it took for the system to parse them (a configuration file can be loaded into the running configuration at system startup, or by issuing commands such as the copy source running-config EXEC command).

The status of the parser cache (enabled or disabled) and the number of command matches (hits or misses) since the system was started or since the parser cache was cleared.

In the example shown, the hit/miss statistics (0/0) do not match the number of commands in the last configuration file parsed (1484), which indicates that the last configuration file was loaded while the parser cache was disabled.

Copying Configuration Files Between Different Locations

On many platforms, you can copy configuration files from one Flash memory device, such as internal Flash memory or a Flash memory card in a PCMCIA slot, to other locations. You also can copy configuration files from an FTP, rcp, or TFTP server to Flash memory.

Copying Configuration Files from Flash Memory to the Startup or Running Configuration

To copy a configuration file from Flash memory directly to your startup configuration in NVRAM or your running configuration, enter one following commands in EXEC mode, as needed:

Command
Purpose

Router> copy filesystem:[partition-number:][filename] nvram:startup-config

Loads a configuration file directly into NVRAM.

Router> copy filesystem:[partition-number:][filename] system:running-config

Copies a configuration file to your running configuration.


The following example copies the file named ios-upgrade-1 from partition 4 of the Flash memory PC Card in slot 0 to the router startup configurations:

Router# copy slot0:4:ios-upgrade-1 nvram:startup-config 

Copy 'ios-upgrade-1' from flash device
  as 'startup-config' ? [yes/no] yes 
[OK]

Copying Configuration Files Between Flash Memory File Systems

On platforms with multiple Flash memory file systems, you can copy files from one Flash memory file system, such as internal Flash memory or a Flash memory card in a PCMCIA slot, to another Flash memory file system. Copying files to different Flash memory file systems lets you create backup copies of working configurations and duplicate configurations for other routers.

To copy a configuration file between Flash memory file systems, use the following commands in EXEC mode:

 
Command
Purpose

Step 1 

Router> show source-filesystem:

Displays the layout and contents of Flash memory to verify the filename.

Step 2 

Router> copy source-filesystem:[partition-number:][filename] dest-filesystem:[partition-number:][filename]

Copies a configuration file between Flash memory devices.

Step 3 

Router> verify dest-filesystem:[partition-number:][filename]

Verifies the checksum of the file you copied.


Note The source device and the destination device cannot be the same. For example, the copy slot1: slot1: command is invalid.


Copying a Configuration File Between Local Flash Memory Devices Example

The following example copies the file named running-config from partition 1 of internal Flash memory to partition 1 of slot 1 on a Cisco 3600 series router. In this example, the source partition is not specified, so the router prompts for the partition number.

Router# copy flash: slot1: 

System flash

Partition   Size    Used      Free      Bank-Size  State          Copy Mode
  1         4096K   3070K     1025K     4096K      Read/Write     Direct
  2        16384K   1671K    14712K     8192K      Read/Write     Direct

[Type ?<no> for partition directory; ? for full directory; q to abort]
Which partition? [default = 1] 

System flash directory, partition 1:
File  Length   Name/status
  1   3142748  dirt/network/mars-test/c3600-j-mz.latest  
  2   850      running-config  
[3143728 bytes used, 1050576 available, 4194304 total]

PCMCIA Slot1 flash directory:
File  Length   Name/status
  1   1711088  dirt/gate/c3600-i-mz 
  2   850      running-config 
[1712068 bytes used, 2482236 available, 4194304 total]

Source file name? running-config 

Destination file name [running-config]? 
Verifying checksum for 'running-config' (file # 2)...  OK

Erase flash device before writing? [confirm]
Flash contains files. Are you sure you want to erase? [confirm]

Copy 'running-config' from flash: device
  as 'running-config' into slot1: device WITH erase? [yes/no] yes 
Erasing device... eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 
...erased
!
 [OK - 850/4194304 bytes]

Flash device copy took 00:00:30 [hh:mm:ss]
Verifying checksum...  OK (0x16)

Copying a Configuration File from a Server to Flash Memory Devices

To copy a configuration file from an FTP server to a Flash memory device, use the following commands in privileged EXEC mode:

 
Command
Purpose

Step 1 

Router# configure terminal

(Optional) Enters global configuration mode. This step is required only if you override the default remote username or password (see Steps 2 and 3).

Step 2 

Router(config)# ip ftp username username

(Optional) Specifies the remote username.

Step 3 

Router(config)# ip ftp password password

(Optional) Specifies the remote password.

Step 4 

Router(config)# end

(Optional) Exits configuration mode. This step is required only if you override the default remote username (see Steps 2 and 3).

Step 5 

Router# copy ftp: [[[//[username:password@]location]/directory]/file name] flash-filesystem:[partition-number:][filename]

Copies the configuration file from a network server to the Flash memory device using FTP.

After you have issued the copy EXEC command, you may be prompted for additional information or for confirmation of the action. The prompting will depend on how much information you provide in the copy command and the current setting of the file prompt global configuration command.

To copy a configuration file from an rcp server to a Flash memory device, use the following commands in privileged EXEC mode:

 
Command
Purpose

Step 1 

Router# configure terminal

(Optional) Enters global configuration mode. This step is required only if you override the default remote username (see Step 2).

Step 2 

Router(config)# ip rcmd remote-username username

(Optional) Specifies the remote username.

Step 3 

Router(config)# end

(Optional) Exits global configuration mode. This step is required only if you override the default remote username (see Step 2).

Step 4 

Router# copy rcp:[[[//[username@]location]/directory]/filename] flash-filesystem:[partition-number:][filename]

Copies the configuration file from a network server to the Flash memory device using rcp. Reply to any router prompts for additional information or confirmation. The prompting will depending on how much information you provide in the copy command and the current setting of the file prompt command.

To copy a configuration file from a TFTP server to the router, use the following command in EXEC mode:

Command
Purpose

Router> copy tftp:[[[//location]/directory]/filename] flash-filesystem:[partition-number:][filename]

Copies the file from a TFTP server to the Flash memory device. Reply to any router prompts for additional information or confirmation. The prompting will depending on how much information you provide in the copy command and the current setting of the file prompt command.

The following example shows the copying of the configuration file named router-config from a TFTP server to the Flash memory card inserted in slot 0 of the Network Processing Engine (NPE) or Route Switch Processor (RSP) card of a Cisco 7500 series router. The copied file is renamed new-config.

Router# copy tftp:router-config slot0:new-config

Reexecuting the Configuration Commands in the Startup Configuration File

To reexecute the commands located in the startup configuration file, use the following command in privileged EXEC m ode:

Command
Purpose

Router# configure memory

Reexecutes the configuration commands located in the startup configuration file.


Clearing Configuration Information

You can clear the configuration information from the startup configuration. If you reboot the router with no startup configuration, the router will enter the Setup command facility so that you can configure the router from scratch.

Clearing the Startup Configuration

To clear the contents of your startup configuration, use the following command in EXEC mode:

Command
Purpose

Router> erase nvram:

Clears the contents of your startup configuration.


For all platforms except the Class A Flash file system platforms, this command erases NVRAM. The startup configuration file cannot be restored once it has been deleted.

On Class A Flash file system platforms, when you use the erase startup-config EXEC command, the router erases or deletes the configuration pointed to by CONFIG_FILE environment variable. If this variable points to NVRAM, the router erases NVRAM. If the CONFIG_FILE environment variable specifies a Flash memory device and configuration filename, the router deletes the configuration file. That is, the router marks the file as "deleted," rather than erasing it. This feature allows you to recover a deleted file.

Deleting a Specified Configuration File

To delete a specified configuration on a specific Flash device, use the following command in EXEC mode:

Command
Purpose

Router> delete flash-filesystem:filename

Deletes a specified configuration file on a specified Flash device.


On Class A and B Flash file systems, when you delete a specific file in Flash memory, the system marks the file as deleted, allowing you to later recover a deleted file using the undelete EXEC command. Erased files cannot be recovered. To permanently erase the configuration file, use the squeeze EXEC command.

On Class C Flash file systems, you cannot recover a file that has been deleted.

If you attempt to erase or delete the configuration file specified by the CONFIG_FILE environment variable, the system prompts you to confirm the deletion.

The following example deletes the file named myconfig from a Flash memory card inserted in slot 0:

Router# delete slot0:myconfig

Specifying the Startup Configuration File

Normally, the router uses the startup configuration file in NVRAM or the Flash file system specified by the CONFIG_FILE environment variable (Class A Flash file systems only) at startup. See the "Specifying the CONFIG_FILE Environment Variable on Class A Flash File Systems" section for more information on setting the CONFIG_FILE variable.

You can also configure the router to automatically request and receive two configuration files from the network server at startup. See the "Configuring the Router to Download Configuration Files" section for more information.

Specifying the CONFIG_FILE Environment Variable on Class A Flash File Systems

On Class A Flash file systems, you can configure the Cisco IOS software to load the startup configuration file specified by the CONFIG_FILE environment variable. The CONFIG_FILE variable defaults to NVRAM. To change the CONFIG_FILE environment variable, use the following commands beginning in EXEC mode:

 
Command
Purpose

Step 1 

Router> copy [flash-url | ftp-url | rcp-url | tftp-url | system:running-config | nvram:startup-config] dest-flash-url

Copies the configuration file to the Flash file system from which the router will load the file upon restart.

Step 2 

Router# configure terminal

Enters global configuration mode.

Step 3 

Router(config)# boot config dest-flash-url

Sets the CONFIG_FILE environment variable. This step modifies the runtime CONFIG_FILE environment variable.

Step 4 

Router(config)# end

Exits global configuration mode.

Step 5 

Router> copy system:running-config nvram:startup-config

Saves the configuration performed in Step 3 to the startup configuration.

Step 6 

Router> show bootvar

(Optional) Allows you to verify the contents of the CONFIG_FILE environment variable.

After you specify a location for the startup configuration file, the nvram:startup-config command is aliased to the new location of the startup configuration file. The more nvram:startup-config EXEC command will display the startup configuration, regardless of its location. The erase nvram:startup-config EXEC command will erase the contents of NVRAM and delete the file pointed to by the CONFIG_FILE environment variable.

When you save the configuration using the copy system:running-config nvram:startup-config command, the router saves a complete version of the configuration file to the location specified by the CONFIG_FILE environment variable and a distilled version to NVRAM. A distilled version is one that does not contain access list information. If NVRAM contains a complete configuration file, the router prompts you to confirm your overwrite of the complete version with the distilled version. If NVRAM contains a distilled configuration, the router does not prompt you for confirmation and proceeds with overwriting the existing distilled configuration file in NVRAM.


Note If you specify a file in a Flash device as the CONFIG_FILE environment variable, every time you save your configuration file with the copy system:running-config nvram:startup-config command, the old configuration file is marked as "deleted," and the new configuration file is saved to that device. Eventually, Flash memory will be full, because the old configuration files still take up memory. Use the squeeze EXEC command to permanently delete the old configuration files and reclaim the space.


The following example copies the running configuration file to the first PCMCIA slot of the RSP card in a Cisco 7500 series router. This configuration is then used as the startup configuration when the system is restarted.

Router# copy system:running-config slot0:config2
Router# configure terminal
Router(config)# boot config slot0:config2
Router(config)# end
Router# copy system:running-config nvram:startup-config
[ok]
Router# show bootvar
BOOT variable = slot0:rsp-boot-m
CONFIG_FILE variable = nvram:
Current CONFIG_FILE variable = slot0:config2

Configuration register is 0x010F

Configuring the Router to Download Configuration Files

You can configure the router to load one or two configuration files at system startup. The configuration files are loaded into memory and read in as if you were typing the commands at the command line. Thus, the configuration for the router will be a mixture of the original startup configuration and the one or two downloaded configuration files.

Network Versus Host Configuration Files

For historical reasons, the first file the router downloads is called the network configuration file. The second file the router downloads is called the host configuration file. Two configuration files can be used when all of the routers on a network use many of the same commands. The network configuration file contains the standard commands used to configure all of the routers. The host configuration files contain the commands specific to one particular host. If you are loading two configuration files, the host configuration file should be the configuration file you want to have precedence over the other file. Both the network and host configuration files must reside on a network server reachable via TFTP, rcp, or FTP, and must be readable.

Understanding the rcp Username

The rcp protocol requires a client to send a remote username on each rcp request to a server. When you copy a configuration file from the router to a server using rcp, the Cisco IOS software sends the first valid username it encounters in the following sequence:

1. The username specified in the boot network or boot host global configuration command, if a username is specified.

2. The username set by the ip rcmd remote-username global configuration command, if the command is configured.

3. The remote username associated with the current tty (terminal) process. For example, if the user is connected to the router through Telnet and was authenticated through the username command, the router software sends the Telnet username as the remote username.

4. The router host name.

For the rcp copy request to execute, an account must be defined on the network server for the remote username. If the server has a directory structure, the configuration file or image is written to or copied from the directory associated with the remote username on the server. For example, if the system image resides in the home directory of a user on the server, specify that user name as the remote username.

If you copy the configuration file to a personal computer used as a file server, the computer must support rsh.

Understanding the FTP Username and Password

The FTP protocol requires a client to send a remote username and password on each FTP request to a server. When you copy a configuration file from the router to a server using FTP, the Cisco IOS software sends the first valid username it encounters in the following sequence:

1. The username specified in the copy EXEC command, if a username is specified.

2. The username set by the ip ftp username global configuration command, if the command is configured.

3. Anonymous.

The router sends the first valid password in the following list:

1. The password specified in the copy command, if a password is specified.

2. The password set by the ip ftp password command, if the command is configured.

3. The router forms a password username@routername.domain. The variable username is the username associated with the current session, routername is the configured host name, and domain is the domain of the router.

The username and password must be associated with an account on the FTP server. If you are writing to the server, the FTP server must be properly configured to accept the FTP write request from the user on the router.

If the server has a directory structure, the configuration file or image is written to or copied from the directory associated with the username on the server. For example, if the system image resides in the home directory of a user on the server, specify that user name as the remote username.

Refer to the documentation for your FTP server for more information.

Use the ip ftp username and ip ftp password commands to specify a username and password for all copies. Include the username in the copy command if you want to specify a username for that copy operation only.

Configuring the Router to Download Configuration Files

You can specify an ordered list of network configuration and host configuration filenames. The Cisco IOS software scans this list until it loads the appropriate network or host configuration file.

To configure the router to download configuration files at system startup, perform at least one of the tasks described in the following sections:

Configuring the Router to Download the Network Configuration File

Configuring the Router to Download the Host Configuration File

If the router fails to load a configuration file during startup, it tries again every 10 minutes (the default setting) until a host provides the requested files. With each failed attempt, the router displays the following message on the console terminal:

Booting host-confg... [timed out]

Refer to the Internetwork Troubleshooting Guide for troubleshooting procedures.

If there are any problems with the startup configuration file, or if the configuration register is set to ignore NVRAM, the router enters the Setup command facility. See the "Using the Setup Command Facility for Configuration Changes" chapter in this publication for details on the Setup command facility.

Configuring the Router to Download the Network Configuration File

To configure the Cisco IOS software to download a network configuration file from a server at startup, use the following commands in global configuration mode:

 
Command
Purpose

Step 1 

Router# configure terminal

Enters global configuration mode.

Step 2 

Router(config)# boot network {ftp:[[[//[username[:password]@]location]/directory] /filename] | rcp:[[[//[username@]location]/directory]/filename] | tftp:[[[//location]/directory]/filename]}

Specifies the network configuration file to download at startup, and the protocol to be used (TFTP, rcp, or FTP).

Step 3 

Router(config)# service config

Enables the system to automatically load the network file upon restart.

Step 4 

Router(config)# end

Exits global configuration mode.

Step 5 

Router# copy system:running-config nvram:startup-config

Saves the running configuration to the startup configuration file.

For Step 2, if you do not specify a network configuration filename, the Cisco IOS software uses the default filename network-confg. If you omit the address, the router uses the broadcast address.

You can specify more than one network configuration file. The software tries them in order entered until it loads one. This procedure can be useful for keeping files with different configuration information loaded on a network server.

Configuring the Router to Download the Host Configuration File

To configure the Cisco IOS software to download a host configuration file from a server at startup, use the following commands in global configuration mode:

 
Command
Purpose

Step 1 

Router# configure terminal

Enters global configuration mode.

Step 2 

Router(config)# boot host {ftp:[[[//[username[:password]@]location]/directory] /filename] | rcp:[[[//[username@]location]/directory]/filename] | tftp:[[[//location]/directory]/filename] }

Specifies the host configuration file to download at startup, and the protocol to be used (FTP, rcp, or TFTP).

Step 3 

Router(config)# service config

Enables the system to automatically load the host file upon restart.

Step 4 

Router(config)# end

Exits global configuration mode.

Step 5 

Router# copy system:running-config nvram:startup-config

Saves the running configuration to the startup configuration file.

If you do not specify a host configuration filename, the router uses its own name to form a host configuration filename by converting the name to all lowercase letters, removing all domain information, and appending "-confg." If no host name information is available, the software uses the default host configuration filename router-confg. If you omit the address, the router uses the broadcast address.

You can specify more than one host configuration file. The Cisco IOS software tries them in order entered until it loads one. This procedure can be useful for keeping files with different configuration information loaded on a network server.

Configuring the Router to Download Configuration Files at System Startup Example

In the following example, a router is configured to download the host configuration file named hostfile1 and the network configuration file named networkfile1. The router uses TFTP and the broadcast address to obtain the file.

Router# configure terminal
Router(config)# boot host tftp:hostfile1
Router(config)# boot network tftp:networkfile1
Router(config)# service config
Router(config)# end
Router# copy system:running-config nvram:startup-config