OpenFlow网络、OpenFlow交换机及OpenFlow协议的知识总结

您所在的位置:网站首页 openflow的运作架构 OpenFlow网络、OpenFlow交换机及OpenFlow协议的知识总结

OpenFlow网络、OpenFlow交换机及OpenFlow协议的知识总结

2023-10-13 07:27| 来源: 网络整理| 查看: 265

目录

OpenFlow起源与发展

OpenFlow网络

1、OpenFlow交换机:

2、FlowVisor:

3、Controller:

OpenFlow交换机

分类

安全通道

流表

OpenFlow协议 :

OpenFlow协议

匹配流程

消息类型

OpenFlow应用

网络虚拟化 – FlowVisor

负载均衡 – Aster*x

绿色节能的网络服务 – ElasticTree

OpenFlow起源与发展

OpenFlow 是 Software Definded Network 的一种,由斯坦福大学的 Nick McKeown 教授在 2008 年 4 月 ACM Communications Review 上发表的一篇论文 OpenFlow: enabling innovation in campus networks 里首先提出来的。它最初的出发点是用于网络研究人员实验其创新网络架构、协议,考虑到实际的网络创新思想需要在实际网络上才能更好地验证,而研究人员又无法修改在网的网络设备,故而提出了 OpenFlow 的控制转发分离架构,将控制逻辑从网络设备盒子中引出来,研究者可以通过一组定义明确的接口对网络设备进行任意的编程从而实现新型的网络协议、拓扑架构而无需改动网络设备本身。

OpenFlow网络

所谓OpenFlow网络指的是相互连接的一组OpenFlow交换机的集合,并且这些交换机全部置于一个OpenFlow Controller或一个OpenFlow Controller的集群管理之下。

分为以下三个部分

1、OpenFlow交换机:

主要实现数据层的转发。下面一节做详细介绍

2、FlowVisor:

主要作用是对网络进行虚拟化。FlowVisor是建立在OpenFlow协议上的网络虚拟化工具。部署在标准OpenFlow控制器与OpenFlow交换机之间,它将物理网络划分为不同的逻辑网络,使每个控制器控制一个虚网,从而实现虚网划,并保证各虚网相互隔离分。它让管理员通过定义流规则来管理网络,而不是修改路由器和交换机的配置。效果如下图所示,

图 3. 物理网络被分割成不同的逻辑网络

FlowVisor的设计原则是:

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

3、Controller:

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

OpenFlow交换机

图 1. 基于 OpenFlow 的网络交换设备

OpenFlow交换机是OpenFlow网络得核心部件,主要用于管理数据层得转发。其结构如上图方框中所示。

分类

OpenFlow交换机分为两类:专用OpenFlow交换机和支持OpenFlow的交换机

专用OpenFlow交换机:专门为OpenFlow设计的交换机。与传统交换机不同,它不再具有控制逻辑,而仅仅是在端口间转发数据包的一个简单部件。支持OpenFlow的交换机:是在传统商业交换机的基础上,添加了安全通道、流表、OpenFlow协议,获得了OpenFlow特性的交换机。它既具有传统交换机的控制转发功能,又具有OpenFlow的转发逻辑。因此该交换机对数据包支持两种不同的接收处理方式。

整个流程如下:OpenFlow交换机接收到数据包,首先在流表上查找转发目标端口,如果没有匹配,将数据包转发给Controller,由控制层决定转发端口。

如上图所示,openflow交换机由以下三个部分组成:

安全通道

安全通道是连接OpenFlow交换机和控制器通信的接口。控制器通过这个接口来控制和管理OpenFlow交换机,同时OpenFlow交换机通过这个接口将事件传给控制器,发送数据包,并接收来自控制器下发数据包。控制器和交换机必须通过安全通道进行通信,而且进行通信的数据包必须按照OpenFlow协议规定的格式执行。

流表

流表由控制器下发给交换机。下发模式有两种:主动模式、被动模式。

