OpenFlow协议Open Flow交换机跟流表(FlowTable)

OpenFlow技术 OpenFlow是由斯坦福大学的Nick McKeown教授在2008年4月ACM Communications Review上发表的一篇论文OpenFlow: enabling innovation in campus networks首先详细论述了OpenFlow的原理。 阅读详情

       Open Flow协议、Open Flow交换机跟流表(FlowTable)

 

传统网络:传统网络的缺陷或者催生SDN的背景请参考链接https://www.cnblogs.com/031602523liu/p/8887740.html

        网络设备手工维护,依靠传统网络管理软件等方式辅助人工进行维护,运维效率低下,容易出现由于个人能力的差异以及响应等原因, 影响运维的效率, 增加运维的成本;传统网络业务割接或者新业务上线周期偏长,往往大的业务割接切换,涉及非常复杂的操作,例如防火墙设备涉及多条策略的调整,出错概率大;传统网络故障定位效率不够,部分问题定位困难,往往因为工程师个人经验以及能力等原因,影响故障处理进度,最终导致严重后果,增加运维的负担。

SDN网络:

        SDN 网络的主要特点是集群化、采用虚拟的软件定义网络数据流,通过图形化的方式简易的呈现,方便业务的上线以及后期的维护扩容;SDN 自动化运维方式, 与云平台进行对接, 实现网络服务的自动化。对流量路径、网络拥赛情况进行实时的自动化优化以及感知,精确感知网络延时以及丢包情况。同时对更换的备件等进行配置自动化的下发,提升运维效率,避免人为的操作引起的差错从而增加运维的成本;SDN 运维过程中,可以通过可视化的图形界面,清晰的梳理物理网络结构以及逻辑网络结构,一眼就能了解清楚业务流以及管理数据流向。可以通过 SDN 的雷达检测网络故障、 SND 仿真终端的方式模拟数据测试等方式,通过可视化的页面简单清晰的进行网络的维护工作,实现可溯源、可审计等规范的运维;SDN 的架构变化带来的网络运维变化同样非常大,基于 overlay 的网络统一接入业务、管理、存储流量、消除基础网络的二层环路。整个 overlay 的网络结构,打破了传统的网络壁垒,可实现远端数据中心大二层互联互通。在运维过程中,只需通过图形化的界面,统一调度、维护网络中的业务数据,即可实现环路检测、路径探测、切换业务流等操作,运维即方便快捷。

       智能化、可视化、自动化,是后期 SDN 网络运行维护的主要方式,降低传统网络维护中的成本以及提升网络运维的效率。

Open Flow协议(数据链路层):首先,ODL控制器支持Open Flow协议。在支持SDN的物理网络中(架构图如下):

                                                      SDNæ¶æå¾

        控制层和转发层之间的API叫做“南向接口”,“南向接口”是控制层与转发层之间的通信通道,以OpenFlow协议为标准,实现了控制器与交换机之间的信息交互。

        OpenFlow交换机是整个OpenFlow网络的核心部件,主要管理数据层的转发。OpenFlowSwitch拥有一个FlowTable(流表),它只按照流表进行转发,FlowTable的生成、维护和下发由外置的Controller来实现。这里的FlowTable并非是指IP五元组(IP源地址、IP目的地址、协议号、源端口、目的端口),OpenFlow1.0规范定义了包括输入端口、MAC源地址、MAC目的地址、以太网类型、VLANID、IP源地址、IP目的地址、IP端口、TCP源端口、TCP目的端口在内的10个关键字(十元组)。FlowTable中的每个关键字都可以通配,网络的运营商可以决定使用何种粒度的流,比如运营商只需要根据目的IP进行路由,那么FlowTable中就可以只有IP目的地址字段是有效的,其它全为通配。传统网络中数据包的流向是人为指定的,虽然交换机、路由器拥有控制权,却没有数据流的概念,只进行数据包级别的交换;而在OpenFlow网络中,统一的Controller取代路由,决定了所有数据包在网络中传输路径。

         OpenFlow采用控制和转发分离的架构,意味着MAC地址的学习由Controller来实现,VLAN和基本的路由配置也由Controller下发给OpenFlowSwitch。对于三层网络设备,各类路由器运行在Controller之上,Controller根据需要下发给相应的路由器。当一个Controller同时控制多个OpenFlowSwitch时,它们看起来就像一个大的逻辑交换机。

FlowTable的下发可以是主动的,也可以是被动的。

主动模式:Controller将自己收集的FlowTable信息主动下发给OpenFlowSwitch,随后OpenFlowSwitch可以直接根据FlowTable进行转发。

