标题：igrp
简介
IGRP内部网关路由协议（IGRP：Interior Gateway Routing Protocol）
内部网关路由协议（IGRP）是一种在自治系统（AS：autonomous system）中提供路由选择功能的思科专有路由协议。在上世纪80年代中期，最常用的内部路由协议是路由信息协议（RIP）。尽管 RIP 对于实现小型或中型同机种互联网络的路由选择是非常有用的，但是随着网络的不断发展，其受到的限制也越加明显。思科路由器的实用性和 IGRP 的强大功能性，使  igrp得众多小型互联网络组织采用 IGRP 取代了 RIP。早在上世纪90年代，思科就推出了增强的 IGRP，进一步提高了 IGRP 的操作效率。
IGRP 是一种距离向量（Distance Vector）内部网关协议（IGP）。距离向量路由选择协议采用数学上的距离标准计算路径大小，该标准就是距离向量。距离向量路由选择协议通常与链路状态路由选择协议（Link-State Routing Protocols）相对，这主要在于：距离向量路由选择协议是对互联网中的所有节点发送本地连接信息。
为具有更大的灵活性，IGRP 支持多路径路由选择服务。在循环（Round Robin）方式下，两条同等带宽线路能运行单通信流，如果其中一根线路传输失败，系统会自动切换到另一根线路上。多路径可以是具有不同标准但仍然奏效的多路径线路。例如，一条线路比另一条线路优先3倍（即标准低3级），那么意味着这条路径可以使用3次。只有符合某特定最佳路径范围或在差量范围之内的路径才可以用作多路径。差量（Variance）是网络管理员可以设定的另一个值。
IGRP度量标准的计算公式如下：度量标准=[K1*带宽+(K2*带宽）/（256-负载）+K3*延迟]*[K5/(可靠性+K4）]，默认的常数值是K1=K3=1，K2=K4=K5=0。因此，IGRP的度量标准计算简化为：度量标准=带宽+延迟。
IGRP使用复合度量值  igrp，在选择到目的地的路径方面，这种度量值比RIP单一度量值“跳数”更精确，度量值最小的路由为最佳路由。
IGRP度量值中包含以下分量：
带宽：路径中的最低带宽；
延迟：路径上的累积接口延迟；
可靠性：信源和目的地之间的链路上的负载，单位为bit/s（比特每秒）；
MTU：路径上的最大传输单元。
补充内容
有关命令 
任务 命令 
指定使用RIP协议 router igrp autonomous-system1 
指定与该路由器相连的网络 network network 
指定与该路由器相邻的节点地址 neighbor ip-address
IGRP的路由度量包括多宗因素，但一般情况下可以简化为带宽。
注1、autonomous-system可以随意建立，并非实际意义上的autonomous-system，但运行IGRP的路由器要想交换路由更新信息其autonomous-system需相同。
cisco最新产品及IOS停止了对IGRP的支持 仅支持新的增强型内部网关路由协议（EIGRP）
EIGRP和IGRP为cisco专有协议 但部分华为设备也支持此两种协议
发布路由更新信息的周期是90秒
协议特性
igrp
IGRP是一种距离向量型的内部网关协议（IGP）。距离向量路由协议要求每个路由器以规则的时间间隔向其相邻的路由器发送其路由表的全部或部分。随着路由信息在网络上扩散， 路由器就可以计算到所有节点的距离。IGRP使用一组metric的组合（向量），网络延迟、带宽  igrp、可靠性和负载都被用于路由选择，网管可以为每种metric设置权值， IGRP可以用管理员设置的或缺省的权值来自动计算最佳路由。IGRP为其metric提供了较宽的值域。例如， 可靠性和负载可在1和255之间取值； 带宽值域为1200bps到10G（万兆）bps；延迟可取值1到24。宽的值域可以提供满意的metric设置，更重要的是， metric各组件以用户定义的算法结合，因此，网管可以以直观的方式影响路由选择。
为了提供更多的灵活性，IGRP允许多路径路由。两条等带宽线路可以以循环（round-robin）方式支持一条通信流， 当一条线路断掉时自动切换到第二条线路。此外，即使各条路的metric不同也可以使用多路径路由。例如，如果一条路径比另一条好三倍， 它将以三倍使用率运行。只有具有一定范围内的最佳路径metric值的路由才用作多路径路由。
稳定性IGRP提供许多特性以增强其稳定性，包括hold-down、split horizon和poison-reverse。
Hold-down用于阻止定期更新信息不适当地发布一条可能失效的路由信息。当一个路由器失效时， 相邻的路由器通过未收到定期的更新消息检测到该情况， 这些路由器就计算新的路由并发送路由更新信息把路由改变通知给它们相邻的路由器。这一举动激发一系列触发的更新，这些触发的更新并不能立刻到达每一个网络设备，所以可能发生这样的情况：一个还未收到网络失效信息的设备给一个刚被通知网络失效的设备发送定期更新信息，说那条已断掉的路由还是好的，这样， 后者就会含有（还可能发布）错误的路由信息。Hold-down告诉路由器把可能影响路由的改变保持一段时间。Hold-down时期通常只比整个网络更新某一路由改变所需时间多一点。
Split horizon来源于下列承诺：把路由信息发回到其来源是无意  igrp义的。下图示意为split-horizon规则。路由器1（R1）首先发布到网络A的路由，路由器2（R2）没有必要在给R1的更新信息中含有该路由，因为R1离网络A更近。split-horizon规则要求R2在给R1的更新信息中去掉该路由。split-horizon规则可以帮助避免路由环。例如，假设R1到网络A的接口失效了，R2继续通知R1说它可以到达网络A（通过R1）， 如果R1不够聪明，就可能用R2的路由取代已失效的直接连接，于是就产生了路由环。虽然Hold-down应该防止这类情况， IGRP也实现了split-horizon，因为它可提供更好的算法稳定性。
Split-horizon应该防止相邻路由器间的路由环，而poison-reverse对于防止较大的路由环是必要的。路由metric的持续增长通常意味着存在路由环，poison-reverse更新就被发送以删除该路由并置于hold-down状态。在Cisco的IGRP实现中，如果路由metric以1.1或更大的比例增长就发送poison-reverse更新信息。
计时器GRP维护一组计时器和含有时间间隔的变量。包括更新计时器、失效计时器、保持计时器和清空计时器。更新计时器规定路由更新消息应该以什么频度发送，IGRP中此值缺省为90秒。失效计时器规定在没有特定路由的路由更新消息时， 在声明该路由失效前路由器应等待多久，IGRP中此值缺省为更新周期的三倍。保持时间变量规定hold-down周期， IGRP中此值缺省为更新周期加10秒。最后，清空计时器规定路由器清空路由表之前等待的时间，IGRP的缺省值为路由更新周期的七倍。
基本配置
要求指定使用RIP协议
router igrp autonomous-system 1 
指定与该路由器相连的网络 
network network 
指定与该路由器相邻的节点地址
neighbor ip-address 
注：1、autonomous-system可以随意建立，并非实际意义上的autonomous-system，但运行IGRP的路由器要想交换路由更新信息其autonomous-system需相同。
具体步骤⒈ 启动IGRP路由协议，在全局设置模式下； 
router igrp 自治域号 
同一自治域内的路由器才能交换路由信息。
⒉ 本路由器参加动态路由的子网； 
net work 子网号 
IGRP只是将由net work指定的子网在各端口中进行传送以交换路由信息，如果不指定子网，则路由器不会将该子网广播给其它路由器。
⒊ 指定某路由器所知的IGRP路由信息广播给那些与其相邻接的路由器； 
neighbor 邻接路由器的相邻端口IP地址。
IGRP是一个广播型协议，为了使IGRP路由信息能在非广播型网络中传输，必须使用该设置，以允许路由器间在非广播型网络中交换路由信息，广播型网络如以太网无须设置此项。以上为IGRP的基本设置，通过该设置，路由器已能完全通过IGRP进行路由信息交换其他设置。
⒋ 不允许某个端口发送IGRP路由信息 
passive-interface 端口号 
一般地，在以太网上只有一台路由器时，IGRP广播没有任何意义，且浪费带宽，完全可以将其过滤掉。
⒌ 负载平衡设置 
IGRP可以在两个进行IP通信的设备间同时启用四条线路，且任何一条路径断掉都不会影响其它路径的传输。
当两条路径或多条路径的metric相同或在一定的范围内，就可以启动平衡功能。
配置示例
水平分割示例（一）IGRP可行的后续者关系示例 指定的尺度符合合格路由所需的条件，因此，例子中的路径可包含于路由表中，并用于负载均衡。  水平分割示例
路由合格与否，将按以下方式进行测试：
假定路由器C1已经有到网络A的一条路由，尺度为m，且已从C2接收到有关网络A的更新信息，C2的最佳尺度为p，C1通过C2的尺度为n。
如果下列两个条件满足，通过C2到网络A的路由将包含在C1的路由表中：
如果m大于p。
如果可变系数（由variance路由器配置命令指定的值）乘以m大于或等于n。
对路由器C1的配置如下：
router igrp 109
variance 10
水平分割示例（二）下面是在串行链上使水平分割失效的简单例子。在此例子中，串行链连接到X.25网络上。
interface serial 0 
encapsulation x25 
no ip split-horizon
对于路由器A、B和C（与IP网络12.13.50.0，10.20.40.0和20.155.120.0相连接）的以太网接口全部缺省为水平分割有效，而与网络128.125.1.0和131.108.1.0相连接的串行接口全部缺省为水平分割无效。依照路由器接口配置的部分规范，下面的图示说明在正常情况下并没有为任何接口明确地配置ipsplit-horizon命令。
在这个例子中，为使网络128.125.0.0通告到网络131.108.0.0，必须使水平分割无效，反之也一样。这些子网在路由器C的接口SO相交叠。如果在串行接口SO上水平分割有效，则不能为其中任何一个网络传回路由到帧中继网络。
配置路由器A
interface ethernet 1 
ip address 12.13.50.1
！
interface serial 1 
ip address 128.125.1.2 
encapsulation frame-relay
配置路由器B
interface ethernet 2 
ip address 20.155.120.1 
！
interface serial 2
ip address 131.108.1.2
encapsulation frame-relay
配置路由器C
interface ethernet 0 
ip address 10.20.40.1 
！
interface serial 0 
ip address 128.124.1.1
ip address 128.108.1.1 secondary 
encapsulation frame-relay
其他扩展
Cisco IGRP的实现IGRP使用组合用户配置尺度，包括延迟、带宽、可靠性和负载。
IGRP也通告三种类型路由：内部、系统和外部。内部路由是连接到路由器接口的网络中的子网之间的路由。如果连接到路由器的网络没有子网，则IGRP不通告内部路由。
系统路由是自治系统内的路由。从直接连接，网络接口和其他采用IGRP的路由器或访问服务器所提供的系统路由信息中，Cisco IOS软件获取系统路由。系统路由不包括子网信息。
外部路由是确认最近常访问网关（gateway of last resort）时，到自治系统外部网络的路由。Cisco IOS从IGRP提供的外部路由表中选择最近常访问网关。如果包没有更优路由且目的地不在所连接的网络上，软件使用最近常访问的网关（路由器）。如果自治系统连接了不止一个外部网络，不同路由器可以选择不同的外部路由器作为最近常访问网关。
更新机制缺省情况下，运行IGRP的路由器每90秒发送一次更新广播，如果在3个更新周期内 （即270秒），没有从路由中的第一个路由器接收到更新，则宣布路由不可访问。在7个更新周期（即630秒）后，Cisco IOS软件从路由表中清除路由。IGRP使用快速更新（flash update）和抑制可逆更新（poison reverseupdate），加速路由的收敛。当通知其他路由器尺度改变时，在标准周期性更新时间段之前就会产生快速更新。
发出抑制可逆更新以清除路由，并把此路由设置为阻塞（holddown），这使新的路由信息与某一时间周期相分离。抑制可逆更新避免了由路由距离增大而引起的大量环路。