EIGRP使用多种类型的度量值来描述一条路由的不同技术属性,称为组合度量或度量组合。这些组合度量参数包括带宽、延迟、可靠性、负载、MTU和跳数。这6个参数中的前4个通过一个著名的公式组合在一起,计算出一个数值,我们可以称其为复合度量值,或者为了简单明了,也直接称其为度量值、距离或开销。EIGRP会使用这个复合度量值选择去往某个目的地的最优路径。最初,把一条路由的多种技术测量参数结合在一起,计算出一个单一的数值,这种思想起源于IGRP;这也是IGRP比RIP“聪明”的地方,它能够在一个数值中囊括一条路由的多个属性。在开发EIGRP时,由于它将是IGRP的替代品,因此它继承了这个度量计算系统。
 
本节描述的组合度量也被称为经典度量(ClassicMetrics),这也是当前所有EIGRP应用所支持的标准度量参数集。当前IOS版本中应用的EIGRP还支持多参数度量(WideMetric),扩展了已有经典度量的范围。下一节将详细介绍多参数度量。
 
下面看一下经典度量中的每一个参数及在EIGRP中的用法
 
1.宽带度量参数
 
带宽(Bandwidth)是一个静态分配的度量参数,使用接口命令bandwidth进行分配。它描述了接口的传输速率。bandwidth命令以千比特每秒为单位描述了接口带宽。如果没有明确配置bandwidth命令,IOS会根据接口的硬件类型和运行特征,为其分配一个固有带宽值(Implicit Bandwidth Value)。对于有些接口类型(比如以太网接口),固有带宽值能够反映出这个接口与其对端协商出的真实速率。对于其他接口类型(比如串行接口或隧道接口),固有带宽值与接口的传输能力并没有实际关系。
 
2.延迟度量参数
 
延迟(Delay)是一个静态分配的度量参数,工程师可以在每个接口上,使用接口命令delay进行分配。这个度量参数估算出这个接口所遭受的串行化延迟。当然在实际工作中,串行化延迟取决于接口的传输速率和串行化之后的数据包大小。一个具体的数值并无法描述真实的接口特征,因此接口上的延迟度量参数可以被看作是普通流量在接口上会遭遇的平均延迟。
 
delay命令中使用的延迟单位有点别扭:10微秒。因此如果将接口的delay参数配置为123,说明工程师将这个接口的延迟定义为1230微秒。show interface命令中直接将接口延迟显示为多少微秒。show interface命令的输出内容中使用的延迟单位,与delay配置命令中使用的单位真可谓“差之毫厘,谬以千里”。show interface命令中显示的延迟数值总是工程师配置数值的10倍。如果工程师没有明确配置delay参数,IOS会根据接口的硬件类型,为每个接口分配一个固有延迟值。
 
在计算去往一个目的地的复合度量值时,EIGRP会采用这条路由中的总延迟进行计算。EIGRP通过将邻居路由器通告的延迟,与连接该邻居的接口的延迟相加,得到总延迟。
 
在使用经典度量时,EIGRP能够描述10~167772140微秒范围内的延迟(单位为10微秒的话:1~16777214)。16777215的10微秒延迟值用来表示无穷远,这也是通告不可达网络的重要参数。具有毒性逆转功能的水平分割、路由毒化、移除路由——EIGRP中的这些技术都会使用最大延迟值:表示不可达路由。
 
3.可靠性度量参数
 
可靠性(Reliability)是一个动态估算的度量参数,它评估了接口的可靠性,或者说它是成功接收到的数据帧和全部接收到的数据帧的比率。这个比率是以最大255的数值表示的。比如255表示可靠性100%,230表示可靠性90%,26表示可靠性10%。可靠性度量参数是由IOS动态更新的。
 
在计算去往一个目的地的复合度量值时,EIGRP会采用这条路由中的最小可靠性进行计算。EIGRP通过比较邻居路由器通告的可靠性,与连接该邻居的接口的可靠性,并选择两个可靠性值中较低的那一个。
 
