4.1 路由器概述

所谓路由,是指通过相互连接的网络把信息从源地点移动到目标地点的活动。路由器的英文名称为Router,是一种连接多个网络或网段的网络设备,能将不同网络或网段之间的数据信息进行“翻译”,以使它们能够相互理解对方的数据,从而构成一个更大的网络。在网络拓扑结构中,用图标 表示路由器。路由器是一种典型的网络层设备,在OSI参考模型中被称为中介系统,完成网络层中继的任务。路由器负责在两个局域网之间接收数据分组并进行转发,转发分组时需要改变分组中的物理地址。

4.1.1 路由器的结构

路由器的硬件体系由4部分组成:路由处理器、内存、端口和交换开关,如图4-1所示。

图4-1 路由器的结构(图中的数字1~3表示OSI中相应层的处理模块)

1.路由处理器

与计算机一样,路由器也包含了一个中央处理器,即CPU。CPU是路由器的心脏,其任务是根据所选定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。在路由器中,CPU的能力直接影响路由器的吞吐量(路由表查找时间)和路由计算能力(影响网络路由收敛时间)。

2.路由器内存

路由器的内存用于存储路由器的配置、路由器操作系统、路由协议软件和数据等内容。在中低端路由器中,路由表可能存储在内存中。

路由器采用了以下几种内存,每种内存以不同方式协助路由器工作:BootROM(启动只读存储器)、Flash(快速闪存)、NVRAM(非易失性存储器)、SDRAM(主存储器)。

① BootROM。BootROM中存放的是相当于路由器自举程序的系统文件,主要用于路由器系统初始化等功能。顾名思义,BootROM是只读存储器,不能修改其中存放的代码。如要进行升级,则要替换BootROM芯片。BootROM中主要包含:

⊙ 系统加电自检代码(POST),用于检测路由器中各硬件部分是否完好。

⊙ 系统引导区代码(BootStrap),用于启动路由器并载入操作系统。

⊙ 备份的操作系统,以便在原有操作系统被删除或破坏时使用。通常,这个操作系统比现运行操作系统的版本低一些,但却足以使路由器启动和工作。

② Flash,是可读可写的存储器,在系统重新启动或关机之后仍能保存数据。Flash中存放着当前使用中的操作系统。事实上,如果Flash容量足够大,甚至可以存放多个操作系统,这在进行操作系统升级时十分有用。当不知道新版操作系统是否稳定时,可在升级后仍保留旧版操作系统,出现问题时可迅速退回到旧版操作系统,从而避免长时间的网路故障。

③ NVRAM,即Nonvolatile RAM,是可读可写的存储器,在系统重新启动或关机之后仍能保存数据。由于NVRAM仅用于保存启动配置文件(Startup-Config),故其容量较小,通常在路由器上只配置32~128 KB大小的NVRAM。同时,NVRAM的速度较快,成本也比较高。

④ SDRAM。SDRAM用于路由器运行期间暂时存放操作系统和数据,让路由器能迅速访问这些信息。SDRAM的存取速率优于前面所提到的3种内存的存取速率。

路由器运行期间,SDRAM中存放的是路由表项目、ARP缓冲项目、日志项目和队列中排队等待发送的分组,还包括运行配置文件(Running-Config)、正在执行的代码、操作系统程序和一些临时数据信息。

路由器的启动过程如下:

<1> 系统硬件加电自检。处理器首先运行BootROM中的硬件检测程序,识别支持路由器运行的硬件信息,检测各组件能否正常工作。完成硬件检测后,开始软件初始化工作。

<2> 软件初始化过程。运行BootROM中的引导程序,进行初步引导工作。

<3> 寻找并载入操作系统文件。将Flash中的路由器的操作系统映像读入到SDRAM中。操作系统文件可以存放在多处,至于到底采用哪个操作系统,是通过命令设置指定的。

<4> 操作系统装载完毕,系统在NVRAM中搜索保存的Startup-Config文件,进行系统的配置。如果NVRAM中存在Startup-Config文件,则将该文件调入SDRAM中并逐条执行。否则,系统默认无配置,直接进入用户操作模式,进行路由器初始配置。

为了保证在路由器电源被切断的时候,它的配置信息不会丢失,在配置完成后将配置信息保存在NVRAM中。图4-2表示了这几个组件之间的关系和启动时的文件读取顺序。

3.路由器端口

① 输入端口,一个输入端口具有下列功能:

⊙ 进行数据链路层的封装和解封装。

图4-2 路由器的启动过程

⊙ 在路由表中,查找输入分组目的地址,从而决定目的端口(称为路由查找)。

⊙ 为了提供QoS(服务质量),端口要对收到的分组分成几个预定义的服务级别。

⊙ 端口可能运行诸如SLIP(串行线网际协议)和PPP(点对点协议)这样的数据链路层协议或者点对点隧道协议这样的网络层协议。一旦路由查找完成,必须用交换开关将分组发送到输出端口。

