路由协议:RIP、OSPF 与 BGP 的对比
RIP、OSPF、BGP 三大路由协议的对比,涵盖距离向量、链路状态、路径向量三种算法范式。
#type / synthesis
#tech / network
#discipline / protocols
#status / growing
[!info] related notes
路由协议:RIP、OSPF 与 BGP 的对比
为什么放在一起理解
路由协议负责决定数据包从源到目的地的最佳路径。它们可以按算法范式分为三类:距离向量、链路状态、路径向量。理解这三种范式,就理解了整个动态路由的核心逻辑。
三种算法范式
距离向量(Distance-Vector)
- 每台路由器只知道”到目标有多远、往哪个方向走”
- 周期性地把整张路由表广播给邻居
- 邻居收到后用 Bellman-Ford 算法更新自己的路由表
- 优点:实现简单、资源消耗低
- 缺点:收敛慢、可能出现路由环路(count-to-infinity 问题)
链路状态(Link-State)
- 每台路由器了解整张网络拓扑图
- 只在网络变化时泛洪 LSA(Link-State Advertisement)
- 每台路由器独立运行 Dijkstra(SPF)算法计算最短路径
- 优点:收敛快、无环路、支持分层设计
- 缺点:计算和内存开销更大
路径向量(Path-Vector)
- 类似距离向量,但传递的是完整 AS 路径而非距离值
- 通过检查 AS 路径来检测和防止环路
- 适合大规模自治系统之间的路由
- 优点:高度灵活、策略控制能力强
- 缺点:配置复杂、收敛较慢
三大协议详解
RIP(Routing Information Protocol,路由信息协议)
- 类型:距离向量
- 度量:跳数(hop count),每经过一跳 +1
- 最大跳数:15 跳(16 表示不可达)
- 算法:Bellman-Ford
- 端口:UDP 520
- 版本:RIPv1(有类)、RIPv2(无类,支持认证)、RIPng(IPv6)
- 更新周期:默认每 30 秒广播整张路由表
- 适用场景:小型网络,跳数不超过 15 的环境
- 局限:不支持 CIDR、收敛慢、规模受限
OSPF(Open Shortest Path First,开放式最短路径优先)
- 类型:链路状态
- 度量:链路开销(cost),通常基于带宽
- 算法:Dijkstra(SPF)
- 协议号:IP 协议 89(直接运行在 IP 之上,不依赖 TCP/UDP)
- 关键概念:
- Area(区域):支持分层设计,Area 0 为骨干区域
- LSA(Link-State Advertisement):链路状态通告,描述邻居和链路开销
- LSDB(Link-State Database):链路状态数据库,全网拓扑图
- DR/BDR:在多路访问网络中选举指定路由器,减少 LSA 泛洪
- 适用场景:中大型企业网络、ISP 内部
- 优势:收敛快、支持 VLSM/CIDR、支持认证
BGP(Border Gateway Protocol,边界网关协议)
- 类型:路径向量
- 度量:无统一度量,基于路径属性(path attributes)做策略选择
- 协议号:TCP 179
- 两种模式:
- eBGP:不同自治系统(AS)之间交换路由
- iBGP:同一 AS 内部同步路由信息
- 关键路径属性:
- AS_PATH:经过的 AS 列表,用于环路检测
- NEXT_HOP:下一跳 IP 地址
- LOCAL_PREF:本地优先级(iBGP)
- MED:多出口鉴别器(影响入站流量)
- 适用场景:互联网骨干、ISP 之间
- 地位:互联网唯一的域间路由协议(EGP)
对比表
| 维度 | RIP | OSPF | BGP |
|---|---|---|---|
| 算法范式 | 距离向量 | 链路状态 | 路径向量 |
| 度量标准 | 跳数(最大 15) | 链路开销(cost) | 路径属性(策略) |
| 核心算法 | Bellman-Ford | Dijkstra SPF | 路径向量 + 策略选择 |
| 运行层次 | IGP(内部) | IGP(内部) | EGP(域间) |
| 传输方式 | UDP 520 | IP 协议 89 | TCP 179 |
| 收敛速度 | 慢 | 快 | 较慢 |
| 扩展规模 | 小型网络 | 中大型网络 | 全球互联网 |
| 是否支持 VLSM | RIPv2 支持 | 支持 | 支持 |
| 认证支持 | RIPv2 支持 | 支持 | 支持(MD5) |
| 分层设计 | 不支持 | 支持(Area) | 支持(AS) |