SDN架构详解

2024-09-02 10:04
文章标签 详解 架构 sdn

本文主要是介绍SDN架构详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1)经典的IP网络-分布式网络

2)经典网络面临的问题

3)SDN起源

4)OpenFlow基本概念

5)Flow Table简介

6)SDN的网络架构

7)华为SDN网络架构

8)传统网络 vs SDN

9)硬件SDN与软件SDN


1)经典的IP网络-分布式网络

  • 经典的IP网络是一个分布式的、对等控制的网络。每台网络设备存在独立的数据平台、控制平面和管理平面。设备的控制平面对等的交互路由协议,然后独立的生成数据平面指导报文转发。
  • 经典IP网络的优势在于设备与协议解耦,厂家之间兼容性较好且故障场景下协议保证网络收敛。

以交换机为例介绍转发平面、控制平面和管理平面:

  • 交换机转发平面:转发平面提供高速无阻塞数据通道,实现各个业务模块之间的业务交换功能。交换机的基本任务是处理和转发交换机各不同端口上各种类型的数据。L2/L3/ACL/QoS/组播/安全防护等各种具体的数据处理转发过程,都属于交换机转发平面的任务范畴。
  • 交换机控制平面:控制平面完成系统的协议处理、业务处理、路由运算、转发控制、业务调度、流量统计、系统安全等功能。交换机的控制平面用于控制和管理所有网络协议的运行。控制平面提供了数据平面数据处理转发前所必须的各种网络信息和转发查询表项。
  • 交换机管理平面:管理平面完成系统的运行状态监控、环境监控、日志和告警信息处理、系统加载、系统升级等功能。交换机的管理平面是提供给网络管理人员使用TELNET、WEB、SSH、SNMP、RMON等方式来管理设备,并支持、理解和执行管理人员对于网络设备各种网络协议的设置命令。管理平面必须预先设置好控制平面中各种协议的相关参数,并支持在必要时刻对控制平面的运行进行干预。

2)经典网络面临的问题

网络易拥塞:

  • 网络基于带宽选择路径,单台设备都是自己计算自己的下一跳,不能基于全局考虑(全局计算)

网络技术复杂:

  • 网络协议多,需要掌握大量的专业知识
  • 网络配置困难,海量配置命令

网络运维困难:

  • 故障发现困难:传统运维网络故障依靠人工故障识别、人工定位和人工诊断
  • 故障定位困难:传统运维仅监控设备指标,存在指标正常,但用户体验差的情况。缺少用户和网络的关联分析

业务部署慢:

网络业务部署的愿景是:网络策略实现业务随行,与物理位置无关;新业务实现快速部署;物理网络支持零配置部署,设备即插即用。


3)SDN起源

SDN(Software Defined Networking)即软件定义网络。是由斯坦福大学Clean Slate研究组提出的一种新型网络创新架构。

核心理念:通过将网络设备控制平面与数据平面分离,从而实现了网络控制平面的集中控制,为网络应用的创新提供了良好的支撑。

SDN起源提出了三个特征, “转控分离”、“集中控制”和“开放可编程接口”

SDN是一个更为广泛的概念而不局限于OpenFlow。转控分离是实现SDN的一种方法而不是本质


4)OpenFlow基本概念

  • OpenFlow是控制器与交换机之间的一种南向接口协议。它定义了三种类型的消息,Controller-to-Switch、 Asynchronous 和 Symmetric。每一种消息又包含了更多的子类型
  • OpenFlow 协议与网络设备通信,向它们下发流表(Flow table)规则,决定哪些数据包该如何处理

Controller-to-Switch子类型:

  • Features消息:在SSL/TCP会话建立后,Controller给Switch发送Features请求Switch的相关信息。Switch必须应答自己支持的功能,包括接口名、接口MAC地址、接口支持的速率等等基本信息。
  • Configuration消息:Controller可以设置或查询Switch的状态。
  • Modify-State消息:Controller发送该消息给Switch,来管理Switch的状态,即增加/删除、更改流表,并设置Switch的端口属性。
  • Read-State消息:Controller用该消息收集Switch上的统计信息。
  • Send-Packet消息:Controller发送该消息到Switch的特定端口。

Asynchronous子类型:

  • Packet-in消息:当Flow Table中没有匹配的表项或者匹配“send to Controller”,Switch将给Controller发送packet-in消息。
  • Packet-out消息:从控制器回复的消息。
  • Flow-Removed消息:当给Switch增加一条表项时,会设定超时周期。当时间超时后,该条目就会被删除。这时Switch就会给Controller发送Flow-Removed消息;当流表中有条目要删除时,Switch也会给Controller发送该消息。
  • Port-status消息:当数据路径接口被添加、删除、修改的时候,此消息用于通知控制器。

