技术文档 Technical Docs百分努力只为换取一份信任

 当前位置:首页 > 资源下载 > 技术文档

EIGRP协议笔记总结





<EIGRP (Enhanced Interior Gateway Routing Protocol )>增强的内部网关路由协议

EIGRP的特点:

  • EIGRP是Cisco私有的路由协议,采用 DUAL(扩散更新算法)。

  • EIGRP属于IGP,是Hybrid 协议,基于IP Pro 88 。

  • 组播、单播更新,组播地址 224.0.0.10

  • 支持等价 /不等价的负载均衡。

  • 支持VLSM ,手工汇总。

  • 支持多种网络协议(IP/IPX )。



EIGRP为各种协议都维护的3张表:

1)Neighbor Table :

保存直连的邻居的 IP地址,确保直接邻居之间能够双向通信。

2)Topology Table :

拓扑表中存放着前往目标地址的所有路由。

3)Routing Table :

从拓扑表中选择到达目标地址的最佳路由放入路由表。




DUAL算法:

扩散更新算法,也叫弥散更新算法

 

AD(通告距离) ------------- 邻居通告的到达目的的 Metric

FD(可行距离) ------------- 本路由器到达目的的 Metric

successor 路由 ------------- 具有最优 Metric 值的路由

Feasible successor 路由 ----- 符合条件的次优路由

次优路由成为 Feasible Successor 的条件:也叫可行性条件FD of Best Route > AD of Second best Route (Successor)

为什么 AD

 

EIGRP 中,路由器会从拓朴表中选出去往特定目的地的最优路由,也称为successor 路由,放入路由表,一旦最优路由 down掉,EIGRP会马上从拓朴表中找出 feasibel successor 路由,将其升级为最优路由,并放入路由表,而不用经过计算,这样提高了收敛的速度。

如果当前路由表中的 successor 路由 down掉后,在拓朴表中又没有备份的路由,EIGRP会向所有直连的邻居发出查询包,进行扩散查询。



RTP( Reliable Transport Protocol )可靠传输协议

用来管理 EIGRP报文的发送和接收,实现可靠传输。

所谓可靠传输是指发送有保障的而且报文是有序发送的。




EIGRP中的常用报文:

Hello:用于邻居的发现和恢复。发现、建立、维持邻居关系( Multicast)

Update:传递路由更新,仅包含需要的路由条目,当为指定的一台路由器发更新时使用 Unicast(P-TO-P) ,当为多台路由器发更新时使用 Multicast.(MA)

Query:当找不到 Feasible Successor 时,发送查询报文( Unicast )

Reply :回应查询报文。( Unicast )

ACK:用来确认 Update/Query/Reply (Unicast )



Reliable packets :Update/Query/Reply

Unreliable packets :Hello/ACK

· Hello Address = 224.0.0.10

· Hello Timer

5S:≥ T1(1.544Mbps)也有一个随机时间差防止更新同步

60S:< T1

· Hold Timer = 3 * Hello Timer

·形成邻居关系的必要条件

1 、双方 K Value 一致。

2 、 AS Num一致。

3 、 authentication 必须一致。

·即使双方的 Hello Timer & Hold Timer 不一致,也可形成邻居关系。

· SRTT( Smooth Round-Trip Time) 平均往返时间 : 从发送 3种可靠包,到对方回应 ACK的时间。 (ms)

· RTO(Retransmission TimeOut ):重传超时的定时器。

· Queue count 队列数 还在排队等待发送的报文数



16次重传机制:

在 EGIRP中,如果一台路由器向邻居发送了一个可靠的报文,是需要邻居回应一个 ACK报文的,如果邻居没有回 ACK,则会向邻居重传 16次,如果邻居还没有回应,就会重置邻居关系。




EIGRP的Metric 值计算:

EIGRP的metric 值的计算,最多可以用到五个参数,实际上通常只用到两个。

公式:

EIGRP Metric = 256*(10 7/BW+DLY/10)

小数情况,不四舍五入,直接取整

 

注意:

1、带宽取路由传递路径上的最小带宽值

2、延迟是取路由来的方向的入接口的延迟总和



几种常用接口的带宽和延迟:

 

