OpenFlow总结

article/2025/10/25 10:00:12

OpenFlow总结

  • OpenFlow体系结构
  • OpenFlow端口
    • 1.1、物理端口
    • 1.2、逻辑端口
    • 1.3、预定端口(OpenFlow1.5中文版)
  • OpenFlow流表(FlowTable)
    • 2.1、概念
    • 2.2、流表结构
  • OpenFlow通信通道
    • 3.1、消息类型
    • 3.2 、消息交换

OpenFlow体系结构

OpenFlow
由斯坦福大学研究者提出一种应用于SDN架构的关键协议。核心理论就是将之前完全由交换机/路由器控制的数据包的转发过程,转变为由OpenFlow交换机(OpenFlow Switch) 和控制服务器(Controller)分别完成的独立过程。
体系结构
主要由OpenFlow交换机(OpenFlow Switch)和控制服务器(Controller)两部分组成。OpenFlow规范主要分为四个部分。
在这里插入图片描述

OpenFlow交换机由流表、安全通道和OpenFlow协议三部分组成。逻辑结构图如下:
在这里插入图片描述

OpenFlow端口

1、OpenFlow端口
OpenFlow端口是OpenFlow处理单元与网路其他部分传递封包的网路接口。交换机在逻辑上与其他交换机都是通过OpenFlow端口相连,一个封包在两个交换机之间的传输只能从交换机1的出口端口到交换机2的入口端口。一个OpenFlow交换机必须支持三种类型的端口:物理端口,逻辑端口和预定端口。OpenFlow标准端口定义为物理端口,逻辑端口以及本地预定的端口。标准端口可以当做入口端口,出口端口来使用。它们可以在组中使用,有端口计数器,此外还有状态与配置。

1.1、物理端口

OpenFlow的物理端口是与交换机硬件接口对应的由交换机定义的端口。在有些布放的情形下,OpenFlow交换机是在硬件上虚拟化的。此时,物理端口可能代表着对应交换机硬件接口资源的一个分片。

1.2、逻辑端口

逻辑端口指的是由交换机定义但不与硬件接口直接相关的端口。逻辑端口可能是由交换机使用非OpenFlow 方法定义的高阶抽象(如链路聚合组,隧道,回环接口)。逻辑接口包含了封包封装且可能映射到各种物理端口。逻辑端口完成的封包处理必须依赖于应用,且处理过程对OpenFlow处理是透明的。这些端口必须采用与物理端口相同的方式来完成与OpenFlow处理的交互。
逻辑端口与物理端口唯一的区别在于与逻辑端口相关的封包必须有一个额外的流水线属性,隧道编号。当逻辑端口收到的封包被转发到控制器时,相关的物理端口与逻辑端口都会向制器发送报告。

1.3、预定端口(OpenFlow1.5中文版)

指明了一般性的转发规则,一个交换机不一定要支持全部的预定段端口,但必须支持表明必备的端口。

  1. (必备)ALL:代表了交换机可以用于转发一个特定封包的所有端口。只能用作输出端口。在这种情况下,封包将被复制到各个端口执行出操作,当然封包的入端口与配置为OFPPC_NO_FWD的端口除外。
  2. (必备)控制器:代表与控制器相连的控制信道,可以作为入口端口或出口端口使用。作为出口端口使用时,将封包封装在Package-in消息中,并将其转发到控制器。
  3. (必备)表:代表OpenFlow流水线的开始,这个端口只有在Package-out消息动作集中的输出动作里才有意义。执行输出操作是,将封包转发至第一个流表,由此开始一个OpenFlow流水线处理封包的过程。
  4. (必备)入端口:代表封包的入口端口。只能作为输出端口使用,通过它的入口端口送出封包。
  5. (必备)任意:在OpenFlow请求没有指定端口时使用的特殊值(也就是端口匹配值为通配符时)。既不能做入口端口也不能做出口端口。
  6. (必备)未设置:用于指明输出端口在动作集中为设置的特殊值。只能在用匹配属性OXM_OF_ACTSET_OUTPUT来匹配动作集中的输出端口时使用。既不能做入口端口也不能做出口端口。
  7. (可选)本地:代表交换机的本地网络堆与它的管理堆。 既能做入口端口也能做出口端口。本地端口使得远端实体可以与交换机及网路服务通过OpenFlow网路相连。在有着合适的默认流表项的情况下,本地端口可以用来做控制器的同频带信号传输的连接。
  8. (可选)普通:代表使用交换机的传统的非OpenFlow流水线转发方法。只能作为输出端口使用,使用普通的流水线处理封包。通常情况下会给封包架起网桥或是给封包指明路由路径,而实际上结果总是依赖于实现。如果交换机不能够从OpenFlow流水线转发封包到普通流水线,它必须不支持这个动作。
  9. (可选)泛洪:代表使用 交换机的传统的非OpenFlow流水线泛洪。只能作为输出端口使用,实际结果依赖于实现。通常会在所有的标准端口送出封包,封包的入口端口与处于OFPPS_BLOCKED状态的端口除外。交换机也可能通过封包的VLAN ID或其他标准来选择实现泛洪的端口。

