第14章 路由与路由协议14.4 路由选择协议

 1. 路由选择信息协议概述

  路由信息协议(Routing Information Protocol,简称RIP)是应用较早、使用较普遍的内部网关协议,适用于由同一个网络管理员管理的网络内的路由选择,是典型的距离向量(distance-vector)协议RIP采用距离向量算法,即路由器根据跳数作为度量标准来确定到给定目的地的最佳路由。

  RIP通过广播UDP报文来交换路由选择信息,每30秒发送一次路由选择更新消息,当网络拓扑发生变化时也发送消息。路由选择更新过程被称为广播(advertising)。当路由器收到的路由选择更新中包含对条目的修改时,将更新其路由表,以反映新的路由。路径的度量值将加1,而发送方将被指示为下一跳。RIP只维护到目的地的最佳路由,即度量值最小的路由。路由器更新其路由表后,将立刻开始传输路由选择更新,将变化情况告知其他的网络路由器。RIP路由器除了每隔30秒定期地发送更新外,还将发送上述更新。

  RIP使用单个路由选择标准(跳数)来度量源网络到目标网络之间的距离。从源网络到目标网络的路径中的每一跳都被分配了一个跳数值,即1。路由器收到包含新的或修改的目标网络条目的路由选择更新时,将把更新中的度量值加1,并将该网络加入到路由选择表中。发送方的IP地址将被用作下一跳。如果到相同目标有二个不等速或不同带宽的路由器,但跳跃计数相同,则RIP认为两个路由是等距离的。

  RIP最多支持的跳数为15,即在源和目的网间所要经过的最多路由器的数目为15,跳数16表示不可达

  由于RIP限制的跳数比较小,因此对于大型网络,这对伸缩性有一定的限制。RIP路由协议有两个版本,RIP V1RIP V2RIP V1是一种传统的路由选择协议,其路由选择更新中不能携带子网掩码信息。因此,RIPV1不支持使用变长的子网掩码技术(VLSM)。CiscoRIP V2支持验证、密钥管理、路由汇总、无类域间路由(CIDR)和可变长子网掩码(VLSM)。在与其他厂商路由器相邻时,注意RIPV必须一致。在默认状态下,Cisco路由器接收RIP V1V2的路由信息,但只发送RIP V1的路由信息

  RIP的主要特征包括:

  l         它属于距离矢量路由选择协议。

  l         用跳数作为路由选择的度量。

  l         如果跳数大于15,则将包丢弃。

  l         缺省情况下,每30秒广播一次路由更新信息。

  2. RIP协议配置

  在全局配置模式下:

  1)启动RIP路由

  指定使用RIP协议作为路由选择协议开始动态选择过程,使RIP全局有效,同时进入路由器配置模式。。

  Routerconfig#router rip

Routerconfig-router#

  2 配置参与RIP路由的子网

  Network命令分配网络地址给直接连接的路由器。

  Routerconfig-router#Network  Network-number

  其中:Network-number为网络地址。

  Network命令完成以下三个功能:

     公告属于某个基于类的网络的路由。

     在所有端口上监听属于这个基于类的网络的更新。

     在所有端口上发送属于这个基于类的网络的更新。

  3)(可选)指定RIP发送单播更新

  Routerconfig-router#Neighbor  ip-address

  其中:ip-address为相邻路由器相邻端口的IP地址。这条命令配置路由器向指定的邻居发送单播RIP更新。

  4)(可选)配置RIP的版本

  要对RIP的版本1或版本2进行配置,在端口配置模式下输入下列命令,可以控制特定端口发送或接收特定版本的路由信息。

  Routerconfig-if#ip rip send version 1  2:只在特定端口发送版本1或版本2的信息。

  Routerconfig-if# ip rip senderceive  version 1 or 2:同时发送版本1和版本2的信息。

  Routerconfig-if#ip rip receive 1 or 2:在特定端口接收版本1或版本2的路由信息。

  5)(可选)配置端口不发送RIP更新

  Routerconfig-router#passive-interface interface type and number

  在路由器配置模式下,这条命令防止一个接口发送任何广播或者多播RIP更新。

  6)(可选)调整路由选择协议计时器

  Routerconfig-router#times basic update invalid holddown flush  sleeptime

  在路由器配置模式下,这条命令控制路由更新的频率,并且能够用来提供更快的收敛速度。

  3. 相关调试命令

  使用下面的命令可以进行RIP故障的诊断。

  1Routerconfig#show ip protocols监测IP包流,显示路由选择协议的定时器和属于路由器的网络信息。

  2Routerconfig#show ip router:显示路由选择表的内容。包含已知的各网络和子网的路由,以及用来指定每条信息是如何获得的编码。

  3Routerconfig#show ip rip database:可以显示出RIP正在公告的那些网络。

  4Routerconfig#debug ip rip:可以显示路由器发送和接收的所有RIP报文,以及相关的错误消息和更新报文中发送的网络路由。

  14.4.2  IGRP协议

  IGRPInterior Gateway Routing Protocol)是八十年代中期由Cisco公司开发的路由协议。在20世纪90年代初,Cisco开发了增强型IGRPEIGRP)以提高IGRP的工作效率。

  IGRP基本上按照RIP的操作过程,包括下面的内容:

  l         IGRP以固有的时间间隔将路由表广播给邻居路由器。

  l         IGRP使用更新计时器、失效计时器、保持计时器和清空计时器。

  l         IGRP不支持VLSM

  l         IGRP使用水平分割(split horizon)、毒性逆转(poison reverse)、触发更新(trigger update)、抑制计时(holddown timer)。

