💡低优先级

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

真题练习

软件定义网络 (SDN) 是一种新颖的 网络架构,它将 网络的控制功能 从 传统的网络硬件 中解耦出来,并允许通过 软件应用程序 来进行 集中式管理SDN 提供了 更高的网络灵活性,使得 网络配置优化管理调试 都变得更加简单。

SDN 的架构如下图所示:

控制平面和数据平面

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

  1. 数据平面 (Data Plane):

    • 这是网络中负责处理数据包的部分,通常是在交换机、路由器等设备上。
    • 它基于控制平面提供的策略和规则,进行数据包的转发、丢弃或修改。
    • 数据平面通常需要高效地执行操作,因为它直接影响网络的性能。
  2. 控制平面 (Control Plane):

    • 控制平面负责整个网络的决策和策略,确定如何处理在网络中流动的数据包。
    • 在传统的网络设备中,控制平面直接嵌入在设备上。但在 SDN 中,这个控制平面被抽象为一个集中的软件控制器。
    • 控制器与网络设备之间的交互是通过某些标准化的接口进行的,这样可以确保多厂商设备的互操作性。

数据层面中有 有 负载均衡 和 防火墙 两种例子。

接口

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

  1. 南向接口 (Southbound Interface):
    • 这是 SDN 控制器与网络设备之间的接口。
    • 它允许控制器下发流表到数据平面设备,并从设备获取信息。
    • OpenFlow 是最常用的南向接口协议,但还有其他协议也被使用。
  2. 北向接口 (Northbound Interface):
    • 这是 SDN 控制器与网络应用或上层服务之间的接口。
    • 通过这个接口,应用程序可以请求网络服务或查询网络状态,并指导控制器进行相应的网络配置。
    • 这个接口通常没有严格的标准,但通常提供 RESTful API 供开发者使用。

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

流表

在 控制平面 和 数据平面 之间的接口 叫做 OpenFlow 协议 也成为 OpenFlow 流表

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

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

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

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

  1. 匹配字段 (Match Fields):

    • 这些字段描述了特定的数据包特征。它可以匹配数据包的 源地址目的地址端口号VLAN 标签 等,能对不同层次(链路、网络、传输层)首部中字段匹配。

    • 当一个数据包到达交换机时,它的头部字段会与流表中的匹配字段进行比较,以决定哪个条目适用于该数据包。

  2. 优先级 (Priority):

    • 当多个流表条目都能匹配到一个数据包时,优先级最高 的条目会被选中。

    • 优先级 使得网络管理员可以设计更为精确和特定的流规则。

  3. 计数器 (Counters):

    • 这些是用于收集 统计信息 的,如匹配到某个流条目的 数据包数量

    • 计数器 有助于网络监控和分析。

  4. 指令和动作 (Instructions & Actions):

    • 当一个数据包与流表条目匹配时,会执行相应的 指令和动作

    • 常见的动作包括:转发数据包 到特定的端口、丢弃数据包修改数据包头部信息发送数据包到控制器 等。

三种 转发例子 导图中有

网络层导图.excalidraw

对比

匹配动作
传统的路由器查找转发表中网络前缀,进行最长前缀匹配
分组从指明接口转发
OpenFlow协议对 链路、网络、传输层 首部中字段匹配从不同接口转发

后者设备不能叫做 路由器,而是分组交换机 或者 OpenFlow 交换机,这种交换机不局限在网络层中工作了