The original motivation for developing EIGRP was simply to make IGRP classless. But early in the development the engineers working on the project recalled some academic proposals for a new kind of convergence algorithm and decided to use that algorithm in their extension of IGRP. The result was a protocol that, while retaining some concepts introduced with IGRP such as multiple metrics, protocol domains, and unequal-cost load balancing, is distinctly different from IGRP.
EIGRP is occasionally described as a distance vector protocol that acts like a link-state protocol. To recap the extensive discussion in Chapter 4, "Dynamic Routing Protocols," a distance vector protocol shares everything it knows, but only with directly connected neighbors. Link-state protocols announce information only about their directly connected links, but they share the information with all routers in their routing domain or area.
All the distance vector protocols discussed so far run some variant of the Bellman-Ford (or Ford-Fulkerson) algorithm. These protocols are prone to routing loops and counting to infinity. As a result, they must implement loop-avoidance measures such as split horizon, route poisoning, and hold-down timers. Because each router must run the routing algorithm on received routes before passing those routes along to its neighbors, larger networks might be slow to converge. More important, distance vector protocols advertise routes; the change of a critical link might mean the advertisement of many changed routes.
Compared to distance vector protocols, link-state protocols are far less susceptible to routing loops and bad routing information. The forwarding of link-state packets is not dependent on performing the route calculations first, so large networks might converge faster. And only links or prefixes and their states are advertised, not routes, which means the change of a link will not cause the advertisement of all routes using that link.
Regardless of whether other routing protocols perform route calculations before sending distance vector updates to neighbors or after building a topological database, their common denominator is that they perform the calculations individually. In contrast to the Bellman-Ford algorithms used by most other distance vector protocols, EIGRP uses a system of diffusing computationsroute calculations that are performed in a coordinated fashion among multiple routersto attain fast convergence while remaining loop-free at every instant.
Although EIGRP updates are still vectors of distances transmitted to directly connected neighbors, they are nonperiodic, partial, and bounded. Nonperiodic means that updates are not sent at regular intervals; rather, updates are sent only when a metric or topology change occurs. Partial means that the updates will include only routes that have changed, not every entry in the route table. Bounded means that the updates are sent only to affected routers. These characteristics mean that EIGRP uses much less bandwidth than typical distance vector protocols use. This feature can be especially important on low-bandwidth, high-cost Wide Area Network (WAN) links.
Another concern when routing over low-bandwidth WAN links is the maximum amount of bandwidth used during periods of convergence, when routing traffic is high. By default, EIGRP uses no more than 50 percent of the bandwidth of a link. Later IOS releases allow this percentage to be changed with the command ip bandwidth-percent eigrp.
EIGRP is a classless protocol (that is, each route entry in an update includes a subnet mask). Variable-length subnet masks may be used with EIGRP not only for sub-subnetting as described in Chapter 6, "RIPv2, RIPng, and Classless Routing," but also for address aggregationthe summarization of a group of major network addresses.
EIGRP packets can be authenticated using an MD5 cryptographic checksum. The basics of authentication and MD5 are covered in Chapter 6; an example of configuring EIGRP authentication is included in this chapter.
Finally, a major feature of EIGRP is that it can route not only IP but also IPX and AppleTalk.
——————————————————————————————————
开发EIGRP的早期,由于接受了学术建议使用新的的收敛算法,而且最后决定用这个算法来扩展IGRP。导致的结果是,除了IGRP的复合度量,协议域,非等价负载均衡的概念,其他都和IGRP不同。
EIGRP协议有时也被描述成具有链路状态协议的距离矢量协议。距离矢量协议分享他知道的所有信息,但是范围仅传递给邻居路由器;链路协议仅通告他们的直连链路,但是在域内或者区域内共享所有路由信息。
目前为止,所有距离矢量协议都是基于BF算法或者他的派生。这些协议更易于产生路由环路和计数到无穷大。结果,必须产生环路避免手段,比如水平分割,路由毒性,抑制计时器超时。由于每台路由在他传递给路由给他邻居前都要先运行路由协议,所以大型网络收敛很慢。更主要的是,距离矢量协议通告路由时,如果关键链路发生变化将导致许多产生变化的路由器都发送通告。
和距离矢量比较,链路状态协议更不易受路由环路和错误路由信息的影响。链路状态数据包的转发不是先根据计数路由,所以大型网络可能收敛快些。而且只有链路,前缀和状态可以被通告,不通告路由,结果是链路的改变不会导致所有用那条链路的去通告。
其他任何协议,不管是先计算路由表再传送给邻居的距离矢量方式还是先建立拓扑数据库,他们通常都是进行独立路由运算。然而,EIGRP用了一种不同BF的算法,他用一个称为扩散算法的方式,效果就是在多台路由器上进行整体协调改变从而到达快速收敛并且随时都保持无环。
虽然EIGRP更新仍然是距离矢量型方式传输给直连邻居。他的特性是非周期,局部,有边界的。非周期:更新的发出没有更新间隔,只有当度量和拓扑发生变化时才发送。局部的:只有涉及到的路由条目才会发送更改。有边界的:更新只发送给受影响的路由器。这些特性意味着他只需要更少的带宽相对于传统的距离矢量协议。这些特性十分重要在于低带宽,高价格的WAN链路上。
需要注意的,当路由流量比较高,而却在链路带宽比较低的WAN链路上时,路由期间需要用到最大的带宽去收敛。默认这个EIGRP用的链路带宽不超过50%,在之后的IOS,可以用命令ip bandwidth-percent eigrp来修改这个百分比。
EIGRP是一个无类协议(一个更新中的每个路由条目都一个子网掩码)。可变长子网掩码用在子网掩码就想第六章的效果,而且可以用于地址聚合来汇总一组主类网络地址。
EIGRP包可以通过MD5加密校验。这个基本验证和MD5方式在第六章讲过了。有一个EIGRP验证配置包含在这个章节中。
最后,一个主要的特性是EIGRP不仅可以路由IP数据包,也可以路由IPX和AppleTalk数据包。
————————————————