OpenFlow流表(FlowTable)

2、OpenFlow的流表

2.1、概念

流表项:在流表中用于匹配和处理数据包的一个元素。它包含用于匹配数据包的匹配字段、匹配次序的优先级,跟踪数据包的计数器,以及对应的指令集 。
匹配字段:用来匹配数据包的字段,包括包头,进入端口,元数据值。匹配字段可能会进行通配符匹配(匹配任何值)或者在某些情况下通过位掩码进行匹配。
指令:指令存在于流表项中,描述报文匹配流表项时OpenFlow的处理方式。指令可以修改流水线处理,如指导包匹配另一个流表,也可以包含一系列添加到行动集的行动,还可以包含一系列立即应用到数据包的行动。
行动:将数据包转发到一个端口或修改数据包,如TTL字段减1操作。行动可能是与流表项相关联的指令集或者与组表项相关联的行动存储段的一部分。我们可以将行动积累在数据包的行动集,也可以立即将行动应用到该数据包。
行动集:与数据包相关的行动集合,在报文被每个表处理的时候这些行动可以累加,在指令集指导报文退出处理流水线的时候这些行动会被执行。
组:一系列的行动存储段和一些选择一个或者多个存储段应用到数据包单元的手段。
行动存储段:一组行动和相关参数,定义组。
标记:一个头,可以插入到数据包或者通过压入和弹出行动进行移除。
最外层的标签:一个数据包最开始出现的标签。
控制器:一个实体与OpenFlow交换机使用OpenFlow协议交互的实体。
计量:一个交换机元件,可以测量和控制数据包的速度。当数据包速率或通过计量的字节速率超过预定义的阈值时,计量触发计量带。如果计量带丢弃该数据包,它则被称为一个速率限制器。

2.2、流表结构

流表是OpenFlow交换机的核心部分,OpenFlow交换机包括一个或多个流表和一个组表,执行分组查找和转发,和到一个外部控制器OpenFlow的信道。一条OpenFlow(V1.3)的规则组成如下,与OpenFlow v1.0不同的是,OpenFlow v1.3协议中一台OF交换机会有多张流表:
在这里插入图片描述

匹配域:用来识别该条表项对应的flow,对数据包匹配。包括入口端口和数据包报头,以及由前一个表指定的可选的元数据;
优先级:定义流表项的优先顺序;
计数器:,更新匹配数据包的计数,用于保存与条目相关统计信息;
指令:修改行动集或流水线处理,匹配表项后需要对数据分组执行的动作;
Timeouts:最大时间计数或流有效时间;
Cookie:由控制器选择的不透明数据值。控制器用来过滤流统计数据、流改变和流删除。但处理数据包时不能使用;
Flags。
控制器使用OpenFlow的协议,可添加、更新和删除流表中表项,既主动或被动响应数据包。
每个流表项包含匹配字段,计数器和一组指令,用来匹配数据包。
行动描述了数据包转发,数据包的修改和组表处理。流水线处理的指令允许数据包被发送到后面的表进行处理,允许信息以元数据的形式在表之间进行通信。当与一个匹配的流表项相关联的指令集没有指向下一个表时,表流水线处理停止,这时该数据包通常被修改和转发。

OpenFlow通信通道

3、OpenFlow通信通道

