4、路由协议基础:静态路由与动态路由、RIP协议、OSPF协议、BGP协议简介

路由,说白了就是让数据包知道「下一跳该往哪走」。

我刚开始接触网络时,觉得路由就是配个下一跳地址,没什么难的。直到有一次,我在一个跨国企业的核心网里,亲眼看到一条错误的路由导致整个亚太区业务中断了四十分钟……嗯,从那以后,我对路由协议就再也不敢掉以轻心了。

4.1 静态路由 vs 动态路由

先分清楚两个大方向:静态路由 和 动态路由。

对比维度 静态路由 动态路由
配置方式 管理员手动逐条写入 路由器之间自动交换
收敛速度 极慢(需人工干预) 快(秒级或毫秒级)
适用场景 小型网络、末梢链路 大型、复杂、高可用网络
CPU/内存开销 几乎为零 较高
安全性 高(不主动通告) 需额外认证机制

静态路由的配置很简单,比如在 Cisco 设备上:

ip route 192.168.10.0 255.255.255.0 10.0.0.1

就这一条,告诉路由器:去 192.168.10.0/24 网段,下一跳是 10.0.0.1。

我的习惯: 静态路由我一般只用在出口网关或点对点链路上。内部核心网,我从来不用静态——你想想看,几十台路由器,万一某条链路断了,你得一台一台去改,累死人。

4.2 RIP 协议——距离矢量,简单但过时

RIP(Routing Information Protocol)是最早的动态路由协议之一。它的核心逻辑就一句话:跳数越少,路径越好。

RIP 的工作原理:

  • 每 30 秒广播一次完整路由表
  • 最大跳数 15,16 跳视为不可达
  • 使用 Bellman-Ford 算法计算最短路径

我在一个老旧的校园网里见过 RIP 还在跑。当时那个网络只有十几台路由器,RIP 勉强能用。但有个问题很头疼——收敛慢。一条链路断了,可能要等几分钟才能全网感知到。

避坑指南: 我曾经在一个项目中,因为 RIP 的 15 跳限制,导致一个分支节点始终无法学到总部路由。排查了半天才发现,中间经过了 16 台路由器。后来果断换成了 OSPF。

4.3 OSPF 协议——链路状态,企业级标配

OSPF(Open Shortest Path First)是目前企业网里最常用的 IGP(内部网关协议)。它跟 RIP 最大的区别是:OSPF 知道整个网络的拓扑,而 RIP 只知道下一跳是谁。

OSPF 的核心概念:

  • 区域(Area):把大网络切成小块,减少计算量
  • LSA(链路状态通告):每台路由器描述自己的直连链路
  • SPF 算法:基于 Dijkstra 算法,计算最短路径树

OSPF 的配置示例(单区域):

router ospf 1
 network 10.0.0.0 0.255.255.255 area 0

就这么两行,路由器就会开始跟邻居建立邻接关系,交换 LSA,最终形成完整的链路状态数据库。

关键点: OSPF 的收敛速度远快于 RIP。我做过测试,在 50 台路由器的网络中,OSPF 的收敛时间通常在 3-5 秒以内,而 RIP 需要 2-3 分钟。

4.4 BGP 协议——路径矢量,互联网的脊梁

BGP(Border Gateway Protocol)跟前面两个完全不是一个量级。它是 互联网的「交通总调度」,负责在 AS(自治系统)之间传递路由。

BGP 的几个关键特点:

  • 基于策略:不是选最短路径,而是选「最符合商业策略」的路径
  • 路径矢量:携带完整的 AS_PATH 属性,防止环路
  • TCP 179 端口:可靠传输,增量更新

BGP 的选路原则非常复杂,有十几条规则。我挑几个最重要的:

  1. 优先选 Weight 最大的(Cisco 私有)
  2. 优先选 Local Preference 最大的
  3. 优先选 AS_PATH 最短的
  4. 优先选 MED 最小的

我记得有一次,一个客户抱怨说他们的国际专线流量总是绕路。我登录 BGP 路由器一看,发现是 Local Preference 设置错了,导致流量走了备份链路。改回来之后,延迟从 280ms 降到了 120ms。

重要提醒: BGP 配置错误可能导致全球路由泄漏。2019 年就发生过一起因为 BGP 配置失误,导致整个互联网部分区域断连的事件。所以,生产环境改 BGP 配置,一定要走变更流程,最好有 peer review。

4.5 三种动态路由协议对比

协议 类型 算法 适用范围 收敛速度 复杂度
RIP 距离矢量 Bellman-Ford 小型网络 慢(分钟级) 低
OSPF 链路状态 Dijkstra 企业网/数据中心 快(秒级) 中
BGP 路径矢量 基于策略 ISP/跨AS互联 中等 高

4.6 路由协议核心逻辑关系图

下面这张图,是我自己总结的路由协议选型逻辑。你一看就明白什么场景该用什么协议。

路由协议选型逻辑图 路由协议选型逻辑 路由协议 静态路由 动态路由 IGP(内部网关) EGP(外部网关) RIP(距离矢量) OSPF(链路状态) BGP(路径矢量) 说明:小型网络用静态或RIP,企业网首选OSPF,跨AS互联必须用BGP 实际部署中,OSPF + BGP 的组合是最常见的核心网架构

4.7 实际部署中的选型建议

说了这么多理论,最后给点实在的。我这些年做过的项目,路由选型基本遵循这个原则:

  • 少于 10 台路由器:静态路由就够了,简单可靠
  • 10-50 台路由器:OSPF 单区域,性能足够
  • 50 台以上:OSPF 多区域,或者 OSPF + BGP 混合
  • 跨运营商、跨国互联:必须上 BGP
一个小技巧: 我习惯在 OSPF 的骨干区域(Area 0)里只放核心交换机,边缘设备放在其他区域。这样即使某个区域出了问题,也不会影响全网。

嗯,路由协议这块,说白了就是「因地制宜」。没有最好的协议,只有最合适的方案。你多动手配几次,自然就找到感觉了。