软件定义网络笔记(PART 2)

article/2025/8/23 9:55:21

软件定义网络笔记PART 2

  • 软件定义网络基本架构
    • SDN的主流技术架构
    • ONF定义SDN基本架构
    • ONF定义SDN体系架构
      • 四个平面
      • 两大接口
  • SDN的核心思想
    • 解耦(Decoupling )
    • 抽象(Abstraction)
    • 可编程(Programable)

软件定义网络基本架构

SDN的主流技术架构

在这里插入图片描述

ONF定义SDN基本架构

在这里插入图片描述

ONF定义SDN体系架构

                      “四个平面”      “两大接口”
在这里插入图片描述

四个平面

数据平面

  1. 若干网元(Network Element):包含一个或多个SDN 数据路径( Datapath );
  2. SDN Datapath:逻辑上网络设备,负责转发和处理数据;
  3. 控制数据平面接口(Control Data Plane Interface, CDPI)代理、转发引擎(Forwarding Engine)表和处理功能(Processing Function)

   数据面(转发面)关键技术
在这里插入图片描述
控制平面

  1. 北向接口(Northbound Interfaces, NBI)代理、SDN控制逻辑(Control
    Logic)和控制数据平面接口驱动(CDPI Driver);
  2. 两个任务:
    将SDN应用层请求转换到SDN Datapath;
    为SDN应用提供底层网络的抽象模型(状态或事件)。

   控制面关键技术

  1. 控制器,网络操作系统(NOS)或网络控制器。
  2. 智能、核心均在SDN 控制器中实现
  3. 开源SDN控制器: NOX、POX、FloodLight、 RYU 、OpenDayLight、 ONOS等。

应用平面

  1. SDN应用逻辑与北向接口( NBI )驱动;
  2. 通过北向接口与SDN控制器交互;

   应用逻辑

   应用交付能力(负载均衡、访问控制、应用加速):

  1. 降低系统的开支和成本;
  2. 网元的虚拟化和集中化控制;
  3. 网络快速部署,故障快速发现与解决;
  4. 更高的智能,自动化运作,应用可感知的网络

管理平面

   静态的工作:网元初始化配置,指定控制器、定义控制器及应用的控制范围。

两大接口

南向接口

   1.控制平面和数据平面之间的接口(CDPI) 。
   2.功能:转发行为控制、设备性能查询、统计报告、事件通知等。

ONF体系架构:标准化的南向接口协议(Openflow),不依赖于底层具体厂商的交换设备。

   南向接口关键技术

  • 转发面开放协议(南向接口协议):允许控制器控制交换机的配置以及相关转发行为。
  • ONF定义的转发面开放协议:Openflow协议

在这里插入图片描述
北向接口

  1. 应用平面与控制平面之间的接口(NBI),向应用层提供抽象的网络视图,使应用能直接控制网络的行为。
  2. 开放的、与产商无关的接口。

   北向接口关键技术

  • SDN北向接口设计:控制器将网络能力封装后开放接口,供上层业务调用。
    -REST API成为SDN北向接口的主流设计

floodlight的北向API集合

交换机状态采集、静态流表推送、防火墙策略等多种类型的接口。

SDN的核心思想

解耦(Decoupling )

数据平面与控制平面的解耦

  • 通过解耦合,控制平面负责上层的控制决策,数据平面负责数据的交换转发,双方遵循一定的开放接口进行通信;
  • 实现网络逻辑集中控制的前提;
  • 两个平面独立完成体系结构和技术的发展演进,有利于网络的技术创新与发展。

传统网络:例如二层需要交换转发MAC表,网络层需要路由器需要交换转发路由表

SDN与传统网络的差异

  •  SDN 将网络设备的控制平面集中上收到Controller;
  •  网络设备上只保留转发平面(转发表项);
  • 软件可以实现灵活的控制面功能满足用户多元化需求
  • 硬件成为简单哑资源,专注转发

在这里插入图片描述

解耦带来的问题与挑战

  • 网络规模的扩大,单一控制器成为网络性能的瓶颈;>>>>多个分布式的控制器
  • 多控制器如何交换路由信息,保持分布式网络节点状态的一致性,是一个重要的挑战;
  • 控制平面的响应延迟,导致数据平面的可用性问题。

