为什么 cisco 路由器默认将引导序列存储在 NVRAM 中而不是闪存中?

网络工程 思科 路由器
2021-07-26 02:55:23

如果 cisco 路由器的 IOS 存储在闪存中,那么为什么默认行为 (config reg: 0x2102) 从 NVRAM 而不是闪存获取引导序列?

该消息来源指出,在运行时,路由器上的闪存是 ROM。所以我能看到将引导序列放在 NVRAM 中的唯一原因是能够在运行时对其进行编辑,但这真的有必要吗?无论如何,您必须重新启动才能使其生效。那么通过将其设为默认值会获得什么?

手动更改启动顺序是否在实践中经常发生?

2个回答

闪存是将 IOS 映像存储在压缩文件 (.bin) 中的位置。NVRAM 是来自闪存的未压缩文件。

在密码恢复过程中,有时需要更改配置寄存器。它还可用于:

  • 路由器如何启动(进入 ROMmon、NetBoot)
  • 启动时的选项(忽略配置,禁用启动消息)
  • 控制台速度(终端仿真会话的波特率)

思科在所有路由器上配置注册命令/使用的完整指南:https : //www.cisco.com/c/en/us/support/docs/routers/10000-series-routers/50421-config-register-use.html

就个人而言,我只在实践中使用过几次更改配置寄存器,主要是旧 Cisco 2600 和 2800 系列路由器上的密码恢复。

有一次我不得不摆弄波特率,以便通过控制台更快地将文件发送到路由器。

在 Cisco IOS 中,“NVRAM”是启动配置所在区域的名称。

“flash:”(或在某些 Cisco 平台上,“bootflash:”)是用户文件所在区域的名称。在全新出厂的设备上,该区域包含 Cisco IOS 映像,但可用于存储任意文件。

现在:在大多数现代 Cisco IOS 设备上,这些名称(“NVRAM”和“闪存”)与实现存储的底层硬件存储设备之间不一定存在 1:1 的关系。

例如,请参阅此处的 Cisco 4500X 交换机的数据表在“CPU 和内存”部分下,您只能看到 2GB“NVRAM”的一个条目。这实际上是指在基板上的单个2GB闪存芯片,其包含用于存储两个所述IOS NVRAM以及在IOS“闪光:”文件系统。IOS 软件将单个硬件闪存设备划分为逻辑“NVRAM”和“flash:”区域。如果您运行 IOS EXEC 命令“format flash:”,这将清除“flash:”分区的内容但保留 NVRAM 分区完整(即保持启动配置完整),尽管两个分区驻留在同一个物理上设备,至少在 Cisco 4500X 的情况下是这样。

所以来回答这个问题:flash 是允许用户存储任意文件的区域,并受制于“格式化”之类的操作。flash 的这种用法不能干扰启动配置 - 毕竟,你不希望“wr mem”失败,因为你已经用你的假期照片填满了 flash :-) - 这就是为什么它是一个很好的将启动配置的存储驻留在单独的分区上的想法,出于历史/传统原因,该分区称为 NVRAM。