正文
(
metric
)等。
路由信息可通过多种协议的学习而来, 其来源方式可分为直连路由、静态路由、缺省路由和动态路由。一个路由器上可以同时运行多个不同的路由协议,每个路由协议都会根据自己的选路算法计算出到达目的网络的最佳路径,但是由于选路算法不同, 不同的路由协议对某一个特定的目的网络可能选择的最佳路径不同。此时路由器根据路由优先级 (决定了来自不同路由来源的路由信息的优先权)选 择将具有最高路由优先级( 数值最小)的路由协议计算出的最佳路径放置在路由表中,作为到达这个目的网络的转发路径(优先级顺序:直连路由>静态路由 >动态路由(OSPF>RIP))
而对于一个特定的路由协议,可以发现到达目的网络的所有路径,根据选路
算法赋予每一条路径metric值,并比较metric值,选择metric数值最小的路
径为最佳路径。
在路由器的交换过程中查找路由时也可能会发现能匹配上多条路由条目。此
时路由器将根据最长匹配原则 ( 最长匹配原则的优先级最高,大于优先级和metric)进 行数据的转发。路由器会选择匹配最深的,也就是说可以匹配的掩码长度最长的一条路由进行转发。
一般来说,路由器的主要工作是对数据包进行存储转发,具体过程如下:
第一步:当一个数据帧到达某一端口,端口对帧进行CRC校验并检查其目的数据链路层地址是否与本端口符合。
第二步:如果通过检查,则去掉帧的封装并读出IP数据包中的目的地址信息,查询路由表,并决定转发接口与下一跳地址。
第三步:根据路由表中所查到的下一跳IP地址,再从ARP缓存中调出下一跳的 MAC地址,并将转发接口的MAC地址作为源MAC,下一跳地址的MAC作为 目的 MAC,封装成帧头。同时,IP 数据包头的TTL减一,并重新计算校验和。
第四步:最后封装成帧,经转发接口发送到输出链路上去。
那么问题来了:路由器在诸多路由协议、手工配置和路由策略下,是如何选择最佳路由的?理解这个问题,对于掌握路由器的工作原理大有裨益。
路由选择牵涉到三个方面:
1、 各种路由协议的处理,包括rip,igrp,
eigrp,ospf,is-is,bgp 等,每个协议都通过IP数据包在路由器间传递网络的路由信息,为路由表的建立提供信息。
2、 路由表,它从路由协议那里接受信息, 并为转发数据包提供所需要的信息。
3、 转发过程,它从路由表那里请求所需要信息,为正确转发数据包做出决策。