EIGRP特点总结:
1)传输协议:IP,协议类型为88(不使用UDPTCP)。
2)路由量度:默认基于带宽限制和累积延迟,也可以基于负载、可靠性和MTU
3Hello间隔:路由器在接口上发送EIGRPHello消息的间隔。
4)保持定时器:用来确定邻接路由器是否失效的定时器,如果在该定时器时限内,路由器没有接收到来自邻接路由器的任何EIGRP消息,则认为该邻接路由器失效。
5)路由更新的目的地址:默认为224.0.0.10,可重传到每个邻接路由器的单个IP地址。
6)完全还是部分更新:当发现新邻居时进行完全更新,否则使用部分更新。
7)认证:仅支持MD5认证。
8VLSM/无类:EIGRP在每条路由上都包含掩码,可以支持不连续网络和VLSM
9)路由标记:当重新分发到EIGRP时,允许标记路由。
10)下一跳字段:支持广播到与默认广播路由器不同的下一跳路由器。
11)手工路由汇总:在EIGRP网络的任何点上都可以路由汇总。
12)多协议支持:支持IPXAppleTalk路由的广播。
 
Hello、邻接路由器和邻接关系
EIGRP通过发送Hello消息(目的地址224.0.0.10)来查询邻接路由器。如果有一对路由器互相之间收到Hello消息,并且能够通过以下条件的检测,那么它们就建立邻接关系(此时它们可以互相交换路由并可用show ip eigrp neighbor命令列出):
1)必须通过认证
2)必须使用同样的AS
3)接口接收到的Hello消息的源IP地址必须在接口所连通主子网内
4K值必须匹配
(注意,第3)条所述主子网是指接口通过ip address命令(无secondary关键字)所配置的子网)
K值为常量,定义了EIGRP用来计算metric的组成因子,其设置可以通过router eigrp子命令metric weights tos k1 k2 k3 k4 k5来改变,默认值是0 1 0 1 0 0,表示只有带宽和延迟用于计算metric
Hello消息的另一个功能是用来保持EIGRP激活。邻接路由器基于hello间隔不停地发送Hello消息。如果路由器在EIGRP保持定时器时限内不能监听到来自邻居的消息,那么所有来自该邻接路由器的路由都认为失效。
在建立EIGRP邻接关系时,Hello和保持定时器参数并不需要一致。实际上,路由器在监听邻接关系时,使用的恰好是对方设定的计时器(通过Hello消息交换)。
 
EIGRP更新
一旦路由器间建立了邻接关系,它们就可以使用EIGRP更新消息来交换彼此的路由,其步骤大致如下:
1)最开始的时候发送完全路由更新(除了那些因为分割范围而丢弃的路由)。
2)一旦所有路由交换完毕,更新即停止。
3)当出现路由变化时,发送部分更新。
4)当邻接路由器失效后恢复,或者建立新的邻接关系时,再次发送完全更新。
EIGRP使用可靠传输协议(Reliable Transport ProtocolRTP)来发送多播EIGRP更新。发送更新之后,会等待接收来自每个接收路由器的单点EIGRP应答消息。
RTP支持多点传送更新。如果有邻接路由器没有发送应答,RTP会对它单点重传更新。其步骤如下:
CCIE学习(32)—— EIGRP基础_休闲
1R1EIGRP发送者)在发送可靠性更新消息时,对每个邻接路由器启动一个重传超时(Retransmission TimeoutRTO)定时器。(Cisco的实际做法是:对每个邻接路由器计算一个平均回路时间(Smoothed Round-Trip TimeSRTT),RTOSRTT得出,其值随时间而变化。)
2R1发送多点EIGRP更新。
3R1监听哪些邻接路由器发送了对更新的应答。
4)在R2传回应答之前,RTO已经超时。
5R1重新传送更新,这一次使用的是单点传送,发送给RTO超时的R2
EIGRPRTP的应答过程比较简单,使用的是窗口大小为1的滑动窗口。(每个更新包都有一个序列号,返回的ACK消息通过列出同一序列号来确认接收到消息)
 
EIGRP拓扑表
EIGRP使用三张表:邻接表,拓扑表和路由表。邻接表保存邻接路由器的状态信息,可以使用show ip eigrp neighbors命令显示。拓扑表用来填写EIGRP的更新消息,基于拓扑表的内容,每台路由器可以选择最佳路由来保存到自己的路由表中。
EIGRP路由器基于metric的组成来对每条路由计算metric。当邻接路由器广播一条路由时,更新包含了每条路由的metric组成值。路由器根据接收到的metric值以及其接口设置来计算其每条路由的metric。默认metric组成部分是累积延迟(10微秒单位)和带宽(每秒多少位)。通过使用metric weights命令设置K值,EIGRP也可以使用链路负载、可靠性和MTU组成metric。(不建议这么做,因为这些值波动比较频繁,可能造成路由很不稳定)
(注意:路由器的延迟可以通过delay接口子命令来设置)
 
EIGRPmetric计算
CCIE学习(32)—— EIGRP基础_EIGRP_02
路由器通过接收到的邻接路由器的metric组成可计算出一条广播路由的metric,这称为报告距离(reported distanceRD)。有了RD,再考虑路由器自己接口上的延迟,就可以计算出这条路由的当前metric。步骤如下:
1R1广播一条路由:带宽为10000,延时为100
2R2根据接收到的K值来计算RD。默认情况下,metric的计算公式是:metric = 256*(107/带宽)+256*延时,所以算出RD = 256*107/10000+256*100 = 281600
3R2更新其拓扑表,延时加1000,且带宽修改为1544。此时算出的当前metric = 256*107/1544+256*1100 = 1939631
4R2发送包含新延迟和带宽的更新消息到其他邻接路由器。
使用show ip eigrp topology命令可以列出EIGRP的拓扑表信息。在列出的信息中,还有两个重要概念要注意。可行距离(feasible distanceFD)表示路由器在指向某一特定前缀的所有可能路由中计算出来的最佳metric。拥有最佳metric的路由称为成功者路由(successor route),它会装入到路由表中。