第一种类型的 OSPF 数据包 1 是 OSPF Hello 数据包。Hello 数据包用于:
l 发现 OSPF 邻居并建立相邻关系。
l 通告两台路由器建立相邻关系所必需统一的参数。
l 在以太网和帧中继网络等多路访问网络中选举指定路由器 (DR) 和备用指定路由器 (BDR)。
重要字段包括:
l 类型:OSPF 数据包类型:Hello (1)、DD (2)、LS 请求 (3)、LS 更新 (4) 或 LS 确认 (5)
l 路由器 ID:始发路由器的 ID
l 区域 ID:数据包的始发区域
l 网络掩码:与发送方接口关联的子网掩码
l Hello 间隔:发送方路由器连续两次发送 hello 数据包之间的秒数
l 路由器优先级:用于 DR/BDR 选举
l 指定路由器 (DR):DR 的路由器 ID(如果有的话)
l 备用指定路由器 (BDR):BDR 的路由器 ID(如果有的话)
l 邻居列表:列出相邻路由器的 OSPF 路由器 ID
建立相邻关系
在 OSPF 路由器可将其链路状态泛洪给其它路由器之前,OSPF首先要建立邻居。OSPF Hello 中的信息包括发送方路由器的 OSPF 路由器 ID。如果通过一个接口收到 OSPF Hello 数据包,即可确认该链路上存在另一台 OSPF 路由器。随后,OSPF 即与该邻居建立相邻关系。
OSPF Hello 间隔和 Dead 间隔
两台路由器在建立 OSPF 相邻关系之前,必须统一三个值:Hello 间隔、Dead 间隔和网络类型。OSPF Hello 间隔表示 OSPF 路由器发送其 Hello 数据包的频度(默认情况下,在多路访问网段和点对点网段中每 10 秒钟发送一次 OSPF Hello 数据包,而在非广播多路访问 (NBMA) 网段(帧中继、X.25 或 ATM)中则每 30 秒钟发送一次 OSPF Hello 数据包。)Hello数据包使用组播发送给ALLSPFRouters 的专用地址 224.0.0.5 。
Dead 间隔是路由器在宣告邻居进入 down(不可用)状态之前等待该设备发送 Hello 数据包的时长,单位为秒。Cisco 所用的默认断路间隔为 Hello 间隔的四倍。如果 Dead 间隔已到期,而路由器仍未收到邻居发来的 Hello 数据包,则会从其链路状态数据库中删除该邻居。
选举 DR 和 BDR
为减小多路访问网络中的 OSPF 流量,OSPF 会选举一个指定路由器 (DR) 和一个备用指定路由器 (BDR)。当多路访问网络中发生变化时,DR 负责使用该变化信息更新其它所有 OSPF 路由器(称为 DROther)。BDR 会监控 DR 的状态,并在当前 DR 发生故障时接替其角色。
(点对点链路相互连接,不会执行 DR/BDR 选举。)
这就是
菊子曰啦!
介绍OSPF
开放最短路径优先 (OSPF) 协议是一种链路状态路由协议,旨在替代距离矢量路由协议 RIP。OSPF 是一种无类路由协议,它使用区域概念实现可扩展性。RFC 2328 将 OSPF 度量定义为一个独立的值,该值称为开销。 Cisco IOS 使用带宽作为 OSPF 开销度量。
OSPF背景
Internet 工程工作小组 (IETF) 的 OSPF 工作组于 1987 年着手开发 OSPF。当时,Internet 基本是由美国政府资助的学术研究网络。以下是发展历程:
OSPF消息封装:
OSPF 消息的数据部分封装在数据包内。此数据字段可能包含五种 OSPF 数据包类型之一。
无论每个 OSPF 数据包的类型如何,都具有 OSPF 数据包报头。随后,OSPF 数据包报头和数据包类型特定的数据被封装到 IP 数据包中。在该 IP 数据包报头中,协议字段被设为 89 以代表 OSPF,目的地址则被设为以下两个组播地址之一:224.0.0.5 或 224.0.0.6。如果 OSPF 数据包被封装在以太网帧内,则目的 MAC 地址也是一个组播地址:01-00-5E-00-00-05 或 01-00-5E-00-00-06。
OSPF数据包类型:
我们介绍了链路状态数据包 (LSP)。OSPF的 LSP 有五种类型。每种数据包在 OSPF 路由过程中发挥各自的作用:
1. Hello — Hello 数据包用于与其它 OSPF 路由器建立和维持相邻关系。Hello 协议将在下一主题中详细讨论。
2. DBD — DBD(数据库说明) 数据包包含发送方路由器的链路状态数据库的简略列表,接收方路由器使用本数据包与其本地链路状态数据库对比。
3. LSR — 随后,接收方路由器可以通过发送链路状态请求 (LSR) 数据包来请求 DBD 中任何条目的有关详细信息。
4. LSU — 链路状态更新 (LSU) 数据包用于回复 LSR 和通告新信息。LSU 包含七种类型的链路状态通告 (LSA)。LSU 和 LSA 将在下一主题中简略讨论。
5. LSAck - 路由器收到 LSU 后,会发送一个链路状态确认 (LSAck) 数据包来确认接收到了 LSU。
今天你
菊子曰了么?
路由器一旦建立了相邻关系,即可创建链路状态数据包 (LSP),其中包含与该链路相关的链路状态信息。(LSP包含链路类型、IP地址、子网掩码、开销)
将链路状态数据包泛洪到邻居:
每台路由器将其链路状态信息泛洪到路由区域内的其它所有链路状态路由器。路由器一旦接收到来自相邻路由器的 LSP,立即将该 LSP 从除接收该 LSP 的接口以外的所有接口发出。此过程在整个路由区域内的所有路由器上形成 LSP 的泛洪效应。
LSP 并不需要定期发送,而仅在下列情况下才需要发送:
l 在路由器初始启动期间,或在该路由器上的路由协议进程启动期间
l 每次拓扑发生更改时,包括链路接通或断开,或是相邻关系建立或破裂
除链路状态信息外,LSP 中还包含其它信息(例如序列号和过期信息),以帮助管理泛洪过程。每台路由器都采用这些信息来确定是否已从另一台路由器接收过该 LSP 以及 LSP 是否带有链路信息数据库中没有的更新信息。此过程使路由器可在其链路状态数据库中仅保留最新的信息。
构建链路状态数据库:
每台路由器使用链路状态泛洪过程将自身的 LSP 传播出去后,每台路由器都将拥有来自整个路由区域内所有路由器的 LSP。这些 LSP 存储在链路状态数据库中。现在,路由区域内的每台路由器都可以使用 SPF 算法来构建您之前了解过的 SPF 树。有了完整的链路状态数据库后,现在即可使用该数据库和 SPF(最短路径优先)算法来计算通向每个网络的首选路径(即最短路径)。
链路状态路由协议的优点:
创建拓扑图
链路状态路由协议会创建网络结构的拓扑图(即 SPF 树),链路状态路由协议会交换链路状态信息,所以 SPF 算法可以构建网络的 SPF 树。有了 SPF 树,每台路由器使可独立确定通向每个网络的最短路径。
快速收敛
收到一个链路状态数据包 (LSP) 后,链路状态路由协议便立即将该 LSP 从除接收该 LSP 的接口以外的所有接口泛洪出去。
由事件驱动的更新
在初始 LSP 泛洪之后,链路状态路由协议仅在拓扑发生改变时才发出 LSP。该 LSP 仅包含与受影响的链路相关的信息。链路状态路由协议不会定期发送更新。(注:OSPF 路由器会 每隔 30 分钟泛洪其自身的链路状态。这称为强制更新。)
层次式设计
链路状态路由协议(如 OSPF 和 IS-IS )使用了区域的原理。. 多个区域形成了层次状的网络结构,这有利于路由聚合(总结),还便于将路由问题隔离在一个区域内。
链路状态路由协议的要求
现代链路状态路由协议设计旨在尽量降低对内存、CPU 和带宽的影响。使用并配置多个区域可减小链路状态数据库。划分多个区域还可限制在路由域内泛洪的链路状态信息的数量,并可仅将 LSP 发送给所需的路由器。(也就是说算好了由ABR发送给其他路由器。)
内存要求
与距离矢量路由协议相比,链路状态路由协议通常需要占用更多的内存、CPU 运算量和带宽。对内存的要求源于使用了链路状态数据库和创建 SPF 树的需要。
CPU 占用要求
与距离矢量路由协议相比,链路状态路由协议可能还需要占用更多的 CPU 运算量。与 Bellman-Ford 等距离矢量算法相比,SPF 算法需要更多的 CPU 时间,因为链路状态路由协议会创建完整的拓扑图。
带宽要求
链路状态数据包泛洪会对网络的可用带宽产生负面影响。这只应该出现在路由器初始启动过程中,但在不稳定的网络中也可能导致问题。
写博客,就用
菊子曰!
介绍:
链路状态路由协议则如同使用地图一样,有了地图,您就可以看到所有潜在的路径并确定自己的首选路径。链路的状态是指与该路由器直连网络的状态,并包含关于网络类型以及那些网络中与该路由器相邻的所有路由器的信息 — 因此得名链路状态路由协议。
链路状态路由协议:
链路状态路由协议又称为 最短路径优先协议,它建基于 Edsger Dijkstra 的 SPF(最短路径优先)算法。
IP 链路状态路由协议:
l OSPF(开放最短路径优先)
l IS-IS(中间系统到中间系统)
SPF算法简介:
Dijkstra 算法通常称为 SPF(最短路径优先)算法。此算法会累计每条路径从源到目的地的开销。尽管 Dijkstra 算法称为最短路径优先算法,但事实上,优先最短路径是所有路由算法的目的。
链路状态路由过程:
拓扑中的所有路由器都会完成下列链路状态通用路由过程来达到收敛:
1. 每台路由器了解其自身的链路(即与其直连的网络)。
这通过检测哪些接口处于工作状态来完成。
2. 每台路由器负责“问候”直连网络中的相邻路由器。
与 EIGRP 路由器相似,链路状态路由器通过直连网络中的其它链路状态路由器互换 Hello 数据包来达到此目的。
3. 每台路由器创建一个链路状态数据包 (LSP),其中包含与该路由器直连的每条链路的状态。
这通过记录每个邻居的所有相关信息(包括邻居 ID、链路类型和带宽)来完成。
4. 每台路由器将 LSP 泛洪到所有邻居,然后邻居将收到的所有 LSP 存储到数据库中。接着,各个邻居将 LSP 泛洪给自己的邻居,直到区域中的所有路由器均收到那些 LSP 为止。每台路由器会在本地数据库中存储邻居发来的 LSP 的副本。
5. 每台路由器使用数据库构建一个完整的拓扑图并计算通向每个目的网络的最佳路径。
就像拥有了地图一样,路由器现在拥有关于拓扑中所有目的地以及通向各个目的地的路由的详图。SPF 算法用于构建该拓扑图并确定通向每个网络的最佳路径。
了解直连网络:
链路:
对于链路状态路由协议来说,链路是路由器上的一个接口。链路状态路由协议也需要下列条件才能了解链路:正确配置接口的 IP 地址和子网掩码并将链路设置为 up 状态。必须将接口包括在一条 network 语句中,该接口才能参与链路状态路由过程。
链路状态:
有关各条链路的状态的信息称为链路状态.这些信息包括:
l 接口的 IP 地址和子网掩码
l 网络类型,例如以太网(广播)链路或串行点对点链路。
l 该链路的开销。
l 该链路上的所有相邻路由器。
(注:OSPF 将链路开销(OSPF 路由度量)指定为外发接口的带宽。)
向邻居发送Hello数据包:
采用链路状态路由协议的路由器使用 Hello 协议来发现其链路上的所有邻居。这里,邻居 是指启用了相同的链路状态路由协议的其它任何路由器。(当两台链路状态路由器获悉它们是邻居时,将形成一种相邻关系。这些小型 Hello 数据包持续在两个相邻的邻居之间互换,以此实现“保持生存”功能来监控邻居的状态。如果路由器不再收到某邻居的 Hello 数据包,则认为该邻居已无法到达,该相邻关系破裂。)
本文用
菊子曰发布
Null0 总结路由:
由于 EIGRP 会自动添加 Null0 总结路由,所以,默认情况下,EIGRP 使用 Null0 接口来丢弃与父路由匹配但与所有子路由都不匹配的数据包。EIGRP 默认使用 auto-summary 命令。禁用自动总结后会删除 Null0 总结路由,并允许 EIGRP 在子路由与目的数据包不匹配时寻找超网路由或默认路由。
手动汇总:
确定总结 EIGRP 路由
首先,使用与确定总结静态路由相同的方法来确定这三个网络的总结网络:
1. 将您要总结的网络以二进制格式写出。
2. 要找出总结网络的子网掩码,请从最左侧的位开始。
3. 从左到右找出所有连续匹配的位。
4. 当发现某一列中的位不匹配时,在此处停下来。此处就是总结边界。
5. 现在,统计左侧匹配位的数量。
6. 要找出总结后的网络地址,然后在其末尾补零,补足 32 位。
配置 EIGRP 手动总结
要在发送 EIGRP 数据包的所有接口上建立 EIGRP 手动总结,请使用下列接口命令:
Router(config-if)#ip summary-address eigrp as-number network-address subnet-mask
EIGRP默认路由
配置默认路由:
Router#conf t //进入全局模式。
Router(config)#ip route 0.0.0.0 0.0.0.0 loopback 1 //配置默认路由(loopback1是送出接口)。
Router(config)#router eigrp 1 //进入EIGRP进程1。
Router(config-router)#redistribute static //将静态路由重分发到EIGRP进程1里。
属于EIGRP进程1路由器上使用:show ip route就能看到一下路由信息
D*EX 0.0.0.0/0 [170/3449856] via 2.2.2.1, 00:00:40, Serial0/0/0
l D — 此静态路由是通过 EIGRP 路由更新获悉的。
l * — 此路由是候选默认路由。
l EX — 此路由为外部 EIGRP 路由,在本例中是 EIGRP 路由域外的静态路由。
l 170 — 这是外部 EIGRP 路由的管理距离。
微调EIGRP
EIGRP 带宽占用:
默认情况下,EIGRP 会使用不超过 50% 的接口带宽来传输 EIGRP 信息。这可避免因 EIGRP 过程过度占用链路而使正常流量所需的路由带宽不足。ip bandwidth-percent eigrp 命令可用于配置接口上可供 EIGRP 使用的带宽百分比。
Router(config-if)#ip bandwidth-percent eigrp as-number percent
配置 Hello 间隔和保留时间:
可在每个接口上分别配置 Hello 间隔和保留时间,而且与其它 EIGRP 路由器建立邻接关系时无需匹配这些配置。用于配置 hello 间隔的命令为:
Router(config-if)#ip hello-interval eigrp as-number seconds
如果您更改了 hello 间隔,请确保也更改保留时间,使其大于或等于 hello 间隔。否则,如果保留时间已截止而下一个 hello 间隔时间还未到,则该相邻关系将会破裂。用于配置保留时间的命令为:
Router(config-if)#ip hold-time eigrp as-number seconds
本文用
菊子曰发布
DUAL(扩散更新算法)是 EIGRP确定最佳无环路径和无环备用路径的方法。
DUAL 使用几个术语,本节将详细讨论这些术语:
l 后继路由器
l 可行距离 (FD)
l 可行后继路由器 (FS)
l 报告距离 (RD),或称通告距离 (AD)
l 可行条件,或称可行性条件 (FC)
后继路由器和可行距离
术语后继路由器 是指用于转发数据包的一台相邻路由器,该路由器是通向目的网络的开销最低的路由。后继路由器的 IP 地址显示在路由表条目中,紧随单词 via。
可行距离 (FD) 是计算出的通向目的网络的最低度量。FD 是路由表条目中所列的度量,就是括号内的第二个数字。与其它路由协议中的情况一样,它也称为路由度量。
可行后继路由器、可行性条件和报告距离
在拓扑变化时,DUAL 之所以收敛速度快,原因之一就在于它使用通向其它路由器的备用路径,这些路由器称为可行后继路由器 ,备用路径使得无需重新计算 DUAL。
可行后继路由器:可行后继路由器 (FS) 是指一个邻居,它有一条通向后继路由器所连通的同一个目的网络的无环备用路径,并且满足可行性条件。(要成为可行后继路由器,必须满足可行性条件(FC))
可行性条件:当邻居通向一个网络的报告距离 (RD) 比本地路由器通向同一个目的网络的可行距离短时,即符合了可行性条件 (FC)
报告距离:报告距离(或称通告距离)即为 EIGRP 邻居通向相同目的网络的可行距离。报告距离是路由器向邻居报告的、有关自身通向该网络的开销的度量。
拓扑表:后继路由器和可行后继路由器
拓扑表中列出了 DUAL 计算出的通向目的网络的所有后继路由器和可行后继路由器。
路由器将后继路由器、可行距离和所有可行后继路由器及其报告距离保存在其 EIGRP 拓扑表(即拓扑数据库)中。
使用 show ip eigrp topology 命令查看该拓扑表。
举个例子:
使用 show ip eigrp topology 的输出如下:
第一行显示:
l P — 该路由处于被动状态。当 DUAL 当前未执行扩散计算来确定通向一个网络的路径时,该路由将处于稳定模式,即被动状态。如果 DUAL 正在重新计算或搜索新路径时,该路径将处于主动状态。对于稳定的路由域来说,该拓扑表中的所有路由都应该处于被动状态。如果该路由“陷入主动状态”,DUAL 将显示一个 A 字符。
l 192.168.1.0/24 — 这是目的网络,这也可在路由表中找到。
l 1 successors — 这用于显示通向此网络的后继路由器数量。如果存在通向此网络的多条等价路径,则会有多台后继路由器。
l FD is 3014400 — 这是可行距离,即通向目的网络的 EIGRP 度量。
第一个条目显示了后继路由器:
l via 192.168.10.10 — 这是后继路由器的下一跳地址。此地址显示在路由表中。
l 3014400 — 这是通向 192.168.1.0/24 的可行距离,这是路由表中所示的度量。
l 28160 — 这是后继路由器通向此网络的报告距离,即后继路由器的开销。
l Serial0/0/1 — 这是通向此网络的出站接口,也显示在路由表中。
第二个条目显示了可行后继路由器(如果没有第二个条目,则说明没有可行后继路由器):
l via 172.16.3.1 — 这是可行后继路由器的下一跳地址。
l 41026560 — 如果成立新的后继路由器,这将是现在后继路由通向 192.168.1.0/24 的新的可行距离。
l 2172416 — 这是可行后继路由器通向该网络的报告距离,即可行后继路由的度量。此值 (RD) 必须比当前 FD (3014400) 小才能符合可行性条件。
l Serial0/0/0 — 这是通向可行后继路由器的出站接口。
(如果通向后继路由器的路径发生故障,又没有可行后继路由器,会发生什么情况呢? DUAL 会将网络置于主动 状态。DUAL 将会主动向邻居查询,看是否存在新的后继路由器。)
show ip eigrp topology all-links 命令会显示通向一个网络的所有可能路径。
DUAL 有限状态机 (FSM)
EIGRP 的核心就是 DUAL 以及 DUAL 的 EIGRP 路由计算引擎。此技术的确切名称为 DUAL 有限状态机 (FSM)。有限状态机包含用于在 EIGRP 网络中计算和比较路由的所有逻辑。 图示为 DUAL FSM 的简化版。
EIGRP复合地量和K值:
EIGRP 在其复合度量中使用下列值来计算通向网络的首选路径:
l 带宽
l 延迟
l 可靠性
l 负载
复合度量:
公式:
默认复合公式:度量=[K1*带宽+K3*延迟]
完整复合公式:度量=[K1*带宽+(K2*带宽)/(256-负载)+K3*延迟]*[K5/(可靠性+K4)]
EIGRP 所用的复合度量公式。公式包含 K1 到 K5 五个 K 值,它们称为 EIGRP 度量权重。默认情况下,K1 和 K3 设为 1,K2、K4 和 K5 设为 0。
默认的 K 值可使用 EIGRP 路由器命令来更改:
Router(config-router)#metric weights tos k1 k2 k3 k4 k5
它们的关联性在建立邻接关系时相当重要,tos(服务类型)值是 IGRP 遗留下来的,实际未曾实施。tos 始终被设为 0。
检验 K 值:show ip protocols 命令用于检验 K 值。
检查度量值:
我们可以通过使用 show interface 命令来检查计算路由度量时为带宽、延迟、可靠性和负载使用的实际值。我们可以看到一下的信息:
MTU 1500 bytes, BW 1544 Kbit, DLY 20000 usec,reliability 255/255, txload 1/255, rxload 1/255
BW带宽度量 (1544 Kbit) 是一种静态值,带宽以 Kbit(千比特)为单位显示。大多数串行接口使用默认带宽值 1544 Kbit(即 1,544,000 bps 或 1.544 Mbps)。这是 T1 连接的带宽。(该带宽值可能无法反映出接口的实际物理带宽。修改该带宽值不会更改该链路的实际带宽。 如果链路的实际带宽与默认带宽不相等,您就应该修改该带宽值。)
DLY延迟是衡量数据包通过路由所需时间的指标。延迟 (DLY) 度量是一种静态值,它以接口所连接的链路类型为基础,单位为微秒。延迟不是动态测得的。换句话说,路由器并不会实际跟踪数据包达到目的地所需的时间。延迟值与带宽值相似,都是一种默认值。
可靠性 (reliability) 是对链路将发生或曾经发生错误的几率的衡量指标。可靠性是动态测得的,取值范围为 0 到 255,其中 1 表示可靠性最低的链路,255 则表示百分之百可靠。计算可靠性时取 5 分钟内的加权平均值,以避免高(或低)错误率的突发性影响。
负载 (load) 反映使用该链路的流量。与可靠性相似,负载也是动态测得的,且取值范围也是从 0 到 255,也以分母为 255 的分数表示,但不同的是,负载值越低越好,因为这表示链路上负载较轻。负载同时显示为出站(即发送)负载值 (txload) 和入站(即接收)负载值 (rxload)。计算此值时取 5 分钟内的加权平均值,
使用bandwidth命令
使用接口命令 bandwidth 修改带宽度量:
Router(config-if)#bandwidth kilobits
使用接口命令 no bandwidth 恢复为默认值。
我们可以使用 show interface 命令来检验更改。修改带宽时,必须同时在链路两端进行,才能确保两个方向上的正确路由。
带宽计算:
带宽=(高带宽/底带宽)*256
延迟计算:
延迟=(延迟/10)+(延迟/10)*256
EIGRP度量
度量=带宽+延迟
路由器必须与其邻居建立邻接关系,EIGRP 才能发送或接收更新。EIGRP 路由器通过与相邻路由器交换 EIGRP Hello 数据包来建立邻接关系。
我们可以使用 show ip eigrp neighbors命令来查看邻居表并检验 EIGRP 是否已与其邻居建立邻接关系。如下图就是邻居表:
show ip eigrp neighbor 命令的输出包括:
l H 栏 — 按照发现顺序列出邻居。
l Address — 该邻居的 IP 地址。
l Interface — 收到此 Hello 数据包的本地接口。
l Hold — 当前的保留时间。每次收到 Hello 数据包时,此值即被重置为最大保留时间,然后倒计时,到零为止。如果到达了零,则认为该邻居进入 "down"。
l Uptime(运行时间)— 从该邻居被添加到邻居表以来的时间。
l SRTT(平均回程计时器)和 RTO(重传间隔)— 由 RTP 用于管理可靠 EIGRP 数据包。
l Queue Count(队列数)— 应该始终为零。如果大于零,则说明有 EIGRP 数据包等待发送。
l Sequence Number(序列号)— 用于跟踪更新、查询和应答数据包。
路由器与邻居建立邻接关系后,如果有一台邻居未列出,则可使用 show ip interface brief 命令来检查该本地接口是否已激活。如果该接口已激活,则尝试 ping 该邻居的 IP 地址。
如果 ping 失败,则表明需要激活该邻居的接口。
如果 ping 成功但 EIGRP 仍然无法将该路由器列为邻居,则检查下列配置:
l 这两台路由器是否配置了相同的 EIGRP 进程 ID?
l 在 EIGRP network 语句中是否包括了该直连网络?
l 是否配置了 passive-interface 命令,从而阻止了该接口传输 EIGRP Hello 数据包?
也可使用 show ip protocols 命令来检验 EIGRP 是否已启用:
show ip route 命令来查看路由表:
默认情况下,EIGRP 在主网络边界自动总结路由。我们可以使用 no auto-summary 命令禁用自动总结。路由表中的 EIGRP 路由标有 D,该字符代表 DUAL。
Null0 总结路由介绍:
Null0即就是垃圾箱,如果一个数据包与 2 级子路由都不匹配,则会被发送到 Null0 接口。换句话说,如果数据包与 1 级父路由(该有类网络地址)匹配,但不与任何子网匹配,则该数据包将被丢弃。
只要同时存在下列两种情况,EIGRP 就会自动加入一条 null0 总结路由作为子路由:
l 至少有一个通过 EIGRP 获知的子网。
l 启用了自动总结。
(如果禁用了自动总结,则 null0 总结路由将被删除。原因是有类网络是不会进入路由查找过程中的第4步。)
扩散更新算法 (DUAL) 是 EIGRP 所用的收敛算法,EIGRP 防止路由环路的主要方式是使用 DUAL 算法。DUAL 算法用于让路由计算始终能避免路由环路。这使拓扑更改所涉及的所有路由器可以同时得到同步。未受拓扑更改影响的路由器不参与重新计算。DUAL FSM 跟踪所有路由,使用其度量来选择高效的无环路径,然后选择具有最低路径开销的路由并将其添加到路由表中。因为重新计算 DUAL 算法可能占用较多的处理器资源,所以应尽量避免重新计算。因此,DUAL 维护一个备用路由列表,其中包含它已确定为无环路由的备用路由。如果路由表中的主路由发生故障,则最佳的备用路由会立即添加到路由表中。
管理距离:
内部 EIGRP 路由的默认管理距离为 90,而从外部来源(例如默认路由)导入的 EIGRP 路由的默认管理距离为 170。
身份验证:
作为一种良好的做法,应对传输的路由信息进行身份验证。此做法可确保路由器仅接受配置有相同的口令和身份验证信息的其它路由器所发来的路由信息。
自治系统和进程ID
自治系统:自治系统 (AS) 是由单个实体管理的一组网络,这些网络通过统一的路由策略连接到 Internet。
进程 ID:EIGRP 和 OSPF 都使用一个进程 ID 来代表各自在路由器上运行的协议实例。
Router(config)#router eigrp autonomous-system
尽管 EIGRP 将该参数称为“自治系统”编号,它实际上起进程 ID 的作用。此编号与前面谈到的自治系统编号无关 ,您可以为其分配任何 16 位值。
全局配置命令用于启用 EIGRP。该 autonomous-system 参数由网络管理员选择,取值范围在 1 到 65535 之间。所选的编号为进程 ID 号,该编号很重要,因为此 EIGRP 路由域内的所有路由器都必须使用同一个进程 ID 号。
Network命令:
EIGRP 中的 network 命令与其它 IGP 路由协议中的 network 命令功能相同:
l 此路由器上任何符合 network 命令中的网络地址的接口都将被启用,可发送和接收 EIGRP 更新。
l 此网络(或子网)将包括在 EIGRP 路由更新中。
Router(config-router)#network network-address
network-address是此接口的有类网络地址。
带有通配符掩码的 network 命令:
默认情况下,当在 network 命令中使用network-address等有类网络地址时,该路由器上属于该有类网络地址的所有接口都将启用 EIGRP。然而,有时网络管理员并不想为所有接口启用 EIGRP。要配置 EIGRP 以仅通告特定子网,请将wildcard-mask选项与 network 命令一起使用:
Router(config-router)#network network-address [wildcard-mask]
通配符掩码 (wildcard-mask) 可看作子网掩码的反掩码。(如果我们想要得出255.255.255.192的反掩码,计算方法:用255.255.255.255减掉255.255.255.192就等于反掩码:“ 0.0.0.63”)
EIGRP 可以路由多种不同的协议(包括 IP、IPX 和 AppleTalk),这通过使用 PDM(协议相关模块)实现。PDM 负责处理与每个网络层协议对应的特定路由任务。
例如:
l IP-EIGRP 模块负责发送和接收在 IP 中封装的 EIGRP 数据包,并负责使用 DUAL 来建立和维护 IP 路由表。EIGRP 针对每个网络层协议使用不同的 EIGRP 数据包,并为其维护单独的邻居表、拓扑表和路由表。
l IPX EIGRP 模块负责与其它 IPX EIGRP 路由器交换与 IPX 网络相关的路由信息。
RTP和EIGRP数据包类型:
可靠传输协议 (RTP) 是 EIGRP 用于发送和接收 EIGRP 数据包的协议。EIGRP 被设计为与网络层无关的路由协议,因此,它无法使用 UDP 或 TCP 的服务,原因在于 IPX 和 Appletalk 不使用 TCP/IP 协议簇中的协议。RTP 其实包括 EIGRP 数据包的可靠传输和不可靠传输两种方式,它们分别类似于 TCP 和 UDP。可靠 RTP 需要接收方向发送方返回一个确认。不可靠的 RTP 数据包不需要确认。
RTP 能以单播或组播方式发送数据包。组播 EIGRP 数据包使用224.0.0.10。
EIGRP 数据包类型:EIGRP 使用五种不同的数据包类型,某些类型会成对使用。
1) Hello数据包: 用于发现邻居并与所发现的邻居建立邻接关系。并监控与邻居的连接状态。EIGRP hello 数 据包以组播方式发送,且使用不可靠传输。
2) 更新和确认:更新数据包:用于传播路由信息,EIGRP 不发送定期更新,EIGRP 更新仅包含需要的路由信息,且仅发送给需要该信息的路由器。当有多台路由器需要更新则用组播(224.0.0.10),当有一台路由器需要更新时则用单播。确认 (ACK) 数据包:由 EIGRP 在使用可靠传输时发送。对于 EIGRP 更新、查询和应答数据包,RTP 使用可靠传输。EIGRP 确认数据包始终以不可靠单播方式发送。EIGRP 确认数据包使用不可靠传输。
3) 查询和应答:由 DUAL 在搜索网络以及进行其它任务时使用。查询和应答使用可靠传输。查询可以使用组播或单播,但应答则始终以单播发送。
Hello协议:
Hello数据包的作用就是发现邻居以及建立邻居关系,还用于检测邻居是否在活动状态。在大多数网络中,每 5 秒发送一次 EIGRP Hello 数据包。在多点 NBMA(非广播多路访问)网络上,每 60 秒单播一次 Hello 数据包。保留时间用于告诉路由器在宣告邻居无法到达前应等待该设备发送下一个 Hello 的最长时间。默认情况下,保留时间是 Hello 间隔时间的三倍。保留时间截止后,EIGRP 将宣告该路由发生故障,而 DUAL 则将通过发出查询来寻找新路径。
EIGRP限定更新:
EIGRP 使用术语部分 或限定 来描述其更新数据包。EIGRP 不发送定期更新,而仅在路由度量发生变化时才发送更新。EIGRP 在目的地状态变化时发送这些增量更新,而非发送路由表的全部内容。EIGRP 仅发送必要的信息且仅向需要该信息的路由器发送,从而将发送 EIGRP 数据包时占用的带宽降到最低。