IP : 增强的内部网关路由选择协议 (EIGRP)

Cisco 路由器的路由选择

2015 年 8 月 28 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 4 月 22 日) | 反馈


目录


简介

思科路由器的一个迷人之处,特别是对那些对路由不熟悉的人来说,在于路由器可以通过路由协议、手动配置和各种其它方法,选择最佳路由。当路由选择比您的想象更简单时,应当了解选择路由必须具备的有关Cisco路由器运行方式的知识。

先决条件

要求

本文档没有任何特定的前提条件。

使用的组件

本文档不限于特定的软件和硬件版本。

规则

有关文档规则的详细信息,请参阅 Cisco 技术提示规则

包括的过程

在Cisco路由器里建立和维护路由表涉及三个进程:

  • 各种路由进程,实际上运行一个网络(或路由)协议,如增强的内部网关路由协议(EIGRP)、边界网关协议(BGP)、中间系统到中间系统(IS-IS)和开放式最短路径优先(OSPF)。

  • 路由表本身接收路由进程的信息,并且回复转发进程的信息请求。

  • 转发进程需要路由表中的信息来做出数据包转发决定。

请检查路由协议和路由表之间的交互作用,了解路由表的建立方式。

构建路由表

构建路由表时的主要考虑事项为:

  • 管理距离 - 这是路由来源的可信度度量。如果路由器从多个路由协议了解某个目的地,将对管理距离进行比较,为路由指定更低的管理距离。换句话说,它就是路由来源的可信程度。

  • 权值---这是路由协议用于计算通过指定目的地的最佳路径的一种测量方法,如果需要了解通过同一目的地的多条路径。每种路由协议都使用一种不同的度量。

  • 前缀长度

当每个路由进程接收更新和其他信息时,会选择到任一指定目的地的最佳路径,并尝试将该路径安装到路由表。例如,如果EIGRP得知通往10.1.1.0/24的路径,并确定此特定路径是该目的地的最佳EIGRP路径,会设法将已获悉的路径安装到路由表。

路由器决定是否安装由路由进程呈现的路由,取决于相关路由的管理距离。如果该路径具有到该目的地的最短管理距离(与路由表中的其他路由比较)时,该路径将被安装在路由表中。如果这个路由不是具有最佳管理距离的路由,那么该路由被拒绝。

为了更好地理解,让我们看一个示例。假设路由器有四个路由进程正在运行:EIGRP、OSPF、RIP 和 IGRP。现在,通过这4道程序,获知了到192.168.24.0/24网络的各种路由,并且每个路由通过它的内部测量标准和程序选择了它到该网络的最佳路径。

这四个进程企图将它们到192.168.24.0/24的路由安装到路由表中。每个路由进程都分配了一个管理距离,用来决定安装哪个路由。

默认管理距离
已连接 0
静态 1
eBGP 20
EIGRP(内部) 90
IGRP 100
OSPF 110
IS-IS 115
RIP 120
EIGRP(外部) 170
iBGP 200
EIGRP汇总路由 5

由于内部EIGRP路由具有最佳管理距离(管理距离越短,首选可能性越大),因此内部EIGRP路由安装在路由表中。

备份路由

其他协议、RIP、IGRP和OSPF会对它们未安装的路由产生什么作用?如果首选路由发生故障,能从 EIGRP 了解到什么?思科IOS�软件使用两个途径解决此问题:第一种是让每个路由进程尝试定期安装其最佳路由。如果大多数首选路由发生故障,下一条最佳路由(根据管理距离)会在下一次尝试中成功。其他解决方案用于路由协议在路由表中安装其路失败的情形,如果最佳路径失效,则报告路由表进程。

对于没有它们自己的路由信息表的协议(例如IGRP),则使用第一种方法。每次IGRP接收路由更新时,它都尝试在路由表里安装更新的信息。如果在路由表里已经有一个到相同目的地的路由,则不能完成安装尝试。

