Configuration Register

The configuration register, often abbreviated as "config register" or simply "config-reg," is a setting on Cisco routers (and some switches) that determines how the device boots up. This 16-bit value influences several aspects of the boot process, including:

  1. Source of the IOS Image: Whether the device boots its operating system (the IOS) from Flash memory, from a TFTP server, or enters into ROM Monitor mode (rommon) for manual intervention.
  2. Console Baud Rate: The speed at which the console port operates, affecting how text appears when connected directly to the router or switch via the console port.
  3. Startup Configuration: Whether the device should ignore the startup configuration stored in NVRAM during boot, which is useful for password recovery scenarios.
  4. Boot Field: Specifies the source of the software image that the router will load.

The configuration register value is typically represented in hexadecimal. Some commonly used values include:

  • 0x2102: The default value on many Cisco routers. The device boots using the system image in flash memory and uses the startup-config in NVRAM.
  • 0x2142: Causes the device to ignore the startup configuration, which is helpful for password recovery. The device boots from the system image in flash, but without loading the saved config.
  • 0x0 or 0x0400: Boots the device into ROM Monitor mode (rommon).

You can view the configuration register setting on a device with the command:

show version

The value will be displayed typically in a line like "Configuration register is 0x2102."

R1#show version | include register Configuration register is 0x2102

To change the configuration register value, you use the global configuration mode command:

config-register [desired_value]

Remember, after setting a new configuration register value, it won't take effect until the next device reboot.

The above discussion primarily involves routers. Cisco switches also have a configuration register, but it plays a much less significant role. Many switch models have a hardwired value of 0xF or 0x0 and these play no role in the way the switch boots up. These are just placeholders. Other models such as the Catalyst 6500 series, do use the register for booting, but the values have different meanings and have fewer options than for routers. Conversely, on the Catalyst 9300 for example, the configuration register is not used and has no meaning. For this reason, the documentation of each switch should be consulted for the impact of the config register on that particular platform and IOS type and version.

Links:

https://forum.networklessons.com/t/cisco-ios-boot-system-image/1495/33?u=lagapides

https://networklessons.com/cisco/ccna-routing-switching-icnd1-100-105/configuration-register-cisco-ios

https://networklessons.com/cisco/ccna-routing-switching-icnd1-100-105/cisco-ios-boot-system-image

https://www.cisco.com/c/en/us/support/docs/routers/10000-series-routers/50421-config-register-use.html

https://community.cisco.com/t5/routing/0x102-or-0x2102/m-p/3862180/highlight/true#M315548

https://community.cisco.com/t5/switching/configuration-register-is-0xf-why/m-p/1036220/highlight/true#M71401

http://www.hopasaurus.com/CISCO_confreg.html

https://www.cisco.com/c/en/us/support/docs/switches/catalyst-6500-series-switches/50560-native6kcrashonspabort-50560.html