3.1、消息类型

  1. Controller-to-Switch(控制器到交换机的消息,由控制器主动发出,用于管理OF交换机)
    • Features用来获取交换机特性
    • Configuration用来配置OpenFlow交换机
    • Modify-State用来修改交换机状态(修改流表)
    • Read-Stats用来读取交换机状态(流、网包等统计信息)
    • Send-Packet用来发送数据包
    • Barrier阻塞消息,控制器确保消息依赖满足,或接收完成操作的通知
    • Packet-out控制器通过交换机指定端口发出网包。
  2. Asynchronous(异步消息,此类消息由交换机主动发出,异步消息的主要用途是将交换机状态或网络事件的变化更新到控制器。)
    • Packet-in用来告知控制器,交换机接收到数据包
    • Flow-Removed用来告知控制器交换机流表被删除
    • Port-Status交换机端口状态发生变化时(例如down掉),触发Port-status消息。
    • Error用来告知控制器交换机发生错误
  3. Symmetric(对称消息,可以由控制器或交换机主动发出)
    • Hello用来建立OpenFlow连接
    • Echo用来确认交换机与控制器之间的连接状态,该消息用来测量延迟、是否连接保持等。
    • Vendor厂商自定义消息

3.2 、消息交换

下图展示了OpenFlow和Switch之间一次典型的消息交换过程,出于安全和高可用性等方面的考虑,OpenFlow的规范还规定了如何为Controller和Switch之间的信道加密、如何建立多连接等(主连接和辅助连接)。
在这里插入图片描述

(综合文章简单总结下OpenFlow的相关知识)


http://chatgpt.dhexx.cn/article/6i2r9edE.shtml

相关文章

Openflow

1.Openflow是啥 OpenFlow是第一个开放的南向接口协议,也是目前最流行的南向协议。 它提出了控制与转发分离的架构,规定了SDN转发设备的基本组件和功能要求,以及与控制器通信的协议。 2.OpenFlow组件 2.1. OpenFlow交换协议 2.2 OpenFlow网…

[学习笔记]OpenFlow概述(1)

个人学习笔记,出问题请指出下。摘取《图解OpenFLow》 Openflow协议是由斯坦福大学提出,最初的出发点是为了更加轻松地构建用于研究的网络。 Openflow的初期设计思想:无需设计新的硬件,只对现有硬件更新其软件。因此,O…

OpenFlow 协议详解(干货)

OpenFlow是一种新型的网络协议,它是控制器和交换机之间的标准协议。自2009年底发布1.0版本后,OpenFlow协议又经历了1.1、1.2、1.3及1.4版本的演进过程,目前使用和支持最多的是1.0和1.3版本。OpenFlow1.3在1.0版的基础上进一步优化及升级&…

OpenFlow概念学习

前言 OpenFlow交换机将原来完全由交换机/路由器控制的报文转发过程转化为由OpenFlow交换机和控制服务器来共同完成,目的交换机要通过of协议(OpenFlow Protocol)经安全通道(Secure Channel)连接到外部控制器&#xff08…

Openflow协议详解

来自:http://www.h3c.com/cn/d_201811/1131080_30005_0.htm 1 OpenFlow背景 转发和控制分离是SDN网络的本质特点之一 。在SDN网络架构中,控制平面与转发平面分离,网络的管理和状态在逻辑上集中到一起,底层的网络基础从应用中独立出来&#…

深入分析OpenFlow协议

文章目录 OpenFlow是什么???OpenFlow的起源与发展OpenFlow工作原理OpenFlow组件OpenFlow控制器1、NOX/POX2、ONOS3、OpenDaylight OpenFlow安全通道OpenFlow交换机流表项的组成多级流表与流水线处理流表下发方式 OpenFlow的应用场景OpenFlow的…

【赛氪 Saikr】不正方形(数学、平面几何 ps:今天打了假赛)

题目: 不正方形 Description 今天是数学课!小A发现同学们上课很消极,于是给大家出了一个数学小游戏。 小A在黑板上画了一个很大很大的平面直角坐标系,然后给出了若干个红点和黄点,现在同学们需要回答,这…

数学真正的意义

产业智能官:“很多人对现代数学充满疑虑,成长的过程中被数学的难题长期折磨而产生的心理阴影。因此,数学成了社交网络中避而不谈的话题。 很早以前,我们就被教育“数学是思维的体操”。但是,对大脑是如何受益于这种体…

