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 勉强能用。但有个问题很头疼——收敛慢。一条链路断了,可能要等几分钟才能全网感知到。
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,最终形成完整的链路状态数据库。
4.4 BGP 协议——路径矢量,互联网的脊梁
BGP(Border Gateway Protocol)跟前面两个完全不是一个量级。它是 互联网的「交通总调度」,负责在 AS(自治系统)之间传递路由。
BGP 的几个关键特点:
- 基于策略:不是选最短路径,而是选「最符合商业策略」的路径
- 路径矢量:携带完整的 AS_PATH 属性,防止环路
- TCP 179 端口:可靠传输,增量更新
BGP 的选路原则非常复杂,有十几条规则。我挑几个最重要的:
- 优先选 Weight 最大的(Cisco 私有)
- 优先选 Local Preference 最大的
- 优先选 AS_PATH 最短的
- 优先选 MED 最小的
我记得有一次,一个客户抱怨说他们的国际专线流量总是绕路。我登录 BGP 路由器一看,发现是 Local Preference 设置错了,导致流量走了备份链路。改回来之后,延迟从 280ms 降到了 120ms。
4.5 三种动态路由协议对比
| 协议 | 类型 | 算法 | 适用范围 | 收敛速度 | 复杂度 |
|---|---|---|---|---|---|
| RIP | 距离矢量 | Bellman-Ford | 小型网络 | 慢(分钟级) | 低 |
| OSPF | 链路状态 | Dijkstra | 企业网/数据中心 | 快(秒级) | 中 |
| BGP | 路径矢量 | 基于策略 | ISP/跨AS互联 | 中等 | 高 |
4.6 路由协议核心逻辑关系图
下面这张图,是我自己总结的路由协议选型逻辑。你一看就明白什么场景该用什么协议。
4.7 实际部署中的选型建议
说了这么多理论,最后给点实在的。我这些年做过的项目,路由选型基本遵循这个原则:
- 少于 10 台路由器:静态路由就够了,简单可靠
- 10-50 台路由器:OSPF 单区域,性能足够
- 50 台以上:OSPF 多区域,或者 OSPF + BGP 混合
- 跨运营商、跨国互联:必须上 BGP
嗯,路由协议这块,说白了就是「因地制宜」。没有最好的协议,只有最合适的方案。你多动手配几次,自然就找到感觉了。