CCNA 200-301

CCNP Enterprise

CCNP Security

CCIE Enterprise Lab

CCIE Security Lab

CCNP Service Provider

CCNP Data Center

CCNP Collaboration

CCIE DC Lab

The configuration register on a Cisco router is a 16-bit hardware register stored in non-volatile memory (NVRAM) that directly governs how the device initializes, loads its operating system, and handles administrative console access. Whether performing standard maintenance, troubleshooting boot loops, adjusting console baud rates, or executing a password recovery procedure after administrative lockouts, understanding how to read and modify this register is an essential skill for network engineers.

Modifying the configuration register tells the router where to look for a valid Cisco IOS software image, whether to execute or ignore the stored startup configuration file, and how to handle low-level console break signals. Below is a complete guide to understanding register bit settings, verifying existing values, modifying the register through Cisco IOS and ROMMON modes, and choosing the correct hex value for your operational needs.


Understanding the Cisco Configuration Register and Bit Settings

The configuration register uses a 16-bit binary architecture represented as a four-digit hexadecimal value (for example, 0x2102). Each bit position acts as an on/off switch for a specific low-level hardware or software behavior.

FAQ: Configuration Register Architecture

Q: What do the individual hexadecimal characters represent?
The register contains 16 bits, numbered from Bit 0 to Bit 15. In hexadecimal representation:
– The leading 0x denotes a hexadecimal number.
– The four following digits (e.g., 2, 1, 0, 2) each map to a 4-bit nibble, totaling 16 bits.
– Digit 1 (Bits 15–12): Diagnostic and network boot options.
– Digit 2 (Bits 11–8): Console terminal baud rate and console break key controls.
– Digit 3 (Bits 7–4): OEM controls and NVRAM startup-config bypass.
– Digit 4 (Bits 3–0): Boot field selection.

Q: What is the Boot Field (Bits 00 to 03)?
The lowest four bits determine the source from which the router boots its operating system:
– 0x0 (Bits: 0000): Enters the ROM monitor (ROMMON) prompt directly. The router will not attempt to boot an IOS image automatically.
– 0x1 (Bits: 0001): Boots the first system image stored in onboard ROM or bootflash.
– 0x2 to 0xF (Bits: 0010 to 1111): Enables normal autoboot. The system parses boot system commands in the startup configuration file in NVRAM. If no boot system commands exist, it boots the first valid Cisco IOS image found in flash memory.

Q: What is the function of Bit 6 (0x0040)?
Bit 6 dictates whether the router loads the startup configuration from NVRAM during system initialization:
– Bit 6 = 0: The router reads and executes startup-config from NVRAM upon boot (standard operational behavior).
– Bit 6 = 1 (adding 0x0040 to the register): The router completely ignores the configuration in NVRAM and enters initial System Configuration Dialog (setup mode). This is the key mechanism used for Cisco password recovery.

Q: How do Bits 11 and 12 control console baud rate?
Bits 11 and 12 define the line speed of the physical console port:
– 00 = 9600 bps (industry standard default)
– 01 = 4800 bps
– 10 = 1200 bps
– 11 = 2400 bps
(Note: Some modern platforms allow additional bit permutations for speeds up to 115200 bps).

Q: What does Bit 8 (0x0100) control?
Bit 8 controls console break key monitoring:
– Bit 8 = 0: The console break signal is disabled while IOS is running, preventing accidental interruption of production routers.
– Bit 8 = 1: The break key is recognized during system boot, allowing administrative interruption into ROMMON.


How to Check and Verify Current Register Settings

Before changing any system settings, verify the active register value and determine whether any changes are queued for the next reboot.

Step 1: Access Privileged EXEC Mode

Log in to the router via console or SSH and elevate your privileges:

Router> enable
Password: *********
Router#

Step 2: Execute the Show Version Command

Display the system hardware and software status using the show version command:

Router# show version

Step 3: Inspect the Final Line of Output

Scroll to the very bottom of the command output to find the configuration register status:

Cisco IOS Software, ISR Software (X86_64_LINUX_IOSD-UNIVERSALK9-M)...
...
Technology Package License Information:
...
Configuration register is 0x2102

Step 4: Identify Pending Changes

If a network administrator previously entered a new register value without reloading the hardware, show version indicates both the currently operating value and the scheduled value:

Configuration register is 0x2102 (will be 0x2142 at next reload)
  • Currently active: 0x2102 (the router is currently loading from NVRAM).
  • Pending next reload: 0x2142 (the router will ignore NVRAM on its next boot).

Changing the Configuration Register in Cisco IOS CLI

When the router is running normally and you have administrative CLI access, change the register directly from Global Configuration mode without interrupting production traffic until you choose to reboot.

Step 1: Enter Global Configuration Mode

