软件定义网络SDN(10)复习

文章目录

软件定义网络SDN

  • 软件定义网络(SDN)的组成:数据平面和控制平面。
    • 数据平面负责分组转发,包括物理交换机和虚拟交换机,提供统一、开放的API OpenFlow。
    • 控制平面负责智能设计路由、设置优先级、路由策略参数。控制平面主要包括SDN控制器,通过API控制数据平面的交换机(南向API),同时为网络应用提供开发接口(北向接口)。

SDN数据平面

  • SDN数据平面是基础设施层,其功能包括控制支撑功能,支持可编程特性,数据转发功能(按照计算和建立好的转发路径转发,以规则方式决定转发方式)。
  • 数据平面协议(解读数据流中的协议数据单元结构)包括IP、TCP、UDP和南向API------OpenFlow。

OpenFlow

  • OpenFlow逻辑网络设备能够实际运用的必要条件:网络设备具备通用的逻辑架构、SDN控制器与网络设备之间采用标准的安全协议。
  • OpenFlow交换机结构如下:
  • OpenFlow信道是控制器与交换机的管理接口。
  • OpenFlow端口是分组进入和离开的位置,包括物理端口、逻辑端口和保留端口。物理端口与硬件接口对应,逻辑端口不与硬件接口对应,保留端口用于特殊的OpenFlow规范定义,制定通用的转发行为。
  • 表结构分为流表(flow table)、组表(group table)和计量表(meter table)。
  • 流表结构如下:

流表流水线

  • 流表流水线结构如下:
  • 交换机含一个或多个流表,多个流表从0开始依次编号,并组织成流水线。
  • 两个处理阶段
    • 入口处理一定会发生,从表0开始。涉及一个或多个表;如果只有一个表0时,没有出口处理。
    • 出口处理发生在输出端口确定之后,可选;可能涉及一个或多个表。
  • 表标识分界:第一个出口表的数字标识决定所有比它小的表用作入口表,所有大于等于该标识的表则不能作为入口表。
  • 流水线首先从第一个表入口处理开始,并且分组必须先与表0的流表项进行匹配,并根据匹配的结果来使用其它流表。
  • 如果入口处理结果是将分组转发到输出端口,则执行该输出端口场景下的出口处理。

  • 入口处理:默认表项Table miss允许三种动作:将分组发送给控制器、将分组引导到流水线下一表、丢弃该分组。
  • 出口处理:第一个出口表标识 e e e确定后,如果多个出口表,则其标识大于 e e e。

  • 多级流表的使用:实现流的嵌套、将一条流拆分为多条并行的子流,提供细粒度的控制,简化SDN控制器的流操作。

组表

  • 组表是用于表示一组端口集合的单独实体,主要用于不同的抽象场景,如多播和广播。每个组表由若干行组表项构成,允许多个组表存在并构成组链。组表项包含组标识符、组类型、计数器和动作桶
  • 组类型包括:
    • 全部:广播或多播
    • 选择:均衡负载或者加权均衡负载
    • 快速恢复:容错响应
    • 间接:多分组项映射到一个组项,便于维护
  • 组类型示意图展示了不同类型的分组处理方式,包括全部类型(a)、选择类型(b)、快速恢复类型(c)和间接类型(d)。

OpenFlow协议

  • OpenFlow协议通过TLS提供安全信道,控制器能够对流表中的流表项执行增删改操作。

  • 控制器到交换机管理交换机逻辑状态,使用Packet-out指令;交换机向控制器报告状态或使用Packet-in指令(异步通信)。交换机与控制器间的初始连接交互是对称的,通过Echo测量实现。

  • SDN控制器获得三类信息:基于事件的报文、流统计信息和封装的分组。

  • P4是一种开源编程语言,用于编程协议无关的包处理器(P4)。它是一种专门为网络设备设计的领域特定语言,用于指定数据平面设备(如交换机、网卡、路由器、过滤器等)如何处理数据包。

  • P4程序包含包分类器、L3路由和L2转发等功能模块,这些模块协同工作实现ACL(重定向、丢弃或包入)等操作。P4编译器负责分配资源以实现流水线和生成运行时映射,生成prog.p4info文件,该文件与控制平面交互。控制平面包括P4Runtime客户端和服务器,通过p4runtime.proto协议通信,并提供API接口。目标特定的编译器后端生成target_demo.bin文件,该文件被部署到目标数据平面设备上,由目标驱动程序控制。

SDN控制平面

  • 控制平面作为服务器或服务器协同集合构成。功能组件包括:最短路径转发、通告管理器、安全性机制、拓扑管理器、统计管理器、口设备管理器。

南北、东西向接口

  • 南向接口是SDN控制器与数据平面设备(如交换机)之间的通信接口,使用协议如OpenFlow和ForCES。
  • SDN控制器通过这些协议与数据平面设备交互,实现网络流量的转发和控制。
  • 北向接口则连接应用平面,提供API接口(如REST)供应用或服务调用。
  • 东西向接口用于SDN控制器之间的通信,支持协议如SDNi和ForCES CE-CE,实现控制器间的协同工作。SDN网络操作系统(如OpenDaylight、ONOS)通过这些接口实现网络功能的集中管理和控制。

路由选择

  • 路由选择是网络通信中的关键过程,涉及多个重要步骤。首先,收集网络的拓扑信息 ,了解网络中所有节点和连接的布局。其次,要分析网络的流量情况 ,评估当前网络的负载和带宽使用状况。最后,设计通过该网络路径的算法,确定数据包的最佳传输路径。

  • 此外,路由选择还涉及链路发现和拓扑管理。链路发现是指识别网络中的可用链路,而拓扑管理则是维护和更新网络拓扑信息,确保路由决策的准确性和有效性。这些步骤共同确保数据能够高效、可靠地在网络中传输。

  • SDN 的高层体系结构 (ITU-T)从上至下分为三层分别为应用层,SDN控制层,资源层。SDN控制层包含应用程序支持,编排,抽象。资源层包括控制支持,数据传输和处理。

