ASR-920-4SZ-A路由器初始化教程

ASR-920-4SZ-A初始化

一、背景与适用场景

Cisco ASR-920-4SZ-A 属于 Cisco ASR 920 系列(IOS-XE)汇聚业务路由器,常用于城域网/接入侧的 PoP 汇聚、专线接入与 1G/10G 业务收敛。和传统的 2960/ISR 平台不同,ASR 920 的启动流程由 ROMMON 控制,配置寄存器(configuration register)决定开机时是否加载 NVRAM 中的 startup-config。

这篇文章要处理的,就是通过 ROMMON 的 confreg 把设备"初始化"到已知状态。典型场景有三种:

  • 忘记 enable / 特权密码:设备能启动、能进 Router>,但进不去特权模式,需要不丢业务配置地重置密码;
  • 二手或库存设备上电初始化:设备带着上一手的配置,需要确认启动寄存器、清理或重建配置;
  • 误操作导致"每次重启配置都丢":上一手做过密码恢复但忘记了把寄存器改回 0x2102,表现为配置"不落盘",实际是开机根本没加载 startup-config。

核心操作只有两条 ROMMON 命令:

rommon 1 > confreg 0x2142

You must reset or power cycle for new config to take effect
rommon 2 > reset

但真正决定操作成败的是前后的配套动作:先备份、把原配置拉回运行态、改完密码再改回 0x2102 并保存。下面按顺序说明。

二、准备条件

  • Console 线:RJ-45 rollover 线 + USB 转串口(或 RJ-45 转 USB 控制台线)。终端参数 9600-8-N-1、无校验、无流控(ASR 920 控制台常见默认 9600 bps;如果满屏乱码,再依次试 115200、57600,并检查 line con 0 下的 speed 配置)。
  • 终端软件必须能发 Break:PuTTY 用 Ctrl+Break(部分键盘需配 Special Command 菜单里的 Break);SecureCRT 用工具栏 Send Break;macOS/Linux 下 screen /dev/tty.usbserial-XXXX 9600 之后用 Ctrl+A 再按 b;minicom 用 Ctrl+A 再按 F。
  • 先备份、再动手:只要能登录,就先留档,并把 startup-config 复制到外部介质:
Router> enable
Router# show version
Router# show startup-config
Router# copy startup-config usbflash0:backup-startup.cfg
Router# copy startup-config tftp://192.168.1.100/asr920-backup.cfg
  • 维护窗口与电源可控:整个流程至少涉及一次 reset,密码恢复期间不要让别人同时改配置。

三、详细步骤

步骤 1:建立 Console 会话

把终端软件参数设成 9600-8-N-1、无流控,连上 Console,按几次回车确认能看到 Router> 或 Router# 提示符(有提示符说明串口参数对了)。退出所有可能争用串口的程序(例如另一台电脑上的抓包/管理软件)。

步骤 2:重启设备并在窗口期发送 Break

给设备断电(电源开关 / PDU / 拔电源线),重新上电,在 POST 自检结束后的几秒内连续发送 Break。ASR 920 留给 Break 的窗口很短,一般只有 3~5 秒。没进 ROMMON 就再断电重来一次,多试几次比盲改参数快。

成功后会看到类似输出:

System Bootstrap, Version 16.x
...
rommon 1 >

步骤 3:确认 ROMMON 状态与当前寄存器值

rommon 1 > set
rommon 2 > confreg

set 显示 ROMMON 环境变量(可以看到 ROMmon 版本、启动镜像来源等);单独执行 confreg 会回显当前配置寄存器值。生产设备的正常值通常是 0x2102,先记下它,恢复完要改回去。

步骤 4:把配置寄存器改成 0x2142(忽略 startup-config)

rommon 1 > confreg 0x2142

You must reset or power cycle for new config to take effect
rommon 2 > reset

含义:0x2142 是把正常值 0x2102 的 bit1(掩码 0x0040)置位,表示"开机不加载 NVRAM 里的 startup-config"。所以设备会以空配置启动,NVRAM 里的配置并没有被删除,这是密码恢复不丢配置的关键。

步骤 5:进入无密码的特权模式并拉回原配置

重启后设备会停在 Router>(用户模式),此时 enable 不需要密码:

Router> enable
Router# copy startup-config running-config