⊙ 参加对公共资源(如交换开关)的仲裁协议。

一个输入端口的工作过程是:在路由器的输入和输出端口里面都各有3个方框,用方框中的1、2和3分别代表物理层、数据链路层和网络层的处理模块。物理层进行比特的接收。数据链路层则按照链路层协议接收传送分组的帧。在将帧的首部和尾部剥去后,分组就被送入网络层的处理模块。若接收到的分组是路由器之间交换路由信息的分组(如RIP或OSPF分组等),则将这种分组送交路由器的路由选择部分中的路由选择处理机。若接收到的是数据分组,则按照分组首部中的目的地址查找转发表,根据得出的结果,分组就经过交换开关到达合适的输出端口。图4-3给出了在输入端口的队列中排队的分组的示意图。

图4-3 输入端口对线路上收到的分组进行处理

② 输出端口。输出端口从交换结构接收分组,然后将它们发送到路由器外面的线路上。在网络层的处理模块中设有一个缓存,实际上它就是一个队列。当交换开关传送过来的分组的速率超过输出链路的发送速率时,来不及发送的分组就必须暂时存放在这个队列中。数据链路层处理模块将分组加上链路层的首部和尾部,交给物理层模块后发送到外部线路,如图4-4所示。

图4-4 输出端口将交换开关传送来的分组发送到线路上

路由器的输入端口和输出端口做在路由器的线路接口卡上,一般支持4、8或16个端口。

4.交换开关

交换开关又称为交换结构(switching fabric),其作用就是根据转发表(forwarding table)对分组进行处理,将某个输入端口进入的分组从一个合适的输出端口转发出去。图4-5给出了三种常用的交换方法,这三种方法都是将输入端口I1收到的分组转发到输出端口O2

图4-5 三种常用的交换方法

4.1.2 路由器的功能与工作原理

路由器的功能归纳起来包括如下几方面。

(1)协议转换

路由器作为三层的网络设备,对接收来的数据进行下三层的解封装,然后根据出口协议栈对接收的数据进行再封装,最后发送到出口网络中,从而实现了不同协议、不同体系结构网络之间的互连互通。例如,图4-6中表示的是IP网络与IPX网络的互连。

图4-6 IP网络与IPX网络的互连

(2)寻址

路由器的寻址动作与主机的类似,区别在于路由器不止一个出口,所以不能通过简单配置一条默认网关解决所有数据分组的转发,必须根据目的网络的不同选择对应的出口路径。

在如图4-7所示的简单网络环境中,如果Rl没有配置路由,则从172.16.1.2发送到172.16.2.2的数据分组,到达Rl时,Rl在路由表中将查不到到达172.16.2.0网络的路径,因此会丢掉数据分组。同理,如果R2没有配置路由,Rl配置了正确的路由,则从171.16.1.2发到172.16.2.2的数据分组可以经过Rl发送给R2并经过R2的本地路由表发送给172.16.2.2,但从172.16.2.2返回的数据分组将由于R2中没有到达172.16.1.0网络的路由而被丢弃,因此也是不能够通信的。

图4-7 路由器的寻址

(3)分组转发

分组转发即将数据分组转发到目的网络。

路由器的大致工作过程:从某个端口收到一个数据分组,首先把链路层的包头去掉(拆包),读取目的IP地址,然后查找路由表,如果能确定下一步往哪里送,则再加上链路层的包头(打包),把该数据分组转发出去;如果不能确定下一步的地址,则向源地址返回一个信息,并把这个数据分组丢掉。下面通过一个例子来说明路由器的工作原理。

【例4-1】路由器的分布如图4-8所示,工作站A需要向工作站B传送信息,并假定工作站B的IP地址为10.120.0.5,它们之间需要通过多个路由器进行接力传递。

图4-8 路由器工作原理示意图

<1> 工作站A将工作站B的地址10.120.0.5连同数据信息以数据帧的形式发送给R1。

<2> 路由器R1收到工作站A的数据帧后,先从报头中取出地址10.120.0.5,根据路由表计算出发往工作站B的最佳下一跳路径:R1→R2→R5→B,并将数据帧发往路由器R2。

<3> 路由器R2重复路由器R1的工作,并将数据帧转发给路由器R5。

<4> 路由器R5同样取出目的地址,发现10.120.0.5就在该路由器所连接的网段上,于是将该数据帧直接交给工作站B。

<5> 工作站B收到工作站A的数据帧,一次通信过程宣告结束。

4.1.3 路由器与三层交换机的区别

(1)三层交换机简介

三层交换机就是具有部分路由器功能的交换机,三层交换机的最重要目的是加快大型局域网内部的数据交换,所具有的路由功能也是为这目的服务的,能够做到一次路由,多次转发。数据分组转发等规律性的过程由硬件高速实现,而路由信息更新、路由表维护、路由计算、路由确定等功能则由软件实现。