Symmetric子类型:

  • Hello消息:当一个OpenFlow连接建立时,Controller和Switch都会立刻向对端发送OFPT_HELLO消息,该消息中的version域填充发送方支持的OpenFlow协议最高的版本号;接收方收到该消息后,接收方会计算协议版本号,即在发送方和接收方的版本号中选择一个较小的;如果接收方支持该版本,则继续处理连接,连接成功;否则,接收者回复一个OFPT_ERROR消息,类型域中填充ofp_error_type.OFPET_HELLO_FAILED
  • Echo消息: Switch和Controller任何一方都可以发起Echo request消息,但收到的一方必须回应Echo reply消息。这个消息可以来测量latency、Controller-Switch之间的连接性,即心跳消息;
  • Error消息:当交换机需要通知控制器发生问题或错误时,Switch给Controller 发送Error消息。

注:OpenFlow协议仍在持续更新。更多更全的消息类型请参考ONF最新发布《OpenFlow Switch Specification》标准


5)Flow Table简介

SDN架构中OpenFlow交换机基于流表(Flow Table)转发报文。

经典网络依靠网络设备通过查询路由表指导流量转发

当前OpenFlow的主流应用是用于数据中心的软件交换机,例如OVS、CE1800V(华为)等,而不是实现硬件交换机的转控分离

每个流表项由匹配字段、优先级、计数器、指令、超时、Cookie、Flags这七部分组成。其中关于转发的关键的两个内容是匹配字段和指令。

  • 匹配字段是匹配规则,支持自定义。
  • 指令是用来描述匹配后的处理方式。

  • Match Fields:流表项匹配项(OpenFlow 1.5.1版本支持45个可选匹配项),可以匹配入接口、物理入接口,流表间数据,二层报文头,三层报文头,四层端口号等报文字段等。
  • Priority:流表项优先级,定义流表项之间的匹配顺序,优先级高的先匹配。
    • 流表的匹配原则是对于存在的“table0-table255”,优先从table0开始匹配。同一table内部按照优先级匹配,优先级高优先匹配
  • Counters:流表项统计计数,统计有多少个报文和字节匹配到该流表项。
  • Instructions:流表项动作指令集,定义匹配到该流表项的报文需要进行的处理。当报文匹配流表项时,每个流表项包含的指令集就会执行。这些指令会影响到报文、动作集以及管道流程。
  • Timeouts:流表项的超时时间,包括了Idle Time和Hard Time。
    • Idle Time:在Idle Time时间超时后如果没有报文匹配到该流表项,则此流表项被删除。
    • Hard Time:在Hard Time时间超时后,无论是否有报文匹配到该流表项,此流表项都会被删除。
  • Cookie:Controller下发的流表项的标识。
  • Flags:该字段改变流条目的管理方式。

6)SDN的网络架构

SDN网络架构分为协同应用层、控制器层和设备层。不同层次之间通过开放接口连接。以控制器层为主要视角,区分面向设备层的南向接口和面向协同应用层的北向接口。OpenFlow属于南向接口协议的一种。

SDN使用北向和南向应用程序接口(API)来进行层与层之间的通信,分为北向API和南向API。北向API负责应用层和控制层之间的通信,南向API负责基础设施层和控制层之间的通信

  • 协同应用层:主要完成用户意图的各种上层应用,典型的协同层应用包括OSS、OpenStack等。OSS可以负责整网的业务协同,OpenStack云平台一般用于数据中心负责网络、计算、存储的业务协同。还有其他的协同层应用,比如用户希望部署一个安全APP,这个安全APP不关心设备具体部署位置,只是调用了控制器的北向接口,例如Block(Source IP,DestIP),然后控制器会给各网络设备下发指令。这个指令根据南向协议不同而不同。
  • 控制器层:控制器层的实体就是SDN控制器,是SDN网络架构下最核心的部分。控制层是SDN系统的大脑,其核心功能是实现网络业务编排。
  • 设备层:网络设备接收控制器指令,执行设备转发。

  • NBI北向接口:北向接口为控制器对接协同应用层的接口,主要为RESTful。
  • SBI南向接口:南向接口为控制器与设备交互的协议,包括NETCONF、SNMP、OpenFlow、OVSDB等。

