第5章:网络层——控制平面(The Network Layer: Control Plane)
一、导读
5.1 本章学习目标
本章讲解网络层的控制平面——路由算法和路由协议。路由算法决定分组从源到目的的路径,路由协议在路由器之间交换路由信息。
本章的核心学习目标包括:
- 掌握路由算法:链路状态(Dijkstra)和距离向量(Bellman-Ford)
- 理解 OSPF:自治系统内部的路由协议
- 掌握 BGP:自治系统之间的路由协议
- 理解 SDN:控制平面与数据平面分离的新范式
5.2 为什么控制平面如此重要
没有路由算法,分组就无法找到从源到目的的路径。路由协议是互联网的"神经系统",决定了整个网络的运行。
二、核心概念详解
2.1 路由算法分类
路由算法分为两大类:
- 链路状态(Link State):每个路由器知道整个网络的拓扑和代价
- 距离向量(Distance Vector):每个路由器只知道邻居的信息
2.2 链路状态路由(Dijkstra 算法)
Dijkstra 算法计算从源到所有目的的最短路径:
初始化:D(s) = 0, D(v) = ∞ (v ≠ s)
重复:
1. 找到未访问的最小 D(v) 的节点 u
2. 标记 u 为已访问
3. 更新 u 的邻居 v 的 D(v):
D(v) = min(D(v), D(u) + c(u,v))2.3 距离向量路由(Bellman-Ford 算法)
Bellman-Ford 算法通过迭代更新距离向量:
Dx(y) = min{c(x,v) + Dv(y)} for all neighbors v每个路由器定期与邻居交换距离向量,直到收敛。
2.4 OSPF(开放最短路径优先)
OSPF 是自治系统内部的链路状态路由协议:
- 使用 Dijkstra 算法
- 支持层次化区域(Area)
- 支持多路径(相同代价)
- 支持认证
2.5 BGP(边界网关协议)
BGP 是自治系统之间的路由协议,是互联网的路由基石:
- eBGP:不同 AS 之间的 BGP
- iBGP:同一 AS 内部的 BGP
BGP 的属性:
- AS-PATH:经过的 AS 列表
- NEXT-HOP:下一跳 IP
- LOCAL-PREF:本地优先级
2.6 SDN(软件定义网络)
SDN 将控制平面与数据平面分离:
- 数据平面:交换机只负责转发
- 控制平面:控制器决定路由规则
┌──────────────┐
│ 控制器 │ ← 控制平面
└──────┬───────┘
│
┌──────────┼──────────┐
↓ ↓ ↓
┌───────┐ ┌───────┐ ┌───────┐
│交换机1 │ │交换机2 │ │交换机3 │ ← 数据平面
└───────┘ └───────┘ └───────┘三、重要知识点
3.1 路由与转发的区别
- 路由:决定分组的路径(控制平面)
- 转发:将分组从输入端口移动到输出端口(数据平面)
3.2 自治系统(AS)
自治系统是一组在统一管理下的路由器。每个 AS 有一个唯一的 AS 号。
3.3 路由汇聚
路由汇聚将多个路由表项合并为一个,减少路由表大小。
四、常见误区与难点
4.1 误区一:"最短路径就是最快路径"
最短路径是基于代价的,代价可以是延迟、带宽、费用等。不同路由协议使用不同的代价度量。
4.2 误区二:"BGP 使用最短路径"
BGP 的策略路由可能选择非最短路径,因为需要考虑商业关系、策略偏好等。
4.3 难点:理解 BGP 的选路规则
BGP 的选路规则复杂,需要理解 LOCAL-PREF、AS-PATH、MED 等属性的优先级。
五、实践应用
5.1 使用 show ip route 查看路由表
bash
# Cisco 路由器
show ip route
# Linux
ip route show5.2 使用 whois 查询 AS 信息
bash
whois AS15169 # Google 的 AS 号5.3 使用 looking glass 查看 BGP 路由
Looking Glass 是公开的 BGP 路由查询工具。
六、本章小结
第5章讲解了网络层的控制平面:
链路状态路由 使用 Dijkstra 算法
距离向量路由 使用 Bellman-Ford 算法
OSPF 是自治系统内部的链路状态协议
BGP 是自治系统之间的路径向量协议
SDN 将控制平面与数据平面分离
后续章节将讲解链路层协议。