手册说明与学习方法

欢迎来到 EIGRP 的世界。这份手册不是一份"命令清单",而是一套"能让你真正理解并能在真机/仿真里复现"的实验教程。读完它,你不仅能照着敲命令,还能回答面试官和甲方最爱的那句:"为什么是这样?"

这份手册能给你什么

  • 全知识点覆盖:从"EIGRP 是啥"到 DUAL 状态机、从 IPv4 到 IPv6、从基础配置到排错,闭环。
  • 真实验证导向:每个知识点都配"实验目的 → 配置命令 → 验证输出 → 原理讲解"四段式,照着做就能看到现象。
  • 通俗但有深度:用生活化的比喻降低理解门槛,但不回避 RFC 级细节(度量公式、可行条件、SIA 等)。
  • 可直接抄的拓扑:所有实验用 EVE-NG + Cisco 设备,地址规划统一,避免你"照着做却对不上号"。
📌 阅读建议 如果你是从零开始,请按章节顺序阅读;如果你已经有基础、只是来查某个特性,直接用左侧目录跳转。每个章节都尽量不依赖前文也能读明白,但第 3 章(核心机制)是后面所有实验的"地基",强烈建议先吃透。

你需要准备的"软环境"

  • 一台能跑 EVE-NG 的电脑或服务器(虚拟机即可,建议 8G 内存起步)。
  • Cisco IOS 镜像(推荐 vIOS-adventerprisek9IOSv,轻量且功能全)。
  • 基础的 IP 编址与子网知识(知道 192.168.1.0/24 是什么)。
  • 一点点耐心——路由协议的"优雅"来自于它背后的数学与状态机,值得你慢下来。
💡 一句话记住 EIGRP EIGRP 是一个"披着距离矢量外衣、拥有链路状态灵魂的"高级距离矢量路由协议:它像距离矢量一样只和邻居交换路由,但又像链路状态一样用 DUAL 算法保证无环路、快速收敛。

第1章 EIGRP 协议全景认知

1.1 什么是 EIGRP

EIGRP(Enhanced Interior Gateway Routing Protocol,增强型内部网关路由协议)是 Cisco 在 1990 年代初期开发的内部网关路由协议(IGP)。它的前身是 IGRP(Interior Gateway Routing Protocol)。

关键历史节点,记住两个年份就够吹牛了:

  • 1990 年代:EIGRP 作为 Cisco 私有协议诞生,只有 Cisco 设备能跑。这是它当年被吐槽"厂商锁定"的原因。
  • 2013 年:Cisco 把 EIGRP 提交给 IETF 标准化,发布 RFC 7868,从此 EIGRP 成为开放标准,理论上任何厂商都能实现(虽然实际市场仍以 Cisco 为主)。
✅ 考试/面试常考点 EIGRP 在 OSI 模型里工作于网络层(第 3 层),但它直接封装在 IP 包里,协议号是 88。它依赖 TCP 也不依赖 UDP——这是它和 OSPF(IP 协议号 89,也不依赖 TCP/UDP)的区别之一,也是它用自己专属的 RTP 来保障可靠传输的原因。

1.2 为什么需要 EIGRP(它解决了什么痛点)

要理解 EIGRP 的价值,得先看它的"对手"们有什么问题:

  • 距离矢量协议(如 RIP):收敛慢(靠"传闻"逐跳传递)、容易出环(靠水平分割等补丁)、度量粗糙(只数跳数,100M 和 1G 链路对它一样)。
  • 链路状态协议(如 OSPF):无环、收敛快,但"太重"——要全网泛洪链路状态、要算 SPF 树、配置概念多(区域、DR/BDR 等),对小型网络来说"杀鸡用牛刀"。

EIGRP 想做的事很聪明:把距离矢量的简单(只和邻居说话)和链路状态的快速无环(DUAL 算法)结合起来,既收敛快、又无环路、还省资源。它只在拓扑变化时发送增量更新(partial update / triggered update),不像 RIP 那样周期性"广播全场"。

1.3 三大 IGP 协议对比

维度RIP v2OSPFEIGRP
类型距离矢量链路状态高级距离矢量(混合)
封装UDP 520IP 协议号 89IP 协议号 88
管理距离 AD120110(内部)90(内部)/ 170(外部)
度量值跳数(最大 15)成本(带宽反比)复合度量(带宽+延迟为主)
更新方式周期性全量(30s)触发式 LSA 泛洪触发式增量更新
收敛速度慢(分钟级)极快(秒级)
无环保证靠补丁(分裂、毒化)SPF 算法天然无环DUAL 算法保证无环
VLSM/CIDR支持(v2)支持支持
厂商开放标准开放标准(RFC 2328 等)原 Cisco 私有,现 IETF 标准
配置复杂度最简单最复杂(区域/类型)中等
📌 关于管理距离(AD) AD 是路由器用来"判断哪条路由更可信"的优先级值,数值越小越优先。EIGRP 内部路由 AD=90,从其他协议重分布进来的"外部 EIGRP 路由"AD=170。这就是为什么 EIGRP 内部路由会胜过 OSPF(110)但输给静态路由(1)的原因。

1.4 关键术语速记(先混个脸熟)

这些词后面会反复出现,先在这里建立印象,不理解没关系:

  • AS(Autonomous System,自治系统号):EIGRP 用它来隔离进程。只有 AS 号相同的 EIGRP 路由器才会建立邻居。它和 BGP 里那个"互联网级 AS 号"不是一回事,这里只是个 1–65535 的本地标识符(命名模式里甚至可以省掉它,用 AF 区分)。
  • 邻居(Neighbor):直连、且成功建立 EIGRP 会话的对端路由器。
  • FD(Feasible Distance,可行距离):本机到达某个目标网络的"最小度量值"。
  • AD / RD(Advertised/Reported Distance,通告距离):邻居告诉我"它到目标的距离"。
  • Successor(后继):当前最优路由的下一跳,它给的 FD 最小。
  • Feasible Successor / FS(可行后继):备份下一跳,满足"它的 AD 比我当前的 FD 小"这个条件,可秒级接管。
  • FC(Feasible Condition,可行条件):AD < FD。满足它就能当 FS。
  • Active / Passive 状态:路由是"被动(稳定)"还是"主动(正在重新计算路径)"。

第2章 EVE-NG 实验平台搭建

2.1 EVE-NG 简介

EVE-NG(Emulated Virtual Environment - Next Generation)是目前最流行的网络仿真平台之一,常被称作"网络工程师的虚拟机"。它在一台 Linux 主机里用 KVM/QEMU 跑真实的网络设备镜像(Cisco、Juniper、华为等都行),你在浏览器里就能拖拽连线、开机配置,体验无限接近真机

版本选择:

  • EVE-NG Community(社区版):免费,功能足够本手册所有实验。
  • EVE-NG Pro / Learning Center:付费,多了多用户、VLAN 魔术等功能,对个人学习非必需。

2.2 镜像准备与导入

EIGRP 在几乎所有 Cisco 路由镜像上都支持。本手册推荐:

镜像说明适用
vIOS-adventerprisek9-m.xCisco 官方轻量虚拟 IOS,功能全首选,内存占用小
IOSv (15.x)官方 IOSv 系列稳定,适合命名模式实验
c3725 / c7200 + 真实 IOS老牌 Dynamips 镜像老设备情怀,但较重

导入步骤(社区版 Web 界面):

# 1. 通过 SCP / WinSCP 把镜像传到 EVE-NG 的镜像目录
#    路由镜像放在 /opt/unetlab/addons/qemu/ 下对应子目录
#    例如:/opt/unetlab/addons/qemu/vios-adventerprisek9-m.vmdk

# 2. 修正镜像权限(EVE-NG 必做,否则设备起不来)
root@eve-ng:~# /opt/unetlab/wrappers/unl_wrapper -a fixpermissions

# 3. 在 Web 界面新建 Lab,添加 Node 时选择对应的 Cisco vIOS 模板即可
⚠️ 新手最易踩的坑 镜像传上去后一定要执行 fixpermissions。否则设备启动会报磁盘权限错误、卡在 ROMMON。这是 EVE-NG 的"传统艺能",记住这句命令能省你两小时。

2.3 拓扑搭建步骤

  1. 登录 EVE-NG Web(http://你的IP),Add New Lab,命名如 EIGRP_Lab
  2. Add Node → 选 Cisco vIOS 路由器,数量按各章节拓扑(基础实验 3 台起)。
  3. Add Network(云/网段),用 Management(Cloud) 或纯桥接网段连接设备接口。
  4. 用鼠标拖线连接设备接口(如 R1 e0/0 ↔ R2 e0/0)。
  5. 全选设备 → Start 启动。等设备跑完 POST 进入 Router> 提示符。
  6. 右键设备 → Console(默认 Telnet/HTML5)进入配置界面。

2.4 设备初始化约定(贯穿全手册)

为避免每个实验重复写初始化,本手册统一约定:

  • 关闭域名解析(避免输错命令卡 30 秒):no ip domain-lookup
  • 开启日志同步:line con 0logging synchronous
  • 超时设长:exec-timeout 0 0
  • 关闭自动汇总(现代 IOS 默认已关,但显式写上更稳):no auto-summary(经典模式进程下)
Router> enable
Router# configure terminal
Router(config)# hostname R1
R1(config)# no ip domain-lookup
R1(config)# line con 0
R1(config-line)# logging synchronous
R1(config-line)# exec-timeout 0 0
R1(config-line)# exit
R1(config)# ! 后面各章在此基础上叠加 EIGRP 配置

第3章 EIGRP 核心机制深度剖析

这一章是整本手册的"发动机舱"。前面可以囫囵吞枣,这一章请慢读。理解了三张表、RTP、DUAL 和度量值,后面所有实验命令你都能"知其所以然"。

3.1 三张表:邻居表 / 拓扑表 / 路由表

EIGRP 在每台路由器内部维护三张逻辑表,数据从下往上"流动",最终变成路由表里的条目:

邻居表 Neighbor Table 谁是我的直连 邻居? show ip eigrp neighbors 拓扑表 Topology Table 所有路径 + FD/AD Successor / FS show ip eigrp topology 路由表 Routing Table 最优路由 + 其他 协议合成 show ip route eigrp Hello DUAL计算
图 3-1 EIGRP 三张表的流转关系

① 邻居表(Neighbor Table)

记录"我和哪些直连路由器成功建立了 EIGRP 邻居关系"。只和邻居表里的设备交换路由。每行包含:邻居地址、接口、Hold 时间(还剩多久没收到 Hello 就判定邻居死)、Up 时间、SRTT、RTO、队列长度等。

② 拓扑表(Topology Table)

这是 EIGRP 最特别的地方。它不只存"最佳路由",而是存到达每个目标网络的所有路径,并标注每条路径的 FD(我到目标的总距离)和 AD(下一跳邻居到目标的距离)。DUAL 算法就在这里挑 Successor 和 Feasible Successor。

③ 路由表(Routing Table)

路由器把 EIGRP 算出的 Successor 路由(AD=90)和直连、静态、OSPF 等协议的路由放在一起,按管理距离择优放入。我们平时 ping 通不通,看的就是这一张。

💡 三张表一句口诀 邻居表管"和谁交朋友",拓扑表管"去哪有几条路、哪条最好、哪条能当备胎",路由表管"最终走哪条"。

3.2 五种包与 RTP 可靠传输

EIGRP 用五种报文类型通信,它们都封装在 IP 协议号 88 里,目标地址是组播 224.0.0.10(所有 EIGRP 路由器都监听这个地址)。

包类型中文作用可靠性目标
Hello问候包发现邻居、维持邻居存活不可靠(无需确认)组播
Update更新包发送路由信息(建邻居时全量,变化时增量)可靠(要 ACK)单播/组播
Query查询包失去路由且无备胎时,向邻居追问"你还能到吗?"可靠单播/组播
Reply应答包回应 Query,告知自己能否到达可靠单播
ACK确认包确认收到了可靠的包(Update/Query/Reply)不可靠单播

还有两个"幕后英雄"包,用于防卡死:SIA-Query / SIA-Reply(Stuck-in-Active 查询/应答),当一台路由陷在 Active 状态太久,邻居会主动问"你还活着在算吗?",避免被误杀。

RTP:可靠传输协议(Reliable Transport Protocol)

前面说了 EIGRP 不用 TCP。那 Update/Query/Reply 怎么保证"不丢、不乱序"?答案是它自己造了个轻量级可靠传输机制——RTP

  • 每个可靠包带序列号(Sequence Number)
  • 接收方必须回ACK(带确认号 = 收到的序列号)
  • 发送方若在 RTO(重传超时)内没收到 ACK,就单播重传;重传多次仍失败,就重置邻居关系(相当于"友尽重加")。
  • SRTT(平滑往返时间)动态估算 RTO,类似 TCP 的 RTT。
📌 为什么不用 TCP? TCP 是"面向连接、全序"的,一旦一个包堵住就全卡住(队头阻塞)。EIGRP 的邻居可能很多,用 TCP 会互相拖累。RTP 是"为路由更新量身定做"的轻量可靠传输,只保证需要的包可靠,效率更高。

3.3 DUAL 弥散更新算法(核心中的核心)

DUAL(Diffusing Update Algorithm,弥散/扩散更新算法)是 EIGRP 无环路、快速收敛的"大脑"。别被名字吓到,它的逻辑非常直观。我们先把几个名词换成"人话":

FD可行距离:我从家出发到目的地的总路程(自己算的最小值)。

AD通告距离:邻居告诉我"从它家到目的地多远"。

Successor后继:当前给我最短路程(最小 FD)的那个邻居,它就是"主路"。

FS可行后继:邻居的 AD 比我的 FD 还小 → 它肯定不在环上 → 可当"备胎",秒切。

FC可行条件邻居的 AD < 我的 FD。满足就能当 FS。

Active主动态:主路没了、又没备胎,正在全网问路。

💡 为什么 FC 能保证无环? 因为"邻居到目标的距离 AD 比我还短",说明邻居在通往目标的更上游。如果我走它,绝不会绕回自己(否则它会更远)。这就是 EIGRP 在数学上严格无环的根本原因——它只信任"离目标更近"的邻居。

DUAL 状态机(路由的两种人生)

Passive 被动 路由稳定,有 Successor Active 主动 正在重算,发 Query 问路 等所有 Reply 丢失 Successor 且无 FS → 进入 Active 收齐 Reply,算出新 Successor/FS 正常转发数据 收敛期间不转发该目的流量
图 3-2 DUAL 中单条路由的状态切换

一个完整的 DUAL 故事(建议背诵)

  1. 路由器 R1 通过邻居 R2 到网络 N 的 FD=100(Successor=R2)。邻居 R3 说它到 N 的 AD=80 < 100 → R3 成为 FS。
  2. 某天 R1 和 R2 的链路断了,R1 失去 Successor。
  3. R1 检查发现:有 FS(R3,AD=80)。因为 FS 已满足 FC 保证无环,R1 直接把 R3 提升为新的 Successor,毫秒级切换,根本不用问别人。这就是 EIGRP 快的原因。
  4. 如果没有 FS(比如 R3 的 AD=120 > 100,不满足 FC),R1 就进入 Active 状态,向所有邻居发 Query:"你们谁还能到 N?"
  5. 邻居们回 Reply。R1 收齐所有 Reply 后,用其中的最优路径算出新 Successor,回到 Passive 状态。整个过程可能耗时数秒。
  6. 若 Active 状态超过 active timer(默认 3 分钟)还没收齐 Reply,R1 判定邻居"卡死(SIA)",直接重置该邻居关系。此时 SIA-Query/Reply 机制会在超时一半(约 90 秒)时介入询问,尽量避免误杀。
⚠️ SIA(Stuck in Active)是 EIGRP 排错重点 大面积故障或邻居响应慢时,路由会卡在 Active 超过 3 分钟,导致邻居被重置、网络震荡。后续第 13 章讲 Stub 和第 18 章排错时会给出根治方案。

3.4 度量值计算实战(EIGRP 的"距离"怎么算)

EIGRP 的度量值是一个复合度量(composite metric),由 5 个参数(K 值加权)组合而成。默认情况下只使用带宽和延迟

K 值对应参数含义默认权重
K1带宽 Bandwidth路径上最小带宽1
K2负载 Load链路负载(百分比)0
K3延迟 Delay路径上累计延迟1
K4可靠性 Reliability链路可靠性0
K5MTU最大传输单元0

默认度量公式(K2=K4=K5=0 时):

Metric = 256 × ( 10⁷ / 最小带宽(kbps)  +  累计延迟(µs) / 10 )
  • 最小带宽:路径上所有出接口带宽里最小的那个,单位 kbps。
  • 累计延迟:路径上所有出接口延迟之和,单位微秒(µs)。
  • 注意延迟要 /10,因为 IOS 里 delay 命令的单位是"10 微秒"(tens of microseconds)。
  • 前面的 256 是历史遗留(早期 EIGRP 用 256 放大以避免小数),现代 IOS 仍保留。
✅ 延迟的单位陷阱 IOS 里 show interface 显示的 delay 是 10000 microseconds(即 10ms),但 delay 配置命令的单位是 tens of µs。所以"10ms"在配置里要写 delay 1000。公式里已经帮你 /10 了,直接用 µs 算即可。

手算示例(务必会)

假设路径:R1 →(FE 100Mbps, delay 100µs)→ R2 →(FE 100Mbps, delay 100µs)→ 目标。

最小带宽 = 100000 kbps   (100Mbps)
累计延迟 = 100 + 100 = 200 µs

Metric = 256 × ( 10⁷ / 100000  +  200 / 10 )
       = 256 × ( 100  +  20 )
       = 256 × 120
       = 30720

所以这条路径的 EIGRP 度量值 = 30720。你会在 show ip eigrp topology 里看到它(显示为 "30720")。

3.5 计时器与 K 值(邻居建立的隐藏门槛)

两个容易忽视、但决定邻居能否起来的参数:

参数默认(≥1.544Mbps 链路)默认(<1.544Mbps,如帧中继)说明
Hello 间隔5 秒60 秒多久发一次 Hello
Hold 时间15 秒(=3×Hello)180 秒多久没收到 Hello 就判邻居死

K 值匹配规则:两台路由器的 K1–K5 必须完全一致才能建立邻居。EIGRP 在 Hello 包里携带 K 值,对方一对不上就直接忽略你。这也是为什么你改了度量权重(比如开了负载 K2)后,邻居全掉——因为对端没改。

📌 经验法则 生产环境永远保持默认 K 值(只用带宽+延迟)。开启负载/可靠性度量看似"智能",实则会导致路由频繁抖动(负载一变路由就重算),属于"理论很美、实战坑多"的特性。

第4章 基础实验:第一个 EIGRP 网络

理论听够了,动手!本章我们用 3 台路由器搭一个三角拓扑,把 EIGRP 跑起来,并验证三张表。这是所有后续实验的地基。

4.1 拓扑与编址规划

R1 Lo0 1.1.1.1/24 R2 Lo0 2.2.2.2/24 R3 Lo0 3.3.3.3/24 10.1.12.0/24 10.1.13.0/24 10.1.23.0/24 e0/0 e0/1
图 4-1 基础实验三角拓扑(R1-R2-R3 全互联 + 各自 Loopback)
设备接口IP 地址说明
R1e0/010.1.12.1/24连 R2
R1e0/110.1.13.1/24连 R3
R1Lo01.1.1.1/24模拟内网
R2e0/010.1.12.2/24连 R1
R2e0/110.1.23.2/24连 R3
R2Lo02.2.2.2/24模拟内网
R3e0/010.1.13.3/24连 R1
R3e0/110.1.23.3/24连 R2
R3Lo03.3.3.3/24模拟内网

4.2 启用 EIGRP(经典模式)

先给三台设备配好 IP(略,按上表),然后进入 EIGRP 进程。这里用 AS 号 100。注意 network 命令后面跟的是"主类网络号"(如 10.0.0.0),EIGRP 会自动把属于该主类的所有接口宣告进去。也可以用通配符精确匹配

R1 配置:

R1(config)# router eigrp 100
R1(config-router)# no auto-summary
R1(config-router)# network 10.0.0.0
R1(config-router)# network 1.0.0.0
! network 1.0.0.0 会把 Lo0(1.1.1.1) 宣告进 EIGRP

R2 / R3 同理:

R2(config)# router eigrp 100
R2(config-router)# no auto-summary
R2(config-router)# network 10.0.0.0
R2(config-router)# network 2.0.0.0

R3(config)# router eigrp 100
R3(config-router)# no auto-summary
R3(config-router)# network 10.0.0.0
R3(config-router)# network 3.0.0.0
📌 network 命令的两种写法 network 10.0.0.0 是"主类写法",把 10.x.x.x 所有接口都宣告。若只想精确宣告某个接口,用反掩码(通配符)network 10.1.12.1 0.0.0.0 只宣告该 IP 所在接口。主类写法是 0.0.0.0 反掩码的简写。更精确的做法推荐用接口下 ip eigrp 100 area ... 或命名模式,见第 14 章。

4.3 验证邻居与路由

配置完,先验证邻居起没起来。这是排错第一招。

R1# show ip eigrp neighbors
EIGRP-IPv4 Neighbors for AS(100)
H   Address         Interface      Hold Uptime   SRTT   RTO  Q  Seq
                                            (sec)         (ms)       Cnt Num
0   10.1.12.2       Et0/0           13   00:01:22   10    100   0   7
1   10.1.13.3       Et0/1           12   00:01:20   11    100   0   7

解读:R1 有 2 个邻居(R2、R3),分别通过 e0/0、e0/1。Hold=13/12 秒说明心跳正常;Q Cnt=0 表示没有等待确认的包。

再看拓扑表(DUAL 的"原料库"):

R1# show ip eigrp topology
EIGRP-IPv4 Topology Table for AS(100)/ID(1.1.1.1)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply
       r - reply Status, s - sia Status

P 1.1.1.0/24, 1 successors, FD is 128256
        via Connected, Loopback0
P 2.2.2.0/24, 1 successors, FD is 409600
        via 10.1.12.2 (409600/128256), Ethernet0/0
P 3.3.3.0/24, 1 successors, FD is 409600
        via 10.1.13.3 (409600/128256), Ethernet0/1
P 10.1.23.0/24, 1 successors, FD is 307200
        via 10.1.12.2 (307200/281600), Ethernet0/0
        via 10.1.13.3 (307200/281600), Ethernet0/1

注意 (409600/128256) 的格式:前面是本机 FD(到目标的总距离),后面是邻居的 AD(下一跳到目标的距离)。例如到 2.2.2.0,R1 的 FD=409600,R2 的 AD=128256。看到 "P" 前缀说明路由处于被动(稳定)状态。

✅ 看拓扑表找 FS 对 10.1.23.0/24,R1 有两条路径,FD 都是 307200。它只列了 Successor 的完整信息,但如果一条路径的 AD < 当前 FD,就会成为 FS 并显示在 topology 里(all-links 视图可见,见下)。
R1# show ip eigrp topology all-links
! 加上 all-links 能看到"所有路径",包括没入选的,方便判断 FS

最后看路由表(真正生效的):

R1# show ip route eigrp
      2.0.0.0/24 is subnetted, 1 subnets
D        2.2.2.0 [90/409600] via 10.1.12.2, 00:02:10, Ethernet0/0
      3.0.0.0/24 is subnetted, 1 subnets
D        3.3.3.0 [90/409600] via 10.1.13.3, 00:02:08, Ethernet0/1
      10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
D        10.1.23.0/24 [90/307200] via 10.1.12.2, 00:02:10, Ethernet0/0
                     [90/307200] via 10.1.13.3, 00:02:10, Ethernet0/1

路由条目前的 D 表示 EIGRP(D = DUAL / EIGRP)。[90/409600]:90 是 AD,409600 是度量值。最后一行 10.1.23.0 有两条下一跳 → 这是等价负载均衡(见第 7 章)。

验证连通性:

R1# ping 2.2.2.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5)

4.4 邻居建立过程抓包解读

在 EVE-NG 里对 R1 e0/0 抓包,能看到 EIGRP 邻居建立的"握手"过程:

  1. R1 发 Hello(组播 224.0.0.10),带自己 AS=100、K 值、Hold 时间。
  2. R2 回 Hello,双方发现彼此。
  3. R2 发 Update(单播,初始全量路由),带序列号。
  4. R1 回 ACK 确认。
  5. R1 发 Update 给 R2,R2 回 ACK。
  6. 邻居关系建立,进入稳态,之后只发 Hello(每 5 秒)保活。
⚠️ 邻居起不来的三大元凶AS 号不一致(一边 100 一边 200)→ 直接不理;② K 值不一致(一边默认一边改过);③ 直连不通(IP 不在同网段 / 接口 shut / 二层没连)。排错时先 show ip eigrp neighbors 看空不空,再逐条排查。

第5章 度量值与路径选择

5.1 复合度量公式回顾与调参

第 3 章讲过默认公式。这里强调:EIGRP 选路只看度量值最小的那条。我们能用两条命令人为影响度量:

  • bandwidth <kbps>:改接口的"逻辑带宽"(不影响实际转发速率,只影响路由计算)。
  • delay < tens-of-µs >:改接口的"逻辑延迟"。
💡 改带宽还是改延迟? 工程上优先用 delay 调 EIGRP 度量,而不是 bandwidth。因为 bandwidth 还会被其他协议(如 QoS、OSPF 成本)引用,乱改会"误伤友军";而 delay 几乎只被 EIGRP 用作度量,副作用最小。

5.2 手算度量值实验(验证公式)

继续用第 4 章拓扑。我们先看 R1 到 10.1.23.0/24 的两条路径度量为什么都是 307200。

路径 R1→R2→10.1.23.0:R1 e0/0 出、R2 e0/1 出。默认 FE 接口:带宽 100000kbps,delay 100µs(=1000 tens-of-µs)。

最小带宽 = 100000 kbps
累计延迟 = 100(R1 e0/0) + 100(R2 e0/1) = 200 µs
Metric = 256 × (10⁷/100000 + 200/10) = 256 × (100 + 20) = 30720

等等,为什么 show 里是 307200 不是 30720?因为 IOS 的拓扑表里延迟是以"10 微秒为单位"显示的另一套,实际内部计算用的就是 30720 再被某些版本放大 10 倍展示……这里别纠结展示细节,记住计算逻辑即可:最小带宽 + 累计延迟 → 256×(...) 是核心算法。

📌 关于 256 与 10 倍系数 不同 IOS 版本在"显示值"上会有 ×256 或额外 ×10 的差异,但选路结果一致(都是相对大小比较)。考试/实验重点在"会算相对大小、会判断哪条优",而不是抠显示数字。

5.3 用 delay 改变选路(实战)

假设我们想让 R1 到 10.1.23.0 只走 R3(人为调差 R2 那条路):

! 在 R2 连接 R1 的接口上加大延迟,使经 R2 的路径度量变大
R2(config)# interface e0/0
R2(config-if)# delay 2000
! 默认 delay 是 1000(tens-of-µs=10ms),改成 2000(=20ms)

再看 R1 拓扑表:

R1# show ip eigrp topology 10.1.23.0/24
P 10.1.23.0/24, 1 successors, FD is 332800
        via 10.1.13.3 (332800/307200), Ethernet0/1
! 注意:经 R2 的路径现在度量变大,不再是最优,只剩 R3 一条 Successor
✅ 实用技巧 在多路径场景中,若你希望流量走特定链路,在相应接口调 delay 是最干净的做法。记得改完用 clear ip eigrp neighbors 或等收敛,让拓扑表刷新。

第6章 自动汇总与手动汇总

6.1 自动汇总(Auto-Summary)的坑

自动汇总会在主类网络边界把路由汇总成自然掩码(如 10.0.0.0/8、172.16.0.0/16、192.168.x.0/24)再发出去。问题在于不连续子网(discontiguous subnets)

R1 CORE 10.0.0.0/8 R3 10.1.1.0/24 10.2.2.0/24 自动汇总后两边都发 10.0.0.0/8 → CORE 路由冲突/黑洞!
图 6-1 不连续子网启用自动汇总会导致汇总路由冲突

所以现代 IOS(15.x)默认已经 no auto-summary。如果你用的是老镜像,务必显式关闭:

R1(config)# router eigrp 100
R1(config-router)# no auto-summary

6.2 手动汇总(Manual Summarization)

手动汇总才是"正确姿势":在发送接口的边界上把多条明细路由聚合成一条,减少路由表条目、抑制翻动(route flapping)、隐藏内部拓扑。

! 假设 R2 下有 10.2.0.0 - 10.2.3.0 四个 /24,想汇总成 10.2.0.0/22 发给 R1
R2(config)# interface e0/0
R2(config-if)# ip summary-address eigrp 100 10.2.0.0 255.255.252.0
! 含义:在 e0/0 出方向,把匹配 10.2.0.0/22 的明细汇总成这一条发给邻居

验证:

R1# show ip route eigrp | include 10.2
D        10.2.0.0/22 [90/...] via 10.1.12.2, ...
! R1 只看到一条 /22 汇总,看不到四条 /24 明细 → 路由表瘦身成功
✅ 手动汇总的"防环兜底" EIGRP 在做了汇总的路由器上,会自动生成一条指向 Null0 的汇总黑洞路由(如 10.2.0.0/22 is directly connected, Null0)。作用是:当去往 10.2.0.0/22 内某个不存在的子网(如 10.2.5.0)的流量到达时,直接丢进 Null0,避免环路回灌。这是 EIGRP 汇总的优雅设计。
R2# show ip route | include Null0
D        10.2.0.0/22 is directly connected, Null0

第7章 负载均衡(等价 / 非等价)

7.1 等价负载均衡(默认就支持)

EIGRP 默认支持最多 4 条等价路径的负载均衡(不同 IOS 上限可达 16/32)。只要多条路径度量值完全相同,就会一起进路由表,流量按目的/包轮流分担。

! 查看/修改等价路径数量上限
R1(config)# router eigrp 100
R1(config-router)# maximum-paths 6
! 允许最多 6 条等价路由同时进路由表

7.2 非等价负载均衡(variance)

真实网络里两条路径度量几乎不可能完全相等。EIGRP 用 variance 实现非等价负载均衡:允许"次优但满足条件的路径"也进路由表,按比例分担流量。

入选条件(两个条件必须同时成立):

  • 条件 A(可行条件 FC):该路径的 AD < 当前 FD(保证无环,能当 FS)。
  • 条件 B(variance):该路径的 FD ≤ variance × 最优FD
! 假设 R1 到目标:最优路径 FD=100,另一条 FD=180
R1(config)# router eigrp 100
R1(config-router)# variance 2
! 条件 B:180 ≤ 2×100=200 → 成立
! 再配合条件 A(另一条的 AD 必须 < 100)才能入选
! 入选后两条都进路由表,流量按 100:180 反比 ≈ 按度量反比分担
⚠️ variance 的隐藏前提 很多教程只讲"FD ≤ variance×FD",忘了 FC 条件。如果那条次优路径的 AD ≥ 当前 FD,它连 FS 都不是,永远不会被 variance 拉进路由表。排错时务必用 show ip eigrp topology all-links 确认它的 AD 是否 < FD。
💡 一句话 等价负载均衡看"度量相等";非等价看"variance 倍数内 + 仍满足无环(FC)"。variance 不是越大越好,太大等于把所有路都塞进路由表,可能引入次优路径。

第8章 默认路由注入

企业网里,内部路由器通常只需要一条默认路由指向出口(边界/核心),而不是学全网明细。EIGRP 注入默认路由有几种做法:

方法一:重分布静态默认路由(最常用)

! 在边界路由器 R2 上
R2(config)# ip route 0.0.0.0 0.0.0.0 202.96.1.1
R2(config)# router eigrp 100
R2(config-router)# redistribute static
! 把静态默认路由重分布进 EIGRP,内部路由器就能学到 D*EX 0.0.0.0/0

方法二:ip default-network(经典技巧)

R2(config)# ip default-network 10.0.0.0
R2(config)# router eigrp 100
R2(config-router)# network 10.0.0.0
! 标记 10.0.0.0 为默认网络,EIGRP 会把它作为候选默认传播

方法三:汇总到 0.0.0.0(优雅写法)

R2(config)# interface e0/0
R2(config-if)# ip summary-address eigrp 100 0.0.0.0 0.0.0.0
! 在出接口汇总成 0.0.0.0/0,邻居收到一条默认路由

验证内部路由器收到默认路由:

R1# show ip route eigrp
D*EX  0.0.0.0/0 [170/...] via 10.1.12.2, ...
! D*EX 中 * = 候选默认,EX = 外部(重分布)路由,AD=170

第9章 被动接口(Passive-Interface)

问题:交换机下联的用户网段(如 R1 的 Lo0 或接 PC 的接口)根本不需要、也不应该和对端建 EIGRP 邻居(对面是 PC,又不是路由器)。但 network 命令会把接口"激活"去发 Hello。

解决:把这类接口设为被动接口——仍宣告该网段路由(让别人能学到),但不再发 Hello、不尝试建邻居。这既省资源又更安全(防止非法设备建邻居)。

R1(config)# router eigrp 100
R1(config-router)# passive-interface Loopback0
! Lo0 的 1.1.1.0/24 仍会被通告,但 R1 不会在 Lo0 上发 Hello

! 更狠的写法:先全部被动,再单独放开需要建邻居的接口
R1(config-router)# passive-interface default
R1(config-router)# no passive-interface e0/0
R1(config-router)# no passive-interface e0/1
! 安全最佳实践:默认全被动,按需开启,最大限度缩小攻击面
✅ 与 OSPF 的区别 OSPF 的 passive-interface 也是"发路由、不建邻居",但 OSPF 不发 Hello 就不会在该接口形成邻接,网段路由通过其他接口/ABR 传播。EIGRP 同理。两者语义一致,只是底层机制不同。

第10章 邻居认证(MD5)

EIGRP 只支持 MD5 认证(不支持明文)。认证保证"只有持有相同密钥的合法路由器才能建立邻居",防止非法设备接入或路由毒化。

配置三步曲:

! 第一步:定义密钥链(key chain)
R1(config)# key chain EIGRP-KEY
R1(config-keychain)# key 1
R1(config-keychain-key)# key-string Cisco123

! 第二步:接口启用 MD5 认证,并绑定密钥链
R1(config)# interface e0/0
R1(config-if)# ip authentication mode eigrp 100 md5
R1(config-if)# ip authentication key-chain eigrp 100 EIGRP-KEY

! 第三步:对端 R2 必须配置完全相同的 key-string,否则邻居起不来
⚠️ 认证失败的表现 如果一端配了认证、另一端没配(或密钥不对),show ip eigrp neighbors看不到对方,且 debug eigrp packets 会报 "authentication mismatch"。这是排错关键线索。
📌 命名模式的认证写法不同 第 14 章的命名模式里,认证配置放在 af-interface 下,语法更清晰:authentication mode md5 + authentication key-chain NAME

第11章 路由过滤

有时我们不想把某些路由通告出去(比如内部私密网段),或不想接收某些路由(控制路由表规模)。EIGRP 用 distribute-list(分发列表)配合 ACL / prefix-list 实现过滤。

出方向过滤(阻止某路由被通告给邻居)

R2(config)# access-list 10 deny 192.168.100.0 0.0.0.255
R2(config)# access-list 10 permit any
R2(config)# router eigrp 100
R2(config-router)# distribute-list 10 out e0/0
! 从 e0/0 发出时,过滤掉 192.168.100.0/24,其它照常

入方向过滤(不接收某路由)

R1(config)# ip prefix-list BLOCK seq 5 deny 172.16.0.0/16 le 32
R1(config)# ip prefix-list BLOCK seq 10 permit 0.0.0.0/0 le 32
R1(config)# router eigrp 100
R1(config-router)# distribute-list prefix BLOCK in e0/1
! 从 e0/1 进来的路由中,拒绝 172.16.x.x 任何掩码,其余允许
💡 ACL vs prefix-list prefix-list 更推荐:它基于"前缀+掩码范围"匹配,比 ACL 更精确、效率更高、可读性更好(有 seq 可插队)。生产环境过滤一律优先 prefix-list。
⚠️ 过滤的"反作用力" 在 EIGRP 里过滤掉一条路由的接收,不会阻止该邻居把其它路由告诉你(不像 OSPF 的 LSA 过滤那么"全局")。但注意:过度过滤可能让下游失去 FS,影响收敛。过滤后要确认关键路径仍在拓扑表中。

第12章 路由重分布(Redistribution)

重分布是把"一种路由协议的路由"引入到"另一种协议"里。常见场景:EIGRP 企业网边界对接 OSPF 运营商网络,或把静态/直连路由注入 EIGRP。

把 OSPF 重分布进 EIGRP

R1(config)# router eigrp 100
R1(config-router)# redistribute ospf 1 metric 100000 100 255 1 1500
! 必须手动指定度量!否则重分布路由度量=无穷大,不会被接受
! 参数顺序:带宽(kbps) 延迟(tens-µs) 可靠性 负载 MTU
! 即:100000kbps带宽, 100×10µs延迟, 可靠性255, 负载1, MTU1500

把静态/直连重分布进 EIGRP

R1(config)# router eigrp 100
R1(config-router)# redistribute static
R1(config-router)# redistribute connected
! 静态/直连有真实接口度量,通常无需手动指定 metric
💡 重分布的"度量陷阱" EIGRP 重分布必须显式给度量(带宽 延迟 可靠性 负载 MTU 五元组),否则默认度量无穷大、路由进不来。OSPF 重分布进 EIGRP 尤其要注意。可以用 default-metric 统一设置,省得每条都写。
R1(config-router)# default-metric 100000 100 255 1 1500
! 之后所有 redistribute 语句自动用这个默认度量
⚠️ 双向重分布防环 两个协议互重分布时,必须小心路由反馈(route feedback)导致环路或次优。常用手段:用 route-map 打 tag、用 distance 调 AD、或用 distribute-list 限制。这是 CCNP/CCIE 的重点实验内容。

第13章 Stub 末梢特性

问题场景:分支站点 R(只连一条上行链路到总部)被配成普通 EIGRP 路由器。当总部某条路由消失,总部会向分支发 Query 问"你还能到吗?"。分支明明是死胡同(只有一条路),却要被迫参与全网 Query/Reply,拖慢收敛,甚至引发 SIA。

解决:把分支配成 EIGRP Stub(末梢)。Stub 路由器会明确告诉邻居:"我是死胡同,别问我 Query,我也只发特定类型的路由给你"。这样总部根本不会向 Stub 发 Query,彻底消除 SIA 风险、加速收敛

R-branch(config)# router eigrp 100
R-branch(config-router)# eigrp stub
! 默认 = eigrp stub connected summary(通告直连 + 汇总)

Stub 的几种"通告类型"选项:

选项含义
connected通告直连接口网络(默认包含)
static通告重分布的静态路由
summary通告自动/手动汇总的路由(默认包含)
redistributed通告重分布进来的路由
receive-only只接收、不发送任何 EIGRP 路由(最严格)
! 例:分支只通告直连和静态,不发汇总
R-branch(config-router)# eigrp stub connected static
✅ Stub 是"分支机构"标配 凡是"只有一条上行、不会成为 transit(中转)"的站点,一律配 eigrp stub。这是 EIGRP 大型网络稳定运行的黄金实践,也是排错 SIA 的治本之法。
📌 验证 show eigrp topologyshow ip eigrp neighbors detail 里会看到对端标注为 "Stub Peer"。总部也因此知道不向它发 Query。

第14章 命名模式 EIGRP(Named EIGRP)

从 IOS 15.0 起,Cisco 推出命名模式(Named EIGRP)。它不再用 "router eigrp <AS>" + 全局 network 的扁平结构,而是引入地址族(Address-Family)层级,把配置组织成:

router eigrp <NAME>
 └─ address-family ipv4 unicast autonomous-system <AS>
     ├─ topology base
     │   ├─ ...
     └─ af-interface <接口/默认>
         ├─ ...
     └─ network <网段>

命名模式的优势:

  • IPv4 和 IPv6 可以共用同一个 EIGRP 进程名(不同地址族),管理更清晰。
  • 接口级配置(认证、汇总、带宽、Hello 计时器等)都集中在 af-interface 下,不用再满世界找接口
  • 配置 EIGRP for IPv6 的唯一方式(见第 17 章)。

命名模式配置实战

R1(config)# router eigrp MY-EIGRP
R1(config-router)# address-family ipv4 unicast autonomous-system 100
R1(config-router-af)# network 10.0.0.0
R1(config-router-af)# network 1.0.0.0
R1(config-router-af)# topology base
R1(config-router-af-topology)# exit-af-topology
!
R1(config-router-af)# af-interface e0/0
R1(config-router-af-interface)# authentication mode md5
R1(config-router-af-interface)# authentication key-chain EIGRP-KEY
R1(config-router-af-interface)# hello-interval 5
R1(config-router-af-interface)# hold-time 15
R1(config-router-af-interface)# exit-af-interface
R1(config-router-af)# exit-address-family
📌 经典模式 vs 命名模式 并存? 同一台路由器上,经典模式(router eigrp AS)和命名模式可以共存,但针对同一个 AS 号不行。建议新网络统一用命名模式,老网络平滑迁移(Cisco 支持配置自动转换向导)。
💡 迁移命令 eigrp upgrade-cli <AS> 能把经典模式配置自动转换为命名模式,升级时省去手动重写。

第15章 带宽控制与计时器调优

15.1 限制 EIGRP 占用的链路带宽

EIGRP 默认最多占用接口带宽的 50% 来发路由更新(避免把语音/业务流量挤垮)。在低速链路(如帧中继、卫星链路)上可以调低:

R1(config)# interface s0/0
R1(config-if)# bandwidth 512
! 先告诉 EIGRP 这条链路逻辑带宽 512kbps(影响度量计算)
R1(config-if)# ip bandwidth-percent eigrp 100 30
! EIGRP 最多用该接口带宽的 30% 发更新(经典模式语法)
! 命名模式:在 af-interface 下用 bandwidth-percent eigrp 30

15.2 Hello / Hold 计时器调优

在高速、稳定的数据中心链路,可以缩短 Hello 间隔让故障检测更快(收敛更猛);在低效链路则要拉长,减少开销。

R1(config)# interface e0/0
R1(config-if)# ip hello-interval eigrp 100 2
R1(config-if)# ip hold-time eigrp 100 6
! Hello=2秒, Hold=6秒(建议 Hold ≈ 3×Hello)
! 命名模式:af-interface 下 hello-interval 2 / hold-time 6
⚠️ Hello/Hold 不必两端一致 和 OSPF 不同,EIGRP 的 Hello/Hold 两端可以不同(各自用自己的 Hold 判对方死活)。但K 值必须两端一致,否则邻居起不来。别把这两件事搞混。

第16章 偏移列表与下一跳自我

16.1 Offset-List(偏移列表)

作用:在路由进入或离开路由器时,给度量值加一个偏移量,从而人为影响选路。比直接改接口 delay 更"精准到路由"。

! 让 R1 从 e0/1 学到的 3.3.3.0/24 度量 +10000,使其不如经 e0/0 优
R1(config)# access-list 20 permit 3.3.3.0 0.0.0.255
R1(config)# router eigrp 100
R1(config-router)# offset-list 20 in 10000 e0/1

16.2 Next-Hop-Self(下一跳自我)

问题:在路由反射/联邦或特定重分布场景,EIGRP 可能把"下一跳"保持为原始地址(而非自己的接口地址)。如果下游路由器没有到那个原始下一跳的路由,流量就黑洞了。

解决:用 next-hop-self 强制把下一跳改写成自己,保证下游可达。

R1(config)# router eigrp 100
R1(config-router)# neighbor 10.1.12.2 next-hop-self
! 向邻居 10.1.12.2 通告路由时,下一跳写为自己
! 命名模式:af-interface 下 next-hop-self 命令
📌 经典模式需先配 neighbor 经典模式里 next-hop-self 要和 neighbor 命令配合(把接口从组播变单播邻居)。命名模式直接在 af-interface 下启用即可,更方便。

第17章 EIGRP for IPv6

EIGRP 也支持 IPv6。关键技术点:

  • 必须用命名模式(经典模式不支持 IPv6 EIGRP)。
  • IPv6 EIGRP 进程默认是 shutdown 的,需要 no shutdown 激活。
  • IPv6 没有"network"概念(靠链路本地地址和接口启用),用 ipv6 eigrp <AS> 在接口下启用。
  • 组播地址变为 FF02::A(对应 IPv4 的 224.0.0.10)。

配置实战

R1(config)# ipv6 unicast-routing
R1(config)# router eigrp MY-EIGRP
R1(config-router)# address-family ipv6 unicast autonomous-system 100
R1(config-router-af)# no shutdown
R1(config-router-af)# topology base
R1(config-router-af-topology)# exit-af-topology
R1(config-router-af)# exit-address-family
!
R1(config)# interface e0/0
R1(config-if)# ipv6 eigrp 100
R1(config-if)# ipv6 address 2001:db8:12::1/64
! 在接口下 ipv6 eigrp 100 启用,无需 network 命令

验证:

R1# show ipv6 eigrp neighbors
R1# show ipv6 route eigrp
R1# show ipv6 eigrp topology
✅ IPv4/IPv6 共用进程名 命名模式的妙处:router eigrp MY-EIGRP 下可以同时有 address-family ipv4address-family ipv6一份配置管理双栈,运维幸福感拉满。

第18章 故障排查方法论

EIGRP 排错有一套"标准问诊流程",按下面顺序查,90% 的问题都能定位:

排错四步法

第①步:邻居起来了没?

R1# show ip eigrp neighbors
! 空的 → 进第②步;有但频繁翻滚(flapping) → 链路/计时器问题

第②步:直连通不通?(L1/L2/L3 基础)

R1# ping 10.1.12.2
R1# show ip interface brief
! 接口 up up?IP 同网段?没被 passive?没被 ACL 挡?

第③步:参数匹配吗?

  • AS 号一致?(show run | section eigrp
  • K 值一致?(show ip protocols 看 K 值)
  • 认证一致?(配了认证的接口密钥必须相同)
  • 被 passive-interface 误杀?(确认建邻居的接口没 passive)

第④步:路由进了拓扑表/路由表吗?

R1# show ip eigrp topology
R1# show ip route eigrp
! 有拓扑条目但没进路由表 → 被 distribute-list 过滤 / 被更好的 AD 压制

调试神器

R1# debug eigrp neighbors      ! 看邻居建立/断开
R1# debug eigrp packets        ! 看各种包收发(含认证错误)
R1# debug ip eigrp              ! 看路由计算
! 调试完务必 undebug all 关掉,避免拖慢设备

常见故障速查表

现象最可能原因排查命令
邻居表为空AS/K值不符、直连不通、被动接口、认证不符show run | s eigrp; ping; debug eigrp packets
邻居频繁翻滚链路不稳定、Hold 太短、MTU 不匹配show interface; show log
有邻居但学不到路由distribute-list 过滤、network 没覆盖、auto-summary 边界show ip eigrp topology all-links
路由不进路由表被更优 AD 协议压制、过滤列表show ip route; show ip protocols
SIA 卡死/邻居重置大面积故障、Query 收不齐、未配 Stubshow ip eigrp topology active; 配 eigrp stub
⚠️ 生产环境慎用 debug debug 会大量占用 CPU,只在排错时短暂开启,完事立刻 undebug all。繁忙设备开 debug 可能雪崩。

第19章 综合实战实验

把前面所有技术点串起来,设计一个"企业网"级拓扑,要求你独立完成配置并验证。

19.1 综合拓扑与目标

HQ-CORE EIGRP AS100 + Stub 上游 R1-Branch eigrp stub R2-Branch eigrp stub ISP-EDGE OSPF 重分布 上行链路 上行链路 到 ISP(OSPF) 重分布
图 19-1 综合实验拓扑(双分支 + 核心 + ISP 对接)

19.2 实战任务清单

  • 任务1 在 HQ-CORE、R1、R2 上用命名模式启用 EIGRP AS 100,连通所有内网。
  • 任务2 把 R1、R2 配置为 eigrp stub connected(防 SIA)。
  • 任务3 在两分支上行接口启用 MD5 认证
  • 任务4 在 HQ-CORE 上把分支的网段做手动汇总发给 ISP 侧。
  • 任务5 在 HQ-CORE 上把 OSPF(模拟 ISP) 重分布进 EIGRP(记得给 metric),让分支能学到外部路由。
  • 任务6offset-list / delay 让其中一条上行成为主用、另一条备用(非等价负载均衡可加分)。
  • 任务7 配置 默认路由注入,使分支能通过 HQ 访问 ISP。
  • 任务8 全程用 show ip eigrp neighbors/topologyping 验证,并排查至少 2 个"故意埋的坑"(如一方 AS 错、一方认证漏配)。

参考骨架(HQ-CORE 命名模式 + 重分布)

HQ-CORE(config)# router eigrp CAMPUS
HQ-CORE(config-router)# address-family ipv4 unicast autonomous-system 100
HQ-CORE(config-router-af)# network 10.0.0.0
HQ-CORE(config-router-af)# topology base
HQ-CORE(config-router-af-topology)# exit-af-topology
HQ-CORE(config-router-af)# af-interface e0/0
HQ-CORE(config-router-af-interface)# authentication mode md5
HQ-CORE(config-router-af-interface)# authentication key-chain EIGRP-KEY
HQ-CORE(config-router-af-interface)# exit-af-interface
! 重分布 OSPF 进 EIGRP(必须给度量)
HQ-CORE(config-router-af)# topology base
HQ-CORE(config-router-af-topology)# redistribute ospf 1 metric 100000 100 255 1 1500
HQ-CORE(config-router-af-topology)# exit-af-topology
HQ-CORE(config-router-af)# exit-address-family

验收标准(Checklist)

  • ✅ R1、R2 的 show ip eigrp neighbors 各自只看到 HQ-CORE,且对端标注为 Stub Peer。
  • ✅ R1 能 ping 通 R2 的内网地址,也能 ping 通 ISP 侧的模拟地址。
  • ✅ HQ-CORE 的路由表里能看到 OSPF 外部路由(标记为 D EX / D*EX)。
  • ✅ 分支路由器的 show ip route 里出现 0.0.0.0/0 默认路由。
  • ✅ 手动 shutdown 主用上行接口,流量秒切备用(丢包 ≤ 1–2 个或零丢包)。
  • ✅ 用 show ip eigrp topology active 确认无路由卡在 Active 状态(验证 Stub 生效)。
💡 综合实验的"灵魂" 这个实验把命名模式 + Stub + 认证 + 汇总 + 重分布 + 默认路由 + 负载均衡全部串了起来。能独立做对、做通、做稳,你就已经具备中小型 EIGRP 网络的部署与排错能力,足以应付绝大多数面试与生产场景。做到这里,你已经从"会用命令"跨入"懂协议"的门槛。

附录:命令速查 / 术语表 / RFC

A.1 高频 show 命令速查

命令用途
show ip eigrp neighbors查看邻居表(建邻居第一招)
show ip eigrp topology [all-links]查看拓扑表(含/不含所有路径)
show ip eigrp topology active查看陷在 Active 状态的路由(排 SIA)
show ip route eigrp查看 EIGRP 路由表中的条目
show ip protocols查看 EIGRP 进程参数(AS、K 值、网络、被动接口)
show ip eigrp interfaces查看参与 EIGRP 的接口及统计
show ip eigrp traffic查看 EIGRP 包收发统计
show running-config | section eigrp查看 EIGRP 相关配置
show ipv6 eigrp neighbors/topology/routeIPv6 EIGRP 对应命令

A.2 配置命令速查(经典模式)

需求命令
启用进程router eigrp <AS>
关闭自动汇总no auto-summary
宣告网络network <主类 / 反掩码>
被动接口passive-interface <接口>
手动汇总ip summary-address eigrp <AS> <网络> <掩码>
等价路径数maximum-paths <n>
非等价负载variance <n>
MD5 认证接口下 ip authentication mode eigrp <AS> md5 + ip authentication key-chain
路由过滤distribute-list <acl/prefix> in/out <接口>
重分布redistribute <协议> metric <bw> <dly> <rel> <load> <mtu>
Stubeigrp stub [connected|static|summary|receive-only]
计时器ip hello-interval eigrp <AS> <s> / ip hold-time eigrp <AS> <s>
带宽占用ip bandwidth-percent eigrp <AS> <%>
偏移列表offset-list <acl> in/out <值> <接口>

A.3 核心术语表

术语全称 / 含义
DUALDiffusing Update Algorithm,弥散更新算法,EIGRP 无环收敛核心
FDFeasible Distance,本机到目标的最小度量(最优路径度量)
AD / RDAdvertised / Reported Distance,邻居到目标的通告距离
Successor后继,当前最优路由的下一跳
FSFeasible Successor,可行后继,满足 FC 的备份下一跳
FCFeasible Condition,AD < FD,保证无环的入选条件
RTPReliable Transport Protocol,EIGRP 自带的可靠传输机制
SIAStuck in Active,路由卡在 Active 超时被重置邻居
AD(管理距离)Administrative Distance,路由来源可信度,EIGRP 内部=90 / 外部=170
K 值EIGRP 度量权重参数 K1–K5,默认只 K1/K3 有效
Stub末梢路由器,不中转流量、不被 Query,防 SIA

A.4 度量计算对照(快速估算)

接口类型带宽(kbps)10⁷/带宽默认延迟(µs)延迟/10单跳度量(×256)
10Mbps (E)1000010001000100256×1100 = 281600
100Mbps (FE)10000010010010256×110 = 28160
1Gbps (GE)100000010101256×11 = 2816
10Gbps100000001101256×2 = 512

注:以上为"单跳、仅带宽+延迟、默认 K 值"的近似度量,便于快速判断路径优劣。延迟项含 IOS 默认接口延迟,实际以 show interface 为准。

A.5 标准与参考

  • RFC 7868:EIGRP 正式标准化文档(2013 年),想深挖协议细节必读。
  • Cisco EIGRP Configuration Guide:各 IOS 版本的官方配置手册,命名模式语法以官方为准。
  • Cisco Press - EIGRP Network Design Solutions:经典权威书籍(已绝版但值得找)。

A.6 学习路径建议

  1. 先在本手册第 4 章把基础实验做通,建立"邻居 → 拓扑 → 路由"的直觉。
  2. 啃下第 3 章 DUAL 与度量,这是分水岭。
  3. 逐个攻破第 6–17 章特性,每个都动手验证一遍。
  4. 挑战第 19 章综合实验,做到"闭眼能配、出事能排"。
  5. 延伸到更广:EIGRP 与 OSPF 互重分布、命名模式自动化、SD-WAN 时代的 EIGRP 角色。
✅ 写在最后 EIGRP 是个"把简单和聪明结合得恰到好处"的协议。它不像 OSPF 那样概念繁复,也不像 RIP 那样粗糙。理解了 DUAL 与度量,你会发现它的每一次快速收敛都不是魔法,而是数学的必然。祝你实验顺利,网络永远全通!🌐