IGRPRIP之间的主要的区别如下:

  l         IGRP使用自治系统(AS)。

  l         IGRP支持复杂得多也灵活得多的度量。

  l         IGRP可以跨越多达255跳步的网络。

  l         IGRP的负载均衡机制与RIP不同。

  l         IGRP使用更长时间的计时器。

  IGRP是一种距离向量型的内部网关协议(IGP)。距离向量路由协议要求每个路由器以规则的时间间隔向其相邻的路由器发送其路由表的全部或部分。随着路由信息在网络上扩散,路由器就可以计算到所有结点的距离。

  IGRP使用一组度量值的组合,包括网络延迟(Delay)、带宽(Bandwidth)、可靠性(Reliability)、负载(Loading)和最大传输单元(MTU)等都被用于路由选择,网管可以为每种度量值设置权值,IGRP可以用管理员设置的或缺省的权值来自动计算最佳路由。

  IGRP为其度量值提供了较宽的值域。例如,可靠性和负载可在1255之间取值;带宽值域为1200bps10Gbps;延迟可取值124。宽的值域可以提供满意的度量值设置,更重要的是,度量值各组件以用户定义的算法结合,因此,网管可以以直观的方式影响路由选择。

  为了提供更多的灵活性,IGRP允许多路径路由。两条等带宽线路可以以循环(round-robin)方式支持一条通信流,当一条线路断掉时自动切换到第二条线路。此外,即使各条路的度量值不同也可以使用多路径路由。例如,如果一条路径比另一条好三倍,它将以三倍使用率运行。只有具有一定范围内的最佳路径度量值的路由才用作多路径路由。

  14.4.3  EIGRP协议

  增强型内部网关路由选择协议(Enhanced Interior Gateway Routing Protocol),也称为EIGRP或增强型IGRPEIGRPCisco公司在IGRP基础上的一种新的改进型协议,所以Cisco经常把EIGRP归为距离矢量路由协议,称它为先进的距离矢量路由协议。支持IPIPX等多种网络层协议。

  EIGRP是一个平衡混合型路由协议(Cisco公司创造的术语),既有传统的距离矢量协议的特点(路由信息依靠邻居路由器通告,遵守路由水平分割和毒性逆转规则,路由自动归纳,配置简单。又有传统的链路状态路由协议的特点(没有路由跳数的限制,当路由信息发生变化时,采用增量更新的方式,保留对所有可能路由(网络的拓扑结构)的了解、支持变长子网掩码、路由手动归纳。)。该协议同时又具有自己独特的特点:支持非等成本路由上的负载均衡,采用差分更新算法(DUAL)在确保无路由环路的前提下,收敛迅速。因而适用于中大型网络。

  EIGRP协议依靠不同类型的功能包来维护不同的表,建立邻居关系或学习网络拓扑。在EIGRP中,有五种类型的数据包:

  l         HELLO包:以组播的方式发送,用于发现邻居路由器,并维持邻居关系。

  l         更新包(update):当路由器收到某个邻居路由器的第一个HELLO包时,以单点传送方式回送一个包含它所知道的路由信息的更新包。当路由信息发生变化时,以组播的方式发送一个只包含变化信息的更新包。注意,两个更新包的内容不一样。

l         查询包(query):当一条链路失效,路由器重新进行路由计算但在拓扑表中没有可行的后继路由时,路由器就以组播的方式向它的邻居发送一个查询包,以询问它们是否有一条到目的地的可行后继路由。

  l         答复包(reply):以单点的方式回传给查询方,对查询数据包进行应答。 该包是可靠的。

  l         确认包(ACK):以单点的方式传送,用来确认更新、查询、答复数据包,以确保更新、查询、答复传输的可靠性。

  EIGRP路由协议维护以下三个表。

  1 邻居表

  邻居表是EIGRP路由协议中最重要的表。在邻居表里记录着路由器的所有的邻居路由器。

  当路由器发现一个新的邻居时,邻居的地址和接口被记录在邻居表里。EIGRP协议也依靠Hello包来建立邻居关系。当一个邻居发送Hello包时,其中包含了保持时间(Hold Time)。保持时间是路由器认为邻居正在正常工作并且可以到达的时间。也就是说,如果保持时间超时而还没有收到该邻居的Hello包,路由器就会认为该邻居已经离线并且改动拓扑表,重新计算路由。

  2)拓扑表

  运行EIGRP协议的路由器会维护一个拓扑表,其中包含到达目的网段的多条路径。当路由器和相邻的路由器建立起邻居关系时,路由器之间就会互相交换它们所知道的网络拓扑,从而形成拓扑表。

  EIGRP协议会使用DUAL算法从多条路径中找出一条最佳的路径作为到达目的地的路由。

  3)路由表

  运行EIGRP协议的路由器使用DUAL算法,利用路由表和拓扑表提供的信息,计算到达每一个目的网段的度量值最小的路径,并将它计入路由表。路由表记录的是到达目的网段最佳的路径。

  运行EIGRP协议的路由器会为每一种协议栈维护上述的三个表,也就是说,如果路由器启用了IPIPXAppleTalk三种协议栈,那么路由器会维护九个表。

  初始运行EIGRP的路由器都要经历发现邻居、了解网络、选择路由的过程,在这个过程中同时建立三张独立的表:列有相邻路由器的邻居表、描述网络结构的拓扑表、路由表,并在运行中网络发生变化时更新这三张表。

