FlowVisor是建立在OpenFlow之上的网络虚拟化平台,它可以将物理网络分成多个逻辑网络,从而实现开放软件定义网络(SDN)。它为管理员提供了广泛定义规则来管理网络,而不是通过调整路由器和交换机来管理网络。
FlowVisor安装在商品硬件上,它是一个特殊的OpenFlow控制器,主要是作为OpenFlow交换机网络和其他标准OpenFlow控制器之间的透明代理。虽然FlowVisor仍被认为处于试验阶段,并且缺乏一些基本功能(例如命令行管理工具),但FlowVisor已经被部署在很多生产环境中,例如从2009年开始应用于斯坦福大学的校园网络。
FlowVisor通过抽象层来分割物理网络,它位于一组交换机和软件定义网络或多个网络之间,管理带宽、CPU利用率和流量表,这类似于管理程序位于服务器硬件和软件之间,以允许多个虚拟操作系统运行。
正如管理程序依赖于标准x86指令来虚拟化服务器一样,FlowVisor使用标准OpenFlow指令集来管理OpenFlow交换机,这些指令设置了低级别规则,比如如何基于数据包表头中的特点来转发数据包。
由于所有这些规则都是通过流量表定义的,因此,无论是从带宽还是CPU使用率来看,网络虚拟化都没有增加很多开销或者几乎没有增加开销,不过另外需要设置和修改流量表规则的单独的带外物理控制器。
切片
FlowVisor网络的基本要素是网络切片,网络切片是由一组文本配置文件来定义的。文本配置文件包含控制各种网络活动的规则,例如允许、只读和拒绝,其范围包括流量的来源IP地址、端口号或者数据包表头信息。
例如,网络管理员可以将安全的Telnet流量(默认端口992)分配到其自身的切片,将执行团队IP地址的流量分配到另一个切片。然后他可以创建第三个默认切片来管理所有其他流量,把它当做“只读”切片来监控其他三个切片,以达到诊断目的。网络管理员可以动态地重新分配和管理这些切片,以确保浏览YouTube的人不会对Telnet应用程序和执行团队带宽造成负面影响。
切片隔离是FlowVisor虚拟化的重要组成部分,但它仍然在处于发展中。在近日发表的一篇描述FlowVisor愿景和部署的学术文章中,作者呼吁进行严密的交换机与CPU隔离,但由于目前只能通过OpenFlow对交换机CPU进行间接管理,导致该功能被限制。鉴于这些限制和功能,FlowVisor按照以下五个规格(出自该OpenFlow技术报告)来进行虚拟化和隔离:
带宽:每个切片应该具有专门的总可用带宽百分比。
拓扑结构:每个切片对于网络节点(包括物理和虚拟交换机及路由器)应该有自己的“看法”.切片的组成部分应该是不知道切片的:对于控制器而言,FlowVisor看起来就是普通的交换机;从OpenFlow交换机的角度来看,FlowVisor就是一个控制器。
流量:根据上述规则设置,流量应该严密地始终如一地隔离到一个特定切片或者多个切片。
设备CPU:重载物理交换机可以丢掉缓慢路径的数据包。网络管理员会更新OpenFlow统计计数器和规则,所以在评定限速密集命令时,FlowVisor应该考虑CPU资源。
转发表:由于转发表往往被限定在物理设备上,网络管理员应确保一个切片不会影响任何特定设备的转发表,迫使它放弃另一切片的规则。
FlowVisor准备好迎接广泛应用了吗?
与其构建块OpenFlow一样,FlowVisor能够帮助研究人员快速灵活地在大型生产环境对新的SDN理念和工具进行实验。目前FlowVisor被部署在美国各地的生产环境中,特别是在大型校园(例如斯坦福)。此外,两个以研究为重点的大型网络--全球网络创新环境(GENI)和Internet2也在使用FlowVisor。