在完整的计算公式中,每一个参数还要乘上自已的权值:

K1=带宽 bandwidth (源和目的之间的 最小带宽 ) 1

K2=负载 loading (源和目的之间的最大负载) 0

K3=延迟 delay (源和目的之间的 延迟总和 ) 1

K4=可靠性 reliability (源和目的之间的最低可靠性) 0

K5=MTU(源和目的之间的最小 MTU) 0




<EIGRP>基本配置

R2(config)#router eigrp 90

R2(config-router)#network 12.1.1.0 0.0.0.255 // 反掩码的 0 —精确匹配—忽略不计

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

R1#show ip eigrp traffic

R1#show ip eigrp topology // 只能显示 successor 和feasible

successor

R1#show ip eigrp topology all-links // 可显示拓扑表中的所有条目

测试不同 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 // 记住, hold-time 时间是给邻居用的

show ip eigrp interface detail s1/0 // 查看接口的 hello 时间



·修改K值

R3(config)#router eigrp 90

R3(config-router)#metric weights 0 1 1 1 0 0

<自动汇总>

EIGRP在默认是开启 auto-summary的,这意味着路由在跨越不同网络边界时,会自动汇总成主类。

router eigrp 90

no auto-summary // 本命令关闭自动汇总



<手工汇总>

int s1/0

ip summary-address eigrp 90 20.1.4.0 255.255.252.0 // 只能在路由流向的出接口作手工汇总

本地路由器会产生一条特殊路由,这条特殊 EIGRP汇总路由的 AD值是 5 D   20.1.4.0/22 is a summary, 00:00:02, Null0



汇总的特点:

1、本地必须有明细路由,才会从做汇总的接口发出汇总路由。

2、直到明细的最后一条路由消失,汇总才会消失。

3、汇总路由的 metric 值会取最小的 metric 值

4、会在做汇总的路由器上产生一条特殊的指向空接口的路由,这条指向 NULL0接口的路由是用来防环的

D  2.0.0.0/8 is a summary, 00:02:30, Null0

例如:

 

show ip route 172.16.0.0 255.255.0.0 可以看到指向 Null0 接口的特殊汇总路由的管理距离

5、自动汇总仅将本地的路由汇总成主类,对于收到的路由不做汇总,直接发出。



<等价负载均衡>

· EIGRP可做等价负载均衡,也可做不等价负载均衡。默认只做等价的。

· EIGRP默认支持 4条路径的负载均衡 , 最大支持 16条。

show ip protocols // 可查看 EIGRP的负载均衡路径数

router eigrp 90

maximum-paths 6 (最多 16条) // 本命令改动负载均衡的路径数



如果多条路由的 metric 不相等,可以通过修改 Metric 值来实现等价负载均衡 , 有以下两种方法:

1、<修改 EIGRP接口带宽或延迟>

·通过修改接口的带宽或延迟,可以达到改动路由 metric 值的目地。

·在路由流向的入口改。

·改延迟时,是以 10为单位来修改。比如说想把接口延迟改成 2000usec

则要 :

int e0/0

delay 200 // 输入的值默认会 *10,是以 10为单位来改的

show interface s1/0 使用这条命令可以看到接口的带宽和延迟



例一:

运行 EIGRP后, R2可以学到两条 3.3.3.0 的路由,一条从 R3学到,另一条从 R1学到。

show ip eigrp topology detail-links

P 3.3.3.0/24, 1 successors, FD is 409600, serno 6

via 23.1.1.3 (409600/128256), Ethernet0/0

via 12.1.1.1 (2809856/2297856), Serial1/0

如果想实现等价负载均衡,可以通过修改 E0/0接口的延迟来实现

2809856=256*(10 7/BW+DLY/10)

2809856=256*(10 7/10000+x+5000/10)

int e0/0

delay 9476 // 将接口延迟改为 94760μS

show ip route

3.0.0.0/24 is subnetted, 1 subnets

D       3.3.3.0 [90/2809856] via 23.1.1.3, 00:00:08, Ethernet0/0

[90/2809856] via 12.1.1.1, 00:00:08, Serial1/0



2、<偏移列表>

