Configuration Register on Cisco IOS

Cisco IOS routers and switches use a configuration register for some specific settings. These are settings that are not stored in the startup or running configuration.

There are 16 bits (4 hexadecimal digits) reserved for the configuration register. The two most popular things we can do with the configuration register are:

  • Changing the baud rate from 9600 to something else.
  • Telling the router to ignore the NVRAM during startup so that we can do a password recovery.

Let’s take a look at the default setting of the configuration register:

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

The default value is 0x2102, what does this mean? Let’s break it down:

Hexadecimal 2 1 0 2
Binary 0010 0001 0000 0010
Bit Number 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

The 0x part means that we are looking at hexadecimal characters. 2102 is the default setting that tells the router to use a console speed of 9600 baud and to load the Cisco IOS image from flash memory.

How do we know this? You will have to check the Cisco documentation.There you can find the most common settings but also an explanation of what each bit does. We can see that:

  • bit 13 tells the router to boot the default ROM software if network boot fails.
  • bit 8 disables break.
  • bit 1 tells the router to boot the first system image in onboard flash memory.

Bit 5, 11 and 12 are used to change the baud rate. If you don’t touch these settings then the default will be 9600 baud.

If you want to do a password recovery then we will have to tell the router to ignore the content of the NVRAM (that’s where the startup config is). We do this by enabling bit 6:

Hexadecimal 2 1 4 2
Binary 0010 0001 0100 0010
Bit Number 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

We will get hexadecimal value 0x2142.

How do we configure this on a router or switch? You can do this in the running-configuration:

R1#configure terminal
R1(config)#config-register ?
<0x0-0xFFFF>  Config register number

R1(config)#config-register 0x2142

Just type the hexadecimal value you want to use.

Even though we configure this in the configuration mode, keep in mind these changes are not saved in the running-configuration but directly in the configuration register.

We can verify our work with the show version command:

R1#show version | include register
Configuration register is 0x2102 (will be 0x2142 at next reload)

Make sure you reload the router or switch. You can also change the configuration register from rommon:

rommon 1> confreg 0x2142

That’s all there is to it.

Conclusion

You have now learned how the Cisco IOS configuration register works and how to configure it.

Forum Replies

  1. Hi Rene,
    what is the default value of Configuration register 2101 or 2102 ?? I am little bit confused that you have write here .Thx

    br//zaman

  2. Hello Mohammad

    You are correct. 2102 is the default value for most Cisco platforms. I will let @ReneMolenaar know to fix the typo.

    Thanks again!

    Laz

Ask a question or join the discussion by visiting our Community Forum