SDN 的基本概念
网络层的两件事——路由选择与分组转发——可以抽象成两个平面:转发属于数据平面,路由选择属于控制平面。传统路由器两个平面都有;SDN 把控制平面从每台路由器里拿出来,集中到一个远程控制器上,路由器只剩”查表、转发”。
本页 2 道错题,都卡在 SDN 改变的是什么。 SDN 改变的是网络的体系结构(控制逻辑放在哪里),不是物理网络;OpenFlow 是控制器与交换机之间的接口协议,不是新的路由协议。SDN 从 2022 年起进入真题(南向接口)。
机制
数据平面与控制平面
网络层的主要任务是转发和路由选择。可以将网络层抽象地划分为数据平面(也称转发层面)和控制平面:转发是数据平面实现的功能,而路由选择是控制平面实现的功能(两个平面在路由器中的对应见 4.1.2)。
传统网络中的路由器既有转发表,又有路由选择软件,即既有数据平面,又有控制平面。每台路由器各自运行路由选择协议、与相邻路由器交换路由信息、自己算出路由表——控制是分布式的。
SDN 的结构
软件定义网络(Software Defined Network,SDN)采用集中式的控制平面和分布式的数据平面,两个平面相互分离,控制平面利用控制-数据接口对数据平面上的路由器进行集中式控制,方便软件来控制网络。
flowchart TB subgraph CP["控制平面"] C["远程控制器<br/>(逻辑上一个,可由多个服务器组成)<br/>掌握各主机和整个网络的状态,为每个分组计算最佳路由"] end subgraph DP["数据平面"] R1["路由器<br/>(流表)"] R2["路由器<br/>(流表)"] R3["路由器<br/>(流表)"] end C -- "OpenFlow 下发流表" --> R1 C -- "OpenFlow 下发流表" --> R2 C -- "OpenFlow 下发流表" --> R3 R1 --- R2 --- R3
在 SDN 结构中,路由器都变得简单了,它的路由选择软件都不需要了,因此路由器之间不再相互交换路由信息。在网络的控制平面有一个逻辑上的远程控制器(可由多个服务器组成),远程控制器掌握各主机和整个网络的状态,为每个分组计算出最佳路由,通过 OpenFlow 协议(或其他途径)将转发表(在 SDN 中称为流表)下发给路由器。路由器的工作很单纯,即收到分组、查找转发表、转发分组。完成这种”匹配 + 动作”的设备通常也称 OpenFlow 交换机。
这样,网络又变成集中控制的,而本来互联网是分布式的。SDN 并非要把整个互联网都改造成集中控制模式,这是不现实的;然而,在某些具体条件下,特别是像一些大型的数据中心之间的广域网,使用 SDN 模式来建造,就可使网络的运行效率更高。
三种接口
SDN 的可编程性通过为开发者提供强大的编程接口来实现,接口按”方向”命名(SDN 南向接口的定义 2022 年考过):
| 接口 | 连接的两端 | 作用 |
|---|---|---|
| 北向接口 | 控制器 ↔ 上层应用的开发者 | 提供一系列丰富的 API,开发者可以设计自己的应用,而不必关心底层的硬件细节 |
| 南向接口 | 控制器 ↔ 转发设备 | 建立双向会话;通过不同的南向接口协议(如 OpenFlow),控制器可兼容不同的硬件设备,下发流表走的就是南向接口 |
| 东西向接口 | 控制器集群内部的控制器之间 | 增强整个控制平面的可靠性和可拓展性 |
记法:把控制器画在中间,应用在上(北),交换机在下(南),同级的控制器在左右(东西)。
优点与问题
SDN 的优点:
- 全局集中式控制和分布式高速转发,既利于控制平面的全局优化,又利于高性能的网络转发。
- 灵活可编程与性能的平衡:控制和转发功能分离后,网络可以由专有的自动化工具以编程方式配置。
- 降低成本:控制和数据平面分离后,尤其是在使用开放的接口协议后,网络设备的制造与功能软件的开发相分离,从而有效降低了成本。
SDN 的问题:
- 安全风险:集中管理容易受攻击,若控制器崩溃,则整个网络会受到影响。
- 瓶颈问题:原本分布式的控制平面集中化后,随着网络规模扩大,控制器可能成为网络性能的瓶颈。
边界
错题复盘:OpenFlow 是控制平面与数据平面之间的接口协议,不是路由协议
王道 4.1.6 第 17 题:下列各种描述中,( )不是软件定义网络(SDN)的特点(A. 控制与转发功能分离 B. 控制平面集中化 C. 接口开放可编程 D. Openflow 取代了路由协议)。答案 D。
A、B、C 都是 SDN 的特点。OpenFlow 协议是控制平面和数据平面之间的接口(南向接口的一种),它的任务是让控制器把流表下发给交换机。在 SDN 中,路由器之间确实不再相互交换路由信息,但这不是因为 OpenFlow 接替了路由协议的工作,而是由远程控制器计算出最佳路由。
路由协议解决”怎样算出路由”,OpenFlow 解决”算好的结果怎样送到交换机”,两者不在同一个位置上,谈不上取代。
错题复盘:SDN 是新的网络体系结构,不是新的物理网络;远程控制器不在交换机里
王道 4.1.6 第 18 题:下列关于 SDN(软件定义网络)的描述中,错误的是(Ⅰ. SDN 是近年来出现的一种新型物理网络结构 Ⅱ. OpenFlow 交换机基于”流表”来转发分组 Ⅲ. SDN 远程控制器位于 OpenFlow 交换机中 Ⅳ. OpenFlow 可视为 SDN 的控制层面与数据层面的通信接口)。选项为 A. Ⅰ和Ⅲ B. Ⅰ和Ⅳ C. Ⅱ和Ⅳ D. Ⅰ、Ⅲ和Ⅳ。答案 A。
- Ⅰ 错:SDN 是一种新型网络体系结构,是设计、构建和管理网络的新方法,物理上仍是那些链路和转发设备。
- Ⅱ 对:在 SDN 中,完成”匹配 + 动作”的设备称为 OpenFlow 交换机,取代传统路由器中转发表的是流表。
- Ⅲ 错:远程控制器是控制平面的实现方式,由远程的服务器计算和分发流表,不在 OpenFlow 交换机中——控制平面若还留在交换机里,就谈不上”分离”。
- Ⅳ 对:见上一题。
“集中”指逻辑上集中。 远程控制器在逻辑上是一个,物理上可由多个服务器组成,这些服务器之间的通信就走东西向接口。
下发流表用南向接口,不是北向接口。 北向接口面向应用开发者,南向接口面向转发设备(2022)。
SDN 不是要改造整个互联网。 它适用于数据中心之间的广域网这类由单一机构管理的网络;整个互联网仍是分布式的,自治系统之间仍用 BGP(4.4.5)。
对照速查
| 说法 | 对错 |
|---|---|
| SDN 将控制平面与数据平面分离 | ✅ |
| SDN 采用集中式的数据平面和分布式的控制平面 | ❌(反了:集中控制、分布转发) |
| SDN 中路由器之间不再相互交换路由信息 | ✅ |
| OpenFlow 协议取代了路由协议 | ❌(它是控制与数据平面之间的接口) |
| SDN 是一种新型的物理网络结构 | ❌(体系结构) |
| SDN 远程控制器位于 OpenFlow 交换机中 | ❌ |
| SDN 中取代转发表的是流表 | ✅ |
| 控制器向交换机下发流表使用北向接口 | ❌(南向,2022) |
| 控制器可能成为网络性能的瓶颈 | ✅ |
考点
- 数据平面 = 转发,控制平面 = 路由选择
- SDN:控制平面集中、数据平面分布、两者分离;路由器只查流表转发
- OpenFlow = 南向接口协议;流表;OpenFlow 交换机”匹配 + 动作”
- 北向(面向应用)、南向(面向设备,2022)、东西向(控制器之间)
- 优点:全局优化、可编程、降成本;问题:安全、瓶颈
链接
- 🏠 返回总览:计算机网络第 4 章:网络层总览
- ⬅️ 上一节:4.1.3 网络层提供的两种服务
- ➡️ 下一节:4.1.5 拥塞控制
- 🔗 4.7.2 路由器的组成(路由选择部分 = 控制平面,分组转发部分 = 数据平面)
- 📖 名词库:第 4 章名词库