抽象(Abstraction)

从用户的角度而言在这里插入图片描述

网络功能的抽象

ONF网络架构实现转发抽象、分布状态抽象和配置抽象:

  1. 转发抽象(forwarding abstration):隐藏了底层的硬件实现,转发行为与硬件无关;
    把各种转发表项如mac表,路由表,MPLS标签表,ACL访问控制表统一抽象成流表
    在这里插入图片描述

  2. 分布状态抽象(distribution abstration):屏蔽分布式控制的实现细节,为上层应用提供全局网络视图;
    控制层将设备的分布式状态抽象成全局的网络视图,从而达到逻辑上的集中控制
    在这里插入图片描述

  3. 配置抽象(specification abstration):网络行为的表达通过网络编程语言实现,将抽象配置映射为物理配置。
    左边是传统的对单个网络设备编程方法
    右边是SDN网络利用控制器提供的API对整个抽象的网络视图进行编程

    在这里插入图片描述

可编程(Programable)

传统网络的管理接口: CLI、SNMP等,是初级的网络编程方式;

CLI一般指命令行界面。命令行界面(英语:command-line interface,缩写:CLI)
SNMP一般指简单网络管理协议。简单网络管理协议(SNMP) 是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用层协议。
在这里插入图片描述

现今的网络管理者需要基于整个网络的,而不是基于某一设备的可编程。
网络可编程相关研究:主动网络(Active Networking)、4D架构
在这里插入图片描述

网络可编程接口:

  1. 北向接口:REST(Representational State Transfer) API,RESTCONF协议
  2. 南向接口:OpenFlow、OF-Config、NETCONF、OVSDB、XMPP、PCEP、I2RS、OPFlex等协议;
  3. 东西向接口:负责控制器之间的通信,未形成统一标准。
  4. 在这里插入图片描述

数据平面可编程技术:Intel主导的DPDK、斯坦福大学主导的P4(Programming Protocol-independent Packet Processors)等

参考资料:中国大学MOCC SDN网络课程


http://chatgpt.dhexx.cn/article/ZW0lRAa4.shtml

相关文章

POX控制器的分析(二)

在上一篇具体讲述POX有哪些组件,以及各个组件的功能,这篇文章主要理解POX的启动以及组件是如何启动的,以及组件与事件的关系: 由上图知,of_01 主要是运行一个线程,该线程不断与交换机进行TCP连接&#xff0…

Maven项目中pox.xml文件报错以及项目编译错误

我用Eclipse开发Maven项目,本来好好的,但是后来莫名其妙的其中pom.xml文件报错,后来执行install命令时又编译不通过报错。我痛苦地摸索了一整天,最后才把问题解决了。虽然问题解决了,但我也不知道问题症结所在&#xf…

Ubuntu18.04 mininet+pox+poxdesk配置

目录 前言关于系统Ubuntu20.04的坑 mininet的安装安装部署测试 poxpoxdesk安装部署 自定义拓扑结构tree.py(自定义拓扑网络)poxpoxdesk加载组件mininet启动命令 总结参考资料 前言 朋友最近在上SDN的课程,Software Defined Network&#x…

5.pox.xml文件

pom文件 即Project Object Model项目对象模型。Maven 把-个项目的结构和内容抽象成一个模型 ,在xml文件中进行声明,以方便进行构建和描述, pom.xml是Maven的灵魂。所以, maven环境搭建好之后,所有的学习和操作都是关于pom.xml的。 1.基本信息 modelVersion Maven模型的版本&am…

CoinEx研究院:PoX=PoW+PoS?一文详述Stacks项目

如果你身处加密领域,那么你应该了解工作量证明PoW(Proof of Work)——它是比特币区块链的共识算法;或许你也知道权益证明PoS(Proof of Stake)。这二者为当今区块链世界的绝大多数主要参与者提供了驱动力。 …

POX控制器的分析(一)

最近刚刚对SDN产生了很大的兴趣,相对之前使用的POX控制器作出一个分析,了解控制器的机制,这样更好的理解SDN。 本文从https://openflow.stanford.edu/display/ONL/POXWiki官方网站中进行学习的。 首先从POX的自带的组件来分析: 其…

