hello >=t 1 的链路上是5s holdtime 15s
如果是 <t 1 链路上是60s holdtime 180s
1 邻居表
2 拓扑表 从邻居学到的信息都放在top表中
3 路由表
一旦路由表收敛后只接受触发更新和增量更新
路由器之间继续使用hello包来维持邻居关系
172.16.1.0 12.1.10.0 13.1.1.0
r2 -------------- r1 ---------------r3
s0 s0 s1 s1
lo 5000 us
ether 1000 us
serial 20000 us
eigrp 只对本地路由信息进行汇总,对过路的路由信息不会进行汇总
<EIGRP(Enhanced Interior Gateway Routing Protocol )>
·EIGRP是Cisco私有的路由协议,采用DUAL(扩散更新算法),高级距离矢量,收敛快速。
·EIGRP属于IGP,是Hybrid协议,基于IP Pro 88。
·支持等价/不等价的负载均衡。
·支持VLSM,手工汇总。
·支持多种网络协议(IP/IPX)。
部分(增量),触发更新
组播和单播代替广播
100%没有路由环路
对WAN和LAN容易配置
支持等价的和不等价的负载均衡(唯一的一个支持不等价负载均衡)
EIGRP为各种协议都维护的3张表:
1)Neighbor Table:
确保直接邻居之间能够双向通信。
2)Topology Table:
拓扑表中存放着前往目标地址的所有路由。
3)Routing Table:
从拓扑表中选择到达目标地址的最佳路由放入路由表。
EIGRP Metric = 256 * (IGRP Metric) (256=8bit)
K1=带宽bandwidth(源和目的之间的最小带宽) 1
K2=负载loading(源和目的之间的最大负载) 0
K3=延迟delay(源和目的之间的延迟总和) 1
K4=可靠性reliability(源和目的之间的最低可靠性) 0
K5=MTU(源和目的之间的最小MTU) 0
延迟是取路由来的方向的入接口的延迟总和,环回口也有延迟
EIGRP Metric = 256*(107/BW+DLY/10)
[BW(min) / DL (sum)]
Interface BW(kbps) DLY(μsec)
Ethernet 10000 1000
Serial 1544 20000
BRI 64 20000
Loopback 8000000 5000
RTP(Reliable Transport Protocol)
用来管理EIGRP报文的发送和接收。
Hello:用于邻居的发现和恢复。发现,建立,维持(Multicast)
Update:传递路由更新,仅包含需要的路由条目,当为指定的一台路由器发更新时使用Unicast ,当为多台路由器发更新时使用Multicast.
Query:当找不到Feasible Successor时,发送查询报文(Multicast)
Reply:回应查询报文。(Unicast)
ACK:用来确认Update/Query/Reply (Unicast)
Reliable packets :Update/Query/Reply
Unreliable packets :Hello/ACK
·Hello Address = 224.0.0.10
·要形成邻居关系,双方K Value & AS Num &authentication都必须一致。
·Hello Timer
5S:≥T1 (1.544Mbps)
60S:<T1
·Hold Timer = 3 * Hello Timer
·即使双方的Hello Timer & Hold Timer不一致,也可形成邻居关系。但有可能出问题。
·SRTT(Smooth Round-Trip Time):
从发送3种可靠包,到对方回应ACK的时间。(ms)
·RTO(Retransmission TimeOut):
重传超时的定时器。
·Queue count 队列数 还在排队的报文数
·针对3种可靠包最大重传16次,如果16次还没ACK,则重置邻居关系。
·成为Feasible Successor的条件:
FD of Best Route > AD of Second best Route
(Successor)
<EIGRP>
R2(config)#router eigrp 90
R2(config-router)#network 12.1.1.0 0.0.0.255
R2(config-router)#network 2.2.0.0 255.255.0.0 (正/反掩码皆可)
R2#show ip protocols
R2#show ip eigrp interfaces
R1#show ip eigrp neighbors
测试不同AS NUM能不能建起邻居。
测试Hello/Hold Timer不一致能不能建起邻居。
·修改Hello/Hold Timer
R1(config-if)#ip hello-interval eigrp 90 60
R1(config-if)#ip hold-time eigrp 90 180
·修改K值
R3(config)#router eigrp 90
R3(config-router)#metric weights 0 1 1 1 0 0
EIGRP在默认auto-summary时,跨越不同网络边界时,还是会汇总成主类。
所以:R1(config-router)#no auto-summary
·Eigrp在auto-summary有如下特点:
1)D 2.0.0.0/8 is a summary, 00:02:30, Null0
(本地汇总成主类指向Null0)
2)仅将本地的路由汇总成主类,对于收到的路由不做汇总,然后发出。
<计算EIGRP Metric>
·在路由流向的入口改。
·改延迟时,如果想把延迟改成2000usec,
则要R3(config-if)#delay 200 (/10) 输入的值默认会*10
R3(E0): delay 20000
<手工汇总>
R2(config-if)#ip summary-address eigrp 90 20.1.4.0 255.255.252.0
(在路由流向的出接口作)
本地会产生:D 20.1.4.0/22 is a summary, 00:00:02, Null0
·本地只有明细/汇总路由,从做汇总的接口发出汇总路由。
·直到明细的最后一条路由消失,汇总才会消失。
汇总路由的metric值会取最小的metric值
EIGRP汇总路由的AD值是5
<负载均衡>
·EIGRP默认支持4条负载均衡。
R1#show ip protocols
R1(config)#router eigrp 90
R1(config-router)#maximum-paths 6(最多6条)
<不等价的负载均衡>
R3(config-router)#variance 2 默认情况下EIGRP只支持等价的负载均衡
FS's FD < U*Successor's FD
U值由自已决定(1-128)
<EIGRP占用带宽>
·默认,EIGRP占用接口的配置带宽的50%。信息报文
如果没有使用Bandwidth设置带宽,则使用接口默认带宽。
R1(config-if)#ip bandwidth-percent eigrp 90 200 本命令只能show run interface看
(BW * 200%)
<Query>
SIA(Stuck in Active)卡在活动状态
·导致SIA的常见原因:
1)查询范围太大
1)路由器太忙无法回答查询。
2)路由器之间的链路质量低劣,导致查询包丢失。
3)某此单向链路。
R1(config-router)#timers active-time [2|disable]
(SIA计时器,默认是3分钟,超过3分钟就重置邻居关系,避免卡在活动状态)
·限制查询范围:
1)Summary
·仅当路由表中有完全匹配的条目时,才会传播该查询。
否则直接回应网络不可达。
·使用不同AS做双向重分布,是不能限制查询范围的。
2)Stub
·一般把远程路由器配置成Stub路由器,并向所有邻居发送特殊信息告之,这样,邻居将不会向Stub发送查询。
R3(config)#router ei 90
R3(config-router)#eigrp stub (默认通告直连&汇总)
(在config中会自动变成 eigrp stub connected summary )
R3(config-router)#eigrp stub connected (只通告直连路由)
R3(config-router)#eigrp stub summary (只通告汇总路由)
R3(config-router)#eigrp stub receive-only (只接收不通告)
SIA(Stuck in antive)卡在活动状态
路由器在三分钟内没有收到邻居的回应,就从置和邻居关系
<被动接口>
R1(config-router)#passive-interface loopback 0 必须在进程中
接口将不收发Hello包,但此接口还是被宣告进Eigrp。
对于环回口来说其他路由器仍可收到这接口的路由。对于物理接口来说则根本无法建立邻居关系
<偏移列表>
用这个玩意将不同路由的metric值改为一样,用来实现负载均衡
R3(config)#access-list 1 permit 1.1.1.0 0.0.0.0 ACL卡路由的时候其实不用打后面的0.0.0.0
R3(config-router)#offset-list 1 in 3 Serial 1 本命令只能在原有基础上增加metric值
(原有Metric + 3)
R3(config-router)#offset-list 0 in 3 ethernet 0 从E0接口进来的所有路由的metric值都加3
(0代表所有网络)
<水平分割>
在帧中继的HUB的接口上要关闭EIGRP的水平分割,不然无法传路由
Router(config-if)#no ip split-horizon eigrp 90
<EIGRP Authentication>仅支持MD5,不支持明文认证
R2(config)#key chain R2 (本地有效)定义KEY库名为R2
R2(config-keychain)#key 1(两端一致)定义KEY号为1
R2(config-keychain-key)#key-string cisco 定义KEY值为cisco
R2(config-if)#ip authentication key-chain eigrp 90 R2
R2(config-if)#ip authentication mode eigrp 90 md5 开启认证
R1#show key chain
R1#debug eigrp packet
Accept-lifetime 04:00:00 jan 2006 infinite 定时接收
Send-lifetime 04:00:00 jan 1 2006 04:01:00 jan 1 2006 定时发送
<EIGRP区域生成默认路由>
1)Redistribute Static:
R1(config)#ip route 0.0.0.0 0.0.0.0 serial 0
R1(config)#router eigrp 90
R1(config-router)#redistribute static
(默认是按静态路由出接口类型计算Metric)
R1(config-router)#redistribute static metric 1544 100 255 1 1500
EX* 0.0.0.0/0 [170/2707456]
2)Network 0.0.0.0:
R1(config)#ip route 0.0.0.0 0.0.0.0 serial 0(写下一跳不行)
R1(config)#router eigrp 90
R1(config-router)#network 0.0.0.0
D* 0.0.0.0/0 [90/2707456]
3)default-network:含义不大,基本上不会用
R1(config)#ip default-network 192.12.1.0(写成主类)
还必须先写一条静态路由,并且把这个接口要宣告进来
Ip route 192.12.1.0 255.255.255.0 s0
EIGRP的最大跳数是默认情况下是100,最大是255