14.4.4  OSPF协议

  开放最短路径优先(Open Shortest Path FirstOSPF)是一种基于开放标准的典型的链路状态路由选择协议。采用OSPF的路由器彼此交换并保存整个网络的链路信息,从而掌握全网的拓扑结构,独立计算路由。

  OSPF作为一种内部网关协议(Interior Gateway ProtocolIGP),用于在同一个自治域系统(AS)中的路由器之间发布路由信息。区别于距离矢量协议(RIP)OSPF具有支持大型网络、路由收敛快、占用网络资源少等优点,在目前应用的路由协议中占有相当重要的地位。

  OSPF的良好扩展能力是通过体系化设计而获得的。网络管理员可以将一个OSPF网络划分成多个区域,它们允许进行全面的路由更新控制。通过在一个恰当设计的网络中定义区域,网络管理员可以减少路由额外开销并提高系统性能。

14.4.5  外部网关路由协议EGP

  EGP协议用来管理在相邻的自治系统AS之间的通信,更确切他说是用以发现相邻的AS间是否有通路可达,这通过交换EGP可达性消息实现。实际上,EGP由以下三个独立的过程组成:

  l         邻机探测过程:用以定义两个相邻网关决定是否同意变成邻机。

  l         邻机可达性过程:用以监视邻机之间的链路。

  l         网络可达性过程:网络可达性处理。

  EGP协议有三类主要的功能。首先,运行EGP协议的路由器建立一个相邻结点的集合,这些相邻结点就是一些路由器,它们与建立相邻结点集合的路由器共享可连通性信息,相邻路由器在距离的远近上没有明显的要求。其次,EGP路由器周期性地轮询它的相邻路由器,以确定它们是否继续保持活动状态。第三,EGP路由器发送的路由选择刷新信息中包含了AS系统内所有网络的可连通性。

14.4.6 边界网关路由协议BGP

  BGP是一种在TCP/IP网络中完成域间路由计算的协议,它是一种外部网关协议。这也意味着它是在多个AS域内或是域间对分组传输的路由进行选择和域间路由信息交换的协议。作为一种标准的外部网关协议,BGP设计之初就是为解决大型互连网的路由选择问题的,应用结果证明BGP较EGP更具有优良的扩展性和更高的效能。IETF先后为BGP制定了多个建议,分别为:

  l         RFC 1771:当前正使用的BGP协议版本,称之为BGP4。

  l         RFC 1654:BGP4协议的第一个规范。

  l         RFC 1105、RFC 1163、RFC 1267:BGP4之前的BGP版本。

  尽管BGP协议是为自治系统间的路由选择而设计,但它也可以用于自治系统内部,是一类双重路由选择协议。两个可以在自治系统之间进行通信的BGP相邻结点必须存在于同一个物理链路上。位于同一个自治系统内的BGP路由器可以互相通信,以确保它们对整个自治系统的所有信息都相同,而且通过信息交换后,它们将决定自治系统内哪个BGP路由器作为连接点来负责接收来自自治系统外部的信息。

  有些自治系统仅仅作为一个数据传输的通道,这些自治系统既不是数据的发起端,也不是数据的接收端。BGP协议必须与存在于这些自治系统内部的路由协议打交道,以使数据能正确通过它们。

  BGP协议的路由刷新消息由“网络号:自治系统路径”对所组成,每一个自治系统路径都是一系列自治系统的名字字符串,它记录了通向最终目标所经过的网络。BGP协议的路由刷新消息通过传输控制协议TCP进行可靠传输。

  两个路由器之间最初始的数据交换就是整个BGP协议的路由选择表。随着路由表的不断变化,发送路由选择刷新消息的次数也越来越多,与其他一些路由选择协议有所区别,BGP协议不要求对整个路由选择表进行周期性刷新,相反,运行BGP协议的路由器保持了每一个路由选择表的最新版本。尽管BGP协议保持通向特定目标的所有路径的路由选择表,但在路由选择刷新消息中仅仅说明最佳路径。

  BGP协议的路由度量方法可以是一个任意单位的数,它指明某一个特定路径可供参考的程度,这些度量方法通常都是由网络管理人员通过配置文件来设置。可参考的程度可以基于任何数字准则,例如最终系统计数(计数越小时路径越佳)、数据链路的类型。

原文地址:https://www.cnblogs.com/laojie4321/p/2461400.html