寄存器值

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在所有的思科路由器设备中,都有一个位于NVRAM中的16位软件寄存器,它又叫做管理配置寄存器。

在这个配置寄存器中,记录着很多跟路由器运行相关的参数。

其实,若把它比喻成思科路由器的管家婆,一点都不会过分。

一、配置寄存器的物理结构
配置寄存器其物理结构其实很简单,就是在NVRAM中的16个数字。

配置寄存器的这16位从左到右分别为位十五、位十四到位零。

而每一个位都存储了一个二进制的值,也就是说,要么0,要么就是1。

路由器在启动的时候,就是去判断这些位数上的值分别是什么,然后采取对应的操作。

默认情况下,配置寄存器设置为从闪存加载IOS软件,并且从NVRAM内存中查找并加载配置文件。

此时,这个配置寄存器的值就为:第十三、第八位、第一位为1,其他位都为0。

若网络管理员要管理要思科路由器设备,则了解这个配置寄存器各种设备的含义是非常必要的。

在实际工作中,若要记住这十六位的二进值比较困难。

我们网络管理员往往喜欢利用十六进制的值来表示这个十六位数字的二进制置。


0x2102就表示第十三、第八位、第一位为1,其他位都为0。

其中前面的0x表示这个数字是十六进制。

而十六进制与二进制的转换,即可以通过专业的转换器,也可以通过手工转换,具体的转换方法可以参考一些技术说明书。

笔者在这里也就不过度展开了。

不过笔者仍然像罗嗦一句,其实在微软操作系统有一个计算器小工具,凭借这个工具就可以轻松的把十六进制转换为二进制的值。

如下图:
首先在进制选项内选中十六进制,然后把十六进制的值输入进去,如2102。

注意不用输入前面的十六进制标示符。

然后再选择二进制,此时,计算器就会把十六进制的值直接转换为二进制的值。

不过在看这个数字的时候,需要注意一点。

若想把二进制的转换为十六进制的,按相反操作即可。

在配置寄存器中,最左边的一位为十五位;最右边的一位为第零位。

也就是说,不是以一开头的。

这在刚开始对配置寄存器进行管理的时候,可能会误解。

另外,我们网络管理员还需要了解一些常见的配置其所对应的含义。

这对我们日后进行故障排查会起到很大的作用。

如寄存配置器中的第零位到第三位,四个位数的二进制表示路由器的启动顺序,叫做启动字位。

如网络管理员若想路由器启动时采用ROM监控模式,则就需
要将配置寄存器的值设置为2100(十六进制),也就是说,把后面几位的数字都设置为零。

如果网络管理员想要启动存储在ROM中的IOS映像文件,则就需要将配置寄存器的值设置为2101(十六进制),也就是说,把最后四位数字改为0001即可。

等等。

网络管理员若想要管理好思科路由器的话,则必须掌握常见代码的含义。

不过全部记住这些代码的话,确实有个难度。

让我全部记住,也很有困难。

不过我有小聪明,就是把这些代码所代表的含义做成一个小表格。

到有需要的时候,拿出来对照一下即可。

另外,寄存配置器另外一个重要的功能,就是可以利用它来恢复路由器的口令。

当网络管理员不小心忘记路由器密码的话,这个特别有用。

二、如何查看路由器当前配置值?
若想对寄存器配置进行修改,则首先需要知道配置器值现在是多少,否则的话,也就无从改起。

在思科路由器的IOS软件中,有一个现存的命令,可以帮助网络管理员来显示配置寄存器中的值。

这个命令就是Show Version。

这个命令会显示路由器IOS版本、系统硬件配置、配置文件的名称和来源、启动映像文件等相关的信息。

在最后,其显示的就是路由器寄存器配置的当前值。

不过其是利用十六进制来表示的。

网络管理员在有需要的情况下,可以通过计算器对其进行转换。

从这里也可以看出,随身带一份寄存配置器代码表的重要性。