查询语文成绩大于数学的学生

Oracle --创建表,插入资料 create table lx ( sno number(10), course varchar2(10), score number(10) ) insert into lx select 3,语文,90 from dual union select 3,数学,68 from dual select * from lx 写法1: 将语文成绩,数学…

美团2022秋招笔试题-小美的数学题-栈

题目描述 阔浩序列是这样定义的: 空串是合法的序列,且代价1如果 s 是合法的阔浩序列,那么( s )也是合法的,且( s )的代价为 s1如果s,t都是合法的,那么它们拼接起来的 st 也是合法,且总的代价为s的代价*t 的代价。 例如,(()())()是合法的,其代价为(2*21)*210 输入…

那些虐哭过你的大学数学课都有什么用处?看完后恍然大悟!

导读:高等数学有什么用?很多人都在问这个问题。其实大多数人在问这个问题的时候,心里已经预设了否定的答案。确实,对于大多数人来说,已经发展到了连数字都基本很少用了的一些高等数学分支,是过于虚无飘渺了…

程序员,想转型人工智能吗?先补补数学课吧!

人工智能很火,也很高端,深度学习、机器学习、视觉识别,听上去就很高大上。而且不仅仅是听上去高大上,现实当中确实也是实实在在的高大上。 在互联网圈子里,有一句话流传甚广:得人工智能者得天下。根据脉脉…

数学知识(习题课)

异或运算(不进位加法) 台阶Nim游戏必胜策略: 拆分Nim游戏 利用sg定理(后期再把sg定理给大家好好写一下)

2021年辽宁省大学生数学建模

2021年辽宁省大学生数学建模 C题 碳中和问题 碳中和是指人为排放量(化石燃料利用和土地利用)被人为努力(木材蓄积量、土壤有机碳、工程封存等)和自然过程(海洋吸收、侵蚀-沉积过程的碳埋藏等)所吸收。简单…

计算机专业数学建模结课论文,数学建模结课论文3000字论文

数学建模结课论文3000字论文 此频道为与数学建模和论文和字论文有关的范文,免费给你写数学建模结课论文提供相关参考文献资料。 摘 要:研究性学习中数学建模作为中职教育教学的重要组成部分,在教学的探索中取得了一定的成效。数学建模在解决数学问题时能够更好地调动学生自身…

当前目录下有一个文件名为 class_score.txt 的文本文件,存放着某班学生的学号、数学课成绩(第 2 列)和语文课成绩(第 3 列)。请编程完成下列要求。

练习三:当前目录下有一个文件名为 class_score.txt 的文本文件,存放着某班学生的学号、数学课成绩(第 2 列)和语文课成绩(第 3 列)。请编程完成下列要求: (1)分别求这个班…

土圭垚㙓数学课(一)万向锁(Gimbal Lock)

何为万向锁,我们先抛弃掉那些理论,直接举个栗子。 以你自身为对象。 首先,原地旋转为第一个维度,也就是heading。 其次,正翻跟头为第二个维度,也就是pitch。 然后,侧翻跟头为第三个维度&…

令人讨厌的是数学课,不是数学----《一个数学家的叹息》

机缘巧合,看到了一本书,深受触动。 书中所说的理念正是马同学一直想去、要去、希望能够做到的,借用书中的话: 数学是理性的音乐。做数学是从事发现与猜测、直觉与灵感的活动;是进入疑惑的状态——不是因为它让你搞不懂…

五使用计算机上数学课英文,数学课用英语怎么说

目录 一、她正在上数学课用英语怎么说 请帮忙,我不会英语翻译! 数学课mθs 语文课ˌtʃaɪˈni:z 英语课ˈɪŋglɪʃ 体育课ˈfizikəl ˈkʌltʃə 电脑课kəmˈpju:tə(r) 科学课[saɪəns] 音乐课[mju:zɪk] 美术课[ɑ:t] 品德课[ˈmɔ&a…

Android HttpDns:我的域名我做主

Android HttpDns:我的域名我做主 之前公司的产品遇到了用户忽然无法登陆使用的问题,后来查明是因为在用户发布的内容里有一张被判定为黄图的图片,导致我们的域名被运营商封锁。还有一种情况,部分地区的用户使用我们的产品时页面上…