路由的功能和分类 路由是把信息从源穿过网络传递到目的地的行为,在路上,至少遇到一个中间节点。
路由通常与桥接来对比,在粗心的人看来,它们似乎完成的是同样的事。它们的主要区别在于桥接发生在OSI参考协议的第二层(链接层),而路由发生在第三层(网络层)。这一区别使二者在传递信息的过程中使用不同的信息,从而以不同的方式来完成其任务。
路由的话题早已在计算机界出现,但直到八十年代中期才获得商业成功,这一时间延迟的主要原因是七十年代的网络很简单,后来大型的网络才较为普遍。
一、路由器(Router):工作在OSI第三层(网络层)上、具有连接不同类型网络的能力并能够选择数据传送路径的网络设备。
路由器有三个特征:工作在网络层上、能够连接不同类型的网络、能够选择数据传递路径。
1、路由器工作在第三层上,路由器是第三层网络设备,这样说大家可能都不理解,就先说一下集线器和交换机吧。 集线器工作在第一层(即物理层),它没有智能处理能力,对它来说,数据只是电流而已,当一个端口的电流传到集线器中时,它只是简单地将电流传送到其他端口,至于其他端口连接的计算机接收不接收这些数据,它就不管了。 交换机工作在第二层(即数据链路层),它要比集线器智能一些,对它来说,网络上的数据就是MAC地址的集合,它能分辨出帧中的源MAC地址和目的MAC地址,因此可以在任意两个端口间建立联系,但是交换机并不懂得IP地址,它只知道MAC地址。 路由器工作在第三层(即网络层),它比交换机还要“聪明”一些,它能理解数据中的IP地址,如果它接收到一个数据包,就检查其中的IP地址,如果目标地址是本地网络的就不理会,如果是其他网络的,就将数据包转发出本地网络。
2、路由器能连接不同类型的网络 我们常见的集线器和交换机一般都是用于连接以太网的,但是如果将两种网络类型连接起来,比如以太网与ATM网,集线器和交换机就派不上用场了。 路由器能够连接不同类型的局域网和广域网,如以太网、ATM网、FDDI网、令牌环网等。不同类型的网络,其传送的数据单元——帧(Frame)的格式和大小是不同的,就像公路运输是汽车为单位装载货物,而铁路运输是以车皮为单位装载货物一样,从汽车运输改为铁路运输,必须把货物从汽车上放到火车车皮上,网络中的数据也是如此,数据从一种类型的网络传输至另一种类型的网络,必须进行帧格式转换。路由器就有这种能力,而交换机和集线器就没有。 实际上,我们所说的“互联网”,就是由各种路由器连接起来的,因为互联网上存在各种不同类型的网络,集线器和交换机根本不能胜任这个任务,所以必须由路由器来担当这个角色。
3、路由器具有路径选择能力 在互联网中,从一个节点到另一个节点,可能有许多路径,路由器可以选择通畅快捷的近路,会大大提高通信速度,减轻网络系统通信负荷,节约网络系统资源,这是集线器和二层交换机所根本不具备的性能。
路由器的种类:
1、接入路由器 接入路由器是指将局域网用户接入到广域网中的路由器设备,我们局域网用户接触最多的就是接入路由器了。只要有互联网的地方,就会有路由器。如果你通过局域网共享线路上网,就一定会使用路由器。 有的读者会心生疑问:我是通过代理服务器上网的,不用路由器不也能接入互联网吗?其实代理服务器也是一种路由器,一台计算机加上网卡,再加上ISDN(或Modem或ADSL),再安装上代理服务器软件,事实上就已经构成了路由器,只不过代理服务器是用软件实现路由功能,而路由器是用硬件实现路由功能,就像VCD软解压软件和VCD机的关系一样,结构不同,但是功能却是相同的。
2、企业级路由器 企业级的路由器是用于连接大型企业内成千上万的计算机,普通的局域网用户就接触不到了。与接入路由器相比,企业级路由器支持的网络协议多、速度快,要处理各种局域网类型,支持多种协议,包括IP、IPX和Vine,还要支持防火墙、包过滤以及大量的管理和安全策略以及VLAN(虚拟局域网)。
3、骨干级路由器 只有工作在电信等少数部门的技术人员,才能接触到骨干级路由器。互联网目前由几十个骨干网构成,每个骨干网服务几千个小网络,骨干级路由器实现企业级网络的互联。对它的要求是速度和可靠性,而价格则处于次要地位。硬件可靠性可以采用电话交换网中使用的技术,如热备份、双电源、双数据通路等来获得。这些技术对所有骨干路由器来说是必须的。 骨干网上的路由器终端系统通常是不能直接访问的,它们连接长距离骨干网上的ISP和企业网络。互联网的快速发展给骨干网、企业网和接入网都带来了小的挑战。"
路由的工作原理与算法
二、路由的组成
路由包含两个基本的动作:确定最佳路径和通过网络传输信息。在路由的过程中,后者也称为(数据)交换。交换相对来说比较简单,而选择路径很复杂。
1、路径选择
metric是路由算法用以确定到达目的地的最佳路径的计量标准,如路径长度。为了帮助选路,路由算法初始化并维护包含路径信息的路由表,路径信息根据使用的路由算法不同而不同。
路由算法根据许多信息来填充路由表。目的/下一跳地址对告知路由器到达该目的最佳方式是把分组发送给代表“下一跳”的路由器,当路由器收到一个分组,它就检查其目标地址,尝试将此地址与其“下一跳”相联系。下表为一个目的/下一跳路由表的例子。
表5-1 目的/下一跳对应表决定数据的最佳路径
路由表还可以包括其它信息。路由表比较metric以确定最佳路径,这些metric根据所用的路由算法而不同,下面将介绍常见的metric。路由器彼此通信,通过交换路由信息维护其路由表,路由更新信息通常包含全部或部分路由表,通过分析来自其它路由器的路由更新信息,该路由器可以建立网络拓扑细图。路由器间发送的另一个信息例子是链接状态广播信息,它通知其它路由器发送者的链接状态,链接信息用于建立完整的拓扑图,使路由器可以确定最佳路径。
2、交换
交换算法相对而言较简单,对大多数路由协议而言是相同的,多数情况下,某主机决定向另一个主机发送数据,通过某些方法获得路由器的地址后,源主机发送指向该路由器的物理(MAC)地址的数据包,其协议地址是指向目的主机的。
路由器查看了数据包的目的协议地址后,确定是否知道如何转发该包,如果路由器不知道如何转发,通常就将之丢弃。如果路由器知道如何转发,就把目的物理地址变成下一跳的物理地址并向之发送。下一跳可能就是最终的目的主机,如果不是,通常为另一个路由器,它将执行同样的步骤。当分组在网络中流动时,它的物理地址在改变,但其协议地址始终不变,如下图所示。
上面描述了源系统与目的系统间的交换,ISO定义了用于描述此过程的分层的术语。在该术语中,没有转发分组能力的网络设备称为端系统(ES--end system),有此能力的称为中介系统(IS--intermediate system)。IS又进一步分成可在路由域内通信的域内IS(intradomain IS)和既可在路由域内有可在域间通信的域间IS(interdomain IS)。路由域通常被认为是统一管理下的一部分网络,遵守特定的一组管理规则,也称为自治系统(autonomous system)。在某些协议中,路由域可以分为路由区间,但是域内路由协议仍可用于在区间内和区间之间交换数据。
三、路由算法
路由算法可以根据多个特性来加以区分。首先,算法设计者的特定目标影响了该路由协议的操作;其次,存在着多种路由算法,每种算法对网络和路由器资源的影响都不同;最后,路由算法使用多种metric,影响到最佳路径的计算。下面的章节分析了这些路由算法的特性。
1、设计目标
路由算法通常具有下列设计目标的一个或多个:
优化
简单、低耗
健壮、稳定
快速聚合
灵活性
优化指路由算法选择最佳路径的能力,根据metric的值和权值来计算。例如有一种路由算法可能使用跳数和延迟,但可能延迟的权值要大些。当然,路由协议必须严格定义计算metric的算法。
路由算法也可以设计得尽量简单。换句话说,路由协议必须高效地提供其功能,尽量减少软件和应用的开销。当实现路由算法的软件必须运行在物理资源有限的计算机上时高效尤其重要。
路由算法必须健壮,即在出现不正常或不可预见事件的情况下必须仍能正常处理,例如硬件故障、高负载和不正确的实现。因为路由器位于网络的连接点,当它们失效时会产生重大的问题。最好的路由算法通常是那些经过了时间考验,证实在各种网络条件下都很稳定的算法。
此外,路由算法必须能快速聚合,聚合是所有路由器对最佳路径达成一致的过程。当某网络事件使路径断掉或不可用时,路由器通过网络分发路由更新信息,促使最佳路径的重新计算,最终使所有路由器达成一致。聚合很慢的路由算法可能会产生路由环或网路中断。
在下图中的路由环中,某分组在时间t1到达路由器1,路由器1已经更新并知道到达目的的最佳路径是以路由器2为下一跳,于是就把该分组转发给路由器2。但是路由器2还没有更新,它认为最佳的下一跳是路由器1,于是把该分组发回给路由器1,结果分组在两个路由器间来回传递直到路由器2收到路由更新信息或分组超过了生存期。
路由算法还应该是灵活的,即它们应该迅速、准确地适应各种网络环境。例如,假定某网段断掉了,当知道问题后,很多路由算法对通常使用该网段的路径将迅速选择次佳的路径。路由算法可以设计得可适应网络带宽、路由器队列大小和网络延迟。
2、算法类型
各路由算法的区别点包括:
静态与动态
单路径与多路径
平坦与分层
主机智能与路由器智能
域内与域间
链接状态与距离向量
(1)静态与动态
静态路由算法很难算得上是算法,只不过是开始路由前由网管建立的表映射。这些映射自身并不改变,除非网管去改动。使用静态路由的算法较容易设计,在网络通信可预测及简单的网络中工作得很好。
由于静态路由系统不能对网络改变做出反映,通常被认为不适用于现在的大型、易变的网络。九十年代主要的路由算法都是动态路由算法,通过分析收到的路由更新信息来适应网络环境的改变。如果信息表示网络发生了变化,路由软件就重新计算路由并发出新的路由更新信息。这些信息渗入网络,促使路由器重新计算并对路由表做相应的改变。
动态路由算法可以在适当的地方以静态路由作为补充。例如,最后可选路由(router of last resort),作为所有不可路由分组的去路,保证了所有的数据至少有方法处理。
(2)单路径与多路径
一些复杂的路由协议支持到同一目的的多条路径。与单路径算法不同,这些多路径算法允许数据在多条线路上复用。多路径算法的优点很明显:它们可以提供更好的吞吐量和可靠性。
(3)平坦与分层
一些路由协议在平坦的空间里运作,其它的则有路由的层次。在平坦的路由系统中,每个路由器与其它所有路由器是对等的;在分层次的路由系统中,一些路由器构成了路由主干,数据从非主干路由器流向主干路由器,然后在主干上传输直到它们到达目标所在区域,在这里,它们从最后的主干路由器通过一个或多个非主干路由器到达终点。
路由系统通常设计有逻辑节点组,称为域、自治系统或区间。在分层的系统中,一些路由器可以与其它域中的路由器通信,其它的则只能与域内的路由器通信。在很大的网络中,可能还存在其它级别,最高级的路由器构成了路由主干。
分层路由的主要优点是它模拟了多数公司的结构,从而能很好地支持其通信。多数的网络通信发生在小组中(域)。因为域内路由器只需要知道本域内的其它路由器,它们的路由算法可以简化,根据所使用的路由算法,路由更新的通信量可以相应地减少。
(4)主机智能与路由器智能
一些路由算法假定源结点来决定整个路径,这通常称为源路由。在源路由系统中,路由器只作为存贮转发设备,无意识地把分组发向下一跳。其它路由算法假定主机对路径一无所知,在这些算法中,路由器基于自己的计算决定通过网络的路径。前一种系统中,主机具有决定路由的智能,后者则为路由器具有此能力。
主机智能和路由器智能的折衷实际是最佳路由与额外开销的平衡。主机智能系统通常能选择更佳的路径,因为它们在发送数据前探索了所有可能的路径,然后基于特定系统对“优化”的定义来选择最佳路径。然而确定所有路径的行为通常需要很多的探索通信量和很长的时间。
(5)域内与域间
一些路由算法只在域内工作,其它的则既在域内也在域间工作。这两种算法的本质是不同的。其遵循的理由是优化的域内路由算法没有必要也成为优化的域间路由算法。
(6)链接状态与距离向量
链接状态算法(也叫做短路径优先算法)把路由信息散布到网络的每个节点,不过每个路由器只发送路由表中描述其自己链接状态的部分。距离向量算法(也叫做Bellman-Ford算法)中每个路由器发送路由表的全部或部分,但只发给其邻居。也就是说,链接状态算法到处发送较少的更新信息,而距离向量算法只向相邻的路由器发送较多的更新信息。
由于链接状态算法聚合得较快,它们相对于距离算法产生路由环的倾向较小。在另一方面,链接状态算法需要更多的CPU和内存资源,因此链接状态算法的实现和支持较昂贵。虽然有差异,这两种算法类型在多数环境中都可以工作得很好。
3、路由的metric
路由表中含有由交换软件用以选择最佳路径的信息。但是路由表是怎样建立的呢?它们包含信息的本质是什么?路由算法怎样根据这些信息决定哪条路径更好呢?
路由算法使用了许多不同的metric以确定最佳路径。复杂的路由算法可以基于多个metric选择路由,并把它们结合成一个复合的metric。常用的metric如下:
路径长度
可靠性
延迟
带宽
负载
通信代价
路径长度是最常用的路由metric。一些路由协议允许网管给每个网络链接人工赋以代价值,这种情况下,路由长度是所经过各个链接的代价总和。其它路由协议定义了跳数,即分组在从源到目的的路途中必须经过的网络产品,如路由器的个数。
可靠性,在路由算法中指网络链接的可依赖性(通常以位误率描述),有些网络链接可能比其它的失效更多,网路失效后,一些网络链接可能比其它的更易或更快修复。任何可靠性因素都可以在给可靠率赋值时计算在内,通常是由网管给网络链接赋以metric值。
路由延迟指分组从源通过网络到达目的所花时间。很多因素影响到延迟,包括中间的网络链接的带宽、经过的每个路由器的端口队列、所有中间网络链接的拥塞程度以及物理距离。因为延迟是多个重要变量的混合体,它是个比较常用且有效的metric。
带宽指链接可用的流通容量。在其它所有条件都相等时,10Mbps的以太网链接比64kbps的专线更可取。虽然带宽是链接可获得的最大吞吐量,但是通过具有较大带宽的链接做路由不一定比经过较慢链接路由更好。例如,如果一条快速链路很忙,分组到达目的所花时间可能要更长。
负载指网络资源,如路由器的繁忙程度。负载可以用很多方面计算,包括CPU使用情况和每秒处理分组数。持续地监视这些参数本身也是很耗费资源的。
通信代价是另一种重要的metric,尤其是有一些公司可能关系运作费用甚于性能。即使线路延迟可能较长,他们也宁愿通过自己的线路发送数据而不采用昂贵的公用线路。
路由器的工作原理是什么?
路由器利用网络寻址功能使路由器能够在网络中确定一条最佳的路径 IP 地址的网络部
分确定分组的目标网络,并通过 IP地址的主机部分和设备的 MAC 地址确定到目标节点的连接
路由器的某一个接口接收到一个数据包时,会查看包中的目标网络地址以判断该包的目的地址在当前
的路由表中是否存在(即路由器是否知道到达目标网络的路径),如果发现包的目标地址与本路由器的某
个接口所连接的网络地址相同,那么马上数据转发到相应接口;如果发现包的目标地址不是自己的直连
网段,路由器会查看自己的路由表,查找包的目的网络所对应的接口,并从相应的接口转发出去如果路
由表中记录的网络地址与包的目标地址不匹配,则根据路由器配置转发到默认接口,在没有配置默认接口
的情况下会给用户返回目标地址不可达的 ICMP 信息
路由器包含了什么功能?
路由器包含了路由选择和交换的功能
路由器接口通常一个数据分组从一条数据链路传送到另一条数据链路
路由选择功能:为传送分组,路由器会使用地址的网络部分进行路由选择以确定一条最佳路径
路由交换功能:使路由器有能力接收分组并进行转发
所以路由是跨越
路由器在工作中要经历哪几个过程?
路由发现:学习路由的过程,动态路由通常由路由器自己完成,静态路由需要手工配置
路由转发:路由学习之后会照学习更新的路由表进行数据转发
路由维护:路由器通过定期与网络中其他路由器进行通信来了解网络拓扑变化以便更新路由表
路由器记录了接口所直连的网络 ID,称为直连路由,路由器可以自动学习到直连路由而不需要配置
路由器所识别的逻辑地址的协议必须被路由器所支持
路由有哪几种类型?各种路由的特点是什么?
路由分为静态路由 、动态路由。
静态路由是由管理员在路由器进行手工配置的固定的路由
静态路由允许对路由的行为进行精确的控制减少了网络流量单向以及配置简单静态路由通常情
况下优先级最高,因为其管理距离最短
静态路由的配置方法:
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的消息
动态路由是网络中的路由器之间根据实时网络拓扑变化,相互通信传递路由信息,利用收到的路由信
息通过路由选择协议计算,更新路由表的过程
动态路由减少了管理任务
常见的动态路由包括距离矢量路由选择协议和链路状态路由选择协议
路由分为静态路由(static routing)和动态路由(dynamic routing)。
静态路由是在路由器中设置的固定的路由表。除非网络管理员干预,否则静态路由不会发生变化。由于静态路由不能对网络的改变作出反映,一般用于网络规模不大、拓扑结构固定的网络中。静态路由的优点是简单、高效、可靠。在所有的路由中,静态路由优先级最高。当动态路由与静态路由发生冲突时,以静态路由为准。
静态路由的配置:
进去全局配置模式,定义目标网络号,目标网络的子网掩码和下一跳地址或接口
Router(config)#ip route {nexthop-address|exit-interface} [distance]
默认路由的配置:
Router(config)#ip route 0.0.0.0 0.0.0.0 {nexthop-address|exit-interface} [distance]
动态路由是网络中的路由器之间相互通信,传递路由信息,利用收到的路由信息更新路由器表的过程。它能实时地适应网络结构的变化。如果路由更新信息表明发生了网络变化,路由选择软件就会重新计算路由,并发出新的路由更新信息。这些信息通过各个网络,引起各路由器重新启动其路由算法,并更新各自的路由表以动态地反映网络拓扑变化。动态路由适用于网络规模大、网络拓扑复杂的网络。当然,各种动态路由协议会不同程度地占用网络带宽和CPU资源。
动态路由分为距离矢量路由协议(DistanceVector Routing Protocol)和链路状态路由协议(Link-State Routing Protocol)。
距离矢量路由协议包括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)#networkxxxx.xxxx.xxxx.xxxx
RIPv2的配置
Router(config)#router rip
Router(config-router)#version2
Router(config-router)#noauto-sunnmary
Router(config-router)#networkXXXX.XXXX.XXXX.XXXX
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-sunnmary
Router(config-router)#networkXXXX.XXXX.XXXX.XXXX
OSPF
0SPF是一种基于链路状态的路由协议,需要每个路由器向其同一管理域的所有其它路由器发送链路状态广播信息。在OSPF的链路状态广播中包括所有接口信息、所有的量度和其它一些变量。利用0SPF的路由器首先必须收集有关的链路状态信息,并根据一定的算法计算出到每个节点的最短路径。而基于距离向量的路由协议仅向其邻接路由器发送有关路由更新信息。
配置:
Router(config)#router ospf XX
Router(config-router)#router-idX.X.X.X
Router(config-router)#networkXXXX.XXXX.XXXX.XXXX area X
OSPF将一个自治域再划分为区,相应地即有两种类型的路由选择方式:当源和目的地在同一区时,采用区内路由选择;当源和目的地在不同区时,则采用区间路由选择。这就大大减少了网络开销,并增加了网络的稳定性。当一个区内的路由器出了故障时并不影响自治域内其它区路由器的正常工作,这也给网络的管理、维护带来方便。
静态路由和动态路由有各自的特点和适用范围,因此在网络中动态路由通常作为静态路由的补充。当一个分组在路由器中进行寻径时,路由器首先查找静态路由,如果查到则根据相应的静态路由转发分组;否则再查找动态路由。