CCNA 200-301

CCNP Enterprise

CCNP Security

CCIE Enterprise Lab

CCIE Security Lab

CCNP Service Provider

CCNP Data Center

CCNP Collaboration

CCIE DC Lab

Configuring a factory-fresh or recently wiped Cisco router or switch begins long before you enter security commands or assign IP addresses. In network engineering, the “first step” has two distinct phases: establishing physical out-of-band management access to the hardware, and navigating the initial command-line interface (CLI) boot sequence. Without completing the physical connection and reaching Global Configuration mode, no administrative changes can take place.

Understanding this initial sequence ensures that Day-0 provisioning proceeds smoothly, securely, and in accordance with enterprise networking standards.


Establishing Physical Out-of-Band Console Access

Because a brand-new Cisco Internetwork Operating System (IOS) device lacks an IP address, remote network protocols such as SSH or Telnet are unavailable. Initial provisioning requires an out-of-band direct connection through the physical management console port.

Follow this sequential procedure to establish your management terminal session:

Step 1: Select and Connect the Console Cable

Inspect the physical chassis of your Cisco router or switch to identify the management port, labeled CONSOLE (typically outlined in light blue). Connect using one of the following hardware setups:
* Traditional RJ-45 Console Port: Connect a light-blue RJ-45-to-DB9 rollover cable into the device’s console port. Attach the DB9 serial end to a USB-to-RS232 serial adapter plugged into your workstation.
* USB Console Port: Modern Cisco devices feature a mini-B, micro-B, or Type-C USB console port. Connect a standard USB cable directly from your computer to this port. (Ensure the appropriate Cisco USB console driver is installed on your operating system.)

Step 2: Identify the Operating System Communications Port

Open your computer’s device manager or terminal to locate the assigned port:
* Windows: Open Device Manager, expand Ports (COM & LPT), and note the assigned identifier (e.g., COM3).
* macOS / Linux: Open a terminal and run ls /dev/tty.* or dmesg | grep tty to locate the serial device node (e.g., /dev/tty.usbserial-XXXX).

Step 3: Configure Terminal Emulator Serial Settings

Launch a terminal emulation client such as PuTTY, Tera Term, SecureCRT, or Minicom. Select Serial as your connection type, specify the COM port identified in Step 2, and enter the standardized Cisco serial communication parameters:

  • Baud Rate (Speed): 9600
  • Data Bits: 8
  • Parity: None
  • Stop Bits: 1
  • Flow Control: None

These parameters are collectively referred to as 9600 8-N-1.

Step 4: Initiate the Session and Power On

Open the connection in your terminal emulator and power on the Cisco device. You will observe the Power-On Self-Test (POST) routines, the bootstrap loader executing from ROM, and the decompression of the Cisco IOS system image into RAM.


The Initial System Configuration Dialog: Frequently Asked Questions

Once Cisco IOS finishes loading into memory without finding a valid configuration file (startup-config) in non-volatile RAM (NVRAM), it halts at an interactive prompt. Handling this prompt correctly is critical.

What is the System Configuration Dialog prompt?

When an unconfigured device boots, IOS displays the following message:

         --- System Configuration Dialog ---

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

This prompt launches an automated setup script designed to gather basic administrative and interface details through a sequential question-and-answer wizard.

Should I answer “yes” or “no”?

Always enter no (or press Ctrl+C).

Network administrators virtually always bypass this dialog. Answering no drops you directly to the Cisco IOS command line, allowing precise, granular configuration.

Why do network engineers bypass the setup wizard?

  1. Inefficient Workflow: The script prompts for parameters linearly. If you mistype an entry halfway through, you cannot easily backtrack without restarting the entire wizard.
  2. Outdated Defaults: The dialog often prompts for obsolete protocols, uses weak encryption methods, and does not configure modern security controls such as SSH v2 or role-based user accounts.
  3. Lack of Flexibility: It does not account for complex enterprise configurations such as VLAN tagging, dynamic routing protocols, or modular interface setups.

What should you do if you accidentally enter the dialog?

If you mistakenly type yes, you can abort the script at any point by sending a break signal or pressing Ctrl+C. Cisco IOS will terminate the wizard and display the standard command prompt:

Press RETURN to get started!

Pressing Enter presents the initial User EXEC prompt (Router> or Switch>).


Navigating Cisco IOS Modes to Access Configuration

Cisco IOS relies on a hierarchical mode structure. Each mode grants access to a specific subset of commands, indicated by a unique prompt character. To apply any system-wide setting, you must navigate from the unprivileged monitoring mode to Global Configuration mode.

User EXEC Mode (Router>) 
       │
       ▼ [Command: enable]
