思科路由器的迷人之处,是对那些对路由不熟悉的人来说,它可以通过路由协议、手动配置和各种其它方法,选择最佳路由。
在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(内部):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内,但路由器不了解主要网络内的该特定子网。
这就是有类路由的实质:如果了解主要网络的某个部件,但主要网络中的子网指定的信息是未知的,信息包将丢弃。
此规则最容易混淆的地方是:如果目的地主要网络在路由表中根本不存在,路由器则只能使用默认路由。
如图所示,网络远程站点采用无路由协议和单连接与其他网络相连,可能导致网络远程站点出现问题。
远程站点路由器的配置如下:
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,允许路由器忽略其路由表中的网络有类别边界,并简单路由到它可以找到的最长前缀匹配,从而解决该问题。
总结
总之,做出转发决策实际上包括三组流程:路由协议、路由表、以及做出转发决策并交换信息包的实际过程。
下面是关于这三组流程的演示,包括它们之间的关系。
最长前缀匹配总是在实际已安装在路由表中的路由中赢取,而赢取带有最短管理距离的路由协议需要在路由表中安装路由时。
欢迎关注的我的头条号,私信交流,学习更多的网络技术!
,