From privileged EXEC mode, enter global configuration:

Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#

Step 2: Apply the Desired Register Value

Use the config-register command followed by the target 16-bit hexadecimal value. For example, to set the router to standard operational mode:

Router(config)# config-register 0x2102

To configure the router to ignore NVRAM upon the next reboot:

Router(config)# config-register 0x2142

Step 3: Exit Configuration Mode

Return to privileged EXEC mode:

Router(config)# exit
Router#

Step 4: Verify the Pending Setting

Confirm that IOS has registered the upcoming value:

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

Step 5: Save Configuration and Reload (If Applicable)

If you made changes to the running configuration that must persist, save them to NVRAM. When ready to apply the register setting, initiate a system reload:

Router# copy running-config startup-config
Destination filename [startup-config]? [Enter]
Building configuration...
[OK]
Router# reload
Proceed with reload? [confirm] [Enter]

0x2102 vs. 0x2142: Feature and Use Case Comparison

The two most widely used configuration register values across enterprise routing hardware are 0x2102 and 0x2142. Selecting the wrong value can cause a router to come online completely unconfigured.

Feature / BehaviorRegister Value 0x2102Register Value 0x2142
Operational StateNormal Production ModeDisaster Recovery / Maintenance Mode
Startup-Config in NVRAMLoaded and executed automatically at bootIgnored during system boot
Bit 6 State (0x0040)0 (Cleared)1 (Set)
Boot Field (Bits 0–3)0x2 (Parses boot system commands or boots Flash)0x2 (Boots system image from Flash)
Initial CLI PromptStandard hostname prompt (e.g., Branch-R1>)Initial Configuration Dialog prompt (setup mode)
Console Baud Rate9600 bps9600 bps
Console Break KeyEnabled during boot sequenceEnabled during boot sequence
Primary Use CaseDay-to-day enterprise routing operationsAdministrative password recovery and factory reset
Risk if Left in PlaceNone (Expected operational state)Router reboots with a blank configuration every time

Modifying the Register in ROMMON for Password Recovery

If an administrator loses the enable password or is locked out of local AAA authentication, the configuration register must be changed from the ROM Monitor (ROMMON) to bypass NVRAM.

+-----------------------------------------------------------+
| 1. Power cycle router & send Break signal during boot     |
+-----------------------------+-----------------------------+
                              |
                              v
+-----------------------------------------------------------+
| 2. At ROMMON prompt: confreg 0x2142                       |
|    (or o/r 0x2142 on legacy hardware)                     |
+-----------------------------+-----------------------------+
                              |
                              v
+-----------------------------------------------------------+
| 3. Issue "reset" to reboot without loading NVRAM          |
+-----------------------------+-----------------------------+
                              |
                              v
+-----------------------------------------------------------+
| 4. Bypass Setup Dialog -> Enter Privileged EXEC Mode      |
+-----------------------------+-----------------------------+
                              |
                              v
+-----------------------------------------------------------+
| 5. copy startup-config running-config                     |
|    (Restores interface configs & prevents data loss)      |
+-----------------------------+-----------------------------+
                              |
                              v
+-----------------------------------------------------------+
| 6. Reset enable secret / admin user credentials           |
+-----------------------------+-----------------------------+
                              |
                              v
+-----------------------------------------------------------+
| 7. config-register 0x2102                                 |
|    copy running-config startup-config                     |
+-----------------------------------------------------------+

Step 1: Establish a Physical Console Session

Connect a rollover or RJ-45-to-USB console cable directly between your management computer and the router console port. Open a terminal emulator configured for 9600 baud, 8 data bits, no parity, 1 stop bit, and no flow control (9600-8-N-1).

Step 2: Send the Break Sequence During Boot

Power cycle the router. Within the first 60 seconds of power-on, transmit a break signal from your terminal client:
– PuTTY: Right-click window title bar $\rightarrow$ Special Command $\rightarrow$ Break
– Tera Term: Press Alt + B
– macOS / Linux Terminal (screen/cu): Press Ctrl + A, then Ctrl + \ or Ctrl + B

The router will halt the boot sequence and display the ROMMON prompt:

System Bootstrap, Version 15.4(3r)M2, RELEASE SOFTWARE
Copyright (c) 2015 by cisco Systems, Inc.

rommon 1 >

Step 3: Change the Register to 0x2142

At the ROMMON prompt, modify the register to ignore NVRAM contents:

rommon 1 > confreg 0x2142

(Note: On legacy platforms such as the Cisco 2500 or 2600 series, the command syntax is o/r 0x2142).

Step 4: Reset the Router

Reboot the hardware directly from ROMMON:

rommon 2 > reset

Step 5: Bypass the Setup Wizard and Restore Configuration

