Mastering Cisco IOS XR Configuration: A Step‑by‑Step Guide
In the world of service provider networking, Cisco IOS XR is the operating system of choice for high‑performance routers. Whether you’re setting up a new campus gateway or fine‑tuning a carrier‑grade core, a solid grasp of Cisco IOS XR configuration fundamentals is essential. This guide walks you through the full lifecycle—from preparing the hardware to deploying routing protocols, and from enabling high‑availability to troubleshooting common issues—all while keeping best practices front and center.
Cisco IOS XR Configuration: The Essentials
Before diving into command syntax, it’s helpful to understand why IOS XR differs from its predecessor, IOS XE. The key distinctions are its modular, micro‑kernel architecture, which supports separate process domains, and its built‑in rollback and high‑availability mechanisms. These features give IOS XR a resilience edge that is crucial in carrier networks.
Key Differences from IOS XE
- Separate process domains for routing, management, and services.
- Built‑in configuration rollback using a versioned config store.
- Support for virtual routing and forwarding (VRF) at a higher scale.
- Enhanced high‑availability (HA) options, including dual‑router redundant setups.
Preparing Your Environment
Before you touch the CLI, confirm that both the hardware and software are ready to support your desired configuration.
Hardware Requirements
IOS XR runs on a variety of platforms—router models like the NCS 5000 and ASR 9000 series. Each platform has minimum CPU, memory, and interface counts for specific feature sets. Always consult the Cisco IOS XR Software Compatibility Matrix to verify that your device can host the intended services.
Software Image Selection
Choose the appropriate image based on the feature set you need:
- Full IOS XR image – includes all core and service features.
- Feature‑set images – trimmed versions (e.g., Router Routing, Router Security) for smaller footprints.
- Operating System Update – always keep the image updated to benefit from bug fixes and security patches.
Basic Configuration Workflow
Below is a practical sequence that most deployments follow. Each step introduces a command set that can be copied into a text editor for later use.
Accessing the CLI
Connect via console, SSH, or a virtual terminal. The first prompt looks like Router#. Switch to privileged mode with enable and enter the global configuration mode with configure terminal.
Setting Hostname and Domain
Use these two commands for basic identification and DNS resolution:
hostname router1ip domain-name example.com
Creating User Accounts
Secure access with local or AAA‑based authentication. A quick local user setup might look like:
username admin privilege 15 secret 8 $1$abc$xyz
Configuring Interfaces
Assign IP addresses and enable the interface. Example for a GigabitEthernet port:
interface GigabitEthernet1/0/1ip address 10.0.0.1 255.255.255.0no shutdown
Routing Protocols Setup
IOS XR supports OSPF, EIGRP, BGP, and IS-IS. For an OSPF area 0 configuration:
router ospf 1router-id 1.1.1.1network 10.0.0.0 0.0.0.255 area 0
Advanced Features
Once the core routing works, you can add layers of service and resilience.
High Availability and Redundancy
Configure HSRP or VRRP for failover. An HSRP example on a loopback:
interface Loopback0ip address 192.168.1.1 255.255.255.255standby 1 ip 192.168.1.254standby 1 priority 110standby 1 preempt
Service Virtualization
Use VRFs to segregate traffic. A quick VRF definition:
vrf definition CustomerArd 100:1address-family ipv4exit-address-family
Monitoring and Troubleshooting
Enable logging, SNMP, and Syslog. Key commands:
logging buffered 20000snmp-server community public ROsnmp-server host 10.1.1.1 community public
Saving and Verifying
IOS XR uses a versioned config store; commit and rollback become first‑class operations.
Commit, Save, and Rollback
After editing, issue commit to apply changes. If something goes wrong, rollback 1 reverts to the previous commit. Use save to persist the running config to the startup config.
Validation Commands
Verify configuration with:
show running-configshow