<EIGRP(EnhancedInterior Gateway Routing Protocol )>

·EIGRP是Cisco私有的路由协议,采用DUAL(Diffusing Update Algorithm扩散更新算法)(弥散更新算法)。


    一、EIGRP特点:


1.  快速收敛

EIGRP采用DUAL来实现快速收敛。运行EIGRP的路由器存储了邻居的路由表,因此能够快速适应网络中的变化。如果本地路由表中没用合适的路由且拓扑表中没用合适的备用路由,EIGRP将查询邻居以发现替代路由。查询将不断传播,直到找到替代路由或确定不存在替代路由

2.部分更新

EIGRP发送部分更新而不是定期更新,且仅在路由路径或者度量值发生变化时才发送。更新中只包含已变化的链路的信息,而不是整个路由表,可以减少带宽的占用。此外,还自动限制这些部分更新的传播,只将其传递给需要的路由表,因此EIGRP消耗的带宽比IGRP少很多。这种行为也不同于链路状态路由协议,后者将更新发送给区域内的所有路由器。

3.支持多种网络层协议

EIGRP使用协议无关模块来支持IPv4IPv6Apple TalkIPX,以满足特定网络层需求。

4.使用多播和单播

EIGRP在路由器之间通信时使用多播和单播而不是广播,因此终端站不受路由更新和查询的影响。EIGRP使用的多播地址是224.0.0.10

5.支持变长子网掩码(VLSM)

EIGRP是一种无类路由协议,它将通告每个目标网络的子网掩码,支持不连续子网和VLSM

6.无缝连接数据链路层协议和拓扑结构

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

1)Neighbor Table:

 确保直接邻居之间能够双向通信。

2)Topology Table:

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

3)Routing Table:s

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


    三、DUAL算法:

AD(通告距离)--邻居通告的到达目的的Metric,邻居到达目标网络

FD(可行距离)--本路由器到达目的的Metric,自己达到目标网络

successor(继任者)--具有最优Metric值的路由

Feasible successor--符合条件的后备路由  AD<FD

成为Feasible Successor的条件:

 FD of Best Route > AD of Second best Route

    (Successor)

EIGRP的Metric值计算:

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*(10^7/BW+DLY/10)

   [BW(min) KB/ DL (sum)] 路由入方向接口的延迟之和

Interface  BW(kbps)  DLY(μsec)

Ethernet   10000    1000

Serial      1544     20000

Loopback   8000000   5000


  

    四、RTP(Reliable Transport Protocol)

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

在EIGRP协议中,总共会使用5种类型的数据包,分别为Hello、Update、 Query、Reply、Ack,下面介绍各种数据包的功能与用途:

Hello

是用来发现和维护EIGRP邻居关系的,目标地址为224.0.0.10,Hello包在邻居收到后不需要确认。

Update

发给邻居的路由表,通过组播发送Update数据包,邻居收到后必须回复确认消息。

Query

当路由信息丢失并没有备用路由时,使用Query数据包向邻居查询,邻居必须回复确认。

Reply

是对邻居Query数据包的回复,也需要邻居回复确认。

Ack

是对收到的数据包的确认,告诉邻居自己已经收到数据包了,收到Ack后,不需要再对Ack做回复,因为这是没有意义的,并且可能造成死循环。

由以上可以看出,5种数据包中,Update、Query、Reply在对方收到后,都需要回复确认,这些数据包是可靠的,回复是发送Ack;而Hello和Ack,是不需要回复的,因此被认为不可靠。



    五、实例配置:

<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

R1#show ip eigrp traffic

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

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


-------------------------------------------------------------------------------------


    六、重分发:

使用redistribute将eigrp的二个不同AS互联


wKioL1UiYM3wWOfIAADkYxIhBiU523.jpg

router eigrp 10

redistribute eigrp 20

network 12.1.1.0 0.0.0.255

no auto-summary

!

router eigrp 20

redistribute eigrp 10 

network 13.1.1.0 0.0.0.255

no auto-summary


使用redistribute将eigrp和rip互联


router eigrp 20

redistribute rip metric 10000 10 255 1 1500

network 13.1.1.0 0.0.0.255

no auto-summary

!

router rip

version 2

redistribute eigrp 10

redistribute eigrp 20 metric 3

network 12.0.0.0

no auto-summary



    七、等价和非等价负载均衡:


EIGRP能实现等价的负载均衡,EIRGP默认是4条路径,可以通过配置更改到最大16等价路径的负载均衡。

拓扑如下所示。使用的模拟器为cisco packet tracer.

wKioL1Uilb_xCULtAADhNTLYIpE317.jpg

     默认情况下,拓扑中四条穿行链路的带宽都是1544K,所以在R1上sh ip route会发现到达R4的4.4.4.0网段得路由有两条等价路径,而且是负载均衡的。

wKiom1UilHnhQ5SkAAMhZf-TcUo009.jpg

wKioL1Uilb_DIkp4AAIQCDmdiPQ709.jpg

为了看一看负载均衡的效果,我们配置两条命令如下:

R1(config)#access-list 100 permit icmp any any

R1#debug ip packet 100

然后我们用扩展ping 发4包icmp到4.4.4.4,看看效果

wKiom1Uilo7Qg4PyAAPhDNv2zXU336.jpg

我们发现ICMP echo都是走的Serial0/3口,而回来的reply都是走的Serial0/2口。

下面我们把R1和R3之间的链路带宽改为512K看看路由变化

R1(confit)interface Serial0/3

R1(config-if)bandwidth 512

wKiom1UilHqB45TzAAMSXBgmefo929.jpg

改后去往4.4.4.4的路由变成了一条,选择了FD最小的一条。通过拓扑表也可以看到Serial0/3的路径放到了可行后继路径中。

wKioL1Uilb_xxQEDAAJtCp9e1Sc459.jpg

当然ping包来回都只走Serial0/2口

wKioL1UimAWSunalAAPcJ037WLw427.jpg

 

下面看看如何配置非等价负载均衡。

通过拓扑表我们知道R1通过R2和R3到达R4的4.4.4.4接口的度量值分别为2707456和6049536.

我们需要用差异变量variance来实现路由器的非等价负载均衡。Variance定义了一个倍数因子,用来表示一条路由的度量值和最小代价路由的差异程度,任何路由的度量值如何超过了最小代价路由的度量值乘以Variance的值,那么这条路径将不会被使用。

Variance的缺省值是1,所以要实现非等价负载均衡,此例中variance的值应该是6049538/2707456取整的值,这里取3.

然后配置如下:

R1(config)router eigrp 100

R1(config-route)variance 3

然后我们再看路由和ping的结果

wKiom1UilHrxhGlGAANioT2B6wU836.jpg

wKioL1UilcDQtqg2AAIBC021sV0337.jpg

从上面看到有107/347的数据包会走Serial0/3,有240/347的数据包会走带宽更为大的Serial0/2口。

ping的结果就不贴了。

 

实验先做到这。