7)华为SDN网络架构

  • 云平台:云数据中心内资源管理平台。云平台包含对网络资源、计算资源和存储资源的管理。OpenStack是最主流的开源云平台。
  • EMS(Element Management System,网元管理系统)是管理特定类型的一个或多个电信NE(Network Element,网络单元)的系统。
  • Orchestration(容器编排):容器编排工具也可以包含网络业务编排功能。Kubernetes是主流的工具。
  • MTOSI/CORBA用于对接BSS/OSS。Kafka/SFTP可用于对接大数据平台。


8)传统网络 vs SDN


9)硬件SDN与软件SDN

软件SDN技术路线(经典的SDN技术路线)强调控制面的剥离,希望能够将网络设备变为白盒设备,实现网络功能的自定义。

但在SDN的发展过程中,由于底层协议的复杂性、软件开发投入等多方面原因,厂商逐渐转向了以自动化运维为主要目标,弱化控制面剥离的SDN技术路线。厂商们主张将操作系统以及大部分的软件仍放在硬件设备上进行,保留原有的网络设备形态,通过控制器实现与硬件设备、与网络配置管理工具的对接,由控制器在管理面的维度完成对硬件设备的统一管理和业务编排。弱化控制面剥离的SDN技术路线可以称为硬件SDN

软件SDN:OpenFlow实现

硬件SDN:Ansible通过 Palo Alto 防火墙设备提供的REST API接口,通过编写playbook修改安全策略等,实现大规模防火墙的自动化管理

REST API(Representational State Transfer Application Programming Interface)是一种基于HTTP协议的应用程序编程接口,它允许不同的计算机系统通过网络进行通信和数据交换

可以使用HTTP的方法来获取,修改,删除资源。Get、Put、Post、DELETE.......

REST API:SDN控制器通常提供RESTful API,开发人员可以通过HTTP请求来获取网络状态、配置流表、管理设备等。例如,通过REST API可以动态调整某条流的路由路径,以应对网络中的拥塞问题。

网络设备可以支持REST API功能。许多现代网络设备(如路由器、交换机、防火墙等)都集成了REST API接口。这些API接口允许管理员和开发者通过编程方式与设备进行交互,执行配置管理、状态监控、故障排查等操作。

这篇关于SDN架构详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1129657

相关文章

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

6.1.数据结构-c/c++堆详解下篇(堆排序,TopK问题)

上篇:6.1.数据结构-c/c++模拟实现堆上篇(向下,上调整算法,建堆,增删数据)-CSDN博客 本章重点 1.使用堆来完成堆排序 2.使用堆解决TopK问题 目录 一.堆排序 1.1 思路 1.2 代码 1.3 简单测试 二.TopK问题 2.1 思路(求最小): 2.2 C语言代码(手写堆) 2.3 C++代码(使用优先级队列 priority_queue)

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

系统架构设计师: 信息安全技术

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 系统架构设计师: 信息安全技术前言信息安全的基本要素:信息安全的范围:安全措施的目标:访问控制技术要素:访问控制包括:等保

嵌入式Openharmony系统构建与启动详解

大家好,今天主要给大家分享一下,如何构建Openharmony子系统以及系统的启动过程分解。 第一:OpenHarmony系统构建      首先熟悉一下,构建系统是一种自动化处理工具的集合,通过将源代码文件进行一系列处理,最终生成和用户可以使用的目标文件。这里的目标文件包括静态链接库文件、动态链接库文件、可执行文件、脚本文件、配置文件等。      我们在编写hellowor

LabVIEW FIFO详解

在LabVIEW的FPGA开发中,FIFO(先入先出队列)是常用的数据传输机制。通过配置FIFO的属性,工程师可以在FPGA和主机之间,或不同FPGA VIs之间进行高效的数据传输。根据具体需求,FIFO有多种类型与实现方式,包括目标范围内FIFO(Target-Scoped)、DMA FIFO以及点对点流(Peer-to-Peer)。 FIFO类型 **目标范围FIFO(Target-Sc

019、JOptionPane类的常用静态方法详解

目录 JOptionPane类的常用静态方法详解 1. showInputDialog()方法 1.1基本用法 1.2带有默认值的输入框 1.3带有选项的输入对话框 1.4自定义图标的输入对话框 2. showConfirmDialog()方法 2.1基本用法 2.2自定义按钮和图标 2.3带有自定义组件的确认对话框 3. showMessageDialog()方法 3.1