一:SDN控制平面

一个或多个SDN控制器组成,是网络的大脑。

    对底层网络交换设备进行集中管理,状态监测、转发决策以及处理和调
度数据平面的流量;通过北向接口向上层应用开放多个层次的可编程能力。

1.典型的SDN控制器体系架构

SDN控制平面分为6层南向接口层主要对各种南向接口协议的支持,如Open Flow,Netconf,OVSDB等,控制器通过接口层的通道实现对底层网络的管理抽象逻辑层主要是将服务抽象出来,实现各种通信协议的适配,为各模块和应用提供一致的服务基础网络层在任何控制器中都是必不可少的,这里的模块包括了控制器内部的实现逻辑,比如:拓扑管理、链路计算等,也包括一些底层的网络实现逻辑,比如BGP Vxlan的实现等内置应用层提供了基础的功能包,如L2、L3网络,Overlay APP,服务链APP等北向接口层中,控制器实现了Restful API的接口或者嵌入式的API提供给上层应用调用配置管理层提供了控制器服务管理,集群管理和图形化界面,如ODL控制器提供了模块的启用、删除等功能,Floodlight等控制器提供了一个简单易用的UI界面,可以在web界面中调用控制器的北向API对控制器进行配置

SDN控制平面是SDN网络中的一个关键组成部分,其主要作用是负责处理网络控制功能,与数据平面进行通信并控制其行为。具体来说,控制平面负责以下任务:

  1. 管理网络拓扑和网络设备:控制平面负责维护整个SDN网络的拓扑结构,发现网络中的交换机和主机,以及它们之间的连接。此外,控制平面还需要了解和管理所有连接到网络中的设备和其属性。

  2. 与南向接口进行通信:控制平面需要向数据平面发送指令,以实现网络流量的控制。这些指令通过南向接口发送到网络设备,通过OpenFlow协议或其他南向协议实现。

  3. 制定网络策略和流量控制:控制平面负责制定网络策略,即如何管理网络流量。它可以基于不同的条件和规则来确定如何路由流量,以及如何控制流量的优先级和带宽分配。

  4. 处理网络事件:控制平面可以处理网络中发生的各种事件,如链路故障或主机加入或离开网络。它可以动态地调整网络拓扑和重新分配网络流量,以确保网络正常运行。

二:控制器关键技术

主要是包括南向网络控制和北向业务支撑

1.南向网络技术:

通过南向接口协议进行链路发现、拓扑管理、策略制定、表项下发等:

-链路发现和拓扑管理:利用上行通道对底层交换设备上报信息进行统一监控和统计;
–策略制定和表项下发:利用下行通道对网络设备实施统一控制。

链路发现 :

是获得SDN全网信息的关键,是实现网络地址学习、VLAN、路由转发等网络功能的基础传统网络中:由各个网元自主进行SDN网络:网络链路的发现工作由控制器统一完成对于Open Flow交换机直连链路的发现,SDN控制器通过链路层发现协议LLDP实现

首先控制器通过packet-out消息(红)向所有的相连的交换机发送LLDP数据包,该消息命令交换机将LLDP数据包发送给所有端口,当交换机接收到packet-out消息,他就会把LLDP数据包,通过其所有的端口发送给与之相连的设备,由于邻接交换机是一台Open Flow交换机,在该交换机中没有专门的流表项,用于处理LLDP数据包,所以他将通过一个packet-in消息(蓝)将数据包发送给控制器,控制器在接收到packet-in消息后会对数据包进行分析,并创建两台交换机之间的链接记录。网络中的其他交换机也都采用同样的方式向控制器发送packet-in消息,因此控制器能够创建完整的网络拓扑视图
对于OF交换机非直连链路的发现,即两台open flow交换机通过其他多台非open flow交换机连接。
(通过广播实现)控制器在发送packet-out消息给open flow交换机的同时,会要求交换机发出广播包,通过广播的机制实现链路的发现

拓扑管理:

是为了实时监控和采集SDN交换机的信息,反馈工作状态和链路连接状态:–定 时 发 送 带 LLDP 数 据 包 的 Packet_out 消 息,根据Packet_in消息获知交换机信息,监测交换机工作状态,完成网络拓扑视图更新;–当网络规模较大时,导致较慢的收敛过程,影响实时反馈;

策略制定(南向网络控制中的核心技术之一) :

流表生成算法是影响控制器智能化水平的关键因素控制器针对不同网络层次的传输需求,制定相应的转发策略并生成对应的流表项

