3468 字
17 分钟
路由协议
概述
路由协议是网络设备(如路由器)之间 交换路由信息、计算最优路径并维护路由表 的关键机制。了解其分类、原理和应用场景对网络设计和管理至关重要。
主要分类
路由协议主要根据 作用范围 和 算法类型 进行分类:
1. 按作用范围分类
- 内部网关协议 (IGP, Interior Gateway Protocol): 用于在 单一自治系统内部 的路由。AS 是一个统一管理的网络域(如一个公司网络、一个 ISP 网络)。
- 常见协议: RIP, OSPF, IS-IS, EIGRP (思科专有)。
- 外部网关协议 (EGP, Exterior Gateway Protocol): 用于 在不同自治系统之间 交换路由信息,实现互联网的全局连通。
- 唯一广泛使用的协议: BGP (Border Gateway Protocol)。
2. 按算法原理分类
-
距离向量协议 (Distance Vector - DV):
- 原理: 每个路由器根据邻居发来的路由信息(包含目标网络及距离度量值),添加自身到邻居的距离,构建自己的路由表,仅将整个路由表或变化部分定期广播或触发更新给所有邻居。算法核心是 Bellman-Ford。
- 特点: 简单,周期性更新;收敛相对较慢(需要多次传递);存在环路风险(使用跳数限制、水平分割等机制缓解);路由信息基于“传闻”。
- 代表协议: RIP (RIP v1/v2), RIGRP (原始)。
-
链路状态协议 (Link State - LS):
- 原理: 每个路由器发现、通告其所有直连链路的状态(包括链路开销、邻居信息等)给域内所有其他路由器(通过洪泛机制)。每个路由器都构建一致的链路状态数据库 (LSDB)。基于该全局拓扑数据库,每个路由器使用 Dijkstra (SPF) 算法独立计算到所有目的地的最短路径树 (SPT),并形成路由表。
- 特点: 对网络有全局视图(一致性 LSDB);收敛快(触发更新,快速洪泛);扩展性较好(可分层);配置相对复杂;需要更多 CPU 和内存计算 SPT。
- 代表协议: OSPF (Open Shortest Path First), IS-IS (Intermediate System to Intermediate System)。
-
路径向量协议 (Path Vector - PV):
- 原理: 本质上是距离向量的高级扩展。除了宣告可达网络和距离度量 (BGP 叫属性) 外,更关键的是宣告到达目标网络的完整 AS 路径(AS Path 属性)。路由器根据策略(如选择最短 AS-Path、最优出口点等)而不仅仅是距离来决定最佳路径。设计核心是策略驱动和防止环路(通过检测 AS-Path 中的自身 AS)。
- 特点: 面向 AS 间的路由;极其灵活,基于策略而非单纯最短路径;收敛速度取决于策略配置;设计用于超大规模、多归属的网络。
- 代表协议: BGP (Border Gateway Protocol)。
-
混合协议 (Hybrid):
- 原理: 结合了距离向量和链路状态协议的特点。
- 代表协议: EIGRP (Enhanced Interior Gateway Routing Protocol - 思科专有)。
- 像距离向量一样:路由器仅与邻居交换信息(不洪泛到全区域)。
- 像链路状态一样:维护拓扑表 (类似 LSDB),并基于扩散更新算法 (DUAL) 计算无环路径;使用触发更新而非严格周期更新。
详细协议说明、原理与应用场景
1. RIP (Routing Information Protocol)
- 类型: IGP,距离向量 (DV)。
- 原理:
- 度量值: 跳数 (Hop Count)。最大有效跳数为 15 跳(16 跳表示不可达)。
- 每 30 秒广播一次完整路由表(RIP v1 广播 / RIP v2 组播)。
- 使用 水平分割 (Split Horizon)、 毒性逆转 (Poison Reverse)、 跳数限制 (Hop Count Limit) 来防止环路和加速收敛。
- 版本:
- RIP v1: Classful 路由(不支持子网掩码通告)。无认证。
- RIP v2: Classless 路由(支持子网掩码通告 / CIDR)。支持简单密码认证。
- RIPng (RIP next generation): 支持 IPv6。
- 优点: 配置简单,实现成本低。
- 缺点: 收敛慢 (依赖周期性更新); 规模限制大 (15 跳);不适合复杂或不稳定网络;负载均衡基于跳数而非实际带宽。
- 应用场景:
- 小型静态网络: 家庭网络、小型办公室。
- 要求极简配置的环境。
- 作为其他协议的简单备份。
2. OSPF (Open Shortest Path First)
- 类型: IGP,链路状态 (LS)。
- 原理:
- 分层设计: 将 AS 划分为多个 Area (区域),减小 LSDB 规模和控制流量传播范围。Area 0 是骨干区域 (Backbone Area),其他非骨干区域必须直接连接到 Area 0。
- 区域类型: 支持 Stub、Totally Stubby、NSSA 等特殊区域减少 LSA(链路状态通告)类型。
- 路由器角色: DR (指定路由器)、BDR (备份指定路由器) 用于在广播多路访问网络 (如以太网) 中减少 LSA 洪泛。
- 度量值: Cost(开销),基于接口带宽(Cost = Reference-BW / Interface-BW,默认参考带宽为 100 Mbps)。手动可配置。
- 更新: 使用 触发更新 (链路变化时立即洪泛 LSA)。支持 LSA 老化机制(每 30 分钟泛洪一次以防丢失)。
- 算法: 运行 Dijkstra 最短路径优先 (SPF) 算法在本地计算到达所有目标的最优路径树 (SPT)。
- 版本:
- OSPFv2: 用于 IPv4。
- OSPFv3: 基于 OSPFv2 原理,支持 IPv6 (使用链路本地地址建立邻居),具有不同的 LSA 类型。
- 优点: 快速收敛 ; 支持大型网络 (通过分区域); 支持 VLSM/CIDR; 支持等价路径负载均衡 (基于开销); 提供身份验证和加密 (MD5, SHA, IPSec)。开放标准。
- 缺点: 配置相对复杂;需要更多 CPU 和内存资源(存储 LSDB,运行 SPF);广播域设计需注意 DR/BDR。
- 应用场景:
- 大中型企业网络: 园区网、企业分支互联。
- 要求高性能、高可靠性和快速收敛的网络。
- 需要分层设计的复杂拓扑。
- IP 骨干网 (常与 IS-IS 竞争)。
3. EIGRP (Enhanced Interior Gateway Routing Protocol)
- 类型: IGP,混合协议(思科专有协议,但已部分开放标准)。
- 原理:
- 邻居发现和维护: 使用组播 (224.0.0.10) 建立邻居关系(不需要在同一广播域)。使用 Hello 包。
- 使用三个表:
- 邻居表 (Neighbor Table): 跟踪邻居关系。
- 拓扑表 (Topology Table): 存储所有邻居通告的路由信息及计算出的备用路径 (Successor, Feasible Successor)。
- 路由表 (Routing Table): 从拓扑表中选择最好的路径 (后继路径) 放入路由表。
- 度量值 (复合度量 - Metric): 基于 带宽、延迟、可靠性、负载、MTU(默认仅使用带宽和延迟)。带宽越高、延迟越小越好。
- 算法: 扩散更新算法 (DUAL): 在拓扑变化时,如果存在已计算好的可行后继路由 (Feasible Successor,满足可行性条件),则能 瞬间收敛 (秒级)。若无可行后继,则启动向邻居查询的过程。
- 更新: 部分、有界更新 (Partial Bounded Update),只向需要知道变化的邻居发送相关更新。
- 版本:
- EIGRP for IPv4。
- EIGRP for IPv6。
- 优点: 极快收敛 (若有可行后继); 低带宽占用 (部分更新); 支持不等代价路径负载均衡 ; 相对容易配置 (相比 OSPF)。
- 缺点: 思科专有 (虽已部分开放标准,但非思科设备支持仍不普遍)。较封闭的生态。
- 应用场景:
- 纯思科设备构成的网络。
- 需要超快收敛和高效更新的环境。
- 混合型网络拓扑。
4. IS-IS (Intermediate System to Intermediate System)
- 类型: IGP,链路状态 (LS)。源自 OSI CLNP 协议栈,后被扩展支持 IP (Integrated/Dual IS-IS)。
- 原理:
- 分层设计: 类似于 OSPF,也分为 Level (层级):Level 1 (L1) 路由器在同一区域内部通信;Level 2 (L2) 路由器负责区域间路由(相当于 OSPF 的骨干区域);Level 1-2 (L1/L2) 路由器连接 L1 和 L2。
- 地址结构: 使用 NET (Network Entity Title) NSAP 地址 标识节点。
- 链路状态通告: 称为 LSP (Link State PDU/Packet)。通过泛洪传递。
- 度量值: 标准度量 (类似 OSPF cost,默认各链路 cost=10)。支持更多 TE 扩展度量(延迟、损耗等)。
- 算法: 与 OSPF 相同,使用 Dijkstra (SPF) 计算 SPT。
- 优点: 高度可扩展和稳定 ; 支持大平面设计 (没有严格的“骨干区域”物理连接要求,L2 路由器构成骨干);TLV 结构使其非常容易扩展 ;核心协议比 OSPF 更简单(无 DR/BDR)。在 大型运营商网络 中被广泛采用。
- 缺点: 配置相对 OSPF 更不直观 (使用 NET 地址); 诊断工具不如 OSPF 丰富普及 (但随着使用增多在改善)。
- 应用场景:
- 大型服务提供商核心网络 (ISP Backbone)。
- 超大型数据中心内部网络。
- 需要极高扩展性和稳定性的网络环境。
5. BGP (Border Gateway Protocol)
- 类型: EGP,路径向量 (PV)。
- 原理:
- 基于 TCP (端口 179): 建立可靠的、面向连接的邻居(称为 BGP Peer 或 BGP Speaker)。关系分为:
- EBGP (External BGP): 运行于 不同 AS 之间 的路由器上。通常直接连接。
- IBGP (Internal BGP): 运行于 同一 AS 内部 的路由器之间。用于传递外部路由信息。
- 策略驱动: 路由决策主要基于 策略(Policy) 而非单纯最短路径。策略通过丰富的 路径属性 (Path Attributes) 应用实现。
- 关键属性:
- AS_PATH: 记录路由经过的所有 AS 号。 主要防止环路 (路由器拒绝在 AS_PATH 中包含自己 AS 号的更新)和 用于选路 (偏好短 AS_PATH)。
- NEXT_HOP: 指向到达目标网络的下一跳 IP 地址(对于 EBGP 是邻居地址;对于 IBGP 通常保持不变)。
- LOCAL_PREF: IBGP 内部使用的属性,表示 AS 内路由器对出口点的偏好(值越大越优先)。
- MED (MULTI_EXIT_DISC): 用于向相邻 AS 内的 EBGP 邻居建议优选哪个入口点(值越小越优先)。非强制性。
- Community: 用户自定义标签,便于跨路由器应用统一策略。
- BGP 最佳路径选择算法: 路由器基于多个属性(按优先级顺序,如 Weight > Local_Pref > AS_PATH Length > Origin > MED…)选择最优路径。
- 更新: 增量、触发更新 。仅传播变化部分。建立邻居时传递完整路由表。
- 基于 TCP (端口 179): 建立可靠的、面向连接的邻居(称为 BGP Peer 或 BGP Speaker)。关系分为:
- 版本:
- BGP-4: 当前核心版本,支持 CIDR。
- MP-BGP (Multiprotocol BGP): BGP-4 的扩展,支持携带多种地址族的路由信息(如 IPv4, IPv6, VPNv4, L2VPN 等)。
- 优点: 超强扩展性 (互联网的核心路由协议); 高度灵活的策略控制 (入口/出口控制、流量工程); 稳定性 (TCP 可靠连接,状态变化时仅发送增量更新)。
- 缺点: 配置管理复杂 (策略设计是关键); 收敛相对 IGP 较慢 (侧重稳定性); 缺乏对拓扑变化的直接感知 (依赖于底层 IGP)。
- 应用场景:
- 互联网路由的核心协议: AS 之间交换路由信息。
- 多宿主 (Multi-homed) 网络: 企业或 ISP 有多个上游 ISP 连接。
- 大型企业互联多个数据中心或区域网络。
- 承载 VPN 服务(如 MPLS VPN)。
- IPv6 互联网路由。
总结对比与选择建议
| 特性 | RIP | OSPF | EIGRP (思科) | IS-IS | BGP |
|---|---|---|---|---|---|
| 分类 | IGP / 距离向量 (DV) | IGP / 链路状态 (LS) | IGP / 混合 | IGP / 链路状态 (LS) | EGP / 路径向量 (PV) |
| 度量值 | 跳数 (≤15) | Cost (默认基于带宽) | 复合度量 (默认带宽+延迟) | 默认=10 (可扩展其他) | 策略 / 属性 (AS_PATH 等) |
| 收敛速度 | 慢 (依赖周期性更新) | 快 (触发更新,SPF) | 极快 (若有可行后继) | 快 (触发更新,SPF) | 相对慢 (侧重稳定性) |
| 扩展性 | 极差 (15 跳限制) | 好 (通过区域分层) | 好 | 优 (层次结构强,适合大型平面) | 超强 (互联网核心) |
| 复杂度 | 简单 | 中等偏复杂 (区域, LSA, SPF) | 中等 (思科环境) | 复杂 (NET 地址, 层级) | 极复杂 (策略设计是核心) |
| 资源消耗 | 低 | 中高 (LSDB 存储, SPF 计算) | 中 | 中高 (类似 OSPF) | 高 (维护大量路由,策略处理) |
| 应用场景 | 小型静态网络 | 大中型企业网, IP 骨干 | 纯思科网络,要求快速收敛 | 大型 ISP 核心网, 超大数据中心 | AS 间路由, 多宿主, VPN 核心 |
| 开放标准 | 是 | 是 | 思科专有(部分开放) | 是 | 是 |
选择建议:
- 小型简单网络/临时环境: RIP。
- 中型企业网络/混合厂商: OSPF(综合性能、标准化、扩展性最佳)。
- 纯思科网络/要求极快收敛: EIGRP。
- 超大型运营商/IP 核心网络/超大规模数据中心: IS-IS(或 OSPF)。
- AS 之间互联/多宿主企业网络/VPN 骨干: BGP(必备)。
理解这些协议的核心原理、优缺点和适用场景,是设计和维护高效、稳定网络的基础。实际应用中,往往需要根据具体的网络规模、业务需求、厂商策略和设备能力进行选择,并经常需要多种协议协同工作(如 IGP + BGP)。