出于安全和管理方便的考虑,主要是为了减小广播风暴的危害,必须把大型局域网按功能或地域等因素划成一个个小的局域网,这就使VLAN技术在网络中得以大量应用,而不同VLAN间的通信都要经过路由器来完成转发。随着网间互访的不断增加,单纯使用路由器来实现网间访问,不但由于端口数量有限,而且路由速率较慢,从而限制了网络的规模和访问速率。基于这种情况,三层交换机便应运而生。三层交换机是为IP设计的,接口类型简单,拥有很强的二层包处理能力,非常适用于大型局域网内的数据路由与交换,它既可以工作在协议第三层替代或部分完成传统路由器的功能,又具有第二层交换的速率,且价格相对便宜些。

在企业网和教学网中,一般会将三层交换机用在网络的核心层,用三层交换机上的千兆位端口或百兆位端口连接不同的子网或VLAN。三层交换机出现最重要的目的是加快大型局域网内部的数据交换,所具备的路由功能也多是围绕这一目的而展开的,所以它的路由功能没有同一档次的专业路由器强,毕竟在安全、协议支持等方面还有许多欠缺,并不能完全取代路由器工作。

在实际应用过程中,典型的做法是:处于同一局域网中的各子网的互连和局域网中VLAN间的路由,用三层交换机来代替路由器,而只有局域网与公网互连要实现跨地域的网络访问时,才通过专业路由器。

(2)路由器与三层交换机的主要区别

① 数据转发的依据不同。三层交换机是依据物理地址(即MAC地址)来确定转发数据的目的地址,而路由器依据不同网络的ID号(即IP地址)来确定数据转发的地址。

② 路由器提供了防火墙的服务,可以有效维护网络安全。

③ 三层交换机现在还不能提供完整的路由选择协议,而路由器则具备同时处理多个协议的能力。当连接不同协议的网络,像以太网和令牌环的组合网络,依靠三层交换机是不可能完成网间数据传输的。

④ 三层交换机适用于大型局域网。为了减小广播风暴的危害,必须把大型局域网按功能或地域等因素划分成一个个的小局域网,必然导致不同网段间存在大量的互访,单纯使用二层交换机没法实现网间的互访,单纯使用路由器,由于端口数量有限,路由速率较慢,限制了网络的访问速率,所以在这种环境下,由二层交换技术和路由技术有机结合而成的三层交换机就最为合适。

路由器端口类型多,支持的三层协议多,路由能力强,所以适合于在大型网络之间的互连。互连设备的主要功能不在于在端口之间进行快速交换,而是要选择最佳路径,进行负载分担、链路备份、与其他网络进行路由信息交换等,所有这些都是路由器完成的功能。

在网络流量很大的情况下,如果三层交换机既做网内的交换又做网间的路由,会加重它的负担,影响速率。这时可由三层交换机做网内的交换,由路由器专门负责网间的路由,这样可以充分发挥不同设备的优势,是个很理想的选择。

4.1.4 路由器的分类

与交换机一样,路由器从不同的角度来看,也有不同的分类。从应用上来分,路由器可分为内部路由器和边界路由器;按性能档次来划分,路由器可分为高、中和低档路由器;按结构来划分,路由器可分为模块化结构和非模块化结构。;按性能来划分,路由器可分为线速路由器和非线速路由器;按功能的不同划分,路由器可分为核心层(骨干级)路由器、汇聚层(企业级)路由器和接入层(接入级)路由器,这是比较常见的划分方法。

骨干级路由器是实现企业网络互连的关键设备,数据吞吐量较大,非常重要。对骨干级路由器的基本性能要求是高速率和高可靠性。为了获得高可靠性,网络系统普遍采用诸如热备份、双电源、双数据通路等传统冗余技术,从而使得骨干路由器的可靠性一般不成问题。骨干级路由器的主要性能瓶颈是在路由表中查找某个路由所耗的时间过长,为此在骨干级路由器中,常将一些访问频率较高的目的端口放到缓存中,从而达到提高路由查找效率的目的。

企业或校园级路由器连接许多终端系统,连接对象较多,但系统相对简单,且数据流量对这类路由器的要求是以尽量便宜的方法实现尽可能多的端点互连,还要求能够支持不同的服务质量。用路由器连接的网络系统因能够将机器分成多个广播域,所以可以方便控制一个网络的大小。此外,路由器还可以支持一定的服务等级,允许将网络分成多个优先级别。当然,路由器的每个端口造价要贵些,在使用之前要求用户进行大量的配置工作。因此,企业级路由器的成败就在于是否可提供大量端口且每个端口的造价很低,是否容易配置,是否支持QoS,是否支持组播等多项功能。

接入路由器主要应用于连接家庭或ISP内的小型企业客户群体,现在的接入路由器已经可以支持许多异构和高速端口,并能在各个端口运行多种协议。