主动模式——控制器将自己收集的流表信息主动下发给交换机等网络设备,随后网络设备可直接查询流表转发。 被动模式——网络设备收到一个没有匹配的FlowTable记录时,将其封装成Packet_in数据包,转发给控制器,由控制器决定如何处理,并下发流表。

由多个流表项组成,每个流表就是一个转发规则,进入交换机的数据包通过查询流表来获得转发的目的端口。流表项由头域、计数器和操作组成;其中头域是个十元组,是流表项的标识;计数器用来计数流表项的统计数据;操作标明了与该流表项匹配的数据包应该执行的操作。因此流表是数据转发的依据,与交换机的mac地址转发表和IP地址路由表类似,流表中保存了网络中各个层次的网络配置信息,因此可以进行更加丰富的转发规则。

参考文献2中介绍了一个流表的例子。

OpenFlow协议 :

OpenFlow协议用来描述控制器和交换机之间交互所用信息的标准,以及控制器和交换机的接口标准。协议的核心部分是用于OpenFlow协议信息结构的集合。OpenFlow协议支持三种信息类型:Controller-to-Switch,Asynchronous和Symmetric,每一个类型都有多个子类型。Controller-to-Switch信息由控制器发起并且直接用于检测交换机的状态。Asynchronous信息由交换机发起并通常用于更新控制器的网络事件和改变交换机的状态。Symmetric信息可以在没有请求的情况下由控制器或交换机发起。下面一节将做详细介绍。

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),支持多控制器等。一个流表中包含多个流表项,OpenFlow v1.3中流表项主要由7部分组成,分别是匹配域(用来识别该条表项对应的flow)、优先级(定义流表项的优先顺序)、计数器(用于保存与条目相关统计信息),指令(匹配表项后需要对数据分组执行的动作)、Timeouts、Cookie、Flags,如下图所示。

匹配流程

与OpenFlow v1.0不同的是,OpenFlow v1.3协议中一台OpenFlowF交换机会有多张流表。具体匹配流程如下图所示。 当 一 个 数据包到达交换机 , 从数据包中提取匹配字段从第 一 个流表 开始 查找 匹配 , 匹配字段 取 决于数据 包 的类 型 , 通常 包括各种 数 据包 的 头字段 , 例如 以 太 网 源地 址或 IPv4 目 的地 地址 等 , 此 外 , 还可 以 对 数据 包 关 联的 字段 ( 如 交换 机 1 4 的入端 口 等 ) 进行 匹配 。 如果 数据包和流表项匹配成功 , 则 更 新计数器并执 行流 表项 中 的 指令。 如果该流表 项使用GOTO 指令指 向 了 某一 其他流表 , 则执行完本次指令的数据包以及动作集、元数据等信息转到GOTO 指令指 向 的 流表进行 下 一 步 的 匹 配(也就是图中的 跳转到Table n?); 若 未指 向 另 一 流表则执行动作集 , 此时流水线处理成功。 如果在 某 个流表 中 并 未 匹配成 功 , 则 查找该 流表中 是否存在 table-miss流表项 ( 流 表 中 的table-miss流表项 指定如 何 处理未 匹 配成功 的 数据包 ) , 如 果存在table-miss流 表 项 , 则 按该流表项中 的 指令执行 , 如丢弃 数据包 、 将数据包 转到 另 外 一 个 流表 或者发送给控制器(即通过Packet_In消息传递给控制器,由控制器制定数据包的转发策略而后通过Packet_Out消息下发流表给交换机) 等; 如果在 流表 中 并未 匹配成 功并且该流表项 中 不存在table-miss流 表项, 那么 交换机将会丢弃该 数据 包。

Ope nFlo w 协议在工作 中 使用 GOTO 指令从一 张流表转 到另 一 张流表 , 该技 术被称 为 多级 流表技术 。

消息类型

OpenFlow规范定义了一个OpenFlow交换机如何与Controller建立连接、通信及相关消息类型

