白盒交换机:实现网络可编程性的三种方式

sdfshfh 2015-01-19

哪怕是最苛刻的IT专业人员,有一个词也会很吸引他注意:节约成本。当市场中出现白盒交换机时——即一种预安装第三方网络操作系统的消费类交换机硬件,网络工程师一般首先听到或了解到的是这种新方法有可能节约成本。

但是,随着网络可编程性的概念变得越来越受到关注,节约成本已经不是白盒交换机中最受关注的方面了。除了节约金钱,它们还可以增加网络自动化、可编程性和灵活性,这些改进也有其实际价值。

白盒交换机:实现网络可编程性的三种方式

根据波士顿Doyle Research首席分析师Lee Doyle的观点,包含软件和硬件在内的白盒交换机市场预计将在2018年增长到5亿美元。但是,现在仍然是软件定义网络(SDN)的发展早期,因为白盒交换机与网络操作系统市场目前还很小。Doyle指出,作为对比,像Cumulus Networks和Big Switch Networks这样的白盒交换机供应商现在的“收益可能只有200万美元”。

他补充说,目前主攻白盒交换机的公司主要有三类:有资源部署和维护这些交换机的互联网级别公司、更多考虑绿地部署风险的数据中心运营商和一些基于云但未达到互联网级别的公司。然而,大多数企业和服务提供商并不满足于任何一个网络操作系统。对于大多数公司而言,他们的操作系统选择最终取决于作出采购决策的负责人的专业技术背景。

Gartner公司杰出分析师Joe Skorupa说:“服务人员会选择Cumulus Networks或Pica8,而网络人员则会选择Big Switch或Pica8。Cumulus Networks有适用于数据中心的白盒交换机。人们通常会用它来支持SDN堆叠网络,但是它本身并不是SDN。”

下面将针对这个特点来介绍三个使用拍盒交换机实现网络可编程性的用例。

像管理服务器一样管理交换机

DreamHost LLC是洛杉矶一家网站托管公司和云提供商,它在白盒交换机上使用Cumulus Networks的Cumulus Linux网络操作系统来高效地扩展和管理自己的开源多租赁公共云服务:DreamCompute。

DreamHost负责云的副总裁Jonathan LaCour说:“由于运行着Cumulus Linux网络操作系统,所以我们将交换机看作是另一种Linux服务器。我们也用相同的团队、工具和流程去管理我们的Linux服务器上的Cumulus Linux。”

这与DreamHost的遗留交换机有很大的区别,后者运行着预安装的私有软件和工具,与IT团队用于管理和监控计算与存储设备的Linux工具完全不同。

LaCour说:“Cumulus Linux帮助我们将一种特殊的网络环境变成一种不那么特殊的通用环境。”

Cumulus白盒交换机采用的方法将来自大型传统交换机供应商的私有交换机接口更换为所有Linux服务器管理员都能理解的通用Linux接口。

在白盒交换机上运行Cumulus Linux可以帮助DreamHost提升Linux平台的性能和实现网络可见性,同时让它的工程师能够使用现有的Linux服务器管理工具实现网络自动化。采用与Linux服务器自动配置安装过程的相同方法,除了一些小更新和修改之外 ,完全不需要更多的特殊考虑,Cumulus Linux控制器会自动配置其白盒交换机安装设置,以满足DreamHost的网络要求。这个网络包括客户Pod(自包含硬件单元,表示DreamHost云的一个可用域)和用于管理用途的命令与控制Pod,它们运行着Cumulus Linux和40GbE叶脊架构。

LaCour说:“虽然网络工程师现在可以通过自动化、CPI(命令行接口)和API编程控制交换机,Cumulus Linux的特别之处是它的CLI和API与每一位系统工程师和云工程师长期使用的Linux工具完全相同,如路由器命令和ipconfig等。他们完全不需要学习新东西,所有东西都由硬件加速。”

Linux服务器与运行Cumulus Linux的交换机之间并没有很大的差别——主要差别就是每一台设备上的端口数量。一个Linux服务器可能只有2~4个2层和3层连接以太网端口,而Cumulus白盒交换机则有48个10GB端口。

DreamHost使用DevOps工具Opscode Chef实现服务器与网络编制。由于每一个交换机都运行着版本2和版本3的开放最短路径优先(Open Shortest Path First)协议,因此从配置到故障修复等所有网络操作都变得非常简单。DreamHost工程师根据Chef手册和秘诀(一组可重用配置说明)编程实现Cumulus Linux交换机的目录管理和配置。它的IT团队使用基于Python编写的工具Graphite来监控交换机。