bash 复制代码
+---------------------+     +---------------------+     +---------------------+
|      应用程序       |     |      应用程序       |     |      应用程序       |
|---------------------|     |---------------------|     |---------------------|
|                     |     |                     |     |                     |
+---------------------+     +---------------------+     +---------------------+
          | 应用-控制接口
          |
+---------------------+
|     SDN控制层        |
|---------------------|
|     应用程序支持      |
|---------------------|
|         编排         |
|---------------------|
|         抽象         |
|---------------------|
+---------------------+
          | 资源控制接口
          |
+---------------------+
|      资源层          |
|---------------------|
|       控制支持        |
|---------------------|
|    数据传输和处理     |
|---------------------|
+---------------------+

OpenDaylight

  • OpenDaylight体系结构包括网络应用、编排服务,OpenDaylight API,控制器功能和服务,服务抽象层SAL,南向接口和协议。OpenDaylight的特点是覆盖应用平面与控制平面,SAL支持支持广泛的南向接口标准。

控制器间的合作和协调

  • 控制器间的合作和协调涉及多个方面,包括东西向接口,这是控制器之间进行通信的重要机制。在控制器架构方面,存在集中式与分布式控制器的选择,分布式控制器具有更好的可扩展性、可靠性、隐私保护和增量部署能力。为了提高系统的可用性,通常采用高可用性的集群配置,特别是在单一域内实现高可用性(HA)。
  • 在更大规模的SDN网络中,联邦的SDN网络架构被采用,这需要边界网关协议(BGP)的支持。BGP不仅用于域间的路由选择和服务质量(QoS)管理,还在IETF SDNi(SDN间)协议中得到应用。OpenDaylight控制器也实现了SDNi功能,进一步增强了控制器间的协作能力。这些技术和协议共同确保了SDN网络中控制器之间的高效协调和无缝合作。

SDN应用平面

  • SDN应用平面的作用是对网络资源和行为进行定义、监视和控制。
  • 北向和用户接口都分为本地和远端模式。
  • 典型的网络应用数据中心网络、移动和无线、信息中心网络、流量工程、测量与监视、安全与可信性。
  • 网络服务抽象层:提供网络资源的抽象视图,隐藏数据平面设备具体细节;提供网络虚拟化功能,能够将底层数据平面基础设施逻辑划分。

网络服务抽象层

  • SDN可以通过3个基本抽象定义转发、分发和规范
    • 转发抽象:指定数据平面的转发行为,隐藏硬件细节。
    • 分发抽象:涉及分布式控制器背景下的协作,它处理分离的数据集或副本,形成统一的全球网络视图。这种抽象屏蔽了状态分发和采集的复杂性,为控制器提供了全局网络状态的统一视角。
    • 规范抽象:面向应用程序屏蔽网络细节,提供全局网络的抽象视图。

简答题预测

软件定义网络(SDN)的架构由应用平面、控制平面、数据平面三个平面组成,分层架构实现网络控制与转发的分离,使网络管理更加灵活和可编程。

  1. 应用平面(Application Plane)
  • 组成:包含各种网络应用,通过"规范抽象"与网络服务抽象层交互
  • 功能:实现网络策略和业务逻辑,通过调用网络服务抽象层提供的接口来控制网络行为
  1. 控制平面(Control Plane)
  • 组成:包括SDN控制器,通过北向API(如REST API)与网络服务抽象层通信,通过南向API(如OpenFlow)与数据平面通信
  • 功能:作为网络的大脑,集中管理网络状态和路由决策,通过API接口实现与上层应用和下层设备的通信
  1. 数据平面(Data Plane)
  • 组成:包含虚拟交换机和物理交换机,通过"转发抽象"与控制平面通信
  • 功能:负责实际的数据包转发工作,执行控制平面下发的指令
  1. 网络服务抽象层(Network Service Abstraction Layer)位于应用平面和控制平面之间
  • 功能:提供统一的网络服务接口,将底层的网络设备细节隐藏起来.
  • 作用
    • 为上层应用提供简化的网络服务视图
    • 实现应用与底层网络设备的解耦
    • 通过"规范抽象"机制,将应用的需求转换为控制平面可理解的指令

接口说明:

  • 北向API:控制平面与应用平面之间的接口(如REST API)
  • 南向API:控制平面与数据平面之间的接口(如OpenFlow)
  • 东西向API:SDN控制器之间的通信接口
相关推荐
HappRobot2 小时前
OpenTelemetry和Jaeger、 SkyWalking的关系
linux·网络·skywalking
Tandy12356_2 小时前
手写TCP/IP协议栈——TCP结构定义与基本接口实现
c语言·网络·c++·网络协议·tcp/ip·计算机网络
少云清3 小时前
【接口测试】4_PyMySQL模块 _操作数据库
服务器·网络·数据库
海清河晏1113 小时前
Linux进阶篇:网络编程
linux·运维·网络
一颗青果3 小时前
Socket编程实例(UDP)
网络·网络协议·udp
真上帝的左手3 小时前
7. 网络安全-等保
网络·安全·web安全
一颗青果3 小时前
Socket编程(TCP)
网络·网络协议·tcp/ip
tjjingpan4 小时前
HCIP-Datacom Core Technology V1.0_12流量过滤与转发路径控制
网络
qq. 28040339844 小时前
http 状态码
网络·网络协议·http