三、何时需要更改寄存器的配置值?
配置寄存器虽然可以控制路由器的运行思路,但是在通常情况下,我们都不建议通过直接更改配置寄存器的方式来维护路由器。

这就相当于在管理软件使用的使用,能够在应用程序界面对数据进行维护的,就在应用程序进行维护,而不是直接到数据库中进行更改。

因为在应用程序中对于数据的修改往往会加入一些审查的条件,来保障数据的一致性。

所以笔者认为,除非有特殊的需要,不然的话,请不要直接更改配置寄存器的值。

正常情况下,若有下面的需求的话,则可以尝试更改配置寄存器的值。

如网络管理员需要强制系统进入ROM监控模式,此时可以把配置寄存器的值改为2100。

如当网络管理员需要选择启动来源和默认的启动文件名,可以把配置寄存器的值设置位2102 等等。

以上都是十六进制表示的值。

另外,网络管理员若想控制广播地址、启用或者禁用中断功能(恢复路由器口令时需要)、设置控制台终端波特率、从Rom中加载操作软件、或者启用从TFTP简单文件传输协议启动服务器需要通过修改配置寄存器的值来实现。

换句话说,若在修改配置寄存器的值以外,还有其他方法可以实现某个需求的,则最好不要采用修改配置寄存器的方法。

除非你对自己的专业水平有很强的自信。

另外需要强调的一点就是,在修改寄存配置器的值时一定要了解寄存配置器的当前值。

因为在必要的情况下,如网络管理员发现修改寄存器配置值之后,问题更多了,就需要对其进行恢复。

而且,寄存配置器的修改往往是临时性的。

或者说只是出于故障排除的需要。

等到故障排除之后,网络管理员往往需要恢复以前的设置。

所以,了解配置寄存器当前的配置是非常有必要的。

四、修改配置寄存器的值
在思科路由器中,我们可以利用config-register命令来对配置寄存器的值来进行更改。

基本上所有的思科路由器中都支持这个命令。

不过在执行这个命令的时候,需要注意如下几点。

一是在路由器的IOS软件中,是利用十六进制的值来表示配置寄存器中的值。

也就是说,我们若想把配置寄存器的值修改为0x2101的话,就需要利用命令config-register 0x2101莱完成。

也就是说,要在数字前面加入十六进制的标示符号。

否则的话,系统就不会接受。

二是修改配置寄存器的值以后,不能够马上起作用。

而是需要路由器重载之后,这个配置才会起效。

如配置寄存器原来的值为0x2101,我们把它改为0x2100后,在利用Show Version命令查看当前寄存器配置值的时候,仍然显示的是
0x2101,而不是修改后的0x2100。

这主要是因为配置寄存器要起效的话,必须重载以后才行。

没有重载之前,修改后的配置无效。

而Show Version显示的是当前的配置,故不能够显示变化后的内容。

也就是说,要在路由器重载之后,才能够利用Show Version命令显示修改后的值。

五、利用修改配置寄存器实现对路由器口令的恢复
当网络管理员因为忘记路由器的口令而被挡在路由器外面的时候,我们就可以通过修改配置寄存器的值来恢复路由器的口令。

默认情况下,配置寄存器存储的值为0X2102,他的含义就是查找并加载存储在NVRAM中的路由器配置。

如果要恢复路由器口令的话,就需要把配置寄存器的值修改为0X2142,即把第六位的二进制值更改为1。

更改后路由器重新启动时,就会告诉路由器忽视NVRAM中的配置文件。

这就是路由器口令恢复的基本原理。

当然不同IOS软件版本具体的操作方式可能有所不同,但是,这个配置寄存器的修改方式是一样的。

以上就是关于配置寄存器修改的点点滴滴。

不过要说明的是,除非有上面列举出来的具体事项,否则的话,请不要随意修改配置寄存器的值。

另外,在修改之前,最好利用相关命令查看配置寄存器的值,并利用笔记录下来。

当因为配置错误而导致路由器新的故障时,则可以再把寄存器的配置值设置为以前的值。

相关文档
最新文档