用这个玩意也可将不同路由的 metric 值改为一样,用来实现负载均衡

access-list 1 permit 1.1.1.0

router eigrp 90

offset-list 1 in 3 Serial 1 // 本命令只能在原有基础上增加 metric(原有 Metric + 3)

router eigrp 90

offset-list 0 in 3 ethernet 0 // 从E0接口进来的所有路由的 metric 值都加 3

( 0代表所有网络)

例二:

 

如上图所示:运行 EIGRP后, R2可以学到两条 3.3.3.0 的路由,一条从 R3学到,另一条从 R1学到。

R2#sh ip eigrp topology detail-links

P 3.3.3.0/24, 1 successors, FD is 409600, serno 6

via 23.1.1.3 (409600/128256), Ethernet0/0

via 12.1.1.1 (2809856/2297856), Serial1/0

如果想实现等价负载均衡,可以在 R2上使用偏移列表对 E0/0接口进来的 3.3.3.0的路由增加 metric 值。

R2(config)#access-list 1 permit 3.3.3.0

R2(config-router)#offset-list 1 in 2400256 e0/0

R2#show ip route

3.0.0.0/24 is subnetted, 1 subnets

D     3.3.3.0 [90/2809856] via 23.1.1.3, 00:00:24, Ethernet0/0

[90/2809856] via 12.1.1.1, 00:00:24, Serial1/0




<不等价的负载均衡>

默认情况下 EIGRP只支持等价的负载均衡,使用以下命令可实现不等价负载均衡。

通过下面这条命令可设置一个变量,再用这个变量乘以当前successor 路由的 FD值就能得到一个参考值

router eigrp 90

variance 2

只要当前拓扑表中的 feasible successor 路由能满足以下条件,就能被放入路由表中,实现不等价负载均衡。

FS's FD < U*Successor's FD (参考值) U 值就是变量值,由 variance命令设定( 1-128)

注意:做不等价负载均衡的前提是路由必须要先成为 Feasible successor ,否则不会被用来做负载均衡

例:

 

如上图所示:运行 EIGRP后,在 R2上可以学到两条 13.1.1.0 的路由,一条成为successor, 一条成为 FS。

show ip eigrp topology

P 13.1.1.0/24, 1 successors, FD is 2195456

via 23.1.1.3 (2195456/2169856), Ethernet0/0

via 12.1.1.1 (2681856/2169856), Serial1/0

可以通过设置 variance 变量实现不等价负载均衡

router eigrp 90

variance 2

show ip route

13.0.0.0/24 is subnetted, 1 subnets

D       13.1.1.0 [90/2195456] via 23.1.1.3, 00:00:13, Ethernet0/0

[90/2681856] via 12.1.1.1, 00:00:13, Serial1/0


< EIGRP Authentication >仅支持 MD5,不支持明文认证

第一步:

key chain R2 (本地有效)定义 KEY库名为 R2

key 1 (两端一致)定义 KEY号为 1

key-string cisco 定义 KEY值为 cisco


第二步:

int s1/0

ip authentication key-chain eigrp 90 R2 // 在接口下指定使用哪个密码库


第三步:

int s1/0

ip authentication mode eigrp 90 md5 // 开启认证

show key chain

debug eigrp packet

R2(config-keychain-key)# Accept-lifetime 04:00:00 jan 2006 infinite 定时接收

R2(config-keychain-key)# Send-lifetime 04:00:00 jan 2006 04:01:00 jan 2006 定时发送

R2(config-keychain-key)# Send-lifetime 04:00:00 jan 2006 duration 300 有效期 300S



< Query>


在广域网链路上, EIGRP的扩散查询机制可能会导致查询范围过大,甚至一些不必要的查询,从而占用多余的带宽。

·以下两种方法可限制 EIGRP的查询范围:

1) Summary 使用路由汇总来解决

·EIGRP的查询有以下特点:仅当路由表中有完全匹配的明细条目时,才会传播该查询。

否则直接回应 “网络不可达 ”。

2) Stub

·通过命令把远程路由器配置成 Stub路由器, Stub 路由器会向所有邻居发送信息告之自已的状态,其他路由器将不会向 Stub路由器发送查询。

