细说路由协议

  广泛应用的Internet是由众多个IP子网通过路由器互连构成的国际性网络。这种以路由器为基础的网络,形成了以路由器为节点的“网间网”。在“网间网”中,路由器不仅负责对IP分组的转发,而且还要负责与别的路由器进行联络,共同确定“网间网”的路由选择和维护路由表。

  1.路由协议概念:

  路由器必须与相邻路由器互通信息以交换路由信息,更新维护动态路由表使之正确反映网络的拓扑结构变化,并由路由器根据量度标准来决定最佳路径,路由协议是路由器之间进行通信而采用的协议,当网络启用了路由协议,网络便具有了能够自动更新路由表的强大功能。在介绍路由协议之前让我们先了解下述概念:

    (1)自治域(AS,Autonomous System): 由单个实体管理,具有统一管理机构、统一路由策略的网络。在这里单个实体,通常指单独的因特网服务提供者(ISP,Internet Service Provider)。
    (2)收敛(Convergence):对于路由协议,网络上的路由器在一条路径不能使用时必须经历决定替代路径的过程,是在最佳路径的判断上所有路由器达到一致的过程。当某个网络事件引起路由可用或不可用时,路由器就发出更新信息。路由更新信息遍及整个网络,引发重新计算最佳路径,最终达到所有路由器一致公认的最佳路径。收敛慢的路由算法会造成路径循环或网络中断。
    (3)路由算法:路由算法在路由协议中处于起着至关重要作用的核心地位,它将收集到的不同信息填入路由表中,并最终决定寻径的结果,将目的网络与下一站的关系告诉路由器。

  具体在运行过程中,路由器按照某种路由通信协议,查找路由表,路由表中列出整个互联网络中包含的各个节点,以及节点间的路径情况和与它们相联系的传输费用。如果到特定的节点有一条以上路径,则基于预先确定的准则选择最优(最经济)的路径。另外由于各种网络段和其相互连接的情况可能发生变化,因此路由情况的信息需要及时更新,这时由所使用的路由信息协议规定定时更新或者按变化情况更新来完成。网络中的每个路由器按照这一规则动态地更新它所保持的路由表,以便保持有效的路由信息。

  采用何种算法往往需要综合考虑以下设计目标:

  ①.最优化:指路由算法选择最佳路径的能力。
  ②.简洁性:算法设计简洁,利用最少的软件和开销,提供最有效的功能。
  ③.坚固性:路由算法处于非正常或不可预料的环境时,如硬件故障、负载过高或操作失误时,都能正确运行。由于路由器分布在网络联接点上,所以在它们出故障时会产生严重后果。最好的路由器算法通常能够经受各种变化情况的考验,并在各种网络环境下被证实是可靠的。
  ④.快速收敛:收敛是在最佳路径的判断上所有路由器达到一致的过程。当某个网络事件引起路由可用或不可用时,路由器就发出更新信息。路由更新信息遍及整个网络,引发重新计算最佳路径,最终达到所有路由器一致公认的最佳路径。收敛慢的路由算法会造成路径循环或网络中断。
  ⑤.灵活性:路由算法可以快速、准确地适应各种网络环境。例如,某个网段发生故障,路由算法要能很快发现故障,并为使用该网段的所有路由选择另一条最佳路径。

  路由算法按照种类可分为以下几种:静态和动态、单路和多路、平等和分级、源路由和透明路由、域内和域间、链路状态和距离向量。下面重点介绍链路状态和距离向量算法。

  ①.距离向量算法:距离向量算法也称为Bellman-Ford算法,以经过的路由数即跳数(hop)大小,确定最佳路径。要求每个路由器周期性发送其路由表全部或部分信息(仅发送到邻近结点上),来维护路由器路由表。

  ②.链路状态算法:链路状态算法也称最短路径算法、接口状态算法,以创建该算法的人来命名,也称为Dijkstra算法,根据路由器接口状态,确定最佳路径。当路由器启动或网络结构发生变化时发送链路状态通告到互联网上所有的结点,一旦路由器收到所有的链路状态通告,每一个路由器将会对区域中的网络拓扑结构有一个完整的观察,以自己为根生成一个树,并且有着到达任一个目的网络或主机的完整道路,一个路由器对拓朴结构的观察将不同于其它的路由器,每个路由器把它自己作为树的根,形成自己的路由表。对于每个路由器,仅发送它的路由表中描述了其自身链路状态的那一部分。

  从本质上来说,链路状态算法将少量更新信息发送至网络各处,而距离向量算法发送大量更新信息至邻接路由器。由于链路状态算法收敛更快,它在一定程度上比距离向量算法更不易产生路由循环。但另一方面,链路状态算法要求比距离向量算法有更强的CPU能力和更多的内存空间。
