05

链路层

局域网和数据中心网络

阅读量:2 · 预计 4 分钟读完

差错检测以太网交换机VLANMPLS数据中心
阅读进度12%

第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 show

5.2 使用 whois 查询 AS 信息

bash
whois AS15169  # Google 的 AS 号

5.3 使用 looking glass 查看 BGP 路由

Looking Glass 是公开的 BGP 路由查询工具。


六、本章小结

第5章讲解了网络层的控制平面:

链路状态路由 使用 Dijkstra 算法

距离向量路由 使用 Bellman-Ford 算法

OSPF 是自治系统内部的链路状态协议

BGP 是自治系统之间的路径向量协议

SDN 将控制平面与数据平面分离

后续章节将讲解链路层协议。