有关详细的信息
EIGRP协议主页,其网址为[url]www.cisco.com/go/eigrp[/url]
一、
Eigrp
路由协议简介:
是个距离矢量路由协议。收敛很快,不会出现环路。路由信息的传输采用增量更新,减少了路由信息交换对网络带宽的占用。它和
igrp
是
cisco
私有的路由协议,支持在不等代价路径上支持负载均衡,这是其他路由协议所不具备的。网络设计更灵活,路由的汇总可在任何路由的任何端口上进行。
二、在
eigrp
路由协议中存在三张表:
Eigrp
邻居表,拓扑表,和路由表。在邻居表中,存在两个参数:
fd
(
feasible distance
)和
ad
(
advertised distance
)。先举例说明:
Network
|
Feasible distance
|
Advertised distance
|
Eigrp neighbor
|
10.1.1
.0/24
|
2000
|
1000
|
Router a (e0)
|
10.1.1
.0/24
|
2500
|
1500
|
Router b (e1)
|
在路由器
a
和
b
中都存在到目的网段
10.1.1
.0/24
的路由信息。其中
ad
是路由器向网络中宣告自己到目标网络的开销,而
fd
是由邻居路由器自己的开销加上宣告路由器到目标网络的开销得到的。当路由器
b
向路由器
a
发出的宣告
ad
比
2000
大,则路由器
a
就怀疑这条路由是通过自己到达目标网络的,它不会将这条路由放到拓扑表中。也就是当某路由器的邻居向自己宣告的
ad
大于它到邻居的
fd
时,此路由器不会把这条路由放到拓扑表中,从而避免环路的产生。
Igrp
路由协议在评价路由的质量时会综合考虑到目标网络的带宽,延迟,负载,可信度,最大传输单元,
eigrp
也会综合考虑这些因素,并且它的
metric
值要比
igrp
的
24
位的值要大,它是
32
位的,它对路由的评价会更精确,可信度更高。
Metric
值的计算公式:
Metric=[k1*BW+k2*BW/(256-load)+k3*delay]*[k5/(reliability+k4)]
其中:
k1=1,k2=0,k3=1,k4=0,k5=1
当
k5=0
时公式如下:
Metric=k1*BW+k2*BW/(256-load)+k3*delay
其中:,
k1=1,k2=0,k3=1
,
bw
表示带宽,
load
表示负载,当然
bw
并不是我们的实际带宽,延迟也不是实际的延迟,它还有一个系数。
当数据穿越不同带宽的链路时,
metric
值的计算一链路中最小的带宽做为计算依据。
三、
当两个路由器属于同一个
as
时,即使他们执行的路由协议一个是
igrp
,另一个是
eigrp
,他们的路由信息也不需要再发布,只有在两个路由器属于不同的
as
时,他们的路由信息才需要再发布。再发布路由信息时主要是考虑它们的
metric
值。
Metric
值的换算如下:
Igrp metric=eigrp metric/256
Eigrp metric=igrp metric*256
在
eigrp
中延迟的计算如下:
delay
=延迟的实际时间/10*256 延迟的实际时间为微秒
在
eigrp
中带宽的计算如下:
Bw
=100000000/实际带宽*256 实际带宽的单位是
kbps
Eigrp
包的种类:
Hello:
维持邻居联系
Update
:交换路由更新
Query
:用于当某条路由信息丢失时并且在没有其他冗余路由时的向邻居发出的查询
Reply
:回应
update
的查询
ACK:
当一个路由收到
update
包时,必须向发出
update
包的路由器发出
ack
包用于确认。
邻居关系的建立条件:
要建立邻居关系的路由器,用于计算
metric
值的
k
值必须相同;路由器必须是直连;路由器必须位于相同的自治区域。
Eigrp
的
hello
包通过向组播地址
224.0.0.10
发送组播信息来发现邻居。不需要
hello time
和
hold time
匹配,而
ospf
的网络必须匹配。
Hello
数据包发送周期和链路的带宽有关。在以太网,令牌环,
fddi
,广播介质,点到点的串行链路
ppp
和
hdlc
,点到点的子接口,点到多点中的带宽大于
t1
时的
hello
发送周期都是
5
秒;在多点的环境中(
isdr bri,fr,smds,atm,x.25
),当带宽小于等于
t1
时的发送间隔是
60
秒。当然这个周期是可以手工调整的。
T1=1.544mbps
四、
在一个网络中,可能要给一个接口指定多个地址,其中一个是主地址,那么它发出的
hello
包的地址都以这个主地址作为它的源地址。在这种情况下,两个路由器,只要他们处于不同网段,即使它们是直连,在缺省情况下,他们也不会建立邻居关系。
在路由器
wang
上:
Show ip eigrp neighbors
IP-EITRP neighbors for process 200
H Address Interface Hold Uptime SRTT
(
ms
)
RTO Q(cnt) Seq
1 172.68.2.2 To0 13 02:15:30 8 200 0 9
0 172.68.16.2 Se1 10 02:38:29 29 200 0 6
显示当前路由器有两个邻居分别是
172.68.2.2
和
172.68.16.2
,直连的端口分别是
to0
和
se1
,
hold
时间分别是
13
秒和
10
秒,建立邻居的时间分别是
02
:
15
:
30
和
02
:
38
:
29
,
srtt
表示当前路由器收到路由器
wang
的
update
包时,回应的时间。
Rto
是当一个
update
包发出多长时间没有回应包
ack
,路由器需要重传。一般这个值是
srtt
的六倍,最大时间为
5000ms
,最小是
200
。不足
200
,按
200
计算;大于
5000
的按
5000
计算。
在
eigrp
的五种包中,
update
,
query
,
reply
的包是需要确认的。当一条新的路由产生时,路由器会向
224.0.0.10
这个组播地址发送组播消息,并在邻居表中录下没有回应确认信息的邻居,当达到
rto
的值时重传。当重传时间达到
16
次时,邻居关系将被
reset
。当然,
reset
动作,在低版本的路由器中没有那么简单。
Debug eigrp packets
查看
eigrp
包的信息
Eigrp
的弥散的更新算法(
diffusing update algorithm
):
路由器会记录下所有邻居发送过来的路由信息,然后选择一条无环的
metric
值最小的路径做为最佳路径。当最佳路径失效时,就采用其他可行路径。若没有可行路径,就向邻居发出查询,重新最佳路径。
当一个路由器收到路由信息时会比较他们的
ad
值,把到目的地址的最小
ad
值的路径作为最佳路径,把
ad
小于当前
fd
的路径作为可行路径,当最佳路径失效时,快速启用可行路径。
Router config#router eigrp autonomous-syste m-number
Config-router#network network-number [wildcard-mask]
�D�D�D�D�D�D
router b
�D�D�D�D�D�D�D�D�D�D�D�D�D�D
router a
�D�D�D�D�D�D
internet
10.1.0
.0/24 10.64.0.1/24 10.64.0.2/24 172.34.0.0/24
Router a:
Router eigrp 100
Network 10.0.0 .0
Network 172.31.0.0
Ip default-network 172.31.0.0
Ip route 172.34.0.0 255.255.0.0 172.31.1.1
在路由器上配置了缺省路由时,那么再
sh ip route::
Gateway of last resort is not set
<output omitted>
C 10.64.0.0/24 is directly connected,Ethernetr 0
S* 172.34.0.0/16 [1/0] via 172.31.1.1
Show ip eigrp topology
查看拓扑表
路由汇总:
Eigrp
的路由汇总是自动进行的,它在类的边界上自动进行,当然自动汇总是可以关闭的。路由汇总可以减小路由表的大小,
update
包的大小,从而加速了包的转发。还有很重要的一点,当到某一目的地址的路径失效时,而且没有其他可行路径时,路由器会向邻居发出
query
包。在邻居没有到目的地的路径时,这种查询会继续向自治系统内的其他邻居扩散。对这种查询范围的控制也可通过路由汇总来进行。
路由的人工汇总可以在任意一个路由器的任意端口上配置。当在一个路由器的端口上配置了人工汇总后,这个路由器会马上产生一个汇总路由,同时把这条路由的端口指向空端口,以防止环路的产生。也就是当一个数据包要到汇总路由指向的地址时,进行路由汇总的路由器,如果它知道下跳怎么走,就直接传给下跳;如果不知道就丢弃掉,而不是转发给其它端口。当汇总路由赖以生存的子网宕掉后,这条汇总路由也随着失效。汇总路由的
metric
值,采用汇总子网中
metric
值最小的
metric
值作为汇总路由的
tetric
值。
Cofig#no auto-summary
关闭自动汇总
Config-if#ip summary-address eigrp [as-number] [address] [mask]
在接口模式下配置路由汇总
172.16.1.0 Route r
a\
\
\
10 .0 .0
.
0
云团�D�D
router
c
�D�D�D�D�D
internet
/ s0
192
.
168
.
4
.
2
/
172.16.2.0 router b/
Router a
和
b
上的配置:
Router eigrp 100
Network 10.0.0 .0
Network 172.16.0.0
No auto-summary
Router c
上的配置:
Router eigrp 100
Network 10.0.0 .0
Int s0
Ip address 192.168.4.2 255.255.255.0
Ip summary-address eigrp 100
172.16.0.0
255.255.0.0
配置后
router
c
上知道有172
.
16
.
1
.
0和172
.
16
.
2
.
0,而
s0
端口只知道有172
.
16
.
0
.
0/16
�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D
五、Eigrp
支持在不等价的链路上的负载平衡。通过调整
variance
值来控制负载平衡链路之间的差距。缺省情况下,
eigrp
协议所占链路的开销不得大于链路总带宽的
50%
。在广域网链路中,通过
f-r
来配置点到点的子端口时,在点到点的环境中带宽是
t1
(1
.
544
mbps
),而在
f-r
中每个
pvc
的
cir
可能是56
k
,而
eigrp
路由协议会认为我们的总带宽是
t1
,这时我们就需要在每个子端口上来指定它的链路带宽和
cir
一致。在多点的环境中,配制就比较麻烦,因为每条链路的带宽是不同的。可以把他转换成多个点到点的链路再配置它的
cir
。
点到点的环境配置:
Interface serial 0.1 point-to-point
Bandwidth 56
Interface serial 0.10 [pomt-to-point
Bandwidth 56
点到点和点到多点的混合环境:
对于点到多点的环境,不同带宽的
vc
划分成多个子端口,把有相同的
cir
值的
vc
分到一个子端口,把其他的
vc
放到单独的子端口
Interface serial 0.1 multipoint
Bandwidth 768(
三个256的
vc
的
cir
的和
)
Interface serial 0.2 point-to-point
Bandwidth 56
当路由器的一条路由丢失时,并且没有其他可行路由时,它会向它的邻居发出查询信息。当邻居也没有它所要的信息时,邻居回向自己的邻居继续发出查询,只至查询蔓延到整个网络。那样将占用大量的带宽,并且使网络收敛减缓。我们可以用路由汇总来控制查询区域。因为当一个路由器上记录的是一条汇总路由时,它就不会继续向自己的邻居发出查询。只有当邻居记录的是一条具体路由时才会向邻居发出查询。需要注意的是。把一个
eigrp
自治系统分成多个区域的方法并不能控制
eigrp
的查询蔓延。
六、控制
eigrp
查询的另外一种方法:
Config-router#eigrp stub [receive only |connected |static |summary]
其中
receive
only
只接受来自
eigrp
的信息;
connected
只把自己直连的信息向外发送;
static
只把自己的静态路由信息向外发送;
summary
把自己汇总的路由发送给自己的邻居。通常用于一个星形的结构中。一个
stub
router
会向自己的邻居宣告自己的
stub
身份,当邻居的某条路由丢失时,邻居不会向它发出查询。
七、配置EIGRP身份验证
环境:R2与R3串口相连
R2的配置
R2(config)# key chain cisco à定义chain名称
R2(config-keychain)# key 1 àkey值编号,须一致
R2(config-keychain-key)# key-string aaa à定义密钥,须一致
R2(config)# interface s1
R2(config-if)# ip authentication mode eigrp 100 md5 à启用eigrp验证模式md5
R2(config-if)# ip authentication key-chain eigrp 100 cisco à将chain应用到验证
R3的配置
R3(config)# key chain cisco 名字可以不和上面相同,只具有本地意义
R3(config-keychain)# key 1
R3(config-keychain-key)# key-string aaa
R3(config)# interface s1
R3(config-if)# ip authentication mode eigrp 100 md5
R3(config-if)# ip authentication key-chain eigrp 100 cisco
八、相关命令
show ip eigrp neighbors 显示eigrp发现的邻居
show ip route
show ip route eigrp
show ip protocols
show ip eigrp interfaces
show ip eigrp topology 显示eigrp拓扑表。该命令现似乎拓扑表、路由的状态(主动或被动)、后继路由数和FD。注意,只显示后继路由和可行后继路由;指定关键字all-links是将显示所有路由,包括后继路由和可行后继路由外的其他路由
show ip eigrp traffic 显示发送和接受的eigrp分组数。该命令显示有关hello分组、更新、查询、应答和确认的统计信息
debug eigrp packets
debug eigrp neighbors
debug ip eigrp
debug ip eigrp summmary
九、相关实验
1.配置基本的EIGRP
2.配置EIGRP手动汇总
3.配置EIGRP末节特性
router eigrp 1
eigrp stub
4.配置EIGRP默认路由
ip summary-address eigrp 1 0.0.0.0 0.0.0.0