概念
1、路由是指路由器从一个接口上收到数据包,根据数据包的目的地址进行定向并转发到另一个接口的过程。路由通常与桥接来对比,在粗心的人看来,它们似乎完成的是同样的事。它们的主要区别在于桥接发生在OSI参考模型的第二层(数据链路层),而路由发生在第三层(网络层)。这一区别使二者在传递信息的过程中使用不同的信息,从而以不同的方式来完成其任务。
路由的话题早已在计算机界出现,但直到八十年代中期才获得商业成功。究其主要原因是七十年代的网络普遍很简单,发展到后来大型的网络才较为普遍。
2、工程术语。指道路情况,包括道路宽度、深度、方向等信息。
作用
路由器能够连接不同类型的局域网和广域网,如以太网、ATM网、FDDI网、令牌环网等。不同类型的网络,其传送的数据单元——包(Packet)的格式和大小是不同的。就像公路运输是以汽车为单位装载货物,而铁路运输是以车皮为单位装载货物一样,从汽车运输改为铁路运输,必须把货物从汽车上放到火车车皮上,网络中的数据也是如此。数据从一种类型的网络传输至另一种类型的网络,必须进行帧格式转换。路由器就有这种能力。
实际上,我们所说的“互联网”,就是指各种路由器将各种不同的网络类型互相连接起来。
工作原理
路由器是第三层网络设备。集线器工作在第一层(即物理层),没有智能处理能力,当一个端口的电流传到集线器中时,它只是简单地将电流传送到其他端口,不关心其他端口连接的计算机是否接收这些数据。交换机工作在第二层(即数据链路层),它要比集线器智能一些,对它而言,网络上的数据就是MAC地址的集合,它能分辨出帧中的源MAC地址和目的MAC地址,因此可以在任意两个端口间建立联系,但是交换机并不懂得IP地址,它只知道MAC地址。路由器工作在第三层(即网络层),它比交换机还要“聪明”一些,它能理解数据中的IP地址,如果它接收到一个数据包,就检查包中的目标网络地址以判断该包的目的地址在当前的路由表中是否存在(即路由器是否知道到达目标网络的路径)。如果发现包的目标地址与本路由器的某个接口所连接的网络地址相同,那么马上数据转发到相应接口;如果发现包的目标地址不是自己的直连网段,路由器会查看自己的路由表,查找包的目的网络所对应的接口,并从相应的接口转发出去;如果路由表中记录的网络地址与包的目标地址不匹配,则根据路由器配置转发到默认接口,在没有配置默认接口的情况下会给用户返回目标地址不可达的 ICMP 信息。
路由工作包含两个基本的动作:
1、确定最佳路径
2、通过网络传输信息
在路由的过程中,后者也称为(数据)交换。交换相对来说比较简单,而选择路径很复杂,
路径选择
metric是路由算法用以确定到达目的地的最佳路径的计量标准,如路径长度。为了帮助选路,路由算法初始化并维护包含路径信息的路由表,路径信息根据使用的路由算法不同而不同。

