IGRP计算度量值的公式如下:
度量值 = [ K 1 × B a n d w i d t h + ( K 2 × B a n d w i d t h ) / ( 256 − L o a d ) + K 3 × D e l a y ] × [ K 5 / ( R e l i a b i l i t y + K 4 ) ] 度量值=[K1×Bandwidth+(K2×Bandwidth)/(256-Load)+K3×Delay]×[K5/(Reliability+K4)] 度量值=[K1×Bandwidth+(K2×Bandwidth)/(256−Load)+K3×Delay]×[K5/(Reliability+K4)]
默认恒定的值是K1=K3=1和K2=K4=K5=0
公式中的带宽(Bandwidth)以Kbps为单位,延迟(Delay)的单位以μs为单位。从发出数据直到到达目的地所经过的链路带宽不一定相同,所以公式中使用的带宽应该是所经由链路中带宽的最小值,然后用10⁷除以该值。公式中的延迟是从发出数据直到到达目的地所经过路由器出口的延迟之和,再除以10,因此,默认情况下, 度量值 = 1 0 7 / 带宽 + Σ 延迟 / 10 度量值=10^7/带宽+Σ延迟/10 度量值=107/带宽+Σ延迟/10。
假如使用的串行链路带宽为2Mbps,延迟为100μs。从路由器R2出发到达网络10.1.1.0所经过的链路最小带宽为2Mbps到达目的地经过了两个出口:一个是自己的Se0/3/0,一个是R1的Fa0/0,所以总的延迟为200μs,那么路由器R2到达网络10.1.1.0的度量值为: 度量值 = 1 0 7 2 × 1 0 3 + 200 10 = 5020 度量值=\frac{10^7}{2×10^3}+\frac{200}{10}=5020 度量值=2×103107+10200=5020
在路由器上配置IGRP协议分为两个步骤:
(1)启动IGRP路由协议。
命令语法如下:Router(config)#router igrp autonomous-system
autonomous-system可以随意建立,并非实际意义上的autonomous-system,但运行IGRP的路由器要想交换路由更新信息,其autonomous-system须相同,其范围为1~65535。
自治系统(Autonomous System):一个自治系统就是处于一个管理机构控制之下的路由器和网络群组。
(2)启用参与路由协议的接口,并且通告网络。
命令语法如下:Router(config)#network
network的含义与RIP相同。
目前在Cisco高版本的IOS已经对IGRP不提供支持,因此该协议无法进行测试,暂时先把各个路由器的配置命令摆上。
路由器R1的配置:
Router>enable
Router#configure terminal
Router(config)#hostname R1
R1(config)#interface FastEthernet0/0
R1(config-if)#ip address 10.1.1.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#interface Serial0/3/0
R1(config-if)#ip address 12.12.12.1 255.255.255.0
R1(config-if)#clock rate 64000
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#router igrp 100
R1(config-router)#network 10.0.0.0
R1(config-router)#network 12.0.0.0
R1(config-router)#
路由器R2的配置:
Router>enable
Router#configure terminal
Router(config)#hostname R2
R2(config)#interface Serial0/3/0
R2(config-if)#ip address 12.12.12.2 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#interface Serial0/3/1
R2(config-if)#ip address 23.23.23.2 255.255.255.0
R2(config-if)#exit
R2(config)#interface Serial0/3/1
R2(config-if)#clock rate 64000
R2(config-if)#no shutdown
R2(config-if)#exit
R2(config)#router igrp 100
R2(config-router)#network 12.0.0.0
R2(config-router)#network 23.0.0.0
R2(config-router)#
路由器R3的配置:
Router>enable
Router#configure terminal
Router(config)#hostname R3
R3(config)#interface Serial0/3/0
R3(config-if)#ip address 23.23.23.3 255.255.255.0
R3(config-if)#no shutdown
R3(config-if)#interface FastEthernet0/0
R3(config-if)#ip address 192.168.1.3 255.255.255.0
R3(config-if)#no shutdown
R3(config-if)#exit
R3(config)#router igrp 100
R3(config-router)#network 23.0.0.0
R3(config-router)#network 192.168.1.0
R3(config-router)#
EIGRP中的五种类型数据包
在EIGRP中,有五种类型的数据包,所有这些数据包都是通过IP数据包头部的协议号88来标识。
(1)Hello:以组播的方式定期发送,并且使用不可靠的方式发送,用于发现邻居路由器,并维持邻接关系。默认的Hello间隔与接口的带宽有关系,如果带宽大于T1,默认的Hello间隔为5秒,默认Holddown时间为15秒;如果带宽小于或等于T1,默认的Hello间隔为60秒,缺省Holddown时间为180秒。
(2)更新(Update):当路由器收到某个邻居路由器的第一个Hello包时,以单播传送方式回送一个包含它所知道的路由信息的更新包。当路由信息发生变化时,以组播的方式发送一个只包含变化信息的更新包。所有更新包必须被可靠地传送。注意,两个更新包的内容不一样。
(3)查询(Query):当一条链路失效时,路由器重新进行路由计算,当在拓扑表中没有可行的后继路由时,路由器就以组播或单播的方式向它的邻居以组播方式发送一个查询包,以询问它们是否有一条到目的地的后继路由。
(4)答复(Reply):以单点的方式回传给查询方,对查询数据包进行应答,查询数据包和答复数据包都需要可靠传输。
(5)确认(ACK):以单点的方式传送,该数据包的传送是不可靠的,也可以搭载在其他类型的EIGRP数据包上,如应答分组。
可行距离(Feasible Distance)
到达一个目的地的最佳路由的度量值。
后继(Successor)
后继是一个直接连接的邻居路由器,通过它具有到达目的地的最短路由。
通告距离(Advertise Distance)
相邻路由器所通告的相邻路由器自己到达某个目的地的最佳路由的度量值。
封考
可行后继 (Feasible Successor)
可行后继是一个邻居路由器,通过它可以到达目的地,不使用这个路由器是因为通过它到达目的地的路由的度量值比其他路由器高,但它的通告距离小于可行距离,因而被保存在拓扑表中,用做备份路由。
可行性条件 (Feasible Condition)
上述几个术语构成了可行性条件,是EIGRP路由器更新路由表和拓扑表的依据。可行性条件可以有效地阻止路由环路,实现路由的快速收敛。可行性条件的公式为AD
活跃状态(Active State)
当路由器失去了到达一个目的地的路由,并且没有可行后继可利用时,该路由进入活跃状态,是一条不可用的路由。当一条路由处于活跃状态时,路由器向所有邻居发送查询来寻找另外一条到达该目的地的路由。
被动状态(Passive State)
当路由器失去了一条路由的后继而有一个可行后继,或者再找到二个后继时,该路由进入被动状态,是一条可用的路由。
初始运行EIGRP的路由器都要经历发现邻居、了解网络、选择路由的过程,在这个过程中需要建立三张独立的表:列有相邻路由器的邻居表、描述网络结构的拓扑表和路由表,并在运行中网络发生变化时更新这三张表。
在路由器上配置EIGRP基本命令如下
(1)启动EIGRP路由协议。命令语法如下:Router(config)# router eigrp autonomous-system
autonomous-system可以随意建立,并非实际意义上的autonomous-system,但运行EIGRP的路由器要想交换路由更新信息,其autonomous-system须相同,其范围为1~65535。
(2)启用参与路由协议的接口,并且通告网络。命令语法如下:Router(config)# network network [wildcard-mask]
与IGRP协议和RIP协议所不同的是,EIGRP协议在通告网段时,如果是主网地址(即 A、B、C类的主网,没有划分子网的网络),只需输入此网络地址;如果是子网的话,则必须在网段号后面写入反掩码。
反掩码地址是用广播地址(255.255.255.255)减去掩码地址所得到的地址。如掩码地址是255.255.255.0,则反掩码地址是 0.0.0.255;掩码地址是255.255.255.252,则反掩码地址是0.0.0.3。当然也可以在对子网的声明中只写主类网络的网络地址,这表明此网络的所有子网都加入了EIGRP路由进程。在高级的IOS中也支持网络掩码的写法。
(3)关闭自动汇总
关闭自动汇总命令的语法如下:Router(config)#no auto-summary
使用no auto-summary命令可关闭EIGRP协议的路由自动汇总功能,默认的配置是自动汇总生效。在处理使用VLSM尤其是存在不连续的子网的网络中,通常需要关闭路由自动汇总功能。
(4)no eigrp-log-neighbor-changes
这是路由器的默认配置,作用是不记录相邻路由器有关EIGRP协议的变化信息。
路由器R1的配置:
Router>enable
Router#configure terminal
Router(config)#hostname R1
R1(config)#interface FastEthernet0/0
R1(config-if)#ip address 10.1.1.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#interface Serial0/3/0
R1(config-if)#ip address 12.12.12.1 255.255.255.0
R1(config-if)#clock rate 64000
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#router eigrp 100
R1(config-router)#network 10.1.1.0 0.0.0.255
R1(config-router)#network 12.12.12.0 0.0.0.255
R1(config-router)#no auto-summary
R1(config-router)#
路由器R2的配置:
Router>enable
Router#configure terminal
Router(config)#hostname R2
R2(config)#interface Serial0/3/0
R2(config-if)#ip address 12.12.12.2 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#interface Serial0/3/1
R2(config-if)#ip address 23.23.23.2 255.255.255.0
R2(config-if)#clock rate 64000
R2(config-if)#no shutdown
R2(config-if)#exit
R2(config)#router eigrp 100
R2(config-router)#network 12.12.12.0 0.0.0.255
R2(config-router)#network 23.23.23.0 0.0.0.255
R2(config-router)#no auto-summary
R2(config-router)#
路由器R3的配置:
Router>enable
Router#configure terminal
Router(config)#hostname R3
R3(config)#interface Serial0/3/0
R3(config-if)#ip address 23.23.23.3 255.255.255.0
R3(config-if)#no shutdown
R3(config-if)#interface FastEthernet0/0
R3(config-if)#ip address 192.168.1.3 255.255.255.0
R3(config-if)#no shutdown
R3(config-if)#exit
R3(config)#router eigrp 100
R3(config-router)#network 23.23.23.0 0.0.0.255
R3(config-router)#network 192.168.1.0 0.0.0.255
R3(config-router)#no auto-summary
R3(config-router)#
show ip rigrp neighbors
使用该命令可以查看EIGRP邻居表
H:这个是用于跟踪邻居的号码的,第一个建立邻居的号码为0,第二个建立邻居的为1,以此类推。
Address:这个是从接口的邻居路由器收到了Hello分组从而获得的IP地址。
Interface:与邻居交换Hello分组的接口。
Hold:保持时间,从收到Hello分组时开始计时,若在Hold时间内没有收到Hello分组,那么路由器就会认为这个邻居处于Down状态了。在收到邻居发送的Hello分组时,它就会重置。默认它是Hello分组的3倍,这个是可以设置的。
Uptime:路由器从邻居那里第一次接收到Hello分组后至今的时间,它是以小时、分钟、秒计算的。
SRTT:平均往返定时器,EIGRP路由器发送Hello分组给邻居,到邻居收到分组及本地路由器收到该分组回应包的确定时间,单位为毫秒。这个定时器用于确定重传间隔,也被称为重传超时(RTO)。
RTO:路由器将重传队列中的分组重传给邻居之前所等待的时间,以毫秒计算。
Q:在队列中等待发送的EIGRP包数量 ,正常是0的,若这个数值很大,那么表示这个网络很拥挤。
Seq:从邻居那里收到的最后一个更新、查询、应答分组的序列号。
注意:如果运行EIGRP路由协议的路由器不能建立邻居关系。从下面两个方面进行排错:一看AS号码是否相同,二看K值是否相同。如果上面两项有任何一项不同,是不可能建立起邻居关系的。但是如果邻居的HELLO间隔不同,却不影响邻居关系的建立。这一点和OSPF路由协议是不同的。
可以通过下面的命令来修改hello-interval和hold-time时间。
R1(config-if) # ip hello-interval eigrp
R1(config-if) # ip hold-time eigrp
等价负载均衡(ECMP)与非等价负载均衡UCMP
负载均衡是指在网络的多个出口上分发数据流量到目的地。负载均衡增加了网段的
使用,也增加了网络带宽的利用率。对于IP网络,Cisco IOS默认支持4 条等价链路的负
载均衡,最大支持6条。EIGRP支持不等价链路的负载均衡,使用variance命令,跟上一
个乘数,默认是1(即代表等价链路的均衡负载),variance值的范围是1~128,这个乘数
代表了可以接受的不等价链路的度量值的倍数,在这个范围内的链路都将被接受,并且被
加入路由表中。
终端设备(End Devices):2台PC-PT
网络设备(NetWoek Devices):2个“2811”型号的路由器,需要配置好串行接口
网络拓扑示例:
需要注意的是设备之间的连接所选用的线路类型,一般情况下路由器和PC之间使用交叉线,两台路由器相连接使用串行线。
在路由器各端口附近的“.1、.2”表示的是端口的IP地址,例如R1的以太网口(Fa0/0)IP为10.1.1.1/24。
路由器R1的配置:
Router>enable
Router#configure terminal
Router(config)#hostname R1
R1(config)#interface FastEthernet0/0
R1(config-if)#ip address 10.1.1.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#interface Serial0/3/0
R1(config-if)#ip address 12.12.12.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#interface Serial0/3/1
R1(config-if)#ip address 21.21.21.1 255.255.255.0
R1(config-if)#clock rate 64000
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#router eigrp 100
R1(config-router)#network 10.1.1.0 0.0.0.255
R1(config-router)#network 12.12.12.0 0.0.0.255
R1(config-router)#
Router>enable
Router#configure terminal
Router(config)#hostname R2
R2(config)#interface FastEthernet0/0
R2(config-if)#ip address 192.168.1.2 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#interface Serial0/3/0
R2(config-if)#ip address 12.12.12.2 255.255.255.0
R2(config-if)#bandwidth 64
R2(config-if)#no shutdown
R2(config-if)#interface Serial0/3/1
R2(config-if)#ip address 21.21.21.2 255.255.255.0
R2(config-if)#bandwidth 128
R2(config-if)#no shutdown
R2(config-if)#exit
R2(config)#router eigrp 100
R2(config-router)#network 12.12.12.0 0.0.0.255
R2(config-router)#network 21.21.21.0 0.0.0.255
R2(config-router)#network 192.168.1.0 0.0.0.255
R2(config-router)#no auto-summary
R2(config-router)#
设置主机A、B的IP地址、子网掩码和网关地址:
双击主机A、B,在“Desktop”界面找到“IP Configuration”,填写IP地址、子网掩码和默认网关
测试网络的连通情况:
双击主机A、B,在“Desktop”界面找到“Command Prompt”
通过输出结果可以看出,通过21.21.21.1到达10.1.1.0网络的FD是20514560,通过12.12.12.1到达10.1.1.0网络的FD是40514560,所以EIGRP选择FD值小的放入路由表,但是同时看到,通过12.12.12.1到达10.1.1.0网络的AD(28160)小于通过21.21.21.1到达10.1.1.0网络的FD,满足可行性条件,所以被放到拓扑表中。
下面通过修改variance值来实现非等价负载均衡。在路由器R2上的配置如下:
R2#enable
R2#configure terminal
R2(config)#router eigrp 100
R2(config-router)#variance 2
R2(config-router)#
通过修改variance值,到网络10.1.1.0的路径变成两条,从而实现了非等价负载均衡。
路由抖动是指重复地或经常冗余地公告和撤销路由,使路由器不得不反复计算去往目的网络的最佳路径。
倘若最佳路径改变,则路由器必须进一步公告这条新的最佳路由,同时撤销原先的路由,这种影响会蔓延到整个Internet上,以致大量增加路由器的CPU处理负担和网络的带宽。
路由抖动是Internet不稳定的主要因素,频繁的路由抖动不仅加重了路由器的CPU处理负担,增加了网络的带宽消耗,严重情况下还会导致网络的瘫痪。
对可以减轻路由抖动对网络的影响的两种方法:路由抑制和路由聚合。
- 路由抑制的目的在于提高Internet路由表的总体稳定性,降低核心路由器的CPU处理负担,同时不影响正常路由的聚合时间。它最重要的作用首先是极大地减少了路由不稳定对外面网络的影响;其次是提高了对不稳定存在的意识,因为剧烈的路由或线路抖动会导致对不稳定域的持久抑制(利用对发生抖动的前缀进行抑制)。如果把路由抑制应用于尽可能靠近导致发生路由抖动的源的地方,它发挥的作用就越大越有用;
- 路由聚合并不是针对路由抖动提出的,但它的一个优点是可以使其他路由器免受网络拓扑结构变化的影响,隐藏路由的不稳定,从而减轻路由抖动对整个网络的影响。
路由抑制和路由聚合都可以减轻路由抖动对网络的影响。
路由汇总的目的是为了减少路由表的条目,避免路由抖动。
EIGRP路由协议支持手工汇总,使用手工汇总的特点如下:
(1)可以基于接口来配置汇总
(2)当在接口做了手工汇总以后,路由器将创建一条指向null0口的路由,这样做是为了防止路由循环。
(3)当汇总之前的路由死机以后,汇总路由将自动从路由表里被删除。
Lo0:172.16.0.1/24 —> 10101100.00001000.000000|00.00000001
Lo1:172.16.1.1/24 —> 10101100.00001000.000000|01.00000001
Lo2:172.16.2.1/24 —> 10101100.00001000.000000|10.00000001
Lo3:172.16.3.1/24 —> 10101100.00001000.000000|11.00000001
----->172.16.0.0/22
Router>enable
Router#configure terminal
Router(config)#hostname R1
R1(config)#interface loopback 0
R1(config-if)#ip address 172.16.0.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#interface loopback 1
R1(config-if)#ip address 172.16.1.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#interface loopback 2
R1(config-if)#ip address 172.16.2.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#interface loopback 3
R1(config-if)#ip address 172.16.3.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#interface FastEthernet0/0
R1(config-if)#ip address 10.1.1.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#interface Serial0/3/0
R1(config-if)#ip address 12.12.12.1 255.255.255.0
R1(config-if)#clock rate 64000
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#router eigrp 100
R1(config-router)#network 172.16.0.0 0.0.3.255
R1(config-router)#network 10.1.1.0 0.0.0.255
R1(config-router)#network 12.12.12.0 0.0.0.255
R1(config-router)#
EIGRP协议的特点是和IGRP协议的兼容。在一台路由器上同时运行这两个协议
如果AS号码相同,那么这两个协议会自动重分布。
重分布是指连接到不同路由选择域的边界路由器在不同自主系统之间交换和通告路由选择信息的能力。
R1上运行IGRP协议,AS号码为100;R2上同时启用 EIGRP和IGRP协议,并且AS号码都为100;R3上运行EIGRP协议,AS号码为100。
应该是Cisco不支持IGRP协议了,输入会显示无效,因此无法进行测试,直接放出配置命令。
路由器R1的配置:
Router>enable
Router#configure terminal
Router(config)#hostname R1
R1(config)#interface FastEthernet0/0
R1(config-if)#ip address 10.1.1.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#interface Serial0/3/0
R1(config-if)#ip address 12.12.12.1 255.255.255.0
R1(config-if)#clock rate 64000
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#router igrp 100
R1(config-router)#network 10.0.0.0
R1(config-router)#network 12.0.0.0
R1(config-router)#
路由器R2的配置:
Router>enable
Router#configure terminal
Router(config)#hostname R2
R2(config)#interface Serial0/3/0
R2(config-if)#ip address 12.12.12.2 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#interface Serial0/3/1
R2(config-if)#ip address 23.23.23.2 255.255.255.0
R2(config-if)#clock rate 64000
R2(config-if)#no shutdown
R2(config-if)#exit
R2(config)#router igrp 100
R2(config-router)#network 12.0.0.0
R2(config-router)#exit
R2(config)#router eigrp 100
R2(config-router)#network 23.23.23.0 0.0.0.255
R2(config-router)#no auto-summary
路由器R3的配置:
Router>enable
Router#configure terminal
Router(config)#hostname R3
R3(config)#interface Serial0/3/0
R3(config-if)#ip address 23.23.23.3 255.255.255.0
R3(config-if)#no shutdown
R3(config-if)#interface FastEthernet0/0
R3(config-if)#ip address 192.168.1.3 255.255.255.0
R3(config-if)#no shutdown
R3(config-if)#exit
R3(config)#router eigrp 100
R3(config-router)#network 23.23.23.0 0.0.0.255
R3(config-router)#network 192.168.1.0 0.0.0.255
R3(config-router)#no auto-summary
弥散更新算法(Diffusing Update Algorithm),EIGRP组件之一,为EIGRP提供最佳路由路径。
DUAL(扩散更新算法)是EIGRP确定最佳无环路径和无环备用路径的方法。
离目的网络更近的下一跳路由器,通常被称为下游路由器(Downstream Router),远一些称为上游路由器。
1.常见的距离向量路由协议包括RIP和EIGRP。
2.RIP路由协议采用UDP 520端口发送路由更新。
3.RIP更新周期为30秒,IGRP更新周期为90秒。
4.RIP用跳数作为度量值。
5.RIP的管理距离是120;IGRP的管理距离是100;EIGRP的管理距离90。
6.RIP支持等价负载均衡,默认路径为4条。
7.如果路由器的一个端口只接收路由更新,不发送路由更新,这个端口称为被动接口。
8.Cisco私有的路由协议包括IGRP和EIGRP
9.EIGRP路由协议的可行性条件是AD
11.RIPv2的组播更新地址是224.0.0.9,EIGRP 的组播更新地址是224.0.0.10。
12.IGRP和EIGPP路由协议支持非等价负载均衡。
13.RIPv2支持明文和MD5认证。
14.RIP路由协议采用哪些方法来避免路由环路?
①水平分割 ②毒性逆转 ③定义最大跳数 ④触发更新 ⑤抑制计时
15.IGRP采用哪些要素作为度量标准?
带宽、延迟、负载、可靠性、MTU