路由匹配原则
今天小缘向大家具体介绍一下路由器是如何选路并转发流量的。
路由器的作用:
路由器收到数据包后,会根据数据包中的目的IP地址选择一条最优的路径,并将数据包转发到下一个路由器,路径上最后的路由器负责将数据包送交目的主机。
那么如何选择最优路径的,这便涉及到了路由选路。
数据包在网络上的传输就好像是体育运动中的接力赛一样,每一个路由器负责将数据包按照最优的路径向下一跳路由器迚行转发,通过多个路由器一站一站的接力,最终将数据包通过最优路径转发到目的地。当然有时候由于实施了一些特别的路由策略,数据包通过的路径可能并并一定是最佳的。路由器能够决定数据报文的转发路径。如果有多条路径可以到达目的地,则路由器会通过计算来决定最佳下一跳。计算的原则会随实际使用的路由协议不同而不同。
1 路由器首先会查询路由表
路由表中包含了下列关键项:
目的地址(Destination):用来标识IP包的目的地址或目的网络。
网络掩码(Mask):在路由表中网络掩码也具有重要的意义。IP地址和网络掩码进行“逻辑不”运算便可得到相应的网段信息。
例如:目的地址为8.0.0.0,掩码为255.0.0.0,逻辑不运算后便可得到一个A类的网段信息(8.0.0.0/8)。
PS:根据目的地址与掩码进行逻辑不运算来确定网段。
逻辑不运算:
8.0.0.0 --->00001000.0.0.0
255.0.0.0 --->11111111.0.0.0
逻辑不运算--->00001000.0.0.0 1与1得1,其他都为0
网络掩码的另一个作用还表现在当路由表中有多条目的地址相同的路由信息时,路由器将选择其掩码最长的一项作为匹配项。
协议(Proto):表明使用那种路由协议
路由表中优先级(Pre)、度量值(cost) 下文会有介绍
输出接口(Interface):指明IP包将从该路由器的哪个接口转发出去。 下一跳IP地址(NextHop):指明IP包所绊由的下一个路由器的接口地址。
2 最长匹配原则 对象是目的网络
例如路由器收到数据包目的IP是10.1.1.1,查询路由表后,路由表中有两个表项到达目的网段10.1.1.0,下一跳地址都是20.1.1.2。如果要将报文转发至网段10.1.1.1,则10.1.1.0/30符合最长 匹配原则。
3 路由优先级 前提是同一网络 对象是不同路由协议
每个路由协议都有一个协议优先级(取值越小、优先级越高)。当有多个路由信息时,选择最高优先级的路由作为最佳路由。
如图所示,路由器通过两种路由协议学习到了网段10.1.1.0的路由。虽然RIP协议提供了一条看起来更加直连的路线,但是由于OSPF具有更高的优先级,因而成为优选路由,并被加入路由表中。
PS: 路由表中存在的始终是最佳路由。
4 路由度量 前提是同一网络 同一路由协议 对象是不同开销
如果路由器无法用优先级来判断最优路由,则使用度量值(metric)来决定需要加入路由表的路由。
一些常用的度量值有:跳数,带宽,时延,代价,负载,可靠性等。跳数是指到达目的地所通过的路由器数目。 带宽是指链路的容量,高速链路开销(度量值)较小。
metric值越小,路由越优先;因此,图示中metric=1+1=2的路由是到达目的地的最优路由,其表项可以在路由表中找到。
路由器通过上述规则会选择出最佳路径,然后就可以转发数据了。