表项下发(策略计算结果需要通过表项下发来实现):

通过流表下发机制控制交换机的数据包转发–主动(proactive)下发:数据包到达交换机之前进行流表设置--是控制器在交换机还没有收到数据包前,先给交换机下发流表,告诉交换机如何处理第一个数据包

主动下发可以避免交换机启动时,数据流对交换机的冲击,并且可以消除数据传输过程中,流表项设置延迟的问题–被动(reactive)下发:交换机接收到一个数据包并且没有发现匹配的流表项,将其送给控制器处理。

在复杂网络中会产生流表项设置延迟的问题

---------------------------------------------------------------------------------------------------------------------------------

在SDN中,控制器通过南向接口向OpenFlow交换机下发流表项来控制网络中的数据流。表项下发指的是将一条或多条流表项从控制平面下发到数据平面的OpenFlow交换机,以使其根据指定的规则处理网络数据流。

表项下发需要经过以下步骤:

  1. 控制器向交换机发送流表项下发请求(FlowMod消息)。

  2. 交换机收到请求后,会检查请求中包含的流表项是否合法,如果合法则在交换机中创建一个新的流表项,并把该流表项添加到交换机的流表中。

  3. 当交换机接收到一个新的数据包时,它会将数据包的匹配字段与流表项中的匹配字段进行匹配,并根据匹配结果执行对应的动作。如果匹配成功,则执行流表项中指定的动作,例如转发、丢弃、修改等。

  4. 当交换机不再需要某个流表项时,可以向控制器发送删除流表项的请求(FlowRemoved消息),控制器在接收到删除请求后,可以从控制平面中删除该流表项。

---------------------------------------------------------------------------------------------------------------------------------

三:北向业务支撑

通过北向接口为上层业务应用以及资源管理系统提供灵活的网络资源抽象;

北向接口定义是SDN领域关注和争论的焦点---北向接口直接为业务应用服务,其设计密切联系业务应用需求,所以具有多样化特征,很难统一;

REST API是用户比较容易接受的方式;

1.什么是北向接口:

应用平面与控制平面之间的接口(NBI),通过控制器向上层业务应用开放的接口, 为上层业务应用和资源管理系统提供灵活的网络资源抽象;在SDN中,北向接口是指控制平面与应用程序之间的接口。北向接口向上提供了一组编程接口,使得应用程序可以与控制平面进行通信,实现对网络的编程控制。通过北向接口,应用程序可以向控制平面发送请求,如创建、修改、删除流表项等,从而控制网络设备的行为。同时,控制平面也可以通过北向接口向应用程序传递网络状态信息,如端口状态、链路状态、拓扑结构等。北向接口的实现可以采用多种编程语言和API,如REST API、Java API、Python API等。

由于上层应用的多样性,SDN北向接口需要满足多样性、合理性和开放性,未形成业界公认标准;

2.SDN北向接口标准化工作

ONF 北向接口工作组NBI-WG: 给出了SDN北向接口不同层次的抽象及接口范围;IRTF (Internet Research Task Force)的SDN研究工作组SDNRG: 提出SDN的层次化架构,在管理和控制层面上给出网络服务抽象层(Network Service Abstraction Layer,NSAL) ,即北向接口。IETF的SFC工作组: 确立各网络功能服务整合的体系架构及对外的接口。

3.北向接口的设计

4.北向接口的实现

Rest API: SDN北向接口的主流实现方式有RYU、Floodlight、Opendaylight等。

四:SDN开源控制器

下一节主要介绍RYU和Rest API。

