本地资料SDN
SCHEDULE LOCAL低优先级3 个小节覆盖真题 2022—2022
关联考点软件定义网络1做相关真题 · 1 道 →
做相关真题 · 1 道选中文字可高亮或加下划线
选中文字高亮 · 下划线

SDN

真题练习

了解 SDN 控制平面、数据平面、接口以及流表基本概念,可能在选择题中考察一题。

软件定义网络(SDN)是一种把控制逻辑与数据转发功能解耦的网络架构,并通过可编程控制器统一管理策略。这里的“集中式”通常指 逻辑集中:控制器可由集群或多控制器共同实现,并不要求物理上只有一台服务器。SDN 提高了网络配置、优化、管理和调试的可编程性,但也带来控制器可靠性、状态一致性和安全性等新问题。

SDN 的架构如下图所示:

SDN 应用层经北向接口连接控制器,控制器经南向接口管理数据平面设备

控制平面和数据平面

在 SDN 中,主要有两个关键的组件:数据平面 (Data Plane) 和 控制平面 (Control Plane)。

  1. 数据平面 (Data Plane):
    • 这是网络中负责处理数据包的部分,通常是在交换机、路由器等设备上。
    • 它基于控制平面提供的策略和规则,进行数据包的转发、丢弃或修改。
    • 数据平面通常需要高效地执行操作,因为它直接影响网络的性能。
  2. 控制平面 (Control Plane):
    • 控制平面负责整个网络的决策和策略,确定如何处理在网络中流动的数据包。
    • 在传统网络设备中,控制平面分布在各设备上;在 SDN 中,主要控制逻辑被抽象到逻辑集中的软件控制器中,设备仍可能保留必要的本地控制与故障处理能力。
    • 控制器与网络设备之间的交互是通过某些标准化的接口进行的,这样可以确保多厂商设备的互操作性。

接口

SDN 架构中的接口主要分为 南向接口 和 北向接口。

  1. 南向接口 (Southbound Interface):
    • 这是 SDN 控制器与网络设备之间的接口。
    • 它允许控制器下发流表到数据平面设备,并从设备获取信息。
    • OpenFlow 是经典、常见的南向协议之一,但南向接口并不等于 OpenFlow,还可使用 NETCONF、gNMI、P4Runtime 等机制。
  2. 北向接口 (Northbound Interface):
    • 这是 SDN 控制器与网络应用或上层服务之间的接口。
    • 通过这个接口,应用程序可以请求网络服务或查询网络状态,并指导控制器进行相应的网络配置。
    • 北向接口没有唯一统一标准,常见形式包括 REST API、意图接口与控制器 SDK。

除此之外,还有 东向接口 (East/West Interface),它用于 SDN 控制器 之间的通信,特别是在 多控制器的环境 中。

流表

流表 基本上是一个 数据库 或 查找表,用于决定如何处理经过 交换机 的数据包。

在 OpenFlow 流表 中,可能有多个流表,并且数据包可能按照顺序经过这些流表。每个流表可能基于不同的 规则、策略 来处理数据包,这为 网络设计 提供了高度的灵活性。

流表 的内容通常由 SDN 控制器 动态管理和更新,这是通过 南向接口(如 OpenFlow 协议)实现的。当 网络的状态 或 策略 发生变化时,控制器 可以修改 流表条目 以适应新的需求。

流表中主要包含如下部分:

  1. 匹配字段 (Match Fields):
    • 这些字段描述了特定的数据包特征。例如,它可以匹配数据包的 源地址、目的地址、端口号、VLAN 标签 等。
    • 当一个数据包到达交换机时,它的头部字段会与流表中的匹配字段进行比较,以决定哪个条目适用于该数据包。
  2. 优先级 (Priority):
    • 当多个流表条目都能匹配到一个数据包时,优先级最高 的条目会被选中。
    • 优先级 使得网络管理员可以设计更为精确和特定的流规则。
  3. 计数器 (Counters):
    • 这些是用于收集 统计信息 的,如匹配到某个流条目的 数据包数量。
    • 计数器 有助于网络监控和分析。
  4. 指令和动作 (Instructions & Actions):
    • 当一个数据包与流表条目匹配时,会执行相应的 指令和动作。
    • 常见的动作包括:转发数据包 到特定的端口、丢弃数据包、修改数据包头部信息、发送数据包到控制器 等。