The router boots into a default unconfigured state because Bit 6 is set. When prompted:

Would you like to enter the initial configuration dialog? [yes/no]: no

Router> enable
Router#

To avoid overwriting your existing network configuration, copy the startup configuration from NVRAM into the active running memory:

Router# copy startup-config running-config
Destination filename [running-config]? [Enter]
6520 bytes copied in 0.428 secs
Branch-Core#

Step 6: Overwrite Credentials and Restore the Default Register

Set a new administrative password, return the configuration register to normal operational mode (0x2102), and save your changes:

Branch-Core# configure terminal
Branch-Core(config)# enable secret YourNewStrongPassword
Branch-Core(config)# config-register 0x2102
Branch-Core(config)# exit
Branch-Core# copy running-config startup-config
Destination filename [startup-config]? [Enter]
Building configuration...
[OK]

Configuration Register Values and Boot Options Cheat Sheet

Below is a reference template containing the most common configuration register values and their operational behaviors.

===========================================================================
CISCO ROUTER CONFIGURATION REGISTER CHEAT SHEET
===========================================================================

HEX VALUE   BOOT BEHAVIOR DESCRIPTION
---------------------------------------------------------------------------
0x2102      DEFAULT PRODUCTION MODE
            - Boots from Flash using startup-config boot directives.
            - Reads and executes startup-config in NVRAM.
            - Console speed: 9600 baud.
            - Console break key: Enabled.

0x2142      PASSWORD RECOVERY / NVRAM BYPASS
            - Boots from Flash without reading NVRAM.
            - Completely ignores startup-config.
            - Prompts for System Configuration Dialog.
            - Console speed: 9600 baud.

0x2101      BOOT FROM ROM / RXBOOT
            - Ignores Flash boot directives.
            - Boots the bootstrap/diagnostic helper image in ROM.
            - Used for emergency IOS maintenance when Flash is corrupted.

0x2100      DIRECT ROMMON BOOT
            - Performs zero image loading.
            - Drops directly to the "rommon >" prompt on boot.
            - Used for manual firmware upgrades and system diagnostics.

0x102       LEGACY PRODUCTION MODE
            - Similar to 0x2102, but does not use Bit 13 (ROM fallback).
            - Standard on select legacy modular routers (Cisco 2500/3600).

===========================================================================
QUICK CLI TEMPLATES
===========================================================================

[Set Standard Production Mode via IOS CLI]
  Router# configure terminal
  Router(config)# config-register 0x2102
  Router(config)# end
  Router# copy running-config startup-config

[Set Password Recovery Mode via IOS CLI (Pending Reboot)]
  Router# configure terminal
  Router(config)# config-register 0x2142
  Router(config)# end

[Set Password Recovery Mode via ROMMON]
  rommon 1 > confreg 0x2142
  rommon 2 > reset

[Restore Normal Boot via ROMMON]
  rommon 1 > confreg 0x2102
  rommon 2 > reset

Cisco Configuration Register Command Reference and Architecture

Command Syntax

config-register <value>

Syntax Description

  • value: A 16-bit hexadecimal number prefixed with 0x, ranging from 0x0 to 0xFFFF. Most network deployments utilize values where the upper nibble is 0x2 (e.g., 0x2102, 0x2142, 0x2100).

Command Defaults

  • Factory standard default: 0x2102 on all modern Cisco Integrated Services Routers (ISR 1000, 4000 series) and Catalyst 8000 Edge Platforms.

Command Modes

  • Global Configuration mode (config-register <value>)
  • ROM Monitor mode (confreg <value>)

Architectural Specifications

  1. Scope of Execution: The config-register command writes the target value into the non-volatile memory controller immediately upon execution. However, changes that modify the boot path or startup-config parsing do not alter the current execution state of Cisco IOS until a full hardware reload occurs.
  2. Persistence: The value stored via config-register survives across system reboots, hardware resets, and power cycles. It remains in effect until manually changed by an administrator or overwritten by a low-level hardware clear jumper.
  3. ROMMON Implementation Differences: On newer Cisco IOS XE platforms (such as the ISR 4000 and Catalyst 8000 series), the ROMMON command syntax remains confreg <value>, but certain legacy platforms also supported boot <image> overrides directly without altering NVRAM registers permanently.

Managing the configuration register is a fundamental administrative function on Cisco routers. While changing the register in IOS via config-register 0x2102 or 0x2142 is straightforward, always confirm your pending configuration with show version before executing a reboot. Finally, whenever password recovery is performed using 0x2142, ensure the register is restored to 0x2102 and the configuration is saved to prevent the router from booting with an empty configuration during subsequent production reboots.

Please follow and like us:
Last modified: November 6, 2026

Author

Comments

Write a Reply or Comment

Your email address will not be published.