这一步把 NVRAM 里的原配置合并进运行配置,接口、路由、ACL 全部回来(配置量大时会有短暂的接口翻动)。如果设备本来就是空的,这一步会提示没有 startup-config,直接进入下一步即可。

注意:合并回来的配置里通常也包含旧密码行,所以下一步要把旧方式的密码明确清掉再写新的。

步骤 6:修改密码

Router# configure terminal
Router(config)# no enable password
Router(config)# enable secret Cisco@123
Router(config)# username admin privilege 15 secret Cisco@123
Router(config)# end
  • no enable password 清掉老的明文写法的 enable 密码,避免它优先于或干扰 enable secret;
  • enable secret 是哈希存储,优先于 enable password;
  • 如果原配置里有 username xxxx password ... 明文行,建议一并改成 username xxxx privilege 15 secret ...;
  • 如果设备启用了 AAA,确保本地账号是 privilege 15,这样在 TACACS/RADIUS 不可达时能本地兜底。

步骤 7:把配置寄存器改回 0x2102 并保存

Router# configure terminal
Router(config)# config-register 0x2102
Router(config)# end
Router# show version | include configuration register
Router# copy running-config startup-config

show version 最后一行应显示 Configuration register is 0x2102(若仍显示 0x2142,说明没生效,重新敲一次)。

步骤 8:重启验证

Router# reload
Proceed with reload? [confirm]

四、验证方法

  1. Router# show version:最后一行 Configuration register is 0x2102;
  2. 退出登录,用新密码重新 enable,确认鉴权正确、权限是 15;
  3. Router# show running-config | include ^enable|^username:只应有 enable secret 和新的用户名行,没有旧密码残留;
  4. Router# show startup-config | include secret:能看到新密码的哈希,说明已落盘;
  5. 做一次真实的断电重启,再登录一次。这一步能暴露"忘记改回 0x2102"的问题——比等到半年后真掉电才发现强得多;
  6. Router# show bootvar 与镜像校验:确认下个启动镜像存在(show flash: 或 dir bootflash:)。
Router# show version
Router# show running-config | include ^enable|^username
Router# show startup-config | include secret
Router# show bootvar
Router# reload

五、常见坑与注意事项

  1. 忘记把 0x2142 改回 0x2102——最经典的事故。现象是"每次重启配置都丢",其实配置一直在 NVRAM 里,只是没被加载。补救:重新进 ROMMON 执行 confreg 0x2102 + reset,配置立刻回来,不要急着重配。
  2. 不要用 write erase / erase startup-config 代替本流程。那是真删配置。正确顺序是:enable → copy startup-config running-config → 改密码 → config-register 0x2102 → 保存。
  3. Break 窗口极短。ASR 920 上电后自检结束时才给几秒;连不上 ROMMON 就断电重来,先把 Break 键准备好、连按,而不是改串口参数。
  4. 寄存器值不要乱填:0x2102 正常启动;0x2142 开机忽略 startup-config(密码恢复标准值);0x2100 会停在 ROMMON。填错可能让设备起不来,事后一定核对 show version。
  5. AAA 覆盖本地账号:原配置若为 aaa authentication login default group tacacs+ local,TACACS 挂掉会回落本地;必须确认本地 privilege 15 账号存在且 secret 正确,否则改完密码仍然登不进特权模式。
  6. Console 速率可能被改过:line con 0 下如果有 speed 115200,恢复后控制台就变成 115200,别再按 9600 连。
  7. 先备份再操作:至少把 startup-config 复制到 usbflash0: 或 TFTP;整个过程中任何一次意外断电,NVRAM 可能处于中间状态。
  8. 只保留 secret,清掉 password:老配置里的 enable password、明文 username ... password 建议全部替换为 secret 写法,顺手把口令策略补齐(service password-encryption 只是弱混淆,不是安全措施)。
  9. 新版本固件的启动校验:部分较新 IOS-XE 版本启用了镜像签名/安全启动,Break 进 ROMMON 的行为可能受限;若始终进不去 ROMMON,按 Cisco 官方文档确认该版本是否允许控制台中断,必要时走 TAC。
  10. 恢复完成后做一次巡检:show interfaces status、show ip interface brief、show logging,确认合并配置没有引入接口 shutdown 或 ACL 命中异常,再交回业务。

记住整个流程的一句话版本:备份配置 → Break 进 ROMMON → confreg 0x2142 → reset → copy startup-config running-config → 改密码 → config-register 0x2102 → 保存 → 断电重启复验。