EIGRP Features and Operation
  EIGRP是1种无分类(classless),增强的距离向量路由协议,和IGRP类似,EIGRP也使用AS,但是和IGRP不同的是,EIGRP在它的路由更新信息中要包含子网掩码的信息.这样,在我们设计的网络的时候,就允许我们使用VLSM和summarization.EIGRP有时候也算是混合型路由协议,因为它同时具有了距离向量路和链路状态的一些特征:比如它不像OSPF那样发送链路状态包而发送传统的距离向量更新;EIGRP也有链路状态协议的特征比如它在相邻router启动的时候同步路由表,然后只在拓扑结构发生变化的时候发送1些更新.这样就使得EIGRP能够很好的在
  1个大型网络中工作.EIGRP支持的跳数多达255.EIGRP的主要特点如下:
  1.通过PDMs(Protocol-Dependent Module)来支持IP,IPX和AppleTalk
  2.有效的邻router的发现
  3.通过可靠传输协议(Reliable Transport Protocol,RTP)进行通讯
  4.通过扩散更新算法(Diffusing Update Algorithm,DUAL)来选择最佳路径
  Protocol-Dependent Module
  EIGRP的1大特点是它可以支持几种网络层协议:IP,IPX和AppleTalk等.能像EIGRP那样支持数种网络层协议的还有Intermediate System-to-Intermediate System(IS-IS)协议,但是这个协议只支持IP和Connectionless Network Service(CLNS).EIGRP通过PDMs来支持不同的网络层协议.每个EIGRP的PDM保持1个单独的路由信息表来装载某种协议(比如IP)的路由信息.也就是有IP/EIGRP表,IPX/EIGRP的表和AppleTalk/EIGRP表
  Neighbor Discovery
  在运行了EIGRP的router彼此进行交换信息之前,它们首先必须成为邻居(neighbor).建立邻居关系必须满足以下3个条件:
  1.Hello信息或接受收ACK
  2.AS号匹配
  3.K值
  链路状态协议趋向于使用Hello信息来建立邻居关系,它不会像距离向量那样周期性的发送路由更新.为了保持邻居关系,运行了EIGRP的router必须持续从邻居那里收到Hellos
  如果不在1个AS内,router之间是不会共享路由信息的,也不会建立邻居关系.这样做的优点是在大型网络中可以减少特定某个AS内路由信息的传播
  当EIGRP发现新邻居的时候,就开始通告整个路由表给别的router,当所有的router都知道新成员的加入,学习到新的路径以后,从那开始,路由表中有变动的部分才会传播给别的router.当router接收到邻居的更新以后,把它们保存在本地数据库表里
  看下几个术语:
  1.可行距离(feasible distance):到达一个目的地的最短路由的度
  2.后继(successor):后继是一个直接连接的邻居router,通过它具有到达目的地的最短路由.通过后继router将包转发到目的地
  3.通告距离(reported distance):相邻router所通告的相邻router自己到达某个目的地的最短路由的度
  4.可行后继(feasible successor):可行后继是一个邻居router,通过它可以到达目的地,不使用这个router是因为通过它到达目的地的路由的度比其他router高,但它的通告距离小于可行距离,因而被保存在拓扑表中,用做备择路由

  Reliable Transport Protocol(RTP)
  EIGRP使用一种叫做RTP的私有协议,来管理使用了EIGRP的router之间的通信,如RTP的名字,可靠(reliable)即为这个协议的关键.RTP负责EIGRP数据包到所有邻居的有保证和按顺序的传输.它支持多目组播或单点传送数据包的混合传输/出于对效率的考虑.只有某些E IGRP数据包被保证可靠传输.RTP确保在相邻router间正在进行的通信能够被维持.因此,它为邻居维护了一张重传表.该表指示还没有被邻居确认的数据包.未确认的可靠数据包最多可以被重传1 6次或直到保持时间超时,以它们当中时间更长的那个为限.EIGRP所使用的多目组播地址是224.0.0.10