R1:

router ei 90

eigrp stub ( 默认通告直连&汇总)

stub 命令的参数介绍:

eigrp stub connected // 通告直连路由

eigrp stub summary // 通告汇总路由

eigrp stub redistributed // 通告重分布的路由

eigrp stub static // 通告静态路由

eigrp stub receive-only // 只接收不通告

eigrp stub leak-map // 路由泄露

如果 stub 路由想要将自已学到的路由再传给下一路由器,需要用到 leak-map

例:如下图所示, R1为STUB路由器,现在想要将自已的直连路由、汇总路由,以及 172.16.1.0 的路由传给 R2

 

R1:

access-list 1 permit 172.16.1.0

route-map aaa

match ip add 1

router eigrp 90

eigrp stub connected summary leak-map aaa

SIA( Stuck in Active )卡在活动状态

路由器在三分钟内没有收到邻居的回应,就认为路由已进入 SIA状态 , 这时会重置邻居关系 .

·导致 SIA的常见原因:

1)查询范围太大

2)路由器太忙无法回答查询。

3)路由器之间的链路质量低劣,导致查询包丢失。

4)某些单向链路失效。

router eigrp 90

timers active-time [1-65535|disable]

( SIA计时器,默认是 3分钟,超过 3分钟就重置邻居关系,避免卡在活动状态)

<被动接口>

· EIGRP中也可以将一个接口设置为被动接口

·被动接口将不收也不发。所以根本无法和对端路由器建立邻居关系。

router eigrp 90

passive-interface s1/0

<水平分割>

EIGRP中默认也是开启水平分割的

int s1/0

no ip split-horizon eigrp 90 // 在接口上使用这条命令可以关闭水平分割

< EIGRP最大 hop数>

在 EIGRP路由器上可以设定可用路由的最大跳数。

如果一台路由器收到的路由传递的跳数已超过了自已设定的最大跳数,这条路由将不用也不传。

默认情况下是 100,最大可修改为 255

router eigrp 90

metric maximum-hops 255

show ip protocol 本命令可查看

< EIGRP区域生成默认路由>

1)Redistribute Static :

ip route 0.0.0.0 0.0.0.0 serial 0

router eigrp 90

redistribute static ( 默认是按静态路由出接口类型计算 Metric )

2)Network 0.0.0.0 :

ip route 0.0.0.0 0.0.0.0 serial 0 (写下一跳不行,必须写接口)

router eigrp 90

network 0.0.0.0

3)ip default-network :

全局模式下:

ip default-network 192.168.1.0

// 这样就可以把这条路由下发给其它的路由器当做默认路由了

使用本命令要满足以下条件:

1、接口 IP 地址必须是主类,不能是子网

2、接口必须宣告进 EIGRP

3、使用命令下发时也必须写上这个接口的主类网络号

注意: EIGRP中也有 default-information 命令,不过这条命令不是用来下发默认路由的,是用来决定本路由器是否要收默认路由,或者是否要传默认路由。而且只对 ip default-network 命令下发的默认路由起作用。



迪浮课程服务承诺

1,免费重修:

学员缺课或者学校效果不理想,可以免费重修,确保课程内容完全掌握重修过程中绝对不收取任何费用
2,单独辅导:
如果学生在学习过程中,因各种原因无法跟班级进度同步,公司安排专家讲师一对一辅导,手把手带你成为IT精英!
3,自由实验:
清默网络有先进完善的实验中心,全天开放,实验机时不限,不断提高动手操作能力!
4,考试辅导:
学员考试前先通过清默内部模拟考试,技术确定达到考试要求并提供考前辅导及考试技巧讲解。
如果模拟考试未能通过,专家讲师会给予建议和辅导,合格后再参加正式考试,确保学员能高分通过认证考试
.5,企业实战项目:

即通过先进的设备完全搭建和企业项目完全一致的网络环境,把学习内容融会贯通并在实际项目中加以应用,以达到学员迅速掌握实际技能并弥补经验不足的目的,让学员的学习内容不再纸上谈兵,理论与实战完全吻合


咨询老师:郭老师






咨询电话:15056089769

咨询QQ:1027831018