一、EIGRP概念和特点
EIGRP 是 Cisco 的私有路由协议,它综合了距离矢量和链路状态 2 者的优点,它的特点包括:
1.快速收敛
链路状态包(Link-State Packet,LSP)的转发是不依靠路由计算的,所以大型网络可以较为
快速的进行收敛.它只宣告链路和链路状态,而不宣告路由,所以即使链路发生了变化,不会引起该链路的
路由被宣告.但是链路状态路由协议使用的是Dijkstra算法,该算法比较复杂,并且较占CPU和内存资源和
其他路由协议单独计算路由相比,链路状态路由协议采用种扩散计算(diffusingcomputations ),通过多个
路由器并行的记性路由计算,这样就可以在无环路产生的情况下快速的收敛
2.减少带宽占用
EIGRP 不作周期性的更新,它只在路由的路径和度发生变化以后做部分更新.当路
径信息改变以后,DUAL 只发送那条路由信息改变了的更新,而不是发送整个路由表.和更新传输到一个区
域内的所有路由器上的链路状态路由协议相比,DUAL 只发送更新给需要该更新信息的路由器。
在 WAN 低速链路上,EIGRP 可能会占用大量带宽,默认只占用链路带宽 50%,之后发布的 IOS 允许使
用命令 ip bandwidth-percent eigrp 来修改这一默认值
3.支持多种网络层协议
EIGRP 通过使用 protocol-dependentmodules(PDMs),可以支持 ApplleTalk,IP
和 NovellNetware 等协议
4.无缝连接数据链路层协议和拓扑结构
EIGRP 不要求对 OSI 参考模型的层 2 协议做特别是配置.不像 OSPF,OSPF 对不同的层 2 协议要做不同配置,比如以太网和帧中继总之,EIGRP 能够有效的工作在 LAN和 WAN 中,而且 EIGRP 保证网络不会产生环路(loop-free);而且配置起来很简单;支持 VLSM;它使用多播和单播,不使用广播,这样做节约了带宽;它使用和 IGRP 一样的度的算法,但是是 32 位长的;它可以做非等价的路径的负载平衡
5.安全性
EIGRP 可以在路由更新中使用 MD5 的方式进行加密验证
二、EIGRP路由协议的数据库
运行了 EIGRP 的路由器维持 3 张表:neighbortable,topologytable 和 routingtable.其中 neighbortable保存了和路由器建立了邻居关系的,直接相连的路由器;topologytable 包含路由器学习到的到达目的地的所有路由条目,其过程如下:
1.neighbortable 中的每个邻居都转发 1 份 IP 路由表的拷贝给它们的邻居
2.然后每个邻居把从它们自己的邻居处得来的路由表存储在自己的 EIGRP 拓扑数据库中
3.EIGRP 检查拓扑数据库,然后选择出一条到达目的地的最佳路由
4.EIGRP 从拓扑数据库中选择到达目的地的最佳的 successorroutes,然后把它们放到路由表里.路由
器为每种协议(比如 IP,IPX)各自保持 1 张单独是路由表
三、EIGRP Metric 的计算
EIGRP 使用 DUAL 来决定到达目的地的最佳路由(successor).当最佳路由出问题的时候,EIGRP 不使用
holddowntimer 而立即使用备份路由(feasiblesuccessor),这样就使得 EIGRP 可以进行快速收敛
EIGRP 计算度的公式,K 是常量,公式如下:
metric=[K1*bandwidth+(K2*bandwidth)/(256–load)+K3*delay]*[K5/(reliability+K4)]
默认:K1=1,K2=0,K3=1,K4=0,K5=0
不推荐修改 K 值.K 值通过 EIGRP 的 hello 包运载.如果两个路由器的 K 值不匹配的话它们是不会形
成邻居关系的 Metric weight Tos K1 K2 K3 K4 K5 来修改 K 值,Tos 默认为 0
四、EIGRP Packet
EIGRP 使用多种类型的 packet,这些 packet 通过 IP 头部信息里的协议号 88 来标识:
1. Hello packet:用来发现和恢复邻居,通过组播的方式发送,使用不可靠的发送
2. ACK(acknowledgement) packet:不包含数据(data)的 Hello 包,使用 unicast 的方式,不可靠的发送
3. Update packet:传播路由更新信息,不定期的,通过可靠的方式发送(比如网络链路发生变化).当只
有一台路由器需要路由更新时,update 通过 unicast 的方式发送;当有多个路由器需要路由更新的
时候,通过组播的方式发送
4. Query(查询) & Reply(应答) packet:是 DUAL finite state machine 用来管理扩散计算用的,查询包可
以是组播或 unicast;应答包是通过 unicast 的方式发送,并且方式都是可靠的
5. Request(请求) packet:最初是打算提供给路由服务器(server)使用的,但是从来没实现过
五、EIGRP的弥散更新算法
为了能够让 DUAL 正确的操作,低层协议必须满足以下几个条件:
1. 一个节点要在有限的时间里检测到新邻居的存在或和一个邻居的连接的丢失
2. 在链路上传输的所有信息必须在有限的时间里按正确的顺序收到
3. 所有的消息,包括链路 cost 的更改,链路故障,和新邻居的发现,都应该是在有限时间里,一
个一个的依次处理Cisco 的 EIGRP 使用邻居的发现/恢复和 RTP 来确保上述前提条件
1、adjacency( 邻接)
在刚启动的时候,路由器使用 Hello 包来发现邻居并标识自己用于邻居的识别.当邻居被发现
以后,EIGRP会在它们之间形成一种邻接关系.邻接是指在这2个邻居之间形成一条交换路由信息的
虚链路(virtual link).当邻接关系形成以后,它们之间就可以相互发送路由update,这些update包括路
由器它所知道的所有的路及其 metric.对于每个路由,路由器都会基于它邻居宣告的距离(distance)
和到达那个邻居的链路的 cost 来计算出一个距离
2、Feasible Distance(FD可行距离)
到达每个目标网络的最小的metric将作为那个目标网络的FD.比如,路由器可能有3条到达网
络 172.16.5.0 的路由,metric 分别为 380672,12381440 和 660868,那么 380672 就成了 FD
3、Feasible Condition(FC,可行条件)
邻居宣告到达目标网络的的距离小于本地路由器到达目标网络的 FD
以下是华为数通路由交换方向完整技术分享,欢迎对华为网络技术感兴趣的小伙伴们订阅。【可在专栏中进行查看订阅】
华为新版HCIP数通路由交换
华为新版HCIE数通路由交换