【网络体系搭建】V5:IGP路由体系——OSPF和EIGRP
1. 为什么需要动态路由协议
静态路由适合规模较小、拓扑稳定的网络,但随着网络扩大,会出现:
- 路由数量增加,人工配置成本高
- 拓扑变化后需要人工调整
- 多路径环境难以自动重新计算最优路径
动态路由协议的核心作用:
1 | 发现邻居 |
IGP(Interior Gateway Protocol)主要用于一个自治系统内部。
常见:
1 | OSPF |
2. OSPF Neighbor、Hello 与 Router ID
OSPF 直接封装在 IP 中:
1 | Ethernet |
不使用 TCP/UDP。
Hello
Hello 用于:
- 发现 OSPF Neighbor
- 维护 Neighbor Relationship
- 携带 DR/BDR 等相关信息
典型 Ethernet Broadcast / Point-to-Point:
1 | Hello Interval = 10s |
邻居已经进入 Full 后仍然持续发送 Hello。
如果接口仍 Up,但持续收不到有效 Hello:
1 | Dead Interval 到期 |
如果物理接口直接 Down:
1 | Interface Down |
Router ID
Router ID 是 OSPF Router 的 32-bit 身份标识。
Cisco 常见选择逻辑:
1 | 1. 手工 router-id |
Router ID 不等于“数据包转发地址”。
3. OSPF Neighbor State、DR/BDR 与 LSDB 同步
主要状态:
1 | Down |
含义:
1 | Init |
DBD / LSR / LSU / LSAck
1 | DBD |
Broadcast Network 中的 DR/BDR
选举规则:
1 | 1. Interface Priority 越高越优 |
DR/BDR:
1 | DR = Designated Router |
DROther:
1 | DROther ↔ DR = Full |
DR/BDR 是:
1 | 每个 Multiaccess Segment 独立选举 |
不是:
1 | 每个 Area 一个 DR/BDR |
DR/BDR 不抢占:
1 | 现有 DR = R1 |
4. LSA、LSDB、SPF、RIB 与 FIB
OSPF 核心链:
1 | Neighbor / Adjacency |
LSA
LSA(Link-State Advertisement)是拓扑信息单位。
LSDB
LSDB:
1 | Link-State Database |
保存本 Area 的链路状态拓扑信息。
同一个 Area 内 Router 通过 LSA Flooding 获得相应拓扑信息。
SPF
每台 Router 根据自己的 LSDB 独立运行 SPF。
即使 LSDB 相同:
1 | R1 以自己为根跑 SPF |
因此最终 Routing Table 可以不同。
RIB
RIB:
1 | Routing Information Base |
控制平面的路由数据库。
典型查看:
1 | show ip route |
FIB
FIB:
1 | Forwarding Information Base |
是为数据平面快速转发准备的转发结构。
CEF 可概念化为:
1 | FIB |
完整逻辑:
1 | LSDB |
ARP 与 Adjacency 不相同:
1 | ARP: |
5. OSPF Cost、最短路径与 ECMP
OSPF 最终根据 Cost 进行路径选择。
自动 Cost:
1 | Cost = Reference Bandwidth / Interface Bandwidth |
经典 Cisco 默认:
1 | Reference Bandwidth = 100 Mbps |
因此:
1 | 100M → Cost 1 |
无法区分现代高速链路。
可以统一调整 Reference Bandwidth,例如:
1 | router ospf 1 |
单位通常为 Mbps:
1 | 100000 Mbps = 100 Gbps |
整个 OSPF Domain 应保持一致。
也可以直接修改接口 Cost:
1 | interface Ethernet0/0 |
Path Cost
路径 Cost 是沿路径相关出接口 Cost 的累加:
1 | R1 → R2 = 10 |
OSPF 选择更低 Cost。
ECMP
ECMP:
1 | Equal-Cost Multi-Path |
如果:
1 | Path A Cost = 30 |
在设备最大路径数量等条件允许时,可以同时安装。
如果:
1 | Path A = 30 |
则不再是 ECMP。
现代设备通常使用 Flow-Based Hashing:
1 | Flow |
而不是简单逐包轮流发送。
对比 EtherChannel:
1 | EtherChannel: |
6. OSPF Area、Area 0 与 ABR
单 Area 过大可能导致:
1 | LSA Flooding 范围大 |
因此 OSPF 可以划分多个 Area。
Area 0
1 | Area 0 = Backbone Area |
标准多区域设计:
1 | Area 10 |
非骨干 Area 原则上需要连接 Backbone Area。
ABR
ABR:
1 | Area Border Router |
同时连接多个 Area。
例如:
1 | Area 10 —— R3 —— Area 0 |
ABR 按 Area 分别维护 LSDB:
1 | Area 10 LSDB |
不会把所有 Area 的详细拓扑混成一个 LSDB。
Area 10 内部发生变化:
1 | Area 10 内 LSA Flooding |
其他 Area 不需要知道:
1 | Area 10 内部具体哪根链路断了 |
但需要知道:
1 | Prefix |
因为这些信息会影响其他 Area 的选路。
OSPFv2 中区域间 Prefix 信息会涉及 Type 3 Summary LSA。
7. Default Route 与 OSPF 故障收敛
出口 Router:
1 | R4 → ISP |
如果 R4 自己存在:
1 | 0.0.0.0/0 → ISP |
可以:
1 | router ospf 1 |
向 OSPF Domain 注入默认路由。
普通:
1 | default-information originate |
通常要求本机 RIB 已存在默认路由。
而:
1 | default-information originate always |
即使本机没有默认路由,也仍然向 OSPF 发布:
1 | 0.0.0.0/0 |
因此可能产生黑洞风险。
数据转发
例如:
1 | R1 → R2 → R3 → R4 → ISP |
R1:
1 | 8.8.8.8 |
R2:
1 | 8.8.8.8 |
逐跳独立转发。
LSA Flooding 时不会简单地每经过一个 Router 就把 LSA 中的“下一跳”改成本机。
下一跳是本地 Router 根据 OSPF 拓扑计算得到的本地转发结果。
故障收敛
1 | 故障 |
8. BFD
BFD:
1 | Bidirectional Forwarding Detection |
核心职责:
1 | 快速检测转发路径是否存活 |
它不负责:
1 | 计算 OSPF 路由 |
BFD 检测故障:
1 | BFD Down |
BFD 可以服务:
1 | OSPF |
BFD 不取代 OSPF Hello。
1 | OSPF Hello: |
核心:
1 | BFD 负责快速发现故障 |
9. EIGRP:Metric、DUAL 与备用路径
EIGRP 与 OSPF 的核心思路不同。
OSPF:
1 | LSA |
EIGRP:
1 | Neighbor |
默认 K Values
经典 EIGRP 默认:
1 | K1 = 1 |
默认 Metric 主要考虑:
1 | K1 → Bandwidth |
即:
1 | Minimum Bandwidth |
Bandwidth:
1 | 路径相关接口 bandwidth 参数 |
Delay:
1 | 沿路径相关 Delay |
注意:
1 | speed |
bandwidth 通常不直接限制接口物理速率。
RD / FD / Successor
RD:
1 | Reported Distance |
表示:
1 | 邻居告诉我: |
FD:
1 | Feasible Distance |
表示本 Router 经某路径到目标的总 Metric。
Successor:
1 | 当前到目标 Prefix 的最佳下一跳 Router |
Feasible Successor
FS:
1 | Feasible Successor |
是预先确认满足无环条件的备用下一跳。
Feasibility Condition:
1 | RD(candidate) < FD(successor) |
满足:
1 | → 可以成为 Feasible Successor |
Successor 故障且存在 FS:
1 | Successor Down |
不存在 FS:
1 | Successor Down |
EIGRP 中:
1 | Passive |
FS 不等于简单的“第二优路径”。
必须满足:
1 | RD(candidate) < FD(successor) |
10. 配置、Show 与故障排查
OSPF 基础配置
1 | router ospf 1 |
Wildcard:
1 | 0 = 必须匹配 |
例如:
1 | /30 |
OSPF network 命令本质:
1 | 匹配本机 Interface IP |
终端 LAN 可以:
1 | router ospf 1 |
使 Prefix 仍可发布,但不在该接口建立 OSPF Neighbor。
OSPF Cost
1 | interface Ethernet0/0 |
Reference Bandwidth:
1 | router ospf 1 |
EIGRP 基础配置示例
1 | router eigrp 100 |
具体 named/classic mode 等配置形式视 IOS/平台而定。
OSPF 验证
1 | show ip ospf neighbor |
EIGRP 验证
1 | show ip eigrp neighbors |
通用接口检查
1 | show ip interface brief |
连通性验证
1 | ping <destination> |
OSPF 常见排障逻辑
1 | 1. Interface 是否 Up? |
不要因为:
1 | R1# show ip ospf neighbor |
就判断:
1 | “全网 OSPF 正常” |
OSPF Neighbor 是本地链路上的关系。
R1 与 R2 Full:
1 | 只能证明 R1 ↔ R2 这一邻接正常 |
不能证明:
1 | R2 ↔ R4 |
全部正常。
V5 最终核心链
OSPF:
1 | Hello |
多区域:
1 | Area |
故障:
1 | Failure |
BFD:
1 | Fast Failure Detection |
EIGRP:
1 | Neighbor |
Feasibility Condition:
1 | RD(candidate) < FD(successor) |
一句话总结:
OSPF 通过 LSA 建立拓扑视图,再由 SPF 根据 Cost 计算最短路径;EIGRP 通过邻居通告和 DUAL 选择 Successor,并利用 Feasible Success