Privileged EXEC Mode (Router#) 
       │
       ▼ [Command: configure terminal]
Global Configuration Mode (Router(config)#)
       │
       ▼ [Commands: interface ..., line ..., etc.]
Sub-Configuration Modes (Router(config-if)#, Router(config-line)#)

Step 1: User EXEC Mode (Router>)

Upon pressing Enter at boot, you arrive at User EXEC mode. This level allows basic, non-disruptive inspection commands (such as ping, traceroute, and limited show commands), but prohibits any operational or configuration changes.

To escalate privileges, enter the enable command:

Router> enable

(If an enable password or secret has already been established, IOS will prompt for authentication here; on a factory-default unit, press Enter.)

Step 2: Privileged EXEC Mode (Router#)

Your prompt changes from a right angle bracket (>) to a hash mark (#), signifying Privileged EXEC mode (also known as Enable mode). In this mode, you can view detailed hardware status, inspect the active configuration (show running-config), reboot the device (reload), and manage file storage.

However, you still cannot modify device parameters directly. To begin making configuration changes, execute:

Router# configure terminal

(Network engineers frequently abbreviate this command as conf t.)

Step 3: Global Configuration Mode (Router(config)#)

The prompt appends (config)#, confirming you are in Global Configuration mode. Commands entered at this prompt affect the device as a whole (such as the hostname, global security parameters, and routing services).

Step 4: Accessing Sub-Configuration Modes

From Global Configuration mode, specific subsystems are configured by entering dedicated sub-modes:
* Interface Configuration: Router(config)# interface gigabitethernet 0/1 results in Router(config-if)#
* Line Configuration (Console/VTY): Router(config)# line console 0 results in Router(config-line)#
* Routing Protocol Configuration: Router(config)# router ospf 1 results in Router(config-router)#

To return one level backward in the hierarchy, type exit. To exit all sub-modes immediately and return to Privileged EXEC mode (Router#), type end or press Ctrl+Z.


Baseline Device Configuration Checklist

Once Global Configuration mode is active, follow this standardized sequence of foundational tasks to establish administrative security, operational stability, and management connectivity.

  1. Assign a Unique Hostname: Replace generic system prompts (Router or Switch) with a standardized network identifier using hostname <NAME>. This prevents accidental configuration of the wrong device during multi-terminal operations.
  2. Disable Unintended DNS Lookups: By default, entering a mistyped command at the CLI causes IOS to broadcast a DNS lookup, freezing the terminal for up to several minutes. Enter no ip domain-lookup to disable this behavior.
  3. Protect Privileged EXEC Access: Secure Enable mode with strong, salted hashing rather than plain text. Apply enable secret <PASSWORD>. Avoid the deprecated enable password command.
  4. Encrypt Plaintext Passwords in Memory: Prevent shoulder-surfing and casual exposure of passwords in configuration files by executing service password-encryption. This applies Cisco Type 7 obfuscation across unencrypted lines.
  5. Secure the Physical Console Port: Restrict local terminal access by applying credentials, enforcing an inactivity timer, and preventing console messages from disrupting command entry:
  6. Navigate to line con 0.
  7. Enable logging synchronous to keep syslog output from interrupting your typing.
  8. Apply exec-timeout 10 0 to log out idle sessions after 10 minutes.
  9. Require local authentication via login local.
  10. Deploy Secure Shell (SSH) for Remote Administration: Disable legacy, unencrypted Telnet sessions in favor of SSH version 2:
  11. Define an administrative domain name: ip domain-name <DOMAIN>.
  12. Generate an asymmetric RSA key pair: crypto key generate rsa modulus 2048.
  13. Enforce modern protocol standards: ip ssh version 2.
  14. Under virtual terminal lines (line vty 0 4), mandate SSH transport using transport input ssh and configure login local.
  15. Create a Local Administrative Account: Configure a dedicated administrator user with full administrative privileges: username <ADMIN_USER> privilege 15 secret <PASSWORD>.
  16. Configure Management Connectivity:
  17. For a Switch: Assign an IP address to the default management Switch Virtual Interface: interface vlan 1, followed by ip address <IP> <SUBNET_MASK> and no shutdown. Then configure ip default-gateway <GATEWAY_IP>.
  18. For a Router: Navigate to the connected routed interface (e.g., interface gigabitethernet 0/0), configure the IP address, and issue no shutdown.
  19. Define an Authorized Access Banner: Legal frameworks require that systems display an explicit warning notice prior to authentication. Use banner motd # Authorized Access Only! Violators will be prosecuted. # to prevent implied public consent.
  20. Persist the Configuration to NVRAM: Changes made in Global Configuration mode alter only the volatile running-config residing in active RAM. Commit these changes permanently by returning to Privileged EXEC mode (end) and executing copy running-config startup-config (or write memory).

Baseline Configuration Script Template

Below is a production-ready boilerplate template containing baseline security and management parameters. Replace all bracketed placeholder variables (e.g., <HOSTNAME>, <IP_ADDRESS>) with your environment’s specific values before pasting the commands into Global Configuration mode.

! ===================================================================
! CISCO IOS DAY-0 BASELINE CONFIGURATION TEMPLATE
! ===================================================================

! --- System Identification & DNS Behavior ---
hostname <HOSTNAME>
no ip domain-lookup
ip domain-name <DOMAIN_NAME>

! --- Administrative Authentication ---
enable secret <ENABLE_SECRET_PASSWORD>
username <ADMIN_USERNAME> privilege 15 secret <ADMIN_PASSWORD>

! --- System Security & Obfuscation ---
service password-encryption
ip ssh version 2

! --- Cryptographic Key Generation ---
! Note: Run this line manually if pasting via script
crypto key generate rsa modulus 2048

! --- Console Port Hardening ---
line con 0
 logging synchronous
 exec-timeout 10 0
 login local
 exit

! --- Remote Terminal (VTY) Hardening ---
line vty 0 4
 transport input ssh
 logging synchronous
 exec-timeout 10 0
 login local
 exit

! --- Legal Access Banner ---
banner motd ^C
*******************************************************************
* WARNING: UNAUTHORIZED ACCESS TO THIS NETWORK DEVICE IS PROHIBITED *
* All connections are monitored, logged, and audited.             *
*******************************************************************
^C

! --- Management Interface Provisioning ---
! Switch configuration example (SVI Vlan 1):
interface vlan 1
 description In-Band Management SVI
 ip address <MGMT_IP_ADDRESS> <SUBNET_MASK>
 no shutdown
 exit
ip default-gateway <DEFAULT_GATEWAY_IP>

! --- Commit Volatile Memory to Persistent Storage ---
end
copy running-config startup-config

Cisco IOS Configuration Architecture and Documentation

Cisco’s official technical architecture defines specific memory structures and bootstrap phases that govern how these commands take effect.

Configuration File Architecture

A Cisco IOS device manages state across two primary memory subsystems:

  • Running Configuration (running-config): Maintained directly in dynamic RAM (DRAM). This file represents the live, operational state of the operating system. Any CLI command executed in configuration mode modifies this file instantly. It is volatile; if power is cut before saving, all modifications are lost.
  • Startup Configuration (startup-config): Stored in Non-Volatile RAM (NVRAM). This file retains its contents across power cycles and hardware reboots. During the bootstrap sequence, the device reads NVRAM and parses startup-config into DRAM to build the running-config.

The fundamental provisioning transaction:

Router# copy running-config startup-config

commits live memory state to persistent NVRAM storage.

Bootstrapping Hierarchy

When a device powers on, it transitions through three primary architectural layers:
1. ROM Monitor (ROMMON): Low-level firmware stored in read-only memory responsible for diagnostic POST operations, disaster recovery, and password-recovery operations.
2. Bootloader / Flash Memory: Locates, verifies, and decompresses the Cisco IOS software image (.bin) from non-volatile flash storage into system DRAM.
3. Cisco IOS Operating Environment: Initializes kernel subsystems, reads configuration registers (standard value 0x2102), and checks NVRAM for a startup-config. If absent, it invokes the System Configuration Dialog described above.

Official Documentation References

To access complete command syntaxes, argument constraints, and hardware-specific configurations, consult the authoritative documentation maintained on the Cisco Technical Support portal:

  • Cisco IOS Configuration Fundamentals Configuration Guide: The definitive manual detailing CLI navigation, system image management, configuration file manipulation, and initial device setup.
  • Cisco IOS Master Command List: An exhaustive alphabetical reference detailing every parameter, execution mode, and default setting across all IOS feature sets.
  • Product-Specific Hardware Installation Guides (HIG): Platform-level documentation specifying console pinouts, internal baud settings, and supported USB serial chipset drivers for individual switch and router models.

Properly provisioning a Cisco device begins with connecting over a physical console cable configured for 9600 8-N-1 serial parameters. Once the boot process completes, bypass the initial System Configuration Dialog to maintain full manual control over your configuration. From there, elevate privileges from User EXEC to Global Configuration mode using enable and configure terminal. Finally, apply your baseline management and security parameters and save your work to NVRAM to complete Day-0 setup.

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

Author

Comments

Write a Reply or Comment

Your email address will not be published.