对于拥有自己数据库的路由信息的协议,例如EIGRP、IS-IS、OSPF、BGP和RIP,初始尝试安装路由失败时,将注册备份路由。如果路由表中安装的路由由于某种原因而失败,路由表维护进程将调用已经注册了备份路由的每一个路由协议进程,并且要求它们将路由重新安装到路由表中。如果有多个协议注册了备份路由,将根据管理距离选择首选路由。

调整管理距离

默认管理距离可能并不总是适合您的网络;您可能希望调整它们,例如让RIP路由优于IGRP 路由。说明如何调整管理距离之前,我们需要查看管理距离更改提示。

更改路由协议上的管理距离非常危险!更改默认距离有可能导致网络中出现路由环路和其他异常。我们建议您慎重更改管理距离。在进行此操作前,请务必反复考虑您进行操作的目的,以及操作产生的所有后果。

对于整个协议,更改距离相对容易;在路由进程的子配置模式中,使用 distance 命令可轻松配置距离。您还能够更改路由的距离,这些距离只能从某一些协议获得,您只能更改部分路由的距离。欲知更多信息,参考调节路由选择的管理距离在Cisco IOS路由器配置示例

对于静态路由,ip route 命令发出后输入距离,您便可以更改每条路由的距离:

ip route 网络子网掩码的下一跳距离

您不能一次性更改所有静态路由的管理距离。

度量如何决定路由选择进程

路由是根据路由协议的管理距离在路由表里选择并构建的。从路由协议获知的管理距离最短的路由将安装到路由表中。如果有多条路径使用一个路由协议通往同一个目的地,那么多条路径则具有相同的管理距离,并且依据测量标准选择最佳路径。权值是与特定路由相关的值,从最主要到最次要的优先次序排列。用于确定度量的参数由于不同的路由协议而有所不同。带有最低权值的路径被选为最佳路径,并安装在路由表中。如果有多条带有相等权值的路径到达同一个目的地,将在这些相等成本的路径上执行负载平衡。有关负载均衡的详细信息,请参阅负载均衡的工作原理

前缀长度

请看另一个方案,了解路由器如何处理另一个常见情况:可变的前缀长度。再次假设路由器上有四个路由进程运行,并且每个进程已经接收了这些路由:

  • EIGRP(内部):192.168.32.0/26

  • RIP :192.168.32.0/24

  • OSPF:192.168.32.0/19

要将哪些路由安装在路由表中?因为EIGRP内部路由有最佳的管理距离,假设第一个将安装很具有吸引力。然而,由于这些路由中的每一个路由具有不同的前缀长度(子网掩码),因此将这些路由的目的地视为不同目的地,全部安装在路由表中。

让我们看一下转发引擎如何使用路由表中的信息来做出转发决策。

做出转发决定

请查看我们在路由表中安装的三个路由,并查看在路由器上查找这三个路由的方法。

router# show ip route
     ....
     D   192.168.32.0/26 [90/25789217] via 10.1.1.1
     R   192.168.32.0/24 [120/4] via 10.1.1.2
     O   192.168.32.0/19 [110/229840] via 10.1.1.3
     ....

如果信息包到达指定到192.168.32.1的路由器接口,路由器会选择哪一条路由?它取决于子网中的前缀长度或子网掩码中的比特集数量。在转发数据包时,较长的前缀总是优先于较短的前缀。

在这种情况下,被指定到192.168.32.1的信息包受控于10.1.1.1,因为192.168.32.1属于192.168.32.0/26网络(192.168.32.0到192.168.32.63)。它也属于其他2个可用路由,但192.168.32.0/26具有路由表(26位与24或19位)中最长的前缀。

同样,如果指定到192.168.32.100的信息包到达某个路由器接口,会转发到10.1.1.2,因为192.168.32.100不属于192.168.32.0/26 (192.168.32.0至192.168.32.63),但属于192.168.32.0/24目的地(192.168.32.0至192.168.32.255)。它再一次进入192.168.32.0/19包括的范围,但192.168.32.0/24有一个更长的前缀。

