当前位置: 首页 > 科技观察

路由器如何在众多路由协议、人工配置和路由策略的情况下,选择一条更合适的路径呢?

时间:2023-03-20 23:13:12 科技观察

路由器是实现网络互联、转发不同网络间数据单元的重要网络设备。路由器主要工作在OSI参考模型的第三层(网络层)。路由器的主要任务是为每一个经过路由器的数据帧寻找一条最优的传输路径,将数据有效地传输到目的站点。为了完成这项工作,路由器中保存了各种传输路径的相关数据——路由表(RoutingTable),供路由选择使用。可见,选择最佳路径的策略,即路由算法,是路由器的关键。因此,当路由器从网络接口收到数据包时,首先根据其中包含的目的地址查询路由表,确定转发路径(转发接口和下一跳地址),然后从中呼出下一跳。ARP缓存地址的MAC地址,使用路由器自身的MAC地址作为源MAC,下一跳地址的MAC作为目的MAC封装到帧头中,同时将TTL(TimeIP数据包头的ToLive)也开始递减,***将数据发送到转发端口,依次等待,传输到输出链路。在这个过程中,路由器被认为执行两个最重要的基本功能:路由功能和交换功能。路由功能路由功能是指路由器通过运行动态路由协议或其他方法来学习和维护网络拓扑结构,建立、查询和维护路由表。路由表存储了路由器进行选路所需要的关键信息,包括目的地址、目的地址掩码、下一跳地址、转发端口、路由信息源、路由优先级、metric等。路由信息可以通过各种协议学习,其来源可分为直接路由、静态路由、缺省路由和动态路由。一台路由器可以同时运行几种不同的路由协议,每种路由协议都会根据自己的路由算法计算出到达目的网络的最优路径。目的网络可能会选择不同的VPN路径。此时路由器根据路由优先级(决定来自不同路由源的路由信息??的优先级)选择路由协议计算出的路由优先级最高(最小值)的最佳路径放入路由表中.作为到目的网络的转发路径(优先级顺序:直接路由>静态路由>动态路由(OSPF>RIP)),对于特定的路由协议,可以找到到目的网络的所有路径,并根据路由算法进行分配将每条路径的度量值与度量值进行比较,选择度量值最小的路径作为最佳路径。在路由器交换过程中查找路由时,也可能会发现可以匹配到多个路由条目。此时路由器会按照最长匹配原则转发数据(最长匹配原则的priority***大于priority和metric)。路由器会选择匹配最深的路由,即匹配掩码长度最长的路由进行转发。转发功能一般来说,路由器的主要工作是存储和转发数据包。具体过程如下:第一步:当一个数据帧到达某个端口时,该端口对该帧进行CRC校验,检查其目的数据链路。层地址是否匹配该端口。步骤2:如果校验通过,则去掉帧的封装,读出IP数据包中的目的地址信息,查询路由表,确定转发接口和下一跳地址。第三步:根据在路由表中查到的下一跳IP地址,从ARP缓存中调出下一跳MAC地址,以转发接口的MAC地址作为源MAC,下一跳的MAC地址用作源MAC。目的MAC,封装在帧头中。同时将IP包头的TTL减一,重新计算校验和。第四步:***被封装成帧,通过转发接口发送到输出链路。那么问题来了:在众多路由协议、人工配置和路由策略下,路由器如何选择最佳路由?了解这个问题对于掌握路由器的工作原理大有裨益。路由选择涉及三个方面:1、各种路由协议的处理,包括rip、igrp、eigrp、ospf、is-is、bgp等,各协议通过IP数据包在路由器之间传递网络路由信息,为路由选择提供信息路由表的建立。2、路由表,从路由协议接收信息,提供转发数据包所需的信息。3.转发过程,从路由表中请求所需的信息,为数据包的正确转发做出决定。下面从几个方面来讨论。建立路由表每个路由协议在处理路由更新时,都会选择到目的地址的最佳路由,并尝试将其安装到路由表中。如果只有多个动态路由协议在运行,就会争先恐后地安装路由。必须有一种机制来管理路由的安装。这种机制是根据各个路由协议的优先级来决定安装过程。每个路由协议都有一个默认的管理距离值,值越小,优先级越高。各路由协议的默认管理距离值如下:假设路由器运行EIGRP、OSPF、RIP、IGRP四种路由协议,它们都得到到网络192.168.24.0/24的路由,但只有EIGRP(内部)可以将其路由设置到路由表中,因为它的管理距离值最小,优先级最高。备份路由和其他协议如何处理未安装的协议?EIGRP设置的路由失效了怎么办?有两种解决方案。一是每个路由协议都会定期尝试将它们的路由安装到路由表中。如果EIGRP安装的路由失效,IGRP会把它对应的路由安装到路由表中。另一种方法是将未安装的路由锚定在路由表中。如果之前安装的路由失效,则正式将附加的路由安装到路由表中。对于没有自己的路由信息??表的路由协议,如IGRP,会采用第一种方法,每次收到路由更新后,都会尝试将其安装到路由表中。对于EIGRP、IS-IS、OSPF、BGP、RIP等有自己的路由信息??表的路由协议,会采用第二种方式。安装失败的路由会被注册到路由表中。当原来的路由条目失效时,会通知注册的路由协议的处理进程安装它们的路由。如果要安装多个进程,则首选管理距离较小的协议。调整管理距离值改变路由协议的默认距离值是一个谨慎的行为,可能会导致路由环路或其他奇怪的问题,所以要非常小心!该命令是距离后跟特定值。也可以仅更改从特定协议分发的路由的管理距离值。静态路由中的***也可以跟上一个值,改变原来的默认值1。不同前缀长度的路由会被认为是不同的路由,同时安装在路由表中。例如,三种路由协议分别得到如下路由:EIGRP(内部):192.168.32.0/26RIP:192.168.32.0/24OSPF:192.168.32.0/19三种路由的前缀长度(子网掩码)分别为不同,所以不同目的网络的路由被同时获取并安装到路由表中。对于转发决策,先看路由器上刚安装的三个路由条目:router#showiproute....D192.168.32.0/26[90/25789217]via10.1.1.1R192.168.32.0/24[120/4]via10.1.1.2O192.168.32.0/19[110/229840]via10.1.1.3如果目的地址是192.168.32.1,会选择哪条路由?这取决于匹配的前缀长度,最长的匹配前缀长度优先。匹配就是利用路由表项中的掩码与目的地址进行比较,再与网络地址进行比较。同样是匹配的意思。此地址匹配所有三个路由,但匹配第一个路由的前缀最长(26),因此数据包将被转发到10.1.1.1。如果目的地址是192.168.32.100,不匹配第一条路由,但是匹配第二条和第三条路由,所以会转发到10.1.1.2。具体的路由查找速度取决于路由表的结构和硬件的速度。例如,如果使用一个二叉树结构的路由表,那么这个32位的IP地址最多可以被搜索32次来决定是否找到合适的路由条目。IPCLASSESS的作用该命令只影响转发过程,不影响路由表的建立。请参见以下示例:router#showiproute....172.30.0.0/16isvariablysubnetted,2subnets,2masksD172.30.32.0/20[90/4879540]via10.1.1.2D172.30.32.0/24[90/25789217]via10。1.1.1S*0.0.0.0/0[1/0]via10.1.1.3假设没有配置ipclassless命令,则:到172.30.32.1的报文被转发到10.1.1.1,因为这条路由是最长匹配。到172.30.33.1的数据包被转发到10.1.1.2,因为该路由是最长的匹配。到192.30.32.1的包被转发到10.1.1.3,因为没有对应的网络路由,所以使用默认路由转发。到172.30.100.1的数据包无法转发并被丢弃。为什么不使用默认路由?因为目的地址的主网络部分在路由表中是已知的,并且存在子网路由,所以路由器查找对应的子网路由,但是没有匹配到路由,最后丢弃该包。如果配置了IPclassless命令,最终会应用默认路由将数据包转发到10.1.1.3。小结数据包的转发决策取决于三个部分的过程:路由协议、路由表和实际的转发交换。级别取决于管理距离值。