被动模式:OpenFlowSwitch收到数据包后,首先在本地的FlowTable上查找转发目标端口,如果没有匹配,则把数据包转发给Controller,由控制层决定转发端口,并下发相应的FlowTable。被动模式的好处是网络设备无需维护全部的FlowTable,只有当实际的流量产生时才向Controller获取FlowTable记录并存储,当记录老化时可以删除相应的FlowTable,故可以大大节省存储器空间。

Open Flow交换机:

       OpenFlow交换机由 安全通道、流表、OpenFlow协议 三部分组成。 

        安全通道
安全通道是连接OpenFlow交换机和控制器通信的接口。控制器通过这个接口来控制和管理OF交换机,同时OF交换机通过这个接口将事件传给控制器,发送数据包,并接收来自控制器下发数据包。

控制器和交换机必须通过安全通道进行通信,而且进行通信的数据包必须按照OpenFlow协议规定的格式执行。

流表(FlowTable):
        流表是数据转发的依据,与交换机的mac地址转发表和IP地址路由表类似,流表中保存了网络中各个层次的网络配置信息,因此可以进行更加丰富的转发规则。交换机收到来自主机的数据包后,会在本机查询对应的动作,和对应的输出端口。

流表有很多流表项,每一条流表项都是一个转发规则。流表项的结构如下: 包头域用于数据包匹配;计数器用于统计匹配数据包个数;动作用于指示匹配数据包如何处理;流表由控制器下发给交换机。

       下发模式有两种:主动模式、被动模式。

FlowVisor
FlowVisor是建立在OpenFlow协议上的网络虚拟化工具。它将物理网络划分为不同的逻辑网络,从而实现虚网划分。它让管理员通过定义流规则来管理网络,而不是修改路由器和交换机的配置。

FlowVisor部署在标准OpenFlow控制器与OpenFlow交换机之间,并对两者是透明的。它将物理网络划分为多个虚网,使每个控制器控制一个虚网,并保证各虚网相互隔离。

FlowVisor的设计原则是:

FlowVisor对控制器和交换机是透明的,它们都感知不到FlowVisor的存在
各虚网之间相互隔离,即使是广播包,各虚网的流量也相互隔离
划分虚网的策略是灵活、模块化、可扩展的
        OpenFlow消息在进行传输时,FlowVisor会根据配置策略对OpenFlow消息进行拦截、修改、转发等操作。这样,控制器就只能控制其被允许控制的流,但是控制器并不知道它所管理的网络被FlowVisor进行过分片操作。 同样,交换机发出的消息经过FlowVisor过滤后,也会被发送到相应的控制器。

Controller
         OpenFlow将控制层与数据转发层分离,其中OpenFlow交换机实现了数据转发功能,而OpenFlow控制器则实现了控制层功能。Controller通过OpenFlow协议提供的标准数据接口,对OpenFlow交换机中的流表进行控制、管理,实现了对整个网络的集中控制。 
         在Controller中,可以用python等程序对其功能进行定义,比如下发流表,对Packet_in包进行处理等。

参考文章:https://www.cnblogs.com/031602523liu/p/8887740.html

全网最详细——OpenFlow 协议分析 其中匹配域用于区分不同的数据流,网络数据包进入交换机之后会匹配流表中的流表项,匹配到同一条流表的数据包被称为数据流。网络数据包进入交换机之后会匹配流表中的流表项,匹配到同一条流表的数据包被称为数据流,即Data Flow,简称 Flow。安全通道是用于和控制器通信的安全连接。使用 wireshark 软件,获取交换机与主机之间和两台主机之间的通信,分析交换机与控制器通信的过程并绘制一张流程图,并对主机之间通讯的 packet_in、packet_out、flow_mod 类型的报文的各组成部分进行分析。 阅读详情

相关推荐

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

OpenFlow学习笔记一

qq_47201121的博客 2040

OpenFlow协议入门(通俗易懂!)

本文主要参考OpenFlow1.5.1协议、1.3.0协议以及SDN相关书籍,对OpenFlow中主要机制(如流表与流水线处理、组表、计量表等)的原理进行解析。

撬锁不偷车 1万+

什么是OPen Flow?

通俗的讲,OpenFlow是使用类似于API进程配置网络交换机的协议。OpenFlow的思路很简单,网络设备维护一个FlowTable并且只按照FlowTable进行转发,FlowTable本身的生成、维护、下发完全由外置的Controller来实现,注意这里的FlowTable并非是指IP。

lingshengxiyou的博客 887

OpenFlow总结

OpenFlow简要总结

A_thing的博客 1万+

【信息科学与工程学】【通信工程】第一百九十二篇 交换机体系结构01

