0×1.路由器的基本硬件组成
路由器与计算机在硬件结构上十分类似,下面是组成路由器的核心硬件:
CPU:执行操作系统的功能,包括系统初始化,路由和交换等功能。
闪存(Flash Memory):在大多数Cisco路由器上闪存被用来保存路由的IOS,设备断电后,闪存的内容不会丢失。
只读储存器(Read Only Memory,ROM):ROM用来储存那些不经常变动的内容,包括Bootstrap instructions(引导程序)、Basic diagnostic software(基本诊断程序)、Scaled-down version of IOS(缩小版的IOS)。设备断电后,只读储存器的内容不会丢失。
随机存取存储器(Random Access Memory,RAM):RAM用来保存一些临时的指令和数据,包括Operating System(运行的操作系统)、Running-Config(运行配置文件)、IP Routing Table(IP路由表)、ARP Cache(ARP缓存,用于路由器的以太网接口)、Packet Buffer(包缓冲区);设备断电后,RAM中的内容全部丢失。
非易失性随机存取存储器(NonVolatile RAM,NVRAM):路由器使用NVRAM来保存启动配置文件(startup-config),如果希望路由重启后所做的修改任然起作用,就需要将RAM中的Running-Config保存到NVRAM的Startup-Config中。设备断电后,NVRAM中的内容不会丢失。
输入输出端口(Input/Output,I/O):I/O端口就是数据进出路由的接口,可以使用Cisco命令”Show Interface”来查看当前路由都有哪些端口。使用”show interface brief”来查看和显示当前激活和未激活的接口。
0×2.路由器引导过程
路由的引导流程:加电自检->自启加载器->检查配置寄存器->确定操作系统位置->加载操作系统->定位配置文件->找到就加载配置文件->没找到就进入初始化设置模式;
引导流程详解:
执行POST(Power-On Self Test)加电自检:路由器打开电源后,会执行一系列的诊断效验,来测试其硬件,完成加电自检后,路由开始加载引导程序。
加载引导程序(Bootstarp):POST完成后,引导程序被从ROM中拷贝到RAM中,CPU开始执行引导程序,引导程序的主要作用就是定位IOS(Cisco路由操作系统文件),并将IOS加载到RAM中运行。
定位和加载IOS:在加载IOS前,首先需要定位IOS位置,现在多数型号的路由是通过读取配置寄存器的值来定位操作系统位置的,配置寄存器是储存在NVRAM中的一个16位的值(在一些老设备上可能是一个16针的跳线)。
这个值的最后4位指明了引导字段,比如0x2142这个十六进制数从右往左第一个数2就为引导字段,引导字段的范围是从0~15,0表示RXBOOT模式,1表示自动从ROM启动,2-F表示boot system命令,检查NVRAM中的配置,这将使路由在NVRAM中寻找boot system命令,如果找到就用引导命令中指定的方式引导(比如"boot system flash:unzip-c3640-ik9o3s-mz.124-10.bin",就是让路由读取闪存中的unzip-c3640-ik9o3s-mz.124-10.bin这个IOS文件)。
如果boot system引导失败,路由则会自动加载闪存中第一个IOS文件。如果闪存中也无有效的IOS,或者根本找不到闪存,路由则会通过TFTP广播请求IOS,如果TFTP广播请求失败,路由会从ROM中将一个缩小版的诊断IOS加载到RAM中,以帮助路由判断是什么原因导致了引导失败。
加载配置文件(startup-config):IOS加载成功后,系统会去NVRAM中查找有无startup-config,如果找到就用这个配置文件中的配置初始化路由启动。如果没有找到,系统将进入初始化配置模式。如果想要路由启动时加载上一次保存的startup-config,需要将配置寄存器的值改为0x2102,在GNS3实验环境中,默认是0x2142,不加载startup-config。