基于OpenFlow的FlowVisor网络系统的制作方法

文档序号:7554891阅读:108来源:国知局
专利名称:基于OpenFlow的FlowVisor网络系统的制作方法
技术领域
本发明属于OpenFlow网络设计技术领域,尤其涉及一种基于OpenFlow的FlowVisor网络系统。
背景技术
与其构建块OpenFlow —样,FlowVisor能够帮助研究人员快速灵活地在大型生产环境对新的SDN理念和工具进行实验。目前FlowVisor被部署在美国各地的生产环境中,特别是在大型校园(例如斯坦福)。此外,两个以研究为重点的大型网络一全球网络创新环境(GENI)和Internet2的参与者也在使用FlowVisor。然而,这并不意味着FlowVisor即将出现在你附近的业务网络中。斯坦福大学开发人员表示,虽然该平台非常稳定,但仍然有很长的路要走。FlowVisor是建立在OpenFlow之上的网络虚拟化平台,它可以将物理网络分成多个逻辑网络,从而实现开放软件定义网络(SDN)。它为管理员提供了广泛定义规则来管理网络,而不是通过调整路由器和交换机来管理网络。

发明内容
本发明的目的在于,提供一种建立在OpenFlow之上的FlowVisor网络虚拟化平台,用于将物理网络分成多个逻辑网络,从而实现开放软件定义网络(SDN)。为了实现上述目的,本发明提出的技术方案是,一种基于OpenFlow的FlowVisor网络系统,包括OpenFlow交换机和OpenFlow控制器,其特征在于OpenFlow交换机和OpenFlow控制器之间设置FlowVisor代理服务器,所述FlowVisor代理服务器分别与OpenFlow交换机和OpenFl ow控制器相连,并通过OpenFlow协议与OpenFlow交换机和OpenFlow控制器进行通信;所述Fl owV isor代理服务器用于对OpenF I ow交换机发送的消息进行拦截、修改和转发,具体包括:当OpenFlow交换机发送的消息无需修改时,直接将OpenFlow交换机发送的消息转发OpenFlow控制器;当OpenFlow交换机发送的消息需要修改时,根据预先设定的规则修改所述OpenFlow交换机发送的消息后,转发至OpenFlow控制器;当OpenFlow交换机发送的消息是错误消息时,将所述OpenFlow交换机发送的消息返回OpenFlow交换机。所述网络系统还包括FlowChecker控制器,所述FlowChecker控制器与OpenFlow控制器相连,用于获取OpenFlow控制器中的流表。本发明提供的网络系统通过FlowVisor抽象层来分割物理网络,它位于一组交换机和软件定义网络或多个网络之间,管理带宽、CPU利用率和流量表,这类似于管理程序位于服务器硬件和软件之间,以允许多个虚拟操作系统运行。