编号类型领域问题详细的数学分析参数列表(表达式 / 范围 / 边界 / 测量)关联知识1.1算法-架构路由查找LPM 在多口线速下的时延界字符串集 + Trie 的偏序格:路由表 = 前缀集合 P⊂{0,1}^≤32,LPM 是找 p∈P 使 p 是 d 的最长前缀。TCAM 等价于并行匹配,复杂度 O(1);SRAM 软实现(DIR-24-8 等)≈ 多阶 Trie,期望比较次数 = 树深 = O(W),W=32/128。 优化理论:TCAM 占用 vs SRAM 的 knapsack:min ∑w

weixin_49199313的博客 508

【信息科学与工程学】【通信工程】第七十七篇 城域网+FTTR/FTTB/FTTC/FTTO的数学分析01

总带宽 Btotal​需考虑各业务带宽 Bi​及统计复用性(按80%计算):Btotal​=0.8∑i=1n​Bi​​。调度延迟 Di​=ri​li​​,其中 li​为包长。:dtdN2​​=hνp​APp​σap​​(Nt​−N2​)−τN2​​−hνs​APs​σes​​N2​,N2=上能级粒子数,N_t=总Er³⁺浓度,σ_ap/σ_es=吸收/发射截面,τ=荧光寿命(≈10ms),A=纤芯面积。调度分数 Scorej​=w1​umax​−umin​umax​−uj​​+w2​mmax​mj​​。

weixin_49199313的博客 416

Openflow协议规范

1 总述 一个Openflow交换机包括一个或者多个流表flow table和一个组表group table。每个流表中每个流条目包括三个部分:(1) 匹配match—使用ingress port,packet header以及前一个flow table传递过来的metadata;(2) 计数counter---对匹配成功的包进行计数;(3) 操作instruction—修改action set

neterpaole的专栏 3万+

【信息科学与工程学】【通信工程】计算机科学与自动化——第二百三十三篇 云NaaS服务 系列二01

