0x00 汇总
0x01 路由选路
以太网交换机工作在数据链路层,用于在网络内进行数据转发。而企业网络的拓扑结构一般会比较复杂,不同的部门,或者总部和分支可能处在不同的网络中,此时就需要使用路由器来连接不同的网络,实现网络之间的数据转发。
路由器最常用的功能就是做路由选路。
那到底什么是路由呢?
生活当中有路径,网络当中就是路由。
生活当中的路径有,起点,终点,方向。
网络当中的路由有,源IP地址,目的IP地址,方向。
起点类比源IP地址,终点类比目的IP地址,生活当中的方向是上下左右,东南西北,网络当中没有这些东西,网络当中只有接口,所以在网络中,方向即为接口。
路由器收到数据包后,会根据数据包中的目的IP地址选择一条最优的路径,并将数据包转发到下一个路由器,路径上最后的路由器负责将数据包送交目的主机。
数据包在网络上的传输就好像是体育运动中的接力赛一样,每一个路由器负责将数据包按照最优的路径向下一跳路由器进行转发,通过多个路由器一站一站的接力,最终将数据包通过最优路径转发到目的地。当然有时候由于实施了一些特别的路由策略,数据包通过的路径可能并不一定是最佳的。
路由器能够决定数据报文的转发路径。如果有多条路径可以到达目的地,则路由器会通过进行计算来决定最佳下一跳。计算的原则会随实际使用的路由协议不同而不同。
路由器转发数据包的关键是路由表。
每个路由器中都保存着一张路由表,表中每条路由表项都指明了数据包要到达某网络或某主机应通过路由器的哪个物理接口发送,以及可到达该路径的哪个下一跳路由器,或者不再经过别的路由器而直接可以到达目的地。
路由表中包含了下列关键项:
-
目的地址(Destination):用来标识IP数据包的目的地址或目的网络,上图中的第一个标记处。 -
网络掩码(Mask):在IP编址课程中已经介绍了网络掩码的结构和作用。同样,在路由表中网络掩码也具有重要的意义。IP地址和网络掩码进行“逻辑与”便可得到相应的网段信息。如本例中:目的地址为8.0.0.0,掩码为255.0.0.0,相与后便可得到一个A类的网段信息(8.0.0.0/8)。网络掩码的另一个作用还表现在当路由表中有多条目的地址相同的路由信息时,路由器将选择其掩码最长的一项作为匹配项。上图中的第一个标记处。 -
协议(Proto):指的是路由的学习来源方式。上图中的第二个标记。 -
下一跳IP地址(NextHop):指明IP数据包所经由的下一跳路由器的接口地址。上图中的第五个标记处。 -
输出接口(Interface):指明IP数据包将从该路由器的哪个接口转发出去。上图中的第六个标记处。 -
路由协议优先级(Pre):稍后解释。上图中的第三个标记处。 -
度量值(Cost):稍后解释。上图中的第四个标记处。
路由协议优先级
路由器可以通过多种不同协议学习到去往同一目的网络的路由,当这些路由都符合最长匹配原则时,必须决定哪个路由优先。每个路由协议都有一个协议优先级(取值越小、优先级越高)。当有多个路由信息时,选择最高优先级的路由作为最佳路由。
如图所示,路由器通过两种路由协议学习到了网段10.1.1.0的路由。虽然RIP协议提供了一条看起来更加近的路线,但是由于OSPF具有更高的优先级,因而成为优选路由,并被加入路由表中。
度量值
如果路由器无法用优先级来判断最优路由,则使用度量值(metric)来决定需要加入路由表的路由。
一些常用的度量值有:跳数,带宽,时延,代价,负载,可靠性等。
跳数是指到达目的地所通过的路由器数目。
带宽是指链路的容量,高速链路开销(度量值)较小。metric值越小,路由越优先;因此,图示中metric=1+1=2的路由是到达目的地的最优路由,其表项可以在路由表中找到。
构建路由表
根据比较“路由优先级”和“路由度量”,设备可以产生最优路径的IP路由表。
根据来源的不同,路由表中的路由通常可分为以下三类:
- 链路层协议发现的路由(也称为接口路由或直连路由)。
- 由网络管理员手工配置的静态路由。
- 动态路由协议发现的路由。
最长匹配原则
路由表中如果有多个匹配目的网络的路由条目,则路由器会选择掩码最长的条目。
路由器查找转发
路由器收到一个数据包后,会检查其目的IP地址,然后查找路由表。查找到匹配的路由表项之后,路由器会根据该表项所指示的出接口信息和下一跳信息将数据包转发出去。