但两种算法可以结合使用,互补不足。

  路由算法使用了许多种不同的度量标准去决定最佳路径。复杂的路由算法往往采用多种度量来选择路由,通过的加权运算,合并为单个的复合度量、填入路由表,作为寻径的标准。通常所使用的度量有:路径长度、可靠性、时延、带宽、负载、最大传输单元和通信成本等。

  根据是否在一个自治域内部使用,动态路由协议分为内部网关协议(IGP,Internal Gateway Protocol)和外部网关协议(EGP,External Gateway Protocol)。常用路由协议(见表1),下面分别进行简要介绍。


表1

  2.内部网关协议(IGP,Internal Gateway Protocol):

  通常只能自治域内部采用的路由选择协议称为内部网关协议,常用的有路由信息协议(RIP,Routing Information Protocol)、开放式最短路优先(OSPF,Open Shortest Path First)、内部网关路由协议(IGRP,Interior Gateway Ronting Protocol)、增强内部网关路由协议(EIGRP,Enhanced Interior Gateway Ronting Protocol)以及中间系统到中间系统路由交换协议(IS-IS,Intermediate System to Intermediate System )等等。适用于单个ISP(自治系统)的统一路由协议的运行,由一个ISP运营的网络称为一个自治系统。

  (1)路由信息协议(RIP,Routing Information Protocol):

  于1970年,美国Xerox(施乐)公司首先开发出RIP路由协议,它作为NXS(Xerox Networking Services)协议族的一部分,为Xerox网络系统的Xerox parc通用协议而设计的,是一个用于网关(路由器)和主机间交换路由信息的距离向量协议。RIP应用了基于Bellham-Ford(距离向量)算法,首先被4BSD UNIX上的Berkeley分布路由软件广泛使用,应用TCP/IP协议用RIP给本地网络上的机器提供路径选择和可达信息,后来用RIP提供广域网的路由信息,一直是一种被广泛应用于同构网络的内部网关协议(IGP)。支持最大跳数为15。在1988年被标准化在RFC1058中,是应用较早、使用较普遍、最简单的的内部网关协议,适用于小型同构网络,是典型的距离向量(distance-vector)协议。

  RIP用更新(UNPDATES)和请求(REOUESTS)两种分组传输路由信息。更新信息用于广播路由表,其中每一项由两部分组成:局域网上能达到的IP地址和与该网络的距离。请求信息用于寻找网络上能发出RIP报文的其他设备。

  RIP 使用UDP作为它的传输协议,端口是520。通过广播报文来交换路由信息,主要传递路由信息(路由表)来广播路由。每隔30秒,广播一次路由表,维护相邻路由器的关系,同时根据收到的路由表计算自己的路由表。在每30秒发送一次路由信息更新时。RIP提供跳跃计数(hop count)作为尺度来衡量路由距离,跳跃计数是一个包到达目标所必须经过的路由器的数目。使用距离来决定最佳路径,如通过路由跳数来衡量。到这个路由器具有最低跳数的路径是被选中的路径。如果首选的路径不能正常工作,那么具有较高跳数的路径被作为备份。除到达目的地的最佳路径外,任何其它信息均予以丢弃。同时路由器也把所收集的路由信息用RIP协议通知相邻的其它路由器。这样,正确的路由信息逐渐扩散到了全网。

  其优点是:它简单、可靠,便于配置,障碍修复非常容易。

  其缺点是:
  ①.没有子网地址的概念,无法区分子网号;RIP协议的原始版本不能应用可变长子网屏蔽(VLSM,Variable Length Subnet Masks),因此不能分割地址空间以最大效率地应用有限的IP地址。
  ②.路由度量忽略了吞吐率、往返时间、可靠性、实际距离、通信延迟、网络速度及带宽等一些应该考虑的因素或性能。如果到相同目标有二个不等速或不同带宽的路由器,但跳跃计数相同,则RIP认为两个路由是等距离的。RIP协议的另一个基本问题是,当选择路径时它忽略了连接速度问题。例如,如果一条由所有快速以太网连接组成的路径比包含一个10Mbps以太网连接的路径远一个跳数,具有较慢10Mbps以太网连接的路径将被选定作为最佳路径。
  ③.支持网络大小有限,只适用于小型网络。RIP最多支持的跳数为15,即在源和目的网间所要经过的最多路由器的数目为15,跳数16表示不可达。假定如果从网络的一个终端到另一个终端的路由跳超过15个,那么就认为一定牵涉到了循环。因此当一个路径达到16跳,将被认为是达不到的。对于规模较大的网络,或具有多余路径的网络,应该考虑使用其它路由协议。
  ④.而且RIP每隔30秒一次的路由信息广播也是造成网络的广播风暴的重要原因之一。

  于1993年,RIP2是在RFC1388中对RIP定义进行完善扩充而产生的第二版本,它支持IPv6(Internet Protocol Version 6)规范的128位地址;通过引入子网屏蔽与每一路由广播信息一起使用实现了对可变长子网掩码(VLSM,Variable Length Subnet Masks)的支持;除广播外还增加了多播功能,可以减少不收听报文的主机负载;提供简单的鉴别机制以及路由汇总功能。

  RIP2没有能弥补该协议的主要缺陷:收敛慢。

  在有多重路径到相同目标的网络中,RIP确定使用一条可选择的路径将花费许多时间。在RIP协议认识到路径不能达到前,它被设为等待,直到它已错过6次更新,总共180秒时间。然后,在使用新路径更新路由表前,它等待另一个可行路径的下一个信息的到来。这意味着在备份路径被使用前至少经过了3分钟,这对于多数应用程序超时是相当长的时间。

  (2)内部网关路由协议(IGRP,Interior Gateway Ronting Protocol):

  于1986年,美国著名路由器生产公司Cisco(思科)公司开发了内部网关路由选择协议(IGRP),它是Cisco专有的距离向量路由选择协议,严格地讲,它以距离向量路由传输机制为根本,并对此进行加强,是一种动态距离向量路由协议,致力于解决RIP协议的不足。

  IGRP即不使用TCP,也不使用UDP作为它的传输协议,在IP首部的协议(Protocol)字段,有其单独的值9。采用周期性广播路由表的方式维护路由信息,它每90秒发送一次路由更新广播,在3个更新周期内(即270秒),没有从路由中的第一个路由器接收到更新,则宣布路由不可访问。在7个更新周期即630秒后,Cisco IOS 软件从路由表中清除路由。

  其优点是:
  ①.扩大了网络应用的规模。虽然RIP在小型同构网络上工作得相当好,但它的跳数小(16)的特点严重限制了网络的大小,IGRP通过使网络跳数增加到255跳,能够满足较大网络规模的应用。
  ②.提高了在复杂网络环境下路由选择的弹性。使用组合用户配置尺度,包括网络延迟、带宽、链路可靠性和负载4种度量。避免了并且单一的度量(跳数)不能给复杂网络提供有弹性的路由选择。
  ③.减少了因网络上的不一致带来的路由选择环路的可能性。RIP路由协议存在环路问题,路由器不知道网络的全局情况,必须依靠相邻路由器来获取网络的可达信息。由于路由选择更新信息在网络上传播慢,距离向量路由选择协议有一个收敛慢问题,这个问题有时将导致不一致性产主。IGRP使用水平分割、破坏逆转更新、保持计数器和触发更新机制有效控制了路由选择环路的产生。

  其缺点是:不支持可变长子网掩码(VLSM),在网络拓扑结构发生变化时,需要大量的CPU、存储器和带宽资源。

  (3)增强内部网关路由协议(EIGRP,Enhanced Interior Gateway Ronting Protocol):

  于1994年,Cisco(思科)公司随IOS 9.21发布了加强型内部网关路由协议(EIGRP),它是一个先进的距离向量路由协议,采用散播更新算法(DUAL,Diffusing Update ALgorithm)和链路状态路由协议相结合的方式,致力于解决传统的距离向量和链路状态协议的局限,虽属于距离向量协议的范围,同时也拥有链路状态协议的许多特征。支持最大跳数为224。

  传统的距离向量协议如RIP向所有连接的邻居转发路由更新,这些邻居再依次更新它的邻居。这种路由信息的逐跳式传播产主了较大的收敛次数和循环的拓扑问题。链路状态协议(如OSPF)对传统的距离向量协议进行了替代。链路状态协议的问题是它通过重复覆盖整个区域中的拓扑信息来解决传统的距离向量协议的收敛问题。在大型网络中这种重复很不理想而且对CPU的利用率有很大的影响(因为需要运行SPF计算数目)。

  EIGRP即不使用TCP,也不使用UDP作为它的传输协议,在IP首部的协议(Protocol)字段,有其单独的值88。与OSPF协议一样,EIGRP路由器寻找它们的邻接路由器并交换“hello”数据包。EIGRP协议每隔5秒传送“hello”数据包(或者在低速NBMA网络中每60秒发送一次)。如果失败3次,邻接路由器则被认为是宕机状态,替代的路径将被使用。Hello包使得路由器动态地快速地发现邻居的消失。如果在保持计数器超期之前还没有从它邻居路由器处收到Hello包,那么这个邻居就被宣布取消。此时邻居邻接被删除,并且所有与那个邻屠相连的路径被取消。

  拓扑表包括路由器和它邻居到达目的端的度量。散射更新算法(DUAL)使用拓扑表来寻找到达每个目的端的最低度量非环道路。这个具有最小成本道路的下跳路由器被指定为后继,并且它是路由表中下一跳IP地址。DUAL算法也会去寻找一个可行性后继(或者下一个最优路径),它被存储在拓扑数据库中。

  如果路由器失去了它的后继,并且有一个可利用的可行性后继就不须要重新计算。路由器就使可行性后继成为后继,并向路由表中加入一条新路径,使自己处于被动状态。如果没有可利用的可行性后继,则路由器进入目的端网络的主动状态,同时需要重新计算路径。

  当路由器处于主动状态,路由器向所有EIGRP接口发出查询包(除了后继驻留的接口),并询问邻居是否有一条到所给目的端的路径。邻居回答,并向发送者通知它们有或没有一条到达目的端的路径。一旦收到所有的回答,路由器就会计算一条新的后继。如收到查询包的邻居利用发送者去到达目的端网络(作为它的后继),这个邻居就会查询它所有的邻居来寻找一条到达目的端的路径。被查询的邻居经过同样的过程,来生成一个向下的涉及整个网络的查询来寻找一条到达目的端的道路。只要EIGRP有一个可行性后继,就不需要重计算。这条情况使路由器不必使用CPU时钟,还能加速收敛。不受拓扑变化影响的路由器不需重新计算。

  其优点是:
  ①.迅速广播链路状态的变化。当本地路由器的链路状态发生变化,在新信息基础上它将重新计算拓扑结构表。OSPF协议此时将立即向网络中的每个路由器广播链路状态的变化,而EIGRP协议将仅仅涉及到被这些变化直接影响的路由器。这使带宽和CPU资源的利用效率更高。同时,由于EIGRP协议使用了不到50%的带宽,使得在低带宽WAN链路上具有很大优势。
  ②.链路状态度量更完善。EIGRP度量值是一个32位数,使用链路的带宽、延迟、可靠性、存放、跳数和最大传输单元(MTU,Maximum Transmission Unit)共6种不同特征以及可配置的K值来计算,提供有弹性较大的路由选择。
  ③.支持多种网络协议,减少了因网络上的不一致带来的路由选择环路的可能性。EIGRP协议支持Novell/IPX、Apple Talk和IP环境。如果网络正在运行的是IGRP协议,那么转换到EIGRP协议比转换到OSPF协议要容易的多。

  其缺点是:没有标准化。同样也存在收敛慢的问题。

  (4)中间系统到中间系统路由交换协议(IS-IS,Intermediate System to Intermediate System ):

  ISO IS-IS协议是OSI的标准内部网关协议(IGP),它是链路状态路由协议,严格地讲是一个分级的链接状态路由协议。采用DECnet PhaseV路由算法。使用Hello协议寻找毗邻节点,使用一个传播协议发送链接信息,类似OSPF协议。

  IS-IS协议把网络进行分级管理,把任何没有路由功能的网络节点称为终端系统(ES);而路由器定义为中间系统(IS)。ES和IS之间采用ES-IS(ISO9542)协议,允许ES和IS之间相互发现。IS和IS之间采用IS-IS协议,IS-IS提供IS之间的路由。结合起来形成OSI协议的基础。

  由中间系统(路由器)连接起来的一系列终端系统叫区域,它处于最低一级。将多个区域互联起来称为路由域。每个路由域是一个独立的管理区域,与AS类似。分两级路由:区域内的站点路由(第一级)和区域间的区域路由(第二级)。也就是说,第一级路由器形成第一级区域,而第二级路由器在第一级区域之间形成一个路由域内部的路由骨干。第一级路由器只需要具有如何到达最近的第二级路由器的信息,就可以进行区域间的通信。

  在IS-IS路由中,每个ES都位于一个指定的区域内,ES通过接听IS hello包,获得最近的路由器(IS)的信息。当一个ES需要向另一个ES发送数据时,它首先将包发送给网络中与它直接相连的一个路由器。然后路由器确定包的目的地址,使用最佳路径路由此包。如果目的ES在同一子网上,或是在相同区域中的另外一个子网上,那么本地路由器将相应地转发包。如果目的ES位于另一个区域中,那么第一级路由器将把包转发给最近的第二级路由器。在通过了连续的第二级路由器之后,该包将到达目的区域中的第二级路由器。在目的区域中,路由器通过最佳路径传送包,直到包到达目的ES为止。

  路径的长度等于链路的合计值,链路可以具有的最大值为64,路径的最大值为1024。IS-IS使用一个缺省度量值,该度量值可以是任意的,另外还指定三种其他的可选度量值:延时代价、花费代价(通信费用)和错误代价(差错率)。

  其优点是:
  ①.ES-IS可以支持三种不同类型的子网:点到点子网(如HDLC)、广播子网(如以太网)和普通拓扑结构子网(如X.25)。
  ②.IS-IS可以在不同的子网上操作,包括广播型的LAN、WAN和点到点链路
  ③.链路状态度量较完善。

  其缺点是:
  ①.IS-IS使用一个小的度量值(6比特),严重限制了能与它进行转换的信息。
  ②.链接状态只有8比特长,路由器通告的记录限制为256个。
  ③.IS-IS受OSI约束,使得与OSPF相比发展比较缓慢。

  (5)开放式最短路优先路由信息协议(OSPF,Open Shortest Path First):

  于1988年,网间工程任务组织(IETF,Internet Engineering Task Framework)成立了内部网关协议工作组,专门设计用于因特网的基于最短路径优先(SPF)算法的IGP。在此前多项研究结果的基础上开发出开放式最短路优先路由信息协议(OSPF),诸如1978年Bolt、Beranek、Newman(BBN)为ARPANET开发的SPF算法,1988年Dr.Radia Perlman对路由信息容错性广播的研究成果等等。

  开放式最短路径优先协议(OSPF)是一种链路状态路由选择协议,链路是路由器接口的另一称法,因此也称为接口状态路由协议。采用Dijkstra算法,路由选择的变化基于网络中路由器物理连接的状态与速度,并且变化被立即广播到网络中的每一个路由器。它被用于单个自治系统来分发路由选择信息。

  作为链接状态路由协议,OSPF与RIP和IGRP这些距离向量路由协议是不同的。使用距离向量算法的路由器的工作模式是在路由更新信息中把路由表全部或部分发送给其相邻的路由器。

  而OSPF用链路状态算法来计算在每个区域中到所有目的的最短路径时,只有当一个路由器第一次被激活或者任一个路由变化发生,这个配备给OSPF的路由器使用OSPF的“hello协议”来发现与它连接的邻节点,将链路状态通告(LSA,Link State Advertisement)扩散到同一级区域内所有路由器,这些LSA包含这个路由器的接口的状态(包括与上、下、IP地址、网络类型筹)和路由器和它邻居间的联系,从这些LSA的收集中形成了链路状态数据库,在这个区域中的所有路由器都有一个特定的数据库,它由每个接口、对应邻节点和接口速度组成,被用来描述这个区域的拓扑结构。这个路由器于是就运行Diskjtra算法,这个算法根据到达这个网络的费用计算规则,利用链路状态数据库在该区域中形成以自己为根到所有目的的最短路径优先树(SPF树),从这个最短路径优先树(SPF树)中形成了IP路由表。如果网络中发主的任何改变都将会被链路状态包扩散出去,直到网络中的每个路由器收到了所有其它路由器的LSA,同时使路由器利用这些新信息,重新计算最短路径优先树(SPF树),形成新路由表。

  OSPF是一种相对复杂的路由协议。

  OSPF即不使用TCP,也不使用UDP作为它的传输协议,直接使用IP,在IP首部的协议(Protocol)字段,有其单独的值89。它通过传递链路状态来得到网络信息,LSA每30分钟被交换一次,除非网络拓扑结构有变化。例如,如果接口变化,信息立刻通过网络广播;如果有多余路径,收敛将重新计算SPF树。计算SPF树所需的时间取决于网络规模的大小。因为这些计算,路由器运行OSPF需要占用更多CPU资源。

  于1991年,在RFC1247中对第2版OSPF进行了描述,即OSPF2,也是第一次被标准化。

  其优点是:
  ①.首先该协议是开放的,即其规范是公开的。OSPF协议是"开放式最短路优先"的缩写。"开放"是针对当时某些厂家的"私有"路由协议而言,而正是因为协议开放性,才使得OSPF具有强大的生命力和广泛的用途。
  ②.OSPF能服务于大型、异构网络。为了较大型网络,并弥补OSPF协议大量占用CPU和内存资源的缺陷,将网络分成独立的层次域,称为区域(Area),每个路由器仅与它们自己区域内的其它路由器交换LSA,降低网络中的交通数量。在一个区域中的路由器都有一个特定的拓扑数据库,就像同区域中的其它路由器一样。一个多区域中的路由器有着不同的拓扑数据库,用于不同的区域,它们都与路由器相连。那些所有的接口都在同一个区域中的路由器称为内部路由器(IR,Interior Router),连接于同一自治系统中的路由器称为区域边界路由器(ABR,Area Border Router),另一种路由器充当网关的作用,从一个AS到另一个AS重分配路由信息,称为自治系统边界路由器(ASBR,Autonomous System Border Router)。相应地即有两种类型的路由选择方式:当源和目的地在同一区时,采用区内路由选择;当源和目的地在不同区时,则采用区间路由选择。这就大大减少了网络开销,并增加了网络的稳定性。当一个区内的路由器出了故障时并不影响自治域内其它区路由器的正常工作,这也给网络的管理、维护带来方便。
  ③.OSPF可以对每个IP服务类型计算各自的路由集。实现对于任何目的,可以有多个路由表表项,每个表项对应着一个IP服务类型。
  ④.给每个接口指派一个无维数的费用,可以通过吞吐率、往返时间、可靠性或其他性能来进行指派。可以给每个IP服务类型指派一个单独的费用。
  ⑤.当对同一个目的地址存在着多个相同费用的路由时, 可以平均分配流量。实现流量平衡。
  ⑥.OSPF支持子网,子网掩码与每个通告路由相连。允许将一个任何类型的IP地址分割成多个不同大小的子网(称之为变长度子网)。到一个主机的路由是通过全1子网掩码进行通告,默认路由是以IP地址为0.0.0.0网络掩码为全0进行通告的。
  ⑦.路由器之间的点对点链路不需要每端都有一个IP地址,实现无编号网络。节省IP地址资源。
  ⑧.采用一种简单鉴别机制。可以采用类似于RIP2机制的方法指定一个明文口令。
  ⑨.OSPF采用多播,而不是广播形式,以减少不参与OSPF的系统负载。

  (6)其它内部网关协议:

  除了上述经常使用的路由协议外,在工作中我们还会遇到其它一些路由协议:

  AppleTalk路由表维护协议(RTMP)、Banyan VINES路由表协议(RIP)是基于IP版的RIP的变种。

  ICMP路由器发现协议(IRDP,ICMP Router Discovery Protocol)是Internet控制消息协议(ICMP,Internet Control Message Protocol)的一个扩展,它使得主机能够动态地发现缺省网关路由器的IP地址。在一个多路由器的环境下,IRDP还使得主机能够检测和纠正由于网关故障产生的错误。IRDP在RFCI256中定义,它为主机提供自动配置路由器地址的功能,与动态主机配置协议(DHCP)类似。IRDP独立于任何其他的路由协议,它包括路由器发起的广播消息(路由器通告)和主机发起的查询消息(路由器寻找)。由于当存在多条路径时IRDP并不能提供理想的选择,如果主机选择了一个不好的通向特定目的地的第一跳路由器,那么被选择的设备将发送回一个ICMP重定向报文,指明一条更好的路径。

  网关发现协议(GDP,Gateway Discovery Protocol)是由Cisco公司开发的一套协议,它是更标准化的、更严格的ICMP路由器发现协议(IRDP,ICMP Router  Discovery Protocol,IRDP)的前导协议,与IRDP不同,GDP是基于UDP协议的,使用的缺省端口值为1997。GDP使得主机能够动态地监测与其直接相连的网络上的路由器的到来。一个给定的网络中可能有多个路由器,主机选择其中的一个或多个来传输流量。主机可以通过发现路由器不能定期进行通告来发现路由器故障,并做相应的补偿。

  3.外部网关协议(EGP,External Gateway Protocol):

  外部网关协议主要用于多个自治域之间的路由选择,常用的边界网关协议(BGP ,Border Gateway Protocol,)、域间路由协议(IDRP,Internal Domain Routing Protocol)等是自治系统间的路由协议,是一种外部网关协议。

  一般说来,整个互联网并不适合运行单一的路由协议,因为各ISP有自己的利益,不愿意提供自身网络详细的路由信息。为了保证各ISP利益,标准化组织制定了ISP间的路由协议BGP。

  (1)外部网关协议(EGP,External Gateway Protocol):

  外部网关协议(EGP)是专门为ARPANET(Advanced Research Propject Agency Network)开发的协议,是一个动态路由协议,也是第一个外部网关协议(EGP),它在Internet上得到了广泛使用。

  EGP即不使用TCP,也不使用UDP作为它的传输协议,在IP首部的协议(Protocol)字段,有其单独的值8。运行EGP的路由器建立一系列的邻接关系,所有邻站都是一些EGP路由器,它们之间共享网络可达信息,但并不表示它们在地理位置上也是邻接的。EGP路由器轮询邻站,以确定它们是否还在工作。发送更新报文,其中包括自治系统中可达的网络信息。EGP更新报文的内容是网络可达信息,指明通过一定的路由器可以到达哪个网络。

  EGP协议设计十分简单。它没有使用度量值,无法进行智能化的路由选择。随着Internet的发展和成熟,EGP已经被Internet所淘汰。取而代之的是边界网关协议(BGP)和域间路由协议(IDRP)。

  (2)边界网关协议(BGP,Border Gateway Protocol):

  于1987年,取代ARPANET所使用的EGP协议,出现了EGP协议。内部网关协议(IGP)需要全局的信息计算路由表,诸如象RIP/RIP2、OSPF、IS-IS或IGRP/EIGRP等,都有一定的协定,只适合于那些只有单个管理员负责网络管理和运行的地方;否则,将会出现配置错误导致网络性能降低或是运行不稳定的情况。对于由许多管理员共同分担责任的网络,如Internet网络,就要考虑使用外部网关协议(EGP),BGP是为TCP/IP互联网设计的外部网关协议,用于多个自治域之间。它既不是基于纯粹的链路状态算法,也不是基于纯粹的距离向量算法。

  BGP使用TCP作为它的传输协议,端口是179。通过定期发送keepalive报文给其邻接站点,检测TCP连接对端的链路状况,时间间隔建议值为30秒。BGP更新信息包括网络号/自治域路径的成对信息。自治域路径包括到达某个特定网络须经过的自治域串,采用16bit数字表示自治域标识,这些更新信息通过TCP传送出去,以保证传输的可靠性。BGP通过ISP边界的路由器加上一定的策略,选择过滤路由,把RIP、OSPF、BGP等的路由发送到对方。它的主要功能是与其它自治域的BGP交换网络可达信息。各个自治域可以运行不同的内部网关协议。

  于1993年,在[RFC1467]中定义了第4版的BGP协议,在最新的BGP4中,可以将相似路由合并为一条路由。

  其优点是:
  ①.扩大了网络规模。如果网络是只有一个路由器的小型网络,完全可以通过静态路由手动地更新路由表,不需要使用路由协议;而当网络中仅有一个ISP,它具有多个路由器时,就要使用内部网关协议(IGP);只有当网络中包含多个ISP及其众多路由器时,将有必要让它们去共享信息,使用外部网关协议(EGP)。BGP协议的出现,引起了互联网的重大变革,它把众多ISP有机的连接起来,真正成为全球范围内的网络。
  ②.有丰富的路由策略,允许使用基于策略的路由选择。处理各ISP之间的路由传递时,网络管理员可以通过配置文件制订与政治、经济或安全因素有关的策略,在存在的多个可选路径中选择路由,并控制信息的重新发送,而策略本身并不是协议的组成部分。
  ③.应用范围广泛。尽管BGP协议是被设计用于自治系统间的(EBGP),但BGP协议也常在AS内部使用(IBGP),以在对其他自治系统运行EBGP的边界路由器间传递信息。

  其缺点是:协议配置复杂。BGP一般运行在相对核心的地位,如果出现错误,可能造成很大的损失。网络管理员需要对用户需求、网络现状和BGP协议非常熟悉,还需要非常谨慎小心。

  (3)域间路由协议(IDRP,Internal Domain Routing Protocol):

  域间路由协议(IDRP,Internal Domain Routing Protocol)是一个为了使用OSI地址而不是IP地址,而进行修改的BGP版本。

posted on 2006-12-19 19:13 System And Net 阅读(380) 评论(0)  编辑 收藏 引用 所属分类: net
只有注册用户登录后才能发表评论。