国家骨干网(含核心网、IP骨干网、OTN骨干网)/城域网【含3G/4G/5G接入网/PON接入网/OTN接入网+OTN/IP城域网+其他】/中心云(多/双/单Region+多AZ/双AZ/单AZ)+边缘DC+边缘计算节点+端计算节点包括IoT传感器、移动终端、CPE设备。通过5G NR(n78频段,带宽100MHz,子载波间隔30kHz)或GPON(下行2.5Gbps,上行1.25Gbps)接入。本地缓存小于10GB,主要用于临时数据暂存。位于地市级机房,部署MEC服务器(Intel Xeon Platin

weixin_49199313的博客 1325

Open vSwitch学习记录

顺利完成目标~~~开开心心地开始学Open vSwitch 概念 简而言之就是一个虚拟交换机。主要有如下两个作用: 传递虚拟机啊VM之间的流量 实现VM和外界网络的通信 Bridge: Bridge 代表一个以太网交换机(Switch),一个主机中可以创建一个或者多个 Bridge 设备。 Port: 端口与物理交换机的端口概念类似,每个 Port 都隶属于一个 Bridge。 Inter...

iroy33的博客 1540

VS2022打包C#安装包(最新、最全)

VS2022打包C#安装包(最新、最全)

qq_37959253的博客 9890

ArcGIS Pro实战:用时空立方体分析共享单车轨迹数据(含3D可视化技巧)

本文详细介绍了在ArcGIS Pro中利用时空立方体技术分析共享单车轨迹数据的全流程。从数据预处理、构建时空立方体,到执行新兴时空热点分析,并最终实现动态3D可视化,手把手教你挖掘城市骑行活动的时空规律。文章重点解析了工具参数设置、常见报错解决方案,并提供了可复用的Python脚本,助力城市规划与交通研究者高效完成时空模式挖掘。

weixin_28323057的博客 136

OpenFlow分析

Openflow的思路很简单,网络设备维护一个FlowTable并且只按照FlowTable进行转发,Flowtable本身的生成、维护、下发完全由外置的Controller来实现,注意这里的FlowTable并非是指IP五元组,事实上OpenFlow 1.0定义的了包括端口号、VLAN、L2/L3/L4信息的10个关键字,但是每个字段都是可以通配的,网络的运营商可以决定使用何种粒度的流,比如

a279593838的博客 1124

PCIe5.0均衡简介(整理版)

pcie5.0 均衡 equalization

m0_53559277的博客 9108

【随笔】OpenFlow概述

实践SDN的首选主流南向接口P4和PISA的前身Ethane项目是斯坦福大学定义出了OpenFlow之后,主要是为了厂商的一些接口进行开放出来。

weixin_41997073的博客 912

学习Python,小白如何搭建Python环境?

学习Python,首先需要搭建好Python环境,主要分为【运行环境搭建】、【开发环境搭建】以及【Python环境配置】三个环节,接下来我将对Python环境搭建这三个部分进行介绍。

weixin_72923265的博客 8997

有了网段为什么还要有VLAN???

近几日,在学习VLAN及VXLAN方面的知识,对于产生原因做一个总结及详解。 VLAN(Virtual Local Area Network,虚拟局域网),其主要用途是用来缩小广播域,即进行隔离。 先对广播域的一个概念做如下描绘:如下图,主机A、B、C、D均连接在交换机SW1上,其中A、C同网段为192.168.252网段,而B和D同网段,为192.168.250网段。 现,假如A与C第...

dandandean_96的博客 6885

Openvswitch手册(9): Flow

这一节我们将flow table flow table主要由ovs-ofctl命令操作 ovs-ofctl可以走和openflow controller一样的协议: ssl:ip[:port]: The specified SSL port (default: 6633) on the host at the given ip, which must be expressed as ...

weixin_34375054的博客 428

智能绿植管家:基于 ESP32 的室内植物自动补光与环境调控系统

本文设计的基于 ESP32 的室内植物自动补光与生长环境调控系统,实现了植物生长环境的自动化、智能化管理。硬件选型合理、接线简单,软件逻辑清晰、易于调试,能够有效解决室内植物生长环境不适的问题。系统具备良好的实用性和扩展性,可为园艺爱好者和小型培育场所提供稳定、高效的植物养护方案。

weixin_42300449的博客 144

基于 OpenFlow 实现网络虚拟化

原文地址 http://www.ibm.com/developerworks/cn/cloud/library/1303_silei_openflow/

小饼仙子的专栏 864

git clone出现fatal: unable to access Failed to connect to github.com port 443: Timed out解决方案

本文主要介绍了git clone出现fatal: unable to access Failed to connect to github.com port 443: Timed out解决方案,希望能对使用git的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 23万+

基于Simulink的自适应反步法(Adaptive Backstepping)控制​

本文针对非线性系统控制中未知参数和强非线性耦合的挑战,提出基于Simulink的自适应反步法解决方案。通过融合参数在线估计与反步递归设计,该方法显著提升了永磁同步电机(PMSM)速度控制的鲁棒性,使跟踪误差从20%降至3%,参数估计收敛时间小于0.5秒。文章详细阐述了从算法推导到Simulink实现的完整流程,包括系统架构设计、核心算法推导(以PMSM为例)、模块化建模方法、参数优化策略以及工程部署建议。提供的自适应控制器MATLAB代码和关键参数表可直接应用于实际工程,为电机驱动、机械臂等非线性系统控制提

xiaoheshang_123的博客 101

OpenStack网络基础知识: OpenvSwitch使用指南

原文地址: OpenStack网络基础知识: OpenvSwitch使用指南 OpenvSwitch的架构与基本概念 OVS构成 ovs的构成非常简单,每个部件负责各自的职责. ovs-vswtiched openvswitch的守护进程. ovsdb-server openvswitch的数据库服务,保存相关配置信息,非常轻量级 k

x_i_y_u_e的专栏 1万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Openflow简单认识

OpenFlow是软件定义网络(SDN)中的一种关键通信协议,用于在SDN控制器和网络设备(如交换机和路由器)之间传递信息。它允许控制器动态地管理网络流量的路由,实现网络的灵活配置和优化。OpenFlow由斯坦福大学的Clean Slate项目首次提出,并由Open Networking Foundation(ONF)进行标准化和推广。

apple_53311083的博客 2384

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

OpenFlow概念学习

OpenFlow基础:对OpenFlow中主要机制(如流表与流水线处理、组表、计量表等)的原理进行解析

qq_35736253的博客 4782

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

OpenFlow 协议详解(干货)

OpenFlow是一种新型的网络协议,它是控制器和交换机之间的标准协议。自2009年底发布1.0版本后,OpenFlow协议又经历了1.1、1.2、1.3及1.4版本的演进过程,目前使用和支持最多的是1.0和1.3版本。OpenFlow1.3在1.0版的基础上进一步优化及升级,其中添加了很多新的特性及消息,如支持多个流表(flow table)、组表(group table),支持多控制器等。一个...

dwj_daiwenjie的博客 3万+
上一篇: 浅析TCP/IP协议
下一篇: Spine-ServerLeaf模型配置原生路由互通命令详解
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ปรัชญา แค้วคำมูล

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值