关于 EIGRP
EIGRP 是思科开发的增强版的 IGRP。与 IGRP 和 RIP 不同,EIGRP 不发送定期路由更新。仅在网络拓扑发生更改时才会发送 EIGRP 更新。将 EIGRP 与其他路由协议区分开来的主要功能包括快速收敛、支持可变长度子网掩码、支持部分更新以及支持多个网络层协议。
运行 EIGRP 的路由器会存储所有邻居路由表,以便可以迅速适应备用路由。如果不存在合适的路由,则 EIGRP 会查询其邻居以发现备用路由。这些查询会传播直至找到备用路由为止。对可变长度子网掩码功能的支持允许在网络号边界自动汇总路由。此外,还可以将 EIGRP 配置为在任何接口的任何位边界汇总。EIGRP 不会定期更新。相反,它仅在路由指标发生更改时才发送部分更新。部分更新的传播是自动绑定的,以便仅对需要该信息的路由器进行更新。得益于这两项功能,EIGRP 与 IGRP 相比可显著减少占用的带宽。
邻居发现是 ASA 用于动态获悉直连网络中其他路由器的过程。EIGRP 路由器发出组播 Hello 数据包,通告其在网络中的存在状态。当 ASA 收到来自新邻居的问候数据包时,会将其包含初始化位集的拓扑表发送至邻居。当邻居收到包含初始化位集的拓扑更新时,邻居将其拓扑表发回到 ASA。
Hello 数据包作为组播消息发出。预期不对 Hello 消息作出响应。但对静态定义的邻居除外。如果您使用 neighbor 命令或在 ASDM 中配置呼叫间隔以配置一个邻居,则发送到该邻居的 Hello 消息将作为单播消息发送。路由更新和确认消息作为单播消息发出。
一旦邻居关系建立后,除非网络拓扑发生更改,否则便不会交换路由更新。邻居关系通过 Hello 数据包来维护。从邻居收到的每个 Hello 数据包均包括保持时间。这是 ASA 预期可收到来自该邻居的 Hello 数据包的时间。如果 ASA 在保持时间内未收到由该邻居通告的 Hello 数据包,则 ASA 会将该邻居视为不可用。
EIGRP 协议使用四种关键算法技术,包括邻居发现/恢复、可靠的传输协议 (RTP) 和对于路由计算非常重要的 DUAL。DUAL 将目标的所有路由都保存在拓扑表中,而不只是保存最低成本路由。最低成本路由会插入到路由表中。其他路由则保留在拓扑表中。如果主路由发生故障,可以从可行后继路由中选择另一个路由。后继路由是指用于进行数据包转发的具有到达目标的最低成本路径的邻居路由器。可行性计算可确保路径不是路由环路的一部分。
如果在拓扑表中找不到可行后继路由,则必须重新计算路由。在路由重新计算期间,DUAL 会查询 EIGRP 邻居获取路由,该邻居反过来又会查询其邻居。当路由器没有可用于路由的可行后继路由时,会返回一个无法访问消息。
在路由重新计算期间,DUAL 会将路由标记为活动状态。默认情况下,ASA 等待三分钟接收来自其邻居的响应。如果 ASA 未收到来自邻居的响应,则会将路由标记为陷入主动状态。系统会删除拓扑表中作为可行性后继路由指向无响应邻居的所有路由。
注 |
如果没有 GRE 隧道,则 EIGRP 邻居关系就不会通过 IPSec 隧道受到支持。 |
Null0 和 EIGRP
默认情况下,EIGRP 会将 Null0 路由作为汇总路由通告给对等体,以防止通告该汇总路由的路由器转发它没有路由的任何数据包。
例如,考虑两个路由器 R1 和 R2。R1 上的三个接口具有以下网络:192.168.0.0/24、192.168.1.0/24 和 192.168.3.0/24。使用汇总路由 192.168.0.0/22 配置 R1 并将其通告给 R2。当 R2 有一个发往 192.168.2.x 的 IP 数据包时,它会将其转发给 R1。R1 会丢弃该数据包,因为它的路由表中没有 192.168.2.x。但是,如果 R1 也连接到 ISP,并且它有一个指向 ISP 的默认路由,则 192.168.2.x 数据包会转发到 ISP。为了防止此转发操作,EIGRP 会生成一个与汇总路由匹配的条目,指向 Null0。因此,当收到发往 192.168.2.x 的数据包时,R1 将丢弃该数据包,而不是使用默认路由。