思科路由器的迷人之处,是对那些对路由不熟悉的人来说,它可以通过路由协议、手动配置和各种其它方法,选择最佳路由。

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

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

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

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

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

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

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

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

备份路由

其他协议、RIP、IGRP和OSPF会对它们未安装的路由产生什么作用?如果首选路由发生故障,能从 EIGRP 了解到什么?

Cisco IOS® 软件通过二种途径来解决此问题:第一种是让每个路由进程尝试定期安装其最佳路由。如果大多数首选路由发生故障,下一条最佳路由(根据管理距离)会在下一次尝试中成功。其他解决方案用于路由协议在路由表中安装其路失败的情形,如果最佳路径失效,则报告路由表进程。

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

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

调整管理距离

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

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

对于整个协议,更改距离相对容易;在路由进程的子配置模式中,使用 distance 命令可轻松配置距离。您还能够更改路由的距离,这些距离只能从某一些协议获得,您只能更改部分路由的距离。

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

ip route 网络子网掩码的下一跳距离,您不能一次性更改所有静态路由的管理距离。

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

路由是根据路由协议的管理距离在路由表里选择并构建的。从路由协议获知的管理距离最短的路由将安装到路由表中。如果有多条路径使用一个路由协议通往同一个目的地,那么多条路径则具有相同的管理距离,并且依据测量标准选择最佳路径。

权值是与特定路由相关的值,从最主要到最次要的优先次序排列。用于确定度量的参数由于不同的路由协议而有所不同。带有最低权值的路径被选为最佳路径,并安装在路由表中。如果有多条带有相等权值的路径到达同一个目的地,将在这些相等成本的路径上执行负载平衡。

前缀长度

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

要将哪些路由安装在路由表中?因为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.254.1位于已知主要网络172.30.0.0/16内,但路由器不了解主要网络内的该特定子网。

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

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

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

思科路由器配置技巧(思科路由器知识集锦)(1)

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

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,允许路由器忽略其路由表中的网络有类别边界,并简单路由到它可以找到的最长前缀匹配,从而解决该问题。

总结

总之,做出转发决策实际上包括三组流程:路由协议、路由表、以及做出转发决策并交换信息包的实际过程。

下面是关于这三组流程的演示,包括它们之间的关系。

思科路由器配置技巧(思科路由器知识集锦)(2)

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

欢迎关注的我的头条号,私信交流,学习更多的网络技术!

,