路由表
路由算法根据许多信息来填充路由表。目的/下一跳地址对告知路由器到达该目的最佳方式是把分组发送给代表“下一跳”的路由器,当路由器收到一个分组,它就检查其目标地址,尝试将此地址与其“下一跳”相联系。下表为一个目的/下一跳路由表的例子。路由表还可以包括其它信息。路由表比较metric以确定最佳路径,这些metric根据所用的路由算法而不同。路由器彼此通信,通过交换路由信息维护其路由表,路由更新信息通常包含全部或部分路由表,通过分析来自其它路由器的路由更新信息,该路由器可以建立网络拓扑图。路由器间发送的另一个信息是链接状态广播信息,它通知其它路由器发送者的链接状态,链接信息用于建立完整的拓扑图,使路由器可以确定最佳路径。
交换算法
交换算法相对而言较简单,对大多数路由协议而言是相同的,多数情况下,某主机决定向另一个主机发送数据,通过某些方法获得路由器的地址后,源主机发送指向该路由器的物理(MAC)地址的数据包,其协议地址是指向目的主机的。
路由器查看了数据包的目的协议地址后,确定是否知道如何转发该包,如果路由器不知道如何转发,通常就将之丢弃。如果路由器知道如何转发,就把目的物理地址变成下一跳的物理地址并向之发送。下一跳可能就是最终的目的主机,如果不是,通常为另一个路由器,它将执行同样的步骤。当分组在网络中流动时,它的物理地址在改变,但其协议地址始终不变。
ISO定义了用于描述此过程的分层的术语。在该术语中,没有转发分组能力的网络设备称为端系统(ES--end system),有此能力的称为中介系统(IS--intermediate system)。IS又进一步分成可在路由域内通信的域内IS(intradomain IS)和既可在路由域内又可在域间通信的域间IS(interdomain IS)。路由域通常被认为是统一管理下的一部分网络,遵守特定的一组管理规则,也称为自治系统(autonomous system)。在某些协议中,域内路由协议仍可用于在区间内和区间之间交换数据。
度量标准
路由算法使用了许多不同的度量标准以确定最佳路径。复杂的路由算法可以基于多个度量标准选择路由,并把它们结合成一个复合的度量标准。常用的度量标准如下:
路径长度
路径长度是最常用的路由度量标准。一些路由协议允许网管给每个网络链接人工赋以代价值,这种情况下,路径长度是所经过各个链接的代价总和。其它路由协议定义了跳数,即分组在从源到目的的路途中必须经过的网络产品,如路由器的个数。
可靠性
在路由算法中指网络链接的可依赖性(通常以位误率描述),有些网络链接可能比其它的失效更多,网路失效后,一些网络链接可能比其它的更易或更快修复。任何可靠性因素都可以在给可靠率赋值时计算在内,通常是由网管给网络链接赋以度量标准值。
延迟
指分组从源通过网络到达目的所花时间。很多因素影响到延迟,包括中间的网络链接的带宽、经过的每个路由器的端口队列、所有中间网络链接的拥塞程度以及物理距离。因为延迟是多个重要变量的混合体,它是个比较常用且有效的度量标准。
带宽
带宽指链接可用的流通容量。在其它所有条件都相等时,10Mbps的以太网链接比64kbps的专线更可取。虽然带宽是链接可获得的最大吞吐量,但是通过具有较大带宽的链接做路由不一定比经过较慢链接路由更好。例如,如果一条快速链路很忙,分组到达目的所花时间可能要更长。
负载
负载指网络资源,如路由器的繁忙程度。负载可以用很多方面计算,包括CPU使用情况和每秒处理分组数。持续地监视这些参数本身也是很耗费资源的。
通信代价
通信代价是另一种重要的度量标准,尤其是有一些公司可能关系运作费用甚于性能。即使线路延迟可能较长,他们也宁愿通过自己的线路发送数据而不采用昂贵的公用线路。
算法类型
各类路由算法可根据不同的依据进行不同的分类。
静态算法与动态算法
静态路由算法很难算得上是算法,只不过是开始路由前由网管建立的表映射。这些映射自身并不改变,除非网管去改动。使用静态路由的算法较容易设计,在网络通信可预测及简单的网络中工作得很好。
由于静态路由系统不能对网络改变做出反映,通常被认为不适用于的大型、易变的网络。九十年代主要的路由算法都是动态路由算法,通过分析收到的路由更新信息来适应网络环境的改变。如果信息表示网络发生了变化,路由软件就重新计算路由并发出新的路由更新信息。这些信息渗入网络,促使路由器重新计算并对路由表做相应的改变。
动态路由算法可以在适当的地方以静态路由作为补充。例如,最后可选路由(router of last resort),作为所有不可路由分组的去路,保证了所有的数据至少有方法处理。
单路径算法与多路径算法
一些复杂的路由协议支持到同一目的的多条路径。与单路径算法不同,这些多路径算法允许数据在多条线路上复用。多路径算法的优点很明显:它们可以提供更好的吞吐量和可靠性。
平坦与分层
一些路由协议在平坦的空间里运作,其它的则有路由的层次。在平坦的路由系统中,每个路由器与其它所有路由器是对等的;在分层次的路由系统中,一些路由器构成了路由主干,数据从非主干路由器流向主干路由器,然后在主干上传输直到它们到达目标所在区域,在这里,它们从最后的主干路由器通过一个或多个非主干路由器到达终点。
路由系统通常设计有逻辑节点组,称为域、自治系统或区间。在分层的系统中,一些路由器可以与其它域中的路由器通信,其它的则只能与域内的路由器通信。在很大的网络中,可能还存在其它级别,最高级的路由器构成了路由主干。
分层路由的主要优点是它模拟了多数公司的结构,从而能很好地支持其通信。多数的网络通信发生在小组中(域)。因为域内路由器只需要知道本域内的其它路由器,它们的路由算法可以简化,根据所使用的路由算法,路由更新的通信量可以相应地减少。
主机智能与路由器智能
一些路由算法假定源结点来决定整个路径,这通常称为源路由。在源路由系统中,路由器只作为存贮转发设备,无意识地把分组发向下一跳。其它路由算法假定主机对路径一无所知,在这些算法中,路由器基于自己的计算决定通过网络的路径。前一种系统中,主机具有决定路由的智能,后者则为路由器具有此能力。
主机智能和路由器智能的折衷实际是最佳路由与额外开销的平衡。主机智能系统通常能选择更佳的路径,因为它们在发送数据前探索了所有可能的路径,然后基于特定系统对“优化”的定义来选择最佳路径。然而确定所有路径的行为通常需要很多的探索通信量和很长的时间。
域内与域间
一些路由算法只在域内工作,其它的则既在域内也在域间工作。这两种算法的本质是不同的。其遵循的理由是优化的域内路由算法没有必要也成为优化的域间路由算法。
链接状态与距离向量
链接状态算法(也叫做短路径优先算法)把路由信息散布到网络的每个节点,不过每个路由器只发送路由表中描述其自己链接状态的部分。距离向量算法(也叫做Bellman-Ford算法)中每个路由器发送路由表的全部或部分,但只发给其邻居。也就是说,链接状态算法到处发送较少的更新信息,而距离向量算法只向相邻的路由器发送较多的更新信息。
由于链接状态算法聚合得较快,它们相对于距离算法产生路由环的倾向较小。在另一方面,链接状态算法需要更多的CPU和内存资源,因此链接状态算法的实现和支持较昂贵。虽然有差异,这两种算法类型在多数环境中都可以工作得很好。
路由类型
路由分为静态路由(static routing)和动态路由(dynamic routing)和直连路由三种类型。
特点
静态路由的特点
静态路由是由管理员在路由器进行手工配置的固定的路由
静态路由允许对路由的行为进行精确的控制,减少了网络流量单向以及配置简单,静态路由通常情况下优先级最高,因为其管理距离最短 。静态路由是在路由器中设置的固定的路由表。除非网络管理员干预,否则静态路由不会发生变化。由于静态路由不能对网络的改变作出反映,一般用于网络规模不大、拓扑结构固定的网络中。静态路由的优点是简单、高效、可靠。在所有的路由中,静态路由优先级最高。当动态路由与静态路由发生冲突时,以静态路由为准。
动态路由的特点
动态路由是网络中的路由器之间根据实时网络拓扑变化,相互通信传递路由信息,利用收到的路由信息通过路由选择协议计算,更新路由表的过程 。
动态路由减少了管理任务
配置
静态路由的配置
进去全局配置模式,定义目标网络号,目标网络的子网掩码和下一跳地址或接口
Router(config)#ip route {nexthop-address|exit-interface} [distance]
Router(config)#ip route network [mask] {address | interface} [distance] [permantet]
目标网络掩码到达目标网络的下一个路由器地址或本地接口
默认路由是静态路由的一种,是指当路由表中与包的目标地址之间没有匹配的表项时路由器能够作出的选择
Router(config)#ip route 0.0.0.0 0.0.0.0 下一个路由器的接口地址
Router(config)#ip classless
其中 0.0.0.0 0.0.0.0 代表将发往任何网络的包都转发到下一个路由器接口地址
Ip classless 指路由器接收到不能转发的包的时候会将其匹配给默认路由
并且返回目标地址不可达的 ICMP的消息
动态路由的配置
常见动态路由分为距离矢量路由协议(DistanceVector Routing Protocol)和链路状态路由协议(Link-State Routing Protocol)。
动态路由是网络中的路由器之间相互通信,传递路由信息,利用收到的路由信息更新路由器表的过程。它能实时地适应网络结构的变化。如果路由更新信息表明发生了网络变化,路由选择软件就会重新计算路由,并发出新的路由更新信息。这些信息通过各个网络,引起各路由器重新启动其路由算法,并更新各自的路由表以动态地反映网络拓扑变化。动态路由适用于网络规模大、网络拓扑复杂的网络。当然,各种动态路由协议会不同程度地占用网络带宽和CPU资源。
距离矢量路由协议包括RIP,EIGRP,IGRP
链路状态路由协议包括OSPF,ISIS
RIP
RIP是Internet中常用的路由协议,路由器根据距离选择路由,路由器收集所有可到达目的地的不同路径,并且保存有关到达每个目的地的最少站点数的路径信息,除到达目的地的最佳路径外,任何其它信息均予以丢弃。同时路由器也把所收集的路由信息用RIP协议通知相邻的其它路由器。这样,正确的路由信息逐渐扩散到了全网。
RIP 有两个不同的版本,RIPv1和RIPv2. RIPv1。
RIPv1和RIPv2. RIPv1 的主要区别:
1.RIPv1是有类路由协议,RIPv2是无类路由协议
2.RIPv1不能支持VLSM,RIPv2可以支持VLSM
3.RIPv1没有认证的功能,RIPv2可以支持认证,并且有明文和MD5两种认证
4.RIPv1没有手工汇总的功能,RIPv2可以在关闭自动汇总的前提下,进行手工汇总
5.RIPv1是广播更新,RIPv2是组播更新,
6.RIPv1对路由没有标记的功能,RIPv2可以对路由打标记(tag),用于过滤和做策略
7.RIPv1发送的updata最多可以携带25条路由条目,RIPv2在有认证的情况下最多只能携带24条路由
8.RIPv1发送的updata包里面没有next-hop属性,RIPv2有next-hop属性,可以用与路由更新的重定
RIPv1的配置;
Router(config)#routerrip
Router(config-router)#network xxxx.xxxx.xxxx.xxxx
RIPv2的配置
Router(config)#router rip
Router(config-router)#version2
Router(config-router)#no auto-summary
RIP使用非常广泛,它简单、可靠,便于配置。但是RIP只适用于小型的同构网络,因为它允许的最大站点数为15,任何超过15个站点的目的地均被标记为不可达。而且RIP每隔30s一次的路由信息广播也是造成网络的广播风暴的重要原因之一。
EIGRP
EIGRP是思科私有的,他是高级距离矢量路由协议,使用DUAL算法。EIGRP是建立邻居关系最快的路由协议
EIGRP的5个Metric值:带宽(Bandwidth),负载(Load),延迟(Delay),可靠性(Reliability),MTU
配置:
Router(config)#router eigrp XX
Router(config-router)#noauto-summary
OSPF
OSPF是一种基于链路状态的路由协议,需要每个路由器向其同一管理域的所有其它路由器发送链路状态广播信息。在OSPF的链路状态广播中包括所有接口信息、所有的量度和其它一些变量。利用OSPF的路由器首先必须收集有关的链路状态信息,并根据一定的算法计算出到每个节点的最短路径。而基于距离向量的路由协议仅向其邻接路由器发送有关路由更新信息。
配置:
Router(config)#router ospf XX
Router(config-router)#router-idX.X.X.X
Router(config-router)#networkXXXX.XXXX.XXXX.XXXXarea X
OSPF将一个自治域再划分为区,相应地即有两种类型的路由选择方式:当源和目的地在同一区时,采用区内路由选择;当源和目的地在不同区时,则采用区间路由选择。这就大大减少了网络开销,并增加了网络的稳定性。当一个区内的路由器出了故障时并不影响自治域内其它区路由器的正常工作,这也给网络的管理、维护带来方便。
静态路由和动态路由有各自的特点和适用范围,因此在网络中动态路由通常作为静态路由的补充。当一个分组在路由器中进行寻径时,路由器首先查找静态路由,如果查到则根据相应的静态路由转发分组;否则再查找动态路由。
路由器的某一个接口接收到一个数据包时,会查看包中的目标网络地址以判断该包的目的地址在当前的路由表中是否存在(即路由器是否知道到达目标网络的路径)。如果发现包的目标地址与本路由器的某个接口所连接的网络地址相同,那么马上数据转发到相应接口;如果发现包的目标地址不是自己的直连网段,路由器会查看自己的路由表,查找包的目的网络所对应的接口,并从相应的接口转发出去;如果路由表中记录的网络地址与包的目标地址不匹配,则根据路由器配置转发到默认接口,在没有配置默认接口的情况下会给用户返回目标地址不可达的 ICMP 信息。