OpenFlow基础概念理解(1) FlowVisor

软件定义网络(Software Defined Network, SDN ),是由美国斯坦福大学clean slate研究组提出的一种新型网络创新架构,其核心技术OpenFlow通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,为核心网络及应用的创新提供了良好的平台。


传统路由器的设计

  从路由器的设计上看,它由软件控制和硬件数据通道组成。软件控制包括管理(CLI,SNMP)以及路由协议(OSPF,ISIS,BGP)等。数据通道包括针对每个包的查询、交换和缓存。这方面有大量论文在研究,引出三个开放性的话题,即“提速2倍”,确定性的(而不是概率性的)交换机设计,以及让路由器简单。

  事实上在路由器设计方面我们已经迷失了方向,因为有太多的复杂功能加入到了体系结构当中,比如OSPF,BGP,组播,区分服务,流量工程,NAT,防火墙,MPLS,冗余层等等。个人认为,我们在20世纪60年代定义的“哑的,最小的”数据通路已经臃肿不堪。


设计思想

  因此我们需要做以下几件事:
  1. 在底层和开放编程环境之间要有一个清晰的分割;
  2. 设计一个简单的硬件底层,能够包括和简化当前的底层;
  3. 极少的使用事先形成的有关底层如何被编程的想法;
  4. 强隔离。
  在设计硬件底层方面,我们要用最少的基于流的数据通路来缓存决策,也即实现一个基于流的底层。我们需要对流进行灵活的定义,如单播、组播、导航点、负载均衡,并且支持不同类型的流的聚类;我们需要控制流,把流作为编程的实体:能对它路由、私有化、移动……我们还要吸取包交换的益处,因为它切实可行,能全局部署,而且很有效率——当然是在它很简单的时候。
  综合上述考虑,我们定义了一个名为“流空间”的底层,它有以下属性:
  1. 后向兼容。当前的分层结构是它的一个特例,而且端点不需要修改;
  2. 容易在硬件上部署,比如在每个交换机上部署TCAM流表;
  3. 流之间能清晰分离,具有简单的几何结构,能证明哪个流能或者不能通讯。
  作为底层,它有以下属性:
  第一,基于流;第二,对每个流只有少量的动作,如转发给端口;转发给控制器; 重写头,在流空间之间路由;根据最小/最大速率分隔带宽等;第三,外部的针对流表的开放API。


开放网络基金会(ONF)

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。

然而,这并不意味着FlowVisor即将出现在你附近的业务网络中。斯坦福大学博士后研究员、开放网络实验室员工兼FlowVisor开发人员Ali Al-Shabibi表示,虽然该平台非常稳定,但仍然有很长的路要走。

他表示:“在FlowVisor投入企业环境使用之前,仍有大量工作需要做。”首先,它需要提高最终用户的易用性。例如,目前它没有即时命令行界面或者基于Web的管理,让用户不得不管理配置文件来做出调整。

FlowVisor的网络虚拟化用例

Rob Sherwood在斯坦福大学领导了三年FlowVisor开发工作,现任职于OpenFlow初创公司Big Switch Networks公司,他表示,FlowVisor的价值很好地从实验网络扩展到了实用服务,例如服务供应商可以向其客户提供的即插即用优化服务。想象一下,为你提高视频下载速度的强化视频流,或者用于VoIP的专用切片,但为了获取这些服务,你需要向互联网服务供应商支付额外费用。

Sherwood表示,对于想要更有效地或者更安全地管理大量流量的大型互联网公司,FlowVisor也非常适用。“例如你可以象一下谷歌公司,他们拥有多个内部服务,他们通过相同网络发送Gmail流量和YouTube流量,但分别使用不同的政策,”他表示,“目前他们使用不同的物理网络,因为他们不能说,‘YouTube用这个路径,Gmail用那个路径。’”

FlowVisor网络虚拟化的风险和优势

获取定义和重新定义网络的颗粒度功能是要付出一定代价的。Infonetics公司的数据中心和云分析师Sam Barnett认为对于大多数IT企业而言,这个代价太高了。

“如果你将OpenFlow交给未受过相关教育的社区,这就类似于将上膛的枪交给小孩,并告诉他们瞄准自己和扣动扳机,”他警告说,“而对于运营商而言,OpenFlow有着巨大的优势。例如,我曾在MCI(运营商)工作多年,如果当时我们有OpenFlow,将能帮助我们解决很多问题。”

Barnett表示,除了运营商和最大胆的网络尝试者外,对于大多数企业而言,为了获得这样的灵活性,会招致太多麻烦,得不偿失。Al-Shabibi同意他的看法,但他指出企业有其他商业解决方案来利用这项技术。

他表示:“规模较小的IT企业可能不会开发自己的解决方案,但他们可以找Big Switch、Nicira或其他OpenFlow兼容供应商购买解决方案,然后将解决方案部署到其网络中。”

FlowVisor网络的光明前景

Al-Shabibi指出,由于采用FlowVisor是建立在OpenFlow控制器成功的基础上的。这两者的普及率都可能持续增长。“我们希望看到OpenFlow更多地被行业所接受,FlowVisor同样如此,”他表示,“这真的是SDN的‘杀手级应用’之一,将你网络中的服务进行隔离真的是非常棒的功能。”

Sherwood表示,FlowVisor的影响力可能最终也与OpenFlow相同。 “我们正试图将大家注意力聚焦在FlowVisor代码上,”他指出该项目还引入一名谷歌代码夏令营实习生来帮助改善和提高其知名度,“随着环境不断完善,人们将会看到网络切片的价值。”

你可能感兴趣的:(openflow)