图1是是虚拟化层次示意;
图2 是 FlowVisor 和 FlowChecker 的连接图;图3 是 FlowChecker 交互图。
具体实施例方式下面结合附图,对优选实施例作详细说明。应该强调的是,下述说明仅仅是示例性的,而不是为了限制本发明的范围及其应用。1> FlowVisorFlowVisor通过抽象层来分割物理网络,它位于一组交换机和软件定义网络或多个网络之间,管理带宽、CPU利用率和流量表,这类似于管理程序位于服务器硬件和软件之间,以允许多个虚拟操作系统运行。正如管理程序依赖于标准x86指令来虚拟化服务器一样,FlowVisor使用标准OpenFlow指令集来管理OpenFlow交换机,这些指令设置了低级别规则,比如如何基于数据包表头中的特点来转发数据包。由于所有这些规则都是通过流量表定义的,因此,无论是从带宽还是CPU使用率来看,网络虚拟化都没有增加很多开销或者几乎没有增加开销,不过另外需要设置和修改流量表规则的单独的带外物理控制器。FlowVisor网络的基本要素是网络切片,网络切片是由一组文本配置文件来定义的。文本配置文件包含控制各种网络活动的规则,例如允许、只读和拒绝,其范围包括流量的来源IP地址、端口号或者数据包表头信息。切片隔离是FlowVisor虚拟化的重要组成部分,但它仍然在处于发展中。在近日发表的一篇描述FlowVisor愿景和部署的学术文章中,作者呼吁进行严密的交换机与CPU隔离,但由于目前只能通过OpenFlow对交换机CPU进行间接管理,导致该功能被限制。鉴于这些限制和功能,FlowVisor按照以下五个规格(出自该OpenFlow技术报告)来进行虚拟化和隔离:(I)带宽:每个切片应该具有专门的总可用带宽百分比。(2)拓扑结构:每个切片对于网络节点(包括物理和虚拟交换机及路由器)应该有自己的“看法”。切片的组成部分应该是不知道切片的:对于控制器而言,FlowVisor看起来就是普通的交换机;从OpenFlow交换机的角度来看,FlowVisor就是一个控制器。(3)流量:根据上述规则设置,流量应该严密地始终如一地隔离到一个特定切片或者多个切片。(4)设备CPU:重载物理交换机可以丢掉缓慢路径的数据包。网络管理员会更新OpenFlow统计计数器和规则,所以在评定限速密集命令时,FlowVisor应该考虑CPU资源。(5)转发表:由于转发表往往被限定在物理设备上,网络管理员应确保一个切片不会影响任何特定设备的转发表,迫使它放弃另一切片的规则。2、网络虚拟化的内容FlowVisor的主要工作就是进行网络虚拟化。通过网络虚拟化,多个逻辑上相互独立的网络可以共享同一个物理基础架构,这些网络可能具有不同的编址方法或运转机制。

首先可以看计算机的虚拟化。计算机虚拟化的成功与对底层硬件的清晰抽象密不可分,这样,计算机虚拟化层便可以使用硬件抽 象,它允许上层Guest操作系统对硬件资源的分割与共享。
与之类似的,网络虚拟化需要网络本身带有自己的硬件抽象层。硬件抽象层需要容易被分片,以使得多种不同的网络可以同时运行在一系列不同的硬件之上。在硬件抽象层之上,允许有新的协议和编址方式独立地运行于在各自独立的分片中,实际上他们都处于同一个物理网络中,并使得网络具有对网络应用进行优化的能力,或对应用所有者提供自定义的能力。在硬件抽象层以下,可以是不同的硬件。图1为虚拟化层次示意图。3、网络虚拟化的实现网络中需要进行虚拟化的资源包括:带宽、拓扑、流量、设备CPU、转发表。(I)实现过程:在FlowVisor实现中,OpenFlow被作为硬件抽象层。类似于计算机上的抽象层,FlowVisor被设置于底层硬件和上层控制软件之间;类似于操作系统使用指令集控制下层硬件,FlowVisor使用OpenFlow协议控制下层物理网络。(2)主要特点如下:DFlowVisor定义分片为:运行在某个交换机逻辑结构上的一组流;2)FlowVisor安置于OpenFlow控制器与交换机间,保证每一个控制器都只能看到和控制那些事先设置的交换机;3) FlowVisor通过对组成分区的流集合设置一个最小数据速率来划分带宽;