pox控制器学习笔记

一、安装pox pox基于python2.7 $ git clone http://github.com/noxrepo/pox $ cd pox ~/pox$ git checkout dart二、调用pox 如果想快速入门 ./pox.py samples.pretty_log Forwarding.l2_learningPOX本身有几个可选的命令行参数,这些参数可以在命令行开始时使用…

【Mininet】基础篇:开源控制器POX

大家好,我是文思月! 每文一言:时间不在于你拥有多少,而在于你如何使用! 本篇文章: 本篇文章主要是基于POX控制器进行的两个实验:一个是使交换机模拟hub(集线器)的功能&a…

浅谈UML的概念和模型之UML视图

目录 UML的视图 UML的九种图UML中类间的关系 相信大家都知道UML的全称,统一建模语言(UML是 Unified Modeling Language的缩写)是用来对软件系统进行可视化建模的一种语言。UML为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准…

【UML】UML基本概念

1、简述 UML全称是Unified Modeling Language,直译是“统一建模语言”,简单理解就是一组有特殊用途的、国际化的“象形文字”。 2、UML图 UML图有好多种,大致分为两类:结构型和行为型,分别对应静态分析和动态分析。…

浅谈UML的概念和模型之UML类图关系

目录 UML的视图 UML的图 UML的类图关系 类与类之间的关系通常有4种,即依赖关系(Dependency)、泛化关系(Generalization)、关联关系(Association)、实现关系(Realization&#xff…

如何画UML图

UML 一,UML概述 什么是uml UML 是 OMG 在1997年1月提出了创建由对象管理组和 UML1.0 规范草案; UML 是一种为面向对象开发系统的产品进行说明、可视化、和编制文档的标准语言;UML 作为一种模型语言,它使开发人员专注于建立产品的模…

UML图简介

文章目录 UML图简介UML中的各个图的功能作用:用例图(Use Case Diagram)类图(Class Diagram)序列图(Sequence Diagram)对象图(Object Diagram)包图(Package Diagram)活动图&#xff0…

UML图

UML图 UML(Unified Modeling Language)是一种标准的面向对象建模语言,用于描述软件系统的设计和开发。UML图包括以下几种类型: 结构图:用于描述系统静态结构,包括类图、对象图、组件图、部署图等。行为图…

UML类图是什么

一、什么是UML类图 先引用一段百度百科的定义 统一建模语言(Unified Modeling Language,UML)是用来设计软件的可视化建模语言。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。 类图是描述系统中的类,以及各个…

UML介绍及怎么看UML图

最近做毕业设计,用到了libcitygml开源库,获取到一张citygml的UML图,就顺便简单了解一下它! 一、简介 UML(Unified Modeling Language),直接翻译就是统一建模语言。 二、UML的作用 UML可以帮助我…

什么是UML?为什么要用UML?

什么是UML? UML是Unified Model Language的缩写,中文是统一建模语言,是由一整套图表组成的标准化建模语言。 为什么要用UML? 通过使用UML使得在软件开发之前, 对整个软件设计有更好的可读性,可理解性,从而降低开发风险。同时,也能方便各个开发人员之间的交流。 UML…

【UML】UML几种图的绘制

08年9月入学,12年7月毕业,结束了我在软件学院愉快丰富的大学生活。此系列是对四年专业课程学习的回顾,索引参见:http://blog.csdn.net/xiaowei_cqu/article/details/7747205 UML几种图的绘制 UML是Unified Modeling Language&…

浅谈UML的概念和模型之UML九种图

目录: UML的视图 UML的九种图 UML中类间的关系 上文我们介绍了,UML的视图,在每一种视图中都包含一个或多种图。本文我们重点讲解UML每种图的细节问题: 1、用例图(use case diagrams) 【概念】描述用户需…

UML——概述(什么是UML?UML有什么作用?面向对象技术)

目录 什么是UML? UML能帮我们做什么? 什么是建模? 为什么要建模? 为什么要可视化建模? 建模的原理(原则) UML的基本构造块 UMl中事物有哪些? 面向对象技术 什么是UML&#…