内部网关路由选择协议(IGRP) Cisco的私有协议
IGRP的操作
与RIP协议不同的是,IGRP使用IP层的端口号9来进行报文交换 (RIP是使用的520端口,UDP)
IGRP协议使用了一个称为自主系统(Autonomous System)的概念。自主系统可以定义为一个路由选择域(Routing Domain),也可以定义为一个进程域(process Domain)。IGRP自主系统是一个进程域-----一组使用IGRP协议作为共同的路由选择协议的路由器。
通过定义和跟踪多个自主系统,IGRP协议允许在一个IGP环境里面运行多个进程域,这样可以把一个域内部的通信和另一个域内部的通信孤立起来。域间的通信量可以通过路由重新分配(Redistribution)!
关于这些数字的定义,例如 AS 10 igrp 10 igrp 30 IGRP协议内,两个自主系统号10和30是IGRP的两个进程域,就此处而言,进程域10和30是通过和这两个进程域都相连的一台路由器来进行通信的。 AS 10则是指路由选择域。
在IGRP更新报文中,IGRP把路由条目分成3类:内部路由(Interior Route)、系统路由(System Route)、和外部路由(exterior Route),每个IGRP的路由条目都属于这3个类别中的一个。
内部路由--------是指到达属于某个主网络的子网地址的路径,这里的主网络是指正在广播这条路由更新的数据链路的主网络地址。换句话说,作为内部路由被通告的子网对于通告路由器和接收路由器共同相连的主网络来说是“本地”的。
系统路由---------是指到达在网络边界路由器上被汇总的网络地址的路径。
外部路由---------是到达被标记成缺省网络(Default Network)的路径。对于缺省网络,路由器将直接发送所有的数据包而不对具体的目的网络进行查找匹配。
IGRP的定时器和稳定性
IGRP协议的更新周期是90S。为了防止更新计时器的同步,IGRP针对每一个更新时间减掉一个最大为其20%的随机抖动变量。因此,每个更新周期所需要的时间将在72~90S之间变化。
当一条路由首次被学到时,这条路由的无效计时器就会被设置成270s,即更新周期时间的3倍长。同时,刷新定时器设置成630s,即更新周期时间的7倍长。每次接收路由器收到该路由的更新报文后,这些计时器都将被重新初始化。如果在收到一条更新报文之前无效计时器的计时超时了,这条路由就会标记成不可到达。但是,在路由器的刷新计时器超时前,这条路由还会被保留在路由选择表中,并且作为不可达的路由通告出去,如果刷新计时器超时了,这条路由才会从路由选择表中删除掉。
重复一下RIP的定时器 RIP的路由更新定时器 30秒 路由器无效定时器 90秒 刷新定时器 240秒 在Cisco的IOS中运行的Rip协议还会有一个超时计时器,默认为180s 如果一条路由的更新在180s(6个更新周期)内还没有收到,那么这条路由的跳数将变成16,也就是标记为不可到达的路由。
如果一条路由的目的地址变为不可达的,或下一跳路由器增大了到达目的地址的度量以至于引起一个触发更新的话,那么这条路由将会进入一个280s(3倍的更新周期加上10s)的抑制时间状态。直到抑制计时器超时之前,有关这个目的地址新的信息都不会被路由器接受。IGRP协议的抑制特性可以用命令no metric holddown来禁止,在一个没有路由环路的网络拓朴中,抑制特性没有实际的意义,禁止掉这个特性将有助于减少IGRP的收敛时间。缺省的计时器可以用下面的命令来改变:
Timers basic update invalid holddown flush [sleeptime]除了sleeptime选项,这条命令曾在改变RIP协议的计时器时使用过。Sleeptime是一个周期性的毫秒(ms)级的计时器,在收到一条触发更新后,它被用来延迟一个正常的路由更新。
计时器的缺省值应当只在网络发生了明显的问题,并且仔细考虑了更改计时器所带来的后果之后才能加以改变。
IGRP的度量
默认情况下,IGRP协议选用路由协议的链路带宽和时延作为度量值。链路的另外两个特性----负载和可靠性只有在路由器上进行人工配置后才会被应用。 可以通过命令 show interface 来观察一个特定接口上相关IGRP的复合度量的值大小。
带宽(Bandwidth)------带宽用Kbit/s 单位来表示,它在计算链路的度量值时仅作为一个静态的值,没有必要反映出链路实际使用的带宽,也就是说,带宽不需要动态地去度量,例如,不论和串行接口相连的链路是T1还是56K的,串行接口的缺省带宽都是1544Kbit/s。这个缺省的带宽值可以通过bandwidth命令来更改。IGRP的更新报文使用3个8bit字节来表示IGRP“带宽”。在这里用BWigrp表示,它是用因子10的7次方除以带宽得来的,因此,如果接口的带宽是1544,那么BWigrp=107/1544=6476 或者是0x00194C
时延(delay)-----时延,像带宽一样,也是一个静态特征的度量值,不需要动态地去量度,时延可以通过show interface 命令显示的DLY参数来表示,单位是(微秒) 一个接口的缺省时延可以通过delay进行更改,并以10微秒作为命令配置的最小计量单位。DLYigrp=DLY/10 IGRP通过设定DLYigrp=0xFFFFFF来标识一条不可到达的路由路径,这个数值大约为167.8s,因此,一条IGRP的路由端——端的最大时延是167s。
可靠性(Reliability)------可靠性是一个动态量度的度量参数,它使用一个8位数字来表达,255表示100%的可靠链路,而1表示最低可靠的链路。在命令show interface的输出中,可靠性被表示成255的分数,例如,234/255 或91.8%
负载(Load)------在IGRP的更新里,负载是一个8位的数字,在show interface 的输出中表示成一个255的分数,例如,40/255;1表示最小的负载链路,255表示100%的负载链路。
跳数:跳数是下一跳路由器报告的跳数,仅仅用来限制网络规模的口径大小,缺省条件下,最大为100,也可以通过命令Metric maximum-hops配置成1~255之间的数值,如果一条路由超过了设置的最大跳数,那么它的时延将被设置成0xFFFFFF,而变成一条不可达的路由。
IGRP的报文格式
与RIP协议相比,IGRP协议不用填充无用的数据给每个路由条目以使他们达到32bit字的边界,每个更新报文可以携带104个路由条目,RIP协议是25个。一个最大的IGRP报文的大小增大到1500字节。
版本号:永远设置为1 类型代码----1标识一个IGRP请求报文,2标识一个IGRP更新报文。一个请求报文可以是一个不带路由条目的报文头组成 更新版本 自主系统号----确切地说是IGRP进程的ID号。 内部路由数 系统路由数 外部路由数 校验和 目的地址 时延 带宽 MTU 可靠性 负载 跳数
配置IGRP
两个必要的步骤:
1.使用router igrp process-id 命令启动IGRP进程;process-id的取值范围是1~65535
2.使用network命令来指定运行IGRP协议的每个主网络。
非等价负载均衡:差异变量(Variance)-------Variance命令用来确定哪些路由路径在非等价负载均衡中是可以使用的。它定义了一个倍数因子,用来表示一条路由路径的试题 值和最小代价路由路径的不同或差别的程度。任何路由路径的度量值如果超过了最小代价路由路径的度量乘以Variance的值,那么这条路由路径将不被使用。Variance的缺省值是1,也就是说如果要实现负载均衡,那么多条路由路径的度量值必须是相同的。variance的值必须是整数。此命令用在路由配置模式下。 在非等价负载均衡中的路由经常会碰到以下三种情况:
1.增加到负载共享“组”中的路由路径条数不能超过最大路径条数(maximun-paths)的限制。
2.下一跳路由器必须在度量上更接近目的网络。也就是说,在下一跳路由器上到达目的网络的度量值必须小于本地路由器到达该目的网络的度量值。到达目的网络更近的下一跳路由器,通常被称为下游路由器(Downstream Router)
3.最小路径代价的路由的度量值乘以Variance后,必须大于所增加的非最小代价路由的度量值。
设置最大的路径数:
IGRP协议可以进行负载均衡的路由路径的最大条数可以用maximum-paths命令来设置。默认为4,最大为6。 |