在Interop的一开始,我写道引入OpenFlow基础知识的帖子.我承诺四处询问并找出不同的供应商正在尝试使用OpenFlow解决哪些问题。这篇文章重点介绍了两个案例:一个你今天就可以从NEC美国公司订购,另一个案例已经在斯坦福大学进行了测试。
NEC美国可编程流量开关
NEC America在Interop上宣布了一个基于OpenFlow的新交换机。品牌的programableflow,交换机支持OpenFlow。故事中有趣的部分是控制器提供给你什么功能。NEC America的programableflow控制器软件根据以下项目为新流程选择最佳路径:
- 跳数
- 每个环节的加权成本
- 现有流的数量
例如,当交换机收到一个帧时,如果转发表中没有匹配的帧,交换机就将该帧转发给控制器。然后,控制器查看帧中的各种字段——通常是源/目的MAC、IP或端口号——来决定如何转发帧。例如,逻辑的这一部分可用于禁止流。
一旦控制器决定允许流程,控制器会考虑所有活动链路,以及源和目标交换机之间的所有路径。最佳路径的选择基于OpenFlow控制器上的逻辑;在NEC American的ProgrammableFlow Controller中,它根据最小跳数,最小重的成本和最小并发流计算最佳路径。
注意,最后一个会随着时间的变化而变化,因此流的数量会在所有可用的链接上平衡。例如,通常存在多个等跳路径以实现冗余。许多OpenFlow的支持者说,自动活动平衡是使用OpenFlow的原因之一。是的,你可以通过改变每个VLAN或每个STP实例的STP拓扑来平衡生成树,但在NEC America的实现中,你在一个VLAN内根据流的数量实现平衡。
一旦控制器选择该流程的路径,控制器将转发表条目推动到所选路径中所有开关的转发ASIC。对于同一流程中的未来帧,交换机已经有一个用于其ASIC的转发路径。而只是在不明显的情况下,与今天典型的第2层交换机逻辑不同,转发并不基于目的地地址。
NEC交换机的另一个很好的特性是使用OpenFlow, NEC称之为虚拟网络。如果没有OpenFlow,您当然会创建vlan,将访问端口分配给vlan,并可能限制哪些vlan流经哪些trunk。实际上,您创建了一个虚拟局域网。当您移动服务器映像时,您的任务之一是确保服务器仍然连接到相同的VLAN。STP规定了到该服务器的转发路径,或者通过您在数据中心中用于多路径的任何路径。2020欧洲杯预赛
使用这些NEC交换机,您可以从GUI创建虚拟网络。假设您希望10个服务器共享网络,因此您将它们放在同一虚拟网络中。稍后,当您通过虚拟化移动设备或服务器时,虚拟网络仍然存在,因为控制器调整流动以适应更改。在视觉上,管理工具隐藏一个级别的复杂性,并在构建或更改基础架构时更改更改 - 至少这就是我从节目中的几个对话所理解的内容。
斯坦福的弹性树
我还与从事OpenFlow研究的斯坦福大学研究员Nick Bastien进行了交谈。他证实,虽然很多人理解OpenFlow帮助研发的必要性,但展会上的很多人都问他,交换机和路由器客户通过购买支持OpenFlow的产品可以解决哪些问题。Nik讨论过一个这样的案例,它绝对是跳出框框思考的,这是可能性的一个很好的例子。
Nick描述了称为弹性树的概念,这意味着比STP更好。与大多数每个OpenFlow应用程序在第2层一样,它替换STP,因为控制器选择路径而不是依赖于STP。问题不是OpenFlow是否替换了选择路径(STP,OSPF等)的传统方法,而是使用它用于选择该路径的逻辑,并且它在每流程中而不是每种目的地基础。
弹性树概念增加了以下功能,只需选择一个良好的无环路路径:
- 考虑服务器性能(Perfmon)数据以平衡服务器之间的流量
- 在添加新流以加载所有链接时加载余额时,请考虑帧数
- 监控每个流的帧计数,并重新编程流路径,以防止大流量流影响其他流
例如,关于第一个问题,假设您有10台服务器,它们提供相同的页面和数据,您需要在这些服务器之间平衡流量。控制器上的弹性树逻辑考虑服务器性能数据,这些数据从服务器提供给OpenFlow控制器。如果一个服务器处理请求需要10毫秒,而另一个服务器处理请求需要300毫秒,那么控制器在为下一个流编程时可以选择负载较低的服务器实例。
另一个很酷的想法是流动不一定是整个生命的静态。说一个用户卷起了一个大的ftp。交换机在接口上计算帧,并且可以将该信息馈送到控制器。控制器独立于正在创建的新流程,可以观看大批量流动,并重新编程流量的流动路径以减少争用。
所有这些特性都远远超过了STP所能提供的特性。已经在交换中的各种服务器平衡特性也可以用来实现类似的结果。但是,有一天交换机可能会包含这些类型的特性,这是一些推动OpenFlow的人试图实现的一个很好的例子。