一、简述 动态路由协议通过路由信息的交换生成并维护转发引擎所需的路由表。当网络拓扑结构改变时动态路由协议可以自动更新路由表,并负责决定数据传输最佳路径。 在动态路由中,管理员不再需要与静态路由一样,手工对路由器上的路由表进行维护,而是在每台路由器上运行一个路由协议。这个路由协议会根据路由器上的接口的配置(如IP地址的配置)及所连接的链路的状态,生成路由表中的路由表项。 二、原理 动态路由机制的运作依赖路由器的两个基本功能:路由器之间适时的路由信息交换,对路由表的维护: [1]

  1. 路由器之间适时地交换路由信息。 动态路由之所以能根据网络的情况自动计算路由、选择转发路径,是由于当网络发生变化时,路由器之间彼此交换的路由信息会告知对方网络的这种变化,通过信息扩散使所有路由器都能得知网络变化。
  2. 路由器根据某种路由算法(不同的动态路由协议算法不同)把收集到的路由信息加工成路由表,供路由器在转发IP报文时查阅。 在网络发生变化时,收集到最新的路由信息后,路由算法重新计算,从而可以得到最新的路由表。 需要说明的是,路由器之间的路由信息交换在不同的路由协议中的过程和原则是不同的。交换路由信息的最终目的在于通过路由表找到一条转发IP报文的“最佳”路径。每一种路由算法都有其衡量“最佳”的一套原则,大多是在综合多个特性的基础上进行计算,这些特性有:路径所包含的路由器结点数(hop count)、网络传输费用(cost)、带宽(bandwidth)、延迟(delay)、负载(load)、可靠性(reliability)和最大传输单元MTU(maximum transmission unit)。 常见的动态路由协议有:RIP、OSPF、IS-IS、BGP、IGRP/EIGRP。每种路由协议的工作方式、选路原则等都有所不同。 三、常见种类简介 RIP路由协议 RIP(Routing information Protocol,路由协议)是应用较早、使用较普通的内部网关协议,适用于小型同类网络的一个自治系统(AS)内的路由信息的传递。RRIP有四个版本,即RIPv1、RIPv2、RIPv2、RIPv4。 RIP协议最初是为Xerox网络系统的Xerox parc通用协议而设计的,是Internet中常用的路由协议。RIP采用距离向量算法,即路由器根据距离选择路由,所以也称为距离向量协议。路由器收集所有可到达目的地的不同路径,并且保存有关到达每个目的地的最少站点数的路径信息,除到达目的地的最佳路径外,任何其它信息均予以丢弃。同时路由器也把所收集的路由信息用RIP协议通知相邻的其它路由器。这样,正确的路由信息逐渐扩散到了全网。 RIP使用非常广泛,它简单、可靠,便于配置。但是RIP只适用于小型的同构网络,因为它允许的最大站点数为15,任何超过15个站点的目的地均被标记为不可达。而且RIP每隔30s一次的路由信息广播也是造成网络的广播风暴的重要原因之一。 OSPF路由协议 80年代中期,RIP已不能适应大规模异构网络的互连,OSPF随之产生。它是互联网工程任务组(IETF)的内部网关协议工作组为IP网络而开发的一种路由协议。 OSPF是一种基于链路状态的路由协议,需要每个路由器向其同一管理域的所有其它路由器发送链路状态广播信息。在OSPF的链路状态广播中包括所有接口信息、所有的量度和其它一些变量。利用OSPF的路由器首先必须收集有关的链路状态信息,并根据一定的算法计算出到每个节点的最短路径。而基于距离向量的路由协议仅向其邻接路由器发送有关路由更新信息。 与RIP不同,OSPF将一个自治域再划分为区,相应地即有两种类型的路由选择方式:当源和目的地在同一区时,采用区内路由选择;当源和目的地在不同区时,则采用区间路由选择。这就大大减少了网络开销,并增加了网络的稳定性。当一个区内的路由器出了故障时并不影响自治域内其它区路由器的正常工作,这也给网络的管理、维护带来方便。 IS-IS IS-IS是中间系统到中间系统的路由选择协议,是由国际标准化组织(ISO)提出的一种路由选择协议。ISIS协议主要用于城域网和承载网。 一个路由器是Intermediate System(IS),一个主机就是End System(ES)。主机和路由器之间运行的协议称为ES-IS,路由器与路由器之间运行的协议称为IS-IS。 IS-IS是一种链路状态协议,实际上与TCP/IP网络中的OSPF协议非常相似,它也使用Hello报文寻找毗邻节点,使用一个传播协议发送链接信息。 一个非技术问题是IS-IS受OSI约束,使得以前与OSPF相比它的发展比较缓慢。但IS-IS在RFC方面(Integrated)得到了很多的扩展,使得它可以比OSPF更容易、更简单地实现对新要求的支持,如IPv6、TE等。 BGP和BGP-4路由协议 BGP是为TCP/IP互联网设计的外部网关协议,用于多个自治域之间。它既不是基于纯粹的链路状态算法,也不是基于纯粹的距离向量算法。它的主要功能是与其它自治域的BGP交换网络可达信息。各个自治域可以运行不同的内部网关协议。BGP更新信息包括网络号/自治域路径的成对信息。自治域路径包括到达某个特定网络须经过的自治域串,这些更新信息通过TCP传送出去,以保证传输的可靠性。 为了满足Internet日益扩大的需要,BGP还在不断地发展。在最新的BGp4中,还可以将相似路由合并为一条路由。 [3] 路由表项的优先问题 在一个路由器中,可同时配置静态路由和一种或多种动态路由。它们各自维护的路由表都提供给转发程序,但这些路由表的表项间可能会发生冲突。这种冲突可通过配置各路由表的优先级来解决。通常静态路由具有默认的最高优先级,当其它路由表表项与它矛盾时,均按静态路由转发。 动态路由协议的管理距离: RIP 120 IGRP 100 EIGRP 90 EIGRP汇总路由—5;外部EIGRP---170 OSPF 110 BGP 200(从IBGP邻居收到的路由) 外部BGP—20(从EBGP邻居收到的路由) IS-IS 115 未知 255 四、特点 1、无需管理员手工维护,减轻了管理员的工作负担。 2、占用了网络带宽。 3、在路由器上运行路由协议,使路由器可以自动根据网络拓朴结构的变化调整路由条目; 4、网络规模大、拓扑复杂的网络 [3]