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 的优点:

  1. 全局集中式控制和分布式高速转发,既利于控制平面的全局优化,又利于高性能的网络转发。
  2. 灵活可编程与性能的平衡:控制和转发功能分离后,网络可以由专有的自动化工具以编程方式配置。
  3. 降低成本:控制和数据平面分离后,尤其是在使用开放的接口协议后,网络设备的制造与功能软件的开发相分离,从而有效降低了成本。

SDN 的问题:

  1. 安全风险:集中管理容易受攻击,若控制器崩溃,则整个网络会受到影响。
  2. 瓶颈问题:原本分布式的控制平面集中化后,随着网络规模扩大,控制器可能成为网络性能的瓶颈。

边界

错题复盘: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)、东西向(控制器之间)
  • 优点:全局优化、可编程、降成本;问题:安全、瓶颈

链接