Diffusing Update Algorithm(DUAL)
  EIGRP使用DUAL来选择和保持到远端的最佳路径.它能使router判决某邻居通告的一个路径是否处于循环状态,并允许router找到替代路径而无须等待来自其他router的更新.这样做有助于加快网络的汇聚.这个算法顾及以下几点:
  1.备份的路由线路
  2.支持VLSM
  3.动态路由恢复
  4.没有发现线路的话发送查询寻找新路线
  Using EIGRP to Support Large Networks
  EIGRP在大型网络中能够工作的很好,包含了很多优点比如:
  1.在1个单独的router上可以支持多个AS
  2.支持VLSM和summarization
  3.路由发现和保持
  Multiple AS
  只有AS号相同的router才能共享路由信息.把大型网络分成不同的AS,可以有效的加快汇聚.EIGRP的AD为90,而外部EIGRP(external EIGRP)的AD为170
  VLSM Support and Summarization
  之前说过EIGRP支持VLSM,也支持不连续子网.什么是不连续子网?,如下图:
        
  如图可以看到,2个子网172.16.10.0/24和172.16.20.0/24由10.3.1.0/24来连接,但是routerA和B认为它们只有网络172.16.0.0
  EIGRP支持在任何运行EIGRP的router上summary的手动创建,这样可以减少路由表的体积.EIGRP自动把网络summarize到等级边界,如上图:

Route Discovery and Maintenance
  类似一些链路状态的协议,EIGRP通过Hello信息来发现邻居;而它又和距离向量类似,使用传闻路由的机制,即不主动去发现,而是听从别人的信息.EIGRP使用一系列的表来存储信息:
  1.邻居表,记录了邻居的一些信息
  2.拓扑表,记录了网络中的拓扑状态
  3.路由表,根据这个来做路由决定
EIGRP Metrics
  EIGRP使用混合度,包含到4个方面:
  1.带宽
  2.延迟(delay)
  3.负载(load)
  4.可靠性(reliability)
  5.最大传输单元(maximum transmission unix,MTU)
  默认情况下EIGRP使用带宽和延迟来决定最佳路径
  Configuration EIGRP
  配置EIGRP,首先在全局配置模式下使用router eigrp [AS号]命令.接下来再使用network命令定义直接相连的网络.仍然可以像配置IGRP那样使用passive-interface命令来禁止某个接口接收或发送Hello信息.并且记住EIGRP的AD是90
  来看1个配置实例,如图:

  Router Network Address Interface Address
  RouterA 192.168.10.0 fa0/0 192.168.10.1
       192.168.20.0 s0/0 192.168.20.1
  RouterB 192.168.20.0 s0/0 192.168.20.2
       192.168.40.0 s0/1 192.168.40.1
       192.168.30.0 fa0/0 192.168.30.1
  RouterC 192.168.40.0 s0/0 192.168.40.2
       192.168.50.0 fa0/0 192.168.50.1
  配置RouterA:
  RouterA(config)#router eigrp 10
  RouterA(config-router)#network 192.168.10.0
  RouterA(config-router)#network 192.168.20.0
  RouterA(config-router)#^Z
  RouterA#
  记住配置EIGRP和配置IGRP十分类似,唯一不同的是EIGRP是无分类路由(classless routing)

  配置RouterB:
  RouterB(config)#router eigrp 10
  RouterB(config-router)#network 192.168.20.0
  RouterB(config-router)#network 192.168.30.0
  RouterB(config-router)#network 192.168.40.0
  RouterB(config-router)#^Z
  RouterB#
  配置RouterC:
  RouterC(config)#router eigrp 10
  RouterC(config-router)#network 192.168.40.0
  RouterC(config-router)#network 192.168.50.0
  RouterC(config-router)#^Z
  RouterC#

  这样配置看上去好象没什么问题,EIGRP的AD比之前配置的RIPv1和IGRP的低,但是有个问题就是:增加了CPU的负担,而且占用了额外的带宽

 还有1点要注意的是自动summarization,router默认会向分级边界进行summarize.如下图:


  A的配置如下:
  A(config)#router eigrp 100
  A(config-router)#netw 172.16.0.0
  A(config-router)#netw 10.0.0.0
  A(config-router)#no auto-summary
  B的配置如下:
  B(config)#router eigrp 100
  B(config-router)#netw 172.16.0.0
  B(config-router)#netw 10.0.0.0
  B(config-router)#no auto-summary
  使用no auto-summary命令后,运行了EIGRP的router就不会相互进行通告
  Verifying EIGRP
  在刚才配置好的情况下使用show ip route命令查看路由信息,如下:
  RouterA#sh ip route
  D 192.168.30.0/24 [90/2172416] via 192.168.20.2, 00:04:36, Serial0/0
  注意字母D代表DUAL,即代表EIGRP,AD为90
  show ip route eigrp命令只显示路由表中的EIGRP选项
  show ip eigrp neighbors:显示所有的EIGRP邻居
  show ip eigrp topology:显示EIGRP拓扑表条目,如下:
  RouterC#sh ip eigrp topology
  P 192.168.40.0/24, 1 successors, FD is 21469856
  Via Connected, Serial0
  注意前面的P代表passive状态,这样的状态是正常的如果看见的是A即active状态而不是P,说明router失去了到这个网络的路径并且在寻找替代路径