4) FlowVisor通过跟踪每个流表项所属的控制器来划分每个交换机中的流表。(3) FlowVisor 实现目标:I)透明:网络虚拟层须对网络硬件和控制器透明;2)隔离:网络虚拟层必须使得分片间高度隔离;3)可扩展的分片定义。(3)系统描述:FlowVisor是一个特殊的OpenFlow控制器,扮演着OpenFlow交换机和OpenFlow控制器间透明代理的角色。所有OpenFlow消息都将透过FlowVisor进行传送。FlowVisor使用OpenFlow协议与控制器与交换机相互进行通信。无需对控制器进行任何修改,并且它们认为自己直接与交换机进行通信。FlowVisor在充当代理角色时,会根据内配置的策略,对OpenFlow消息进行拦截、修改、转发等操作。这样,OpenFlow控制器就只控制其被允许控制的流,并不知道其所控制的网络被FlowVisor进行过分片操作。相似的,从交换机发出的消息经过FlowVisor,也只会被发送到相应的控制器。FlowVisor通过检查、覆写和监管从其通过的OpenFlow消息来保证了透明和隔离。根据资源分配策略、消息类型、目的和内容,FlowVisor会进行下列几种操作:a)不修改,直接转发山)修改为合适的消息然后转发;c)以错误信息的形式反弹消息到发送者。从控制器看来,FlowVisor就是一个交换机;从交换机看来,FlowVisor又成为了一台控制器。4> FlowChecker(I) FlowChecker 的作用I)验证跨越不同的基础设置组合的不同交换机和控制器的一致性;2)验证用新协议产生的综合设置的正确性;
3)调试可达性和安全问题。对于组合的OpenFlow 管理,FlowChecker 米用了主控制器(Master Controller,MC)来运行FlowChecker并与OF控制器进行通信来验证和解决不一致性或任何错误配置。总的来说,这个项目的结果就是一个配置验证工具,或者说是一个由管理员或主控制器运行的应用程序,用于验证、分析和迫使OpenFlow在运行时的端到端配置跨越多个组合。(2) FlowChecker 操作I)第一种情况,当作独立的服务。FlowChecker的连接如上图2所示。这种情况下,OpenFlow控制器会通过SSL安全通道同FlowChecker通信。FlowChecker通过传递令牌到OpenFlow交换机,对交换机进行查询,查询内容包含拓扑、用户、控制器ID和名字绑定。控制器通过SSL安全通道向FlowChecker发送请求接受回复。2)另一种情况,流表可以被存在数据库中。很明显,这是一个简单性与安全性之间的 trade-off。目前,FlowChecker米用了第一种情况。一个FlowChecker交互的例子如图3所
/Jn oI) FlowChecker向控制器请求流表信息;2)控制器向交换机发送一条消息,消息通过了 FlowVisor ;3) 3a表示:Fl owVisor拦截下了那条消息,向FlowChecker发送分片规则;4) 3b表示:0penFlow交换机将流表发送给控制器;5)控制器将流表发送给FlowChecker。现在,FlowChecker可以验证分片策略在这个流表中是否保证正确。以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
权利要求
1.一种基于OpenFlow的FlowVisor网络系统,包括OpenFlow交换机和OpenFlow控制器,其特征在于OpenFlow交换机和OpenFlow控制器之间设置FlowVisor代理服务器,所述FlowVisor代理服务器分别与OpenFlow交换机和OpenFlow控制器相连,并通过OpenFlow协议与OpenFlow交换机和OpenFlow控制器进行通信; 所述FlowVisor代理服务器用于对OpenFlow交换机发送的消息进行拦截、修改和转发,具体包括:当OpenFlow交换机发送的消息无需修改时,直接将OpenFlow交换机发送的消息转发OpenFlow控制器;当OpenFlow交换机发送的消息需要修改时,根据预先设定的规则修改所述OpenFlow交换机发送的消息后,转发至OpenFlow控制器;当OpenFlow交换机发送的消息是错误消息时,将所述OpenFlow交换机发送的消息返回OpenFlow交换机。
2.根据权 利要求1所述的网络系统,其特征在于所述网络系统还包括FlowChecker控制器,所述FlowChecker控制器与OpenFlow控制器相连,用于获取OpenFlow控制器中的流表。
全文摘要
本发明公开了OpenFlow网络设计技术领域中的一种基于OpenFlow网络的QoS集中管理系统。包括OpenFlow交换机和OpenFlow控制器,OpenFlow交换机和OpenFlow控制器之间设置FlowVisor代理服务器,所述FlowVisor代理服务器分别与OpenFlow交换机和OpenFlow控制器相连,并通过OpenFlow协议与OpenFlow交换机和OpenFlow控制器进行通信。本发明提供的网络系统通过FlowVisor抽象层来分割物理网络,它位于一组交换机和软件定义网络或多个网络之间,类似于管理程序位于服务器硬件和软件之间,以允许多个虚拟操作系统运行。
文档编号H04L12/24GK103236945SQ20131012024
公开日2013年8月7日 申请日期2013年4月8日 优先权日2013年4月8日
发明者程远, 冯刚, 常宁 申请人:北京天地互连信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1