您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > openflow调研报告
OPENFLOW技术调研报告摘要OpenFlow是美国斯坦福大学于2007年提出的一种支持网络创新研究的新型网络交换模型,实现网络控制和网络流量的分离,从而可以对网络进行编程。该模型通过开放的流表支持用户对网络处理行为进行控制,从而为新型互联网体系结构研究提供新的实验途径。OpenFlow提出后得到学术界和工业界的广泛关注。本文从技术的出现和发展、OpenFlow网络的组成以及OpenFlow所面临的技术难题等多个角度对OpenFlow技术进行全面的分析,并得出相关的结论。一、OpenFlow的出现和发展斯坦福大学的NickMcKeown教授在2008年4月ACMCommunicationsReview上发表的一篇论文《OpenFlow:enablinginnovationincampusnetworks》中首先详细论述了OpenFlow的原理。由该论文课题可知OpenFlow提出的最初出发点是用于校园内网络研究人员实验其创新网络架构、协议,考虑到实际的网络创新思想需要在实际网络上才能更好地验证,而研究人员又无法修改在网的网络设备,故而提出了OpenFlow的控制转发分离架构,将控制逻辑从网络设备盒子中引出来,研究者可以对其进行任意的编程从而实现新型的网络协议、拓扑架构而无需改动网络设备本身。由于OpenFlow对网络的创新发展起到了巨大的推动作用,因此受到了广泛的关注和支持。由美国科学基金会(NSF)支持的GlobalEnvironmentforNetworkInvestigations(GENI)计划对OpenFlow进行了资金支持并已开始实施“GENIEnterprise”计划从07年提出到现在,OpenFlow已经在硬件和软件支持方面取得了长足的发展。2009年12月,OpenFlow规范发布了具有里程碑意义的可用于商业化产品的1.0版本。OpenFlow分别于2008年和2009年连续两年获得了SIGCOMM的最佳演示奖,并且享有声望的MITTechnologyReview杂志把OpenFlow选为十大未来技术,认为其具有实力改变未来的日常生活。目前,OpenFlow已经在美国斯坦福大学、Internet2、日本的JGN2plus以及其他的10-15个科研机构中部署,并将在国家科研骨干网以及其他科研和生产中应用。OpenFlow的国际覆盖已经包括日本、葡萄牙、意大利、西班牙、波兰和瑞典等。二、OpenFlow网络的基本组成OpenFlow网络由OpenFlow交换机、FlowVisor和Controller三部分组成。OpenFlow交换机进行数据层的转发;FlowVisor对网络进行虚拟化;Controller对网络进行集中控制,实现控制层的功能。OpenFlow网络的结构示意图如下:2.1OpenFlow交换机OpenFlow交换机是整个OpenFlow网络的核心部件,主要管理数据层的转发。OpenFlow交换机接收到数据包后,首先在本地的流表上查找转发目标端口,如果没有匹配,则把数据包转发给Controller,由控制层决定转发端口。OpenFlow交换机由流表、安全通道和OpenFlow协议三部分组成。OpenFlow交换机结构如下图所示:OpenFlow的flowtable由很多个流表项组成,每个流表项就是一个转发规则。进入交换机的数据包通过查询流表来获得转发的目的端口。OpenFlow的flowtable中每一个entry(如下图所示)支持3个部分:规则,操作,状态。规则用来定义flow,OpenFlow里flow定义十分宽泛,支持10个域(除了传统的7元组之外增加了交换端口、以太网类型、VlanID,见下图),头域是个十元组,是流表项的标识。操作就是转发、丢弃等行为,操作标明了与该流表项匹配的数据包应该执行的操作。状态部分则是主要用来做流量的统计数据。安全通道是连接OpenFlow交换机到控制器的接口。控制器通过这个接口控制和管理交换机,同时控制器接收来自交换机的事件并向交换机发送数据包。交换机和控制器通过安全通道进行通信,而且所有的信息必须按照OpenFlow协议规定的格式来执行。OpenFlow协议用来描述控制器和交换机之间交互所用信息的标准,以及控制器和交换机的接口标准。协议的核心部分是用于OpenFlow协议信息结构的集合。OpenFlow交换机的分类:按照对OpenFlow的支持程度,OpenFlow交换机可以分为两类:专用的OpenFlow交换机和支持OpenFlow的交换机。专用的OpenFlow交换机是专门为支持OpenFlow而设计的。它不支持现有的商用交换机上的正常处理流程,所有经过该交换机的数据都按照OpenFlow的模式进行转发。专用的OpenFlow交换机中不再具有控制逻辑,因此专用的OpenFlow交换机是用来在端口间转发数据包的一个简单的路径部件。支持OpenFlow的交换机是在商业交换机的基础上添加流表、安全通道和OpenFlow协议来获得了OpenFlow特性的交换机。其既具有常用的商业交换机的转发模块,又具有OpenFlow的转发逻辑,因此支持OpenFlow的交换机可以采用两种不同的方式处理接收到的数据包。按照OpenFlow交换机的发展程度来分,OpenFlow交换机也可以分为两类:“Type0”交换机和“Type1”交换机。“Type0”交换机仅仅支持十元组以及以下四个操作:转发这个流的数据包给一个给定的端口(或者几个端口);压缩并转发这个流的数据包给控制器;丢弃这个流的数据包;通过交换机的正常处理流程来转发这个流的数据包。显然“Type0”交换机的这些功能是不能满足复杂试验要求的,因此我们将要定义“Type1”交换机来支持更多的功能,从而支持复杂的网络试验。“Type1”交换机将具有一个新的功能集合。2.2支持网络虚拟化的FlowVisor类比计算机的虚拟化,FlowVisor就是位于硬件结构元件和软件之间的网络虚拟层。FlowVisor允许多个控制同时控制一台OpenFlow交换机,但是每个控制器仅仅可以控制经过这个OpenFlow交换机的某一个虚拟网络(即slice)。因此通过FlowVisor建立的试验平台可以在不影响商业流的转发速度的情况下,允许多个网络试验在不同的虚拟网络上同时进行。FlowVisor与一般的商用交换机是兼容的,而不需要使用FPGA和网络处理器等可编程硬件。2.3ControllerOpenFlow实现了数据层和控制层的分离,其中OpenFlow交换机进行数据层的转发,而Controller实现了控制层的功能。Controller通过OpenFlow协议这个标准接口对OpenFlow交换机中的流表进行控制,从而实现对整个网络进行集中控制。Controller的这一切功能都要通过运行NOX来实现,因此NOX就像是OpenFlow网络的操作系统。此外,在NOX上还可以运行Plug-n-serve、OpenRoads以及OpenPipes等应用程序。Plug-n-Serve通过规定数据传输路径来控制网络以及服务器上的负载,从而使得负载均衡并降低响应时间。OpenRoads是支持OpenFlow无线网络移动性研究的框架。OpenPipes可以在网络系统中通过移动每个子模块来测试每个子模块,并可以决定如何划分设计单元。三、OpenFlow对网络的创新与网络领域的困境截然不同的是,计算机领域实现了日新月异的发展。仔细回顾计算机领域的发展,不难发现其关键在于计算机领域找到了一个简单可用的硬件底层(x86指令集)。由于有了这样一个公用的硬件底层,所以在软件方面,不论是应用程序还是操作系统都取得了飞速的发展。现在很多主张重新设计计算机网络体系结构的人士认为:网络可以复制计算机领域的成功来解决现在网络所遇到的所有问题。在这种思想的指导下,将来的网络必将是这样的:底层的数据通路(交换机、路由器)是“哑的、简单的、最小的”,并定义一个对外开放的关于流表的公用的API,同时采用控制器来控制整个网络。未来的研究人员就可以在控制器上自由的调用底层的API来编程,从而实现网络的创新。OpenFlow正是基于这种网络创新思想。OpenFlow交换机将原来完全由交换机/路由器控制的报文转发过程转化为由OpenFlow交换机(OpenFlowSwitch)和控制服务器(Controller)来共同完成,从而实现了数据转发和路由控制的分离。控制器可以通过事先规定好的接口操作来控制OpenFlow交换机中的流表,从而达到控制数据转发的目的。在此基础上最关键的特性就是支持远端的控制,试想,如果要改变entry就必须跑到交换机前重新编程写入有多麻烦,如果想获知网络的实时状态,就可以通过远程控制得到。有了统一的控制机制,我们的网络才变得真正智能可控起来。有了这个标准,比如我们可以在正常运行的网络中定义一些自己的特殊规则,让符合规则的流量按照我们的需求走任意的路径,就仿佛将一张物理网络切成了若干不同的虚拟网络一样,同时运行而又各不干扰。我们可以轻而易举的测试各种新的协议,以前要做什么处理,需要考虑到具体的拓扑结构,考虑到box的先后顺序,现在只需要通过定义不同的flowentry就可以任意改变流量的运行策略,这为解决流量移动性问题提供了便利。从这个意义上说,OpenFlow将传统的物理固定的硬件定义互联网改造成为了动态可变的软件定义互联网,即现在的SDN。四、OpenFlow/软件定义网络(SDN)OpenFlow/SDN是近年来最有前途的和革命性的网络技术之一。它将会使网络创新和产生选择成为可能,从而有助于实现新的功能,解决长期存在的网络问题。目前网络使用交换机,路由器和其他设备,已变的极其复杂,因为它们使用封闭和专有的接口,实现越来越多的由IETF标准化的分布式协议。目前网络面临的问题主要有:(1)网络仍然具有严重的还没有解决的安全性,鲁棒性,可管理性,移动性和演化性等问题;(2)资本成本降低速度不够快,运营成本一直在增长,对网络运营商产生过多的压力;(3)网络运营商发现很难在其昂贵的基础设施上引进新的创收服务。SDN是一种新的网络架构,其关键属性包括:数据和控制层的分离;一个在控制和数据层之间的与供应商无关的统一接口,称为OpenFlow;一个逻辑集中控制层以及底层网络的切片和虚拟化。逻辑集中控制层可以认为是一个网络操作系统,构造并显示整个网络服务的逻辑拓扑或者控制在它上面实现的应用程序。SDN的具体架构如下图所示:五、OpenFlow面临的技术难题OpenFlow的推广除了面临着“open”这样一个产业博弈的问题外,目前还面临着一些技术的难点。其中之一就是路由器/交换机中广为使用的快速查找TCAM存储器成本的问题。在传统设备中,需要采用TCAM的表包括FIB、MAC、MPLSLable和ACL表,每个表的匹配字段长度不一,分开设计,并且设计了最大容量,以期达到最小的开销。而在OpenFlow设备中,不再区分匹配长度短的FIB、MAC、MPLSLable表以及较长的ACL表,一律采用最大长度的FlowTable记录代替,对于OpenFlow1.0而言,Flowtable的匹配字段长度长达252比特,而一般IPV4RIBTCAM匹配字段长度只有60-80个比特,开销增加了3倍以上,而对于路由器的线卡而言,TCAM成本占了约20-30%,功耗也占了很大一部分。因此如何减少FlowTable尺寸将是OpenFlow体系面临的一个极大问题,此外,TCAM体系下FlowTable记录的动态插入算法将更为复杂。OpenFlow1.1设计了多级流表来减少FlowTable的开销,将流表进行特征提取,分解成多个步骤,形成流水线处理形式,从而降低总的流表记录条数,比如原始流表共有10000条,分解成先匹配VLAN+MAC,再匹配IP和传输层头部的两个独立流表,每个流表的数量可能均小于1000条,使得流表总数小于2000条。但流水线式架构使得匹配时延增加,而且流量的生成、维护算法
本文标题:openflow调研报告
链接地址:https://www.777doc.com/doc-2884711 .html