1、 动态路由
1) 路由选择协议的基础
所有的路由选择协议都是围绕着一种算法而构建。通常,一种算法是一个逐步解决问题的过程,故一种算法至少应该指明以下内容:
- 向其他路由器传送网络可达信息的过程;
- 从其他路由器接收可达信息的过程;
- 基于现有可达信息决策最优路由的过程以及在路由表中记录这些信息的过程;
- 响应、修正和通告网络中拓扑变化的过程;
对于所有路由选择协议来说,需要解决的共同问题就是路径决策、度量、收敛和负载均衡;
路径决策:
所谓路径决策就是在通信过程中为网络中的主机选择最优可达路径,或者在多链路可达时为访问目标通过一定的对比计算选择最优路径的过程。
如图1.4.1,在网络通信的过程中,如果路由器R1所接的主机192.168.2.1/24需要去访问路由器R3所接主机192.168.7.1/24需要通过如下过程来实现:
- 首先,路由R1/R2/R3在没有任何路由协议的时候可以且仅可以通过它的接口地址和掩码知道它的直连网络,那么其直连网络路由信息如下:
R1:192.168.1.0/24 (direct) 192.168.2.0/24 (direct) 192.168.3.0/24(direct)
R2:192.168.3.0/24(direct) 192.168.4.0/24(direct) 192.168.5.0/24(direct) 192.168.6.0/24(direct)
R3:192.168.1.0/24 (direct) 192.168.6.0/24(direct) 192.168.7.0/24 (direct)
- 由图1.4.1我们知道,client A(192.168.2.1/24)要去访问client B(192.168.7.1/24)有以下两条物理路径可走:
Client A---》R1-àR3-àclient B,或者client A---》R1---》R2-àR3---》client B;
- 不管以上那条途径,都需要有直接的路由通路能够实现client A到B的路径传递,而当前的环境下,路由器R1/R2/R3都只能获取到与本身接口相连的网络信息;所以为了实现路由通路,我们就需要R1/R2/R3之间相互把自己的直连路由表信息互相通告给彼此;
- 当完成路由同步通告后那么目前我们从物理上看就有前面说的两条路径可以实现client A与client B的通信;但是在具体通信过程中我们应该选择那条路径为最优路径呢?我们如何去衡量所选路径为最优呢?
图1.4.1:
路由R1/R2/R3都可以通过它的接口地址和掩码知道它的直连网络,那么其直连网络路由信息如下:
R1:192.168.1.0/24 (direct) 192.168.2.0/24 (direct) 192.168.3.0/24(direct)
R2:192.168.3.0/24(direct) 192.168.4.0/24(direct) 192.168.5.0/24(direct) 192.168.6.0/24(direct)
R3:192.168.1.0/24 (direct) 192.168.6.0/24(direct) 192.168.7.0/24 (direct)
度量(metric):
所谓度量就是当有多条路径可以到达相同的目标网络时,我们通过选择一定机制去计算最优路径时候作为计算路由好坏、先后顺序、优先级的一个标准或变量;
路由选择协议:所谓路由选择协议就是我们去选择路径时候的一种计算机制;由于每一种路由协议的计算规则和标准的不同,不同的路由选择协议使用不同的度量;
例如:RIP定义路由跳数最少的为最优路径,EIGRP则基于路径沿路最小带宽和总延时定义最优路径。
部分度量参量:
- 跳数(Hop count)度量可以简单的计算路由器的跳数;如图1.4.1所示,如果数据包从client A到client B(以下简称A/B)有两条可选路径,当从AàR1àR3àB的时候为2跳;如果经由AàR1àR2àR3àB则为3跳。如果在路由协议中仅且仅以跳数来选择最优路径,那么显然前面的路由走向为最优。
- 带宽(bandwidth)度量将会选择高可用带宽的路径而不是低可用带宽的路径。即在以带宽作为度量的时候,一条70%带宽利用率的100M带宽路径显然不一定比一条带宽利用率为0的50M带宽的路径优秀。
- 负载(load)度量反应了流量占用沿途链路带宽的数量。最优路径应该是负载最低的路径。由于路径上的负载时会发生变化的,因而度量也会发生变化。而当度量频繁变化的时候,路由波动(最佳路径频繁变化)就有可能会发生,从而对路由器的CPU、数据链路带宽和全网稳定性产生负面影响。
- 时延(delay)度量即数据包经过一条路径所花费的时间。使用时延度量时路由选择协议将会选择最低时延的路径作为最优的路径。(时延包括链路时延、网络设备处理时延、队列时延等)。
- 可靠性(reliability)度量是用来测量链路在某种情况下发生故障的可能性,可靠性可以是固定的或变化的。可靠性最高的路径将会被选为最优路径。例如:一定周期内链路发生故障的次数、网络管理员定制的可靠性标准等。
- 开销(cost)度量可以反应更优或者更差路由,是由管理员设定或者标准拟定的通过这条路径数据包到达目的地所需要的代价。
收敛(convergence):
所谓收敛是指网络内所有路由器的路由表达到一致状态的过程。而全网实现信息共享以及所有路由器计算最优路径所花费的时间总和即为收敛时间。
动态路由选择协议包括向其它路由器通告本地的直连网络、接收并处理来自其它路由器的通告信息、转发从其它路由器接收到的信息等过程。而针对路由选择协议来说,网络上的所有路由器的路由表中的可达信息必须一致。
路由环路(routing loop):我们把两个或多个目标网络之间流量的持续循环称为路由选择环路。
如图1.4.1所示,当在在网络内我们把AàR1àR3àB定为最优路径,而确定R3到达B的最优路径为经过路由器R1,那么当AàB的数据包经由R1发往R3后,R3又会把数据包转发给R1,再经由R1转发给R3,由此陷入了往复循环,那么AàB的数据传送就在R1和R3之间构成了路由环路而无法完成有效传送。
关于收敛时间,如图1.4.2所示当网络拓扑发生变化时,只有整个网络都按最新的拓扑计算好最优路径所花的总时间才为收敛时间,即收敛时间t=t0+t1+t2+t3+t4。
未处于收敛状态的网络会会由于错误的路由信息而导致数据转发不可达。在拓扑发
生变化后一个网络的收敛速度越快越好!
图1.4.2:
负载均衡(load balance):
所谓负载均衡是当网络上有多条路径可以达到同一个目标服务器的时候,按照一定的加权算法使多个访问通过多条路径分担的方式实现访问,以增加设备的带宽、吞吐量等,以减少单路径的负载压力和可靠性等对数据交互质量的影响。