软件定义网络基础(SDN④)相关推荐

  1. sdn体系的三个平面_软件定义网络基础---SDN控制平面

    一:SDN控制平面 一个或多个SDN控制器组成,是网络的大脑.  对底层网络交换设备进行集中管理,状态监测.转发决策以及处理和调 度数据平面的流量:  通过北向接口向上层应用开放多个层次的可编程能 ...

  2. JAVA的sdn控制器,软件定义网络基础---SDN控制平面

    一:SDN控制平面 一个或多个SDN控制器组成,是网络的大脑.  对底层网络交换设备进行集中管理,状态监测.转发决策以及处理和调 度数据平面的流量:  通过北向接口向上层应用开放多个层次的可编程能 ...

  3. 《软件定义网络:SDN与OpenFlow解析》

    <软件定义网络:SDN与OpenFlow解析> 基本信息 原书名:SDN: Software Defined Networks 原出版社: O'Reilly Media 作者: (美)Th ...

  4. 【研究方向是SDN该怎么做?】软件定义网络(SDN)的安全挑战和机遇

    软件定义网络(SDN)的安全挑战和机遇 目录 软件定义网络(SDN)的安全挑战和机遇 写在前面的话 SDN是什么? 有必要研究SDN的安全问题吗? SDN的优点与缺点 SDN中的集中化 对于攻击者和防 ...

  5. 5 个需要知道的开源的软件定义网络(SDN)项目

    SDN 开始重新定义企业网络.这里有五个应该知道的开源项目. 纵观整个 2016 年,软件定义网络(SDN)持续快速发展并变得成熟.我们现在已经超出了开源网络的概念阶段,两年前评估这些项目潜力的公司已 ...

  6. SDN软件定义网络之SDN交换机物理设备

    文章目录 SDN软件定义网络之SDN交换机 交换芯片 芯片详解 主流芯片 交换机产品 物理交换机 虚拟交换机 设备选型主要考虑的参数 背板带宽 端口密度 端口速率 支持模块类型 带宽类型 其他 时延 ...

  7. 软件定义网络基础(SDN①)

    1.SDN的产生: SDN(软件定义网络)的产生源于传统网络无法满足现代网络环境对网络灵活性.可扩展性和安全性等方面的要求.传统网络架构中,网络设备(如交换机和路由器)负责控制和转发数据流量,网络管理 ...

  8. 软件定义网络(SDN)

    SDN基本概述 参考文章:SDN基本概述.解读SDN的东西.南北向接口 传统网络数据控制与转发 传统网络是分布式控制的架构,每台设备都包含独立的控制平面,数据平面. 传统网络是分布式控制的架构: 这里 ...

  9. 软件定义网络(SDN)发展历程及应用分析

    软件定义网络的发展历史 2008年,Nick McKeown 教授等人提出了OpenFlow 的概念,并于当年在ACM SIGCOMM 发表了题为<OpenFlow: Enabling Inno ...

  10. 认识软件定义网络(SDN)(一)

    一.SDN体系结构简介 在传统IP网络中,网络设备内部同时集成了控制逻辑和数据逻辑,控制平面需要实现各种类型的网络协议和功能,为数据平面构造和配置路由转发表,而数据平面则根据路由转发表实现数据包的转发 ...

最新文章

  1. 关于简聊 Webpack 配置的一些注释
  2. ExtJs 日期相加,Grid表格列可编辑
  3. 怎么找回失踪的NTLDR文件
  4. 数据结构——维基百科
  5. 【图论】【高精】产生数(ssl 1021/ luogu 1037)
  6. sql 创建用户脚本
  7. 【德国】德累斯顿工业大学 机器学习和图像分析研究助理/博士生 招生
  8. 员工管理能力怎么提高?不妨使用现代工时表软件
  9. hp服务器怎么进bios系统,服务器hp进bios设置
  10. 用户画像——《大数据用户画像的方法及营销实践》演讲
  11. 头歌 初识MongoDB
  12. 编程逻辑入门必备2:归纳推理
  13. Font shape `OMX/cmex/m/n‘ in size <10.53937> not available (Font) size <10.95> substituted.
  14. VMware 14 Pro 永久许可证激活密钥
  15. c++:dll缺少依赖文件的解决方法
  16. 【帮帮】移动互联网的“浑水”
  17. UI界面布局有哪些?
  18. 网络即时战略游戏结构体系分析
  19. 【C++】Boost::circular_buffer——循环缓冲区
  20. 西南大学网络计算机,重庆西南大学计算机等级考试报名

热门文章

  1. java freemarker导出word 带图片,文件导出后图片无法使用office正常打开
  2. TFmini Plus 在开源飞控 pixhawk 上的应用
  3. 一个简单的方法修复ubuntu引导损坏
  4. 树莓派做网络调试陪试机
  5. 编程算法 - 大整数乘法
  6. 计算机教育杂志有核心期刊吗,计算机教育杂志是核心期刊吗?
  7. MySQL中的聚簇索引、非聚簇索引、联合索引和唯一索引
  8. 《Redis系列第三篇、incr与decr使用|CSDN创作打卡》
  9. 传奇开服教程完整版GOM引擎超详细的单机架设图文教程(小白一看就会)
  10. Matlab中左除(\)与右除(/)的区别