IP CLASSLESS

ip classless 配置命令在路由和转发进程中的位置经常让人困惑。实际上,ip classless 只影响 IOS 中转发进程的操作;它不会影响路由表的构建方式。如果没有配置ip classless (使用 no ip classless 命令),路由器不会转发信息包到超网。例如,我们再次在路由表中放置三条路由,并通过路由器路由信息包。

注意: 如果超网或默认路由通过IS-IS或OSPF获取,将忽略no ip classless 配置命令。在这种情况下,数据包交换行为就像已经配置了 ip classless 一样。

router# show ip route
....
     172.30.0.0/16 is variably  subnetted, 2 subnets, 2 masks
D        172.30.32.0/20 [90/4879540] via  10.1.1.2
D       172.30.32.0/24  [90/25789217] via 10.1.1.1
S*   0.0.0.0/0 [1/0] via 10.1.1.3  

切记172.30.32.0/24网络包括172.30.32.0至172.30.32.255的地址,而172.30.32.0/20网络包括172.30.32.0至172.30.47.255的地址,因此我们能够通过此路由表设法转换三个信息包,并查看结果。

  • 指定到172.30.32.1的信息包被转发到10.1.1.1,因为这是最长前缀匹配。

  • 指定到172.30.33.1 的信息包被转发到10.1.1.2,因为这是最长的前缀匹配。

  • 将发往 192.168.10.1 的数据包转发到 10.1.1.3;因为路由表里不存在此网络,所以此信息包转发到默认路由。

  • 发往 172.30.254.1 的数据包被丢弃。

这四种结果中,令人意外的是被丢弃的最后一个数据包。信息包丢弃的原因是其目的地,172.30.254.1位于已知主要网络172.30.0.0/16内,但路由器不了解主要网络内的该特定子网。

这就是有类路由的实质:如果了解主要网络的某个部件,但主要网络中的子网指定的信息是未知的,信息包将丢弃。

此规则最容易混淆的地方是:如果目的地主要网络在路由表中根本不存在,路由器则只能使用默认路由。

如图所示,网络远程站点采用无路由协议和单连接与其他网络相连,可能导致网络远程站点出现问题。

/image/gif/paws/8651/21a.gif

远程站点路由器的配置如下:

interface Serial 0
     ip address 10.1.2.2 255.255.255.0
   !
   interface Ethernet 0
     ip address 10.1.1.1 255.255.255.0
   !
   ip route 0.0.0.0 0.0.0.0 10.1.2.1
   !
   no ip classless

使用此配置,远程站点的主机能够到达互联网中的目的地(通过10.x.x.x网云),而不是10.x.x.x网云中(公司网络)的目的地。由于远程路由器了解10.0.0.0/8网络的某些部分、2个直接连接的子网,但不了解10.x.x.x的其他子网,因此假设这些其他子网不存在,并且丢弃目标为这些子网的信息包。指定到互联网的流量,没有10.x.x.x地址范围的目的地,因此可以通过默认路由进行适当路由。

在远程路由器上配置 ip classless,允许路由器忽略其路由表中的网络有类别边界,并简单路由到它可以找到的最长前缀匹配,从而解决该问题。

摘要

总之,做出转发决策实际上包括三组流程:路由协议、路由表、以及做出转发决策并交换信息包的实际过程。下面是关于这三组流程的演示,包括它们之间的关系。

/image/gif/paws/8651/21b.gif

最长前缀匹配总是在实际已安装在路由表中的路由中赢取,而赢取带有最短管理距离的路由协议需要在路由表中安装路由时。

相关的思科支持社区讨论

思科支持社区是您提问、解答问题、分享建议以及与工作伙伴协作的论坛。


相关信息


Document ID: 8651