交换机会出现故障,而当它们出现故障时,Cumulus Linux会让DreamHost的网络保存路由数据并保持正常运行,直到交换机完成更换,即从网络移除故障交换机,然后使用剩余交换机自动重建网络结构。然后,控制器会配置新交换机,然后自动将它添加到网络中。这样就可以将平均修复时间从几小时减少为几分钟。

但是,与所有网络平台一样,Cumulus Linux也不是完美的。

LaCour说:“在一些复杂特性上,网络操作系统仍然无法与传统交换机架构相媲美。但是,这与我们的情况没有关系,因为我们更愿意保持底层网络的简单性,同时在SDN堆叠网络上添加白盒交换机所缺少的更多特性。”

用白盒交换机简化网络分流器

为了监控流量或修复网络问题,企业网络工程师通常会使用到网络分流器,如嗅探器或数据包分析器。此外,服务提供商也会使用网络分流器保证服务交付和服务质量,使用这些工具来确保流量的质量和交付,或者提前测量实际网络性能是否符合服务水平协议。

此外,网络工程师可以使用分流器查找网络拥塞的根源。

白盒交换机供应商Pica8的销售副总裁Steve Garrison说:“如果有人在观看网络视频,造成核心网络拥挤,那么就可能影响SaaS应用或VoIP系统的性能。”网络工程师需要诊断这些问题,然后才能寻找出应对方法,如应用策略等。

但是,传统的网络分流器方法可能会有一定的问题,特别是在大规模环境中,必须将物理分流器插入到所有出现流量问题的设备中,才能实现完全可见性。

白盒交换机的可编程性提供了一个替代方案。例如,Pica8的软件使网络工程师能够通过API和控制器编写在操作系统中使用的分流器——这种分流器可以映射来自一个端口、子网或VLAN,或者让通过一个交换机的所有HTTP流量聚集在一个采集端口上。

这种方法的好处是,工程师不需要在每一个交换机上部署物理分流器。他们可以在一个交换机上部署分流器,然后给它们配置一些需要检测的逻辑网络。

Garrison说:“编写一个动态可编程分流器,就可以集中管理网络监控。你可以附加测试工具到一个端口上,然后就可以使用可编程功能检测整个网络的所有虚拟或物理端口。你可以转到不同的端口,检查来自任意指定端口的不同流量流。”

他补充说:“此外,你还应该过滤特定的流量,查看过滤后的结果,用这种方式来隔离和发现造成流量淹没问题的根源。”

创建满足需求的网络

美国圣安东尼奥德克萨斯大学(UTSA)是开放计算项目(Open Compute Project, OCP)认证与解决方案实验室所在地,这是北美第一个云与大数据研究实验室。这个实验室负责认证开放计算技术和大型企业的关键工作,同时也向学生讲授开源技术。UTSA云计算应用研究副主管Carlos Cardenas指出,它的网络运行在基于开放网络安装环境(Open Network Install Environment, ONIE)的Cumulus Linux上,它是目前最好的白盒交换机开放网络启动加载程序。

为了支持实验室关于开源技术的支持研究和工作,它的数据中心必须能够快速扩展和调整。实验室选择在白盒交换机上运行Cumulus Linux,使用一种标准Linux操作系统和Linux工具来实现网络各个部分的自动化。

UTSA实验室的大多数网络基础架构基于OCP认证的网络技术,包括来自Edge-Core Networks的交换机和运行Cumulus Linux的Quanta Computer。其目标是将这种架构扩展到网络的其余部分,用同样运行Cumulus Linux的OCP认证网络技术和交换机去搭建网络。这种网络可以适应新开源研究项目的增长需求。

将Cumulus Linux作为网络操作系统,实验室网络就可以支持大量不同开源服务器软件包的轻松访问。这意味着通常安装在Linux服务器的软件一样可以用在Cumulus Linux上,如OpenSSH、OpenNTPD、isc-dhcp-server、DNSMasq和Quagga。由于和在传统网络设备一样,所以这些软件包不需要特殊版本,而是和Debian和Ubuntu等Linux发行版本的软件包完全一样。交换机接口的用法与原先在Linux服务器上一样——只是现在有48个端口了。

Cardenas说:“我们在交换机上使用与所有服务器完全相同的配置管理接口。管理员只需要懂Linux,可以编程管理交换机。”

实验室在网络基础架构上使用的大规模软件更新和重新配置机制与在Linux服务器上使用的机制完全相同。Cumulus Linux使工程师能够根据需要用熟悉的脚本和API编程控制网络。因为网络操作系统是基于Linux的,所以网络工程师可以使用他们喜欢的自动化工具(Ansible)管理白盒交换机的网络配置。而且,有了ONIE之后,实验室可以在硬件上安装自己想要的网络操作系统。

相关推荐