在EIGRP对可靠性度量参数的处理中,有一点非常重要:虽然EIGRP确实会在通告中包含有关路径可靠性的信息,并在复合度量值的计算中将其作为可选参数(根据K值的设置决定是否采用该参数,详见后文),但在接口的可靠性发生变化时,EIGRP并不会发送更新。换句话说,接口可靠性的变化并不会触发EIGRP更新。一条路由的可靠性参数只代表了该路由最后一次被通告时的可靠性状态。
 
为了理解这一点,想一想EIGRP的度量是从IGRP继承过来的,IGRP是一项基于计时器的协议。不过EIGRP是一项基于事件的协议。如果可靠性度量参数的变化成为了EIGRP的触发事件,那么它的变化会在网络范围内引起路由表的震动,导致流量不时地通过不可靠链路传输,从而加重可靠性度量参数的反复变化,形成反馈回路。实际上,之所以从IGRP中继承了可靠性度量参数,主要是为了能够将网络平缓地从IGRP迁移到EIGRP。因此在EIGRP中,可靠性度量参数目前就是一个前任遗留下来的纪念品,并没有特别的实际用途。
 
4.负载度量参数
 
负载(Load)是一个动态估算的度量参数,它评估了接口传输的流量与接口最大能力之间的关系。与可靠性类似,负载也是以最大255的数值表示的,其中1表示接口负载为0,255表示接口利用率为100%。为了应对突发流量对瞬时负载带来的巨大偏差,IOS实际上会对瞬时负载进行指数加权平均值计算,从而消除瞬时负载的波动。由于一个接口的入向和出向数据流的利用率会有所区别,IOS会计算两个独立的负载度量值,Txload表示出站流量的负载,Rxload表示入站流量的负载。
 
在计算去往一个目的地的复合度量值时,EIGRP会采用这条路由中的最大Txload进行计算。EIGRP通过比较邻居路由器通告的负载,和连接该邻居的接口的Txload,并选择两个负载值中较高的那一个。
 
EIGRP对负载度量参数的处理与可靠性相同:虽然EIGRP确实会6在通告中包含有关路径可靠性的信息,并在复合度量值的计算中将其作为可选参数,但在接口的Txload发生变化时,EIGRP并不会发送更新。一条路由的负载参数只代表了该路由最后一次被通告时的负载状态。因此在EIGRP中,负载和可靠性都只是IGRP的纪念品,并没有特别的实际用途。
 
5.MTU度量参数
 
没几个人能说明白EIGRP中的MTU(最大传输单元00)度量参数及其用途。与带宽和可靠性一样,EIGRP会在路由通告中包含路径中的最小MTU。不过,即使在EIGRP消息中包含了MTU,但在最优路径选择过程中,MTU也是完全没有用的。它既不是复合度量值的计算参数,也不是任何优劣比较中的决定因素。简单的说,MTU在EIGRP最优路径选择算法中的用法从来没有出台过。
 
6.跳数度量参数
 
跳数(Hop Count)度量参数其实就是去往目的地的路径中,数据包需要穿越的路由器(跳)数量。它只是一个后备的安全措施:工程师可以在EIGRP路由器上将一个值预定义为无穷大,这样通过在通告中携带每条路由的跳数信息,最终可以打破可能存在的路由环路。默认情况下,跳数的限制是100,工程师可以将其更改为1~255之间的任意值。跳数并不参与复合度量值的计算,也不影响最优路由的选择。
 
7.计算复合度量值
 
每台路由器会独立计算一个复合度量值,只用于本地并不会进行通告,唯一例外的情况是一个EIGRP进程将路由重分布进另一个EIGRP进程中。
 
下为复合度量计算的经典公式
EIGRP-2-EIGRP的度量-LMLPHPEIGRP-2-EIGRP的度量-LMLPHP
 
K值取值范围0-255,一个AS内的所有EIGRP路由器必须使用相同的K值,否则将无法建立邻接关系。默认K1和K3为1,其他K值为0,也就是只用带宽和延迟计算。
 
MTU和跳数都不参与复合度量值的计算,跳数只用来到达跳数限制时通告不可达路由,MTU没有使用
 
 
 
 
 
 
 
 
05-11 21:45