路由技术 路由选路原理

2024-12-07 10:49:11

01路由功能


路由功能是指路由器通过运行动态路由协议或其他方法来学习和维护网络拓扑结构,建立,查询和维护路由表。

路由表里则保存着路由器进行路由选择时所需的关键信息,包含了目的地址、 目的地址的掩码、下一跳地址、转发端口、路由信息来源、路由优先级、度量值( metric )等。

路由信息可通过多种协议的学习而来, 其来源方式可分为直连路由、静态路由、缺省路由和动态路由。一个路由器上可以同时运行多个不同的路由协议,每个路由协议都会根据自己的选路算法计算出到达目的网络的最佳路径,但是由于选路算法不同, 不同的路由协议对某一个特定的目的网络可能选择的最佳路径不同。

此时路由器根据路由优先级 (决定了来自不同路由来源的路由信息的优先权)选 择将具有最高路由优先级( 数值最小)的路由协议计算出的最佳路径放置在路由表中,作为到达这个目的网络的转发路径(优先级顺序:直连路由>静态路由 >动态路由(OSPF>RIP))

而对于一个特定的路由协议,可以发现到达目的网络的所有路径,根据选路算法赋予每一条路径metric值,并比较metric值,选择metric数值最小的路径为最佳路径。

在路由器的交换过程中查找路由时也可能会发现能匹配上多条路由条目。此时路由器将根据最长匹配原则 ( 最长匹配原则的优先级最高,大于优先级和metric)进 行数据的转发。路由器会选择匹配最深的,也就是说可以匹配的掩码长度最长的一条路由进行转发。

02 转发功能


一般来说,路由器的主要工作是对数据包进行存储转发,具体过程如下:

第一步:当一个数据帧到达某一端口,端口对帧进行CRC校验并检查其目的数据链路层地址是否与本端口符合。

第二步:如果通过检查,则去掉帧的封装并读出IP数据包中的目的地址信息,查询路由表,并决定转发接口与下一跳地址。

第三步:根据路由表中所查到的下一跳IP地址,再从ARP缓存中调出下一跳的 MAC地址,并将转发接口的MAC地址作为源MAC,下一跳地址的MAC作为 目的 MAC,封装成帧头。同时,IP 数据包头的TTL减一,并重新计算校验和。

第四步:最后封装成帧,经转发接口发送到输出链路上去。

那么问题来了:路由器在诸多路由协议、手工配置和路由策略下,是如何选择最佳路由的?理解这个问题,对于掌握路由器的工作原理大有裨益。

路由选择牵涉到三个方面:

1、 各种路由协议的处理,包括rip,igrp,eigrp,ospf,is-is,bgp 等,每个协议都通过IP数据包在路由器间传递网络的路由信息,为路由表的建立提供信息。

2、 路由表,它从路由协议那里接受信息, 并为转发数据包提供所需要的信息。

3、 转发过程,它从路由表那里请求所需要信息,为正确转发数据包做出决策。

下面从几个方面对此进行讨论。

03 建立路由表


每个路由协议处理路由更新时,选择到目的地址的最佳路由,并试图安装到路由表中。如果只有多个动态路由协议运行,存在争先安装路由的问题。

必须有机制来管理路由的安装。该机制就是根据各个路由协议的优先级来决定安装过程。每个路由协议都有缺省的管理距离值,值愈小其优先级愈高。各路由协议的缺省管理距离值如:

假设路由器运行EIGRP 、OSPF、RIP、IGRP 四种路由协议,它们都得到了到网络192.168.24.0/24 的路由, 但只有EIGRP( internal )可将其路由安装到路由表中,因为其管理距离值最小,优先权最高。

04 备份路由


其他协议对于未安装的协议怎么处理?EIGRP 安装的路由失败了怎么办?对此有两种解决方法:

一是每个路由协议周期性地尝试安装它们的路由到路由表中,如果EIGRP 安装的路由失效了,IGRP会将它的相应路由安装到路由表中。

另一个办法是将未安装的路由挂靠在路由表中,如果先前安装的路由失效了,将挂靠的路由正式安装到路由表中。

对于没有自身路由信息表的路由协议,比如IGRP,将采取第一种方法,每次收到路由更新都尝试安装到路由表中。

对于EIGRP 、IS-IS 、OSPF、BGP 、RIP 这样的有自身路由信息表的路由协议,将采取第二种办法,安装失败的路由将登记在路由表中,当原路由条目失效时,将通知做登记的路由协议的处理进程来安装它们的路由,如果有多个进程来安装,管理距离小的协议优先。

05 调整管理距离值


改变路由协议的缺省距离值是比较慎重的动作,有可能导致路由循环或其他奇怪的问题,必须非常小心!

其命令为distance 后跟具体的值。也可以只改变从某一协议分布进来的路由的管理距离值。在静态路由的最后也可以跟上一个值,改变原来的缺省值1。

06 前缀长度


不同前缀长度的路由将视为不同的路由,将同时安装到路由表中,比如三个路由协议分别得到以下路 由:

三个路由的前缀长度(子网掩码)不同,所以得到不同目的网络的路由,同时安装到路由表中。

07 转发决策


先看一下路由器刚才安装的三个路由条目:

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 ,将选择哪条路由呢?这依赖于所匹配的前缀长度,最长匹配的前缀长度优先。

匹配是用路由条目中的掩码与目的地址相与后再与网络地址比较,相同意味着匹配。该地址与这 三条路由都匹配,但第一条匹配的路由前缀(26)最长,所以该包将被转发到10.1.1.1 。

如果目的地址为192.168.32.100,它与第一条路由不匹配,与第二、第三条路由匹配,所以将被转发到 10.1.1.2。

具体的路由查找速度依赖于路由表的结构与硬件速度,如采用二叉树结构的路由表,那么32 位的 IP地址最多查找32次就可以决定是否找到适应的路由条目。

相关推荐