a) Controller/Switch消息,是指由Controller发起、Switch接收并处理的消息,主要包括Features、Configuration、Modify-State、Read-State、Packet-out、Barrier和Role-Request等消息。这些消息主要由Controller用来对Switch进行状态查询和修改配置等操作。 b) 异步(Asynchronous)消息,是由Switch发送给Controller、用来通知Switch上发生的某些异步事件的消息,主要包括Packet-in、Flow-Removed、Port-status和Error等。例如,当某一条规则因为超时而被删除时,Switch将自动发送一条Flow-Removed消息通知Controller,以方便Controller作出相应的操作,如重新设置相关规则等。 c) 对称(Symmetric)消息,顾名思义,这些都是双向对称的消息,主要用来建立连接、检测对方是否在线等,包括Hello、Echo和Experimenter三种消息。 下图展示了OpenFlow和Switch之间一次典型的消息交换过程,出于安全和高可用性等方面的考虑,OpenFlow的规范还规定了如何为Controller和Switch之间的信道加密、如何建立多连接等(主连接和辅助连接)。

OpenFlow应用

随着OpenFlow/SDN概念的发展和推广,其研究和应用领域也得到了不断拓展。目前,关于OpenFlow/SDN的研究领域主要包括网络虚拟化、安全和访问控制、负载均衡、聚合网络和绿色节能等方面。另外,还有关于OpenFlow和传统网络设备交互和整合等方面的研究。

下面将举几个典型的研究案例来展示OpenFlow的应用。

网络虚拟化 – FlowVisor

网络虚拟化的本质是要能够抽象底层网络的物理拓扑,能够在逻辑上对网络资源进行分片或者整合,从而满足各种应用对于网络的不同需求。为了达到网络分片的目的,FlowVisor实现了一种特殊的OpenFlow Controller,可以看作其他不同用户或应用的Controllers与网络设备之间的一层代理。因此,不同用户或应用可以使用自己的Controllers来定义不同的网络拓扑,同时FlowVisor又可以保证这些Controllers之间能够互相隔离而互不影响。下图展示了使用FlowVisor可以在同一个物理网络上定义出不同的逻辑拓扑。FlowVisor不仅是一个典型的OpenFlow应用案例,同时还是一个很好的研究平台,目前已经有很多研究和应用都是基于FlowVisor做的。

负载均衡 – Aster*x

传统的负载均衡方案一般需要在服务器集群的入口处,通过一个gateway或者router来监测、统计服务器工作负载,并据此动态分配用户请求到负载相对较轻的服务器上。既然网络中所有的网络设备都可以通过OpenFlow进行集中式的控制和管理,同时应用服务器的负载可以及时地反馈到OpenFlowController那里,那么OpenFlow就非常适合做负载均衡的工作。Aster*x通过Host Manager和Net Manager来分别监测服务器和网络的工作负载,然后将这些信息反馈给FlowManager,这样Flow Manager就可以根据这些实时的负载信息,重新定义网络设备上的OpenFlow规则,从而将用户请求(即网络包)按照服务器的能力进行调整和分发。

绿色节能的网络服务 – ElasticTree

在数据中心和云计算环境中,如何降低运营成本是一个重要的研究课题。能够根据工作负荷按需分配、动态规划资源,不仅可以提高资源的利用率,还可以达到节能环保的目的。ElasticTree创新性地使用OpenFlow,在不影响性能的前提下,根据网络负载动态规划路由,从而可以在网络负载不高的情况下选择性地关闭或者挂起部分网络设备,使其进入节电模式达到节能环保、降低运营成本的目的。

SDN%E4%B8%8EOpenFlow%E6%8A%80%E6%9C%AF%E7%AE%80%E4%BB%8B%20%E5%9B%BE8.jpg

 

参考文献:

https://blog.csdn.net/Sponge_bobo_herbert/article/details/80535869

https://www.ibm.com/developerworks/cn/cloud/library/1303_silei_openflow/

https://blog.csdn.net/qq_38668258/article/details/82534341



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3