网络是数据中心里唯一一块未开放的处女地,网络协议实现具有私有属性,导致网络厂商之间的壁垒长期无法打破。早就有不少人看不惯这一点,尤其是数据中心用户,不同网络厂商的设备操作和配置风格不同,相同的协议实现上各有不同,很多还是自定义的私有协议,无法与其它厂商的设备互通,这给数据中心运维的工作带来了极大难度。一个网络工程师往往要学习几家网络设备的操作风格和配置特点,还要学习很多私有网络技术,网络运维起来难度很大,这使得只有网络这部分,数据中心需要购买一些服务,尤其是原厂的服务,以便可以在运维的过程中能够得到帮助,这给数据中心带来了诸多不便。让网络由封闭走向开放,是当前数据中心的主要诉求。
已经有不少的技术采用开源技术,这促进了整个行业的蓬勃发展。使用开源技术,可以避免厂商锁定,并在市场上赢得一席之地,可互操作性和集成,并且能大幅降低使用成本。最成功的要属Linux、Android这些开源操作系统,由于是开源的,获得了最广泛的用户使用,软件成熟得也最快。网络技术实际上有很多开放的标准,绝大多数的厂商还是能够遵守的,这些开放的标准有效地定义了互连接口,对具体实现并没有说明,这样各个网络厂商实现上就有所差异,最终实现上的差异导致互通上的困难,而作为网络设备如果不能与其它设备互联互通的话,也就失去了网络设备的最根本属性。
显然仅是有开放的标准还是不行,还是需要有开源的代码,这些开源代码可以定义行为,确保可测试并且易于理解,可快速移动和修改,提供一些公共开放的接口。现有的网络设备是将软件和硬件结合到一起的,这样软件与硬件是紧耦合的,软件上的修改很大地方都做了修改去适配独有的硬件设备。比如现在市面上的思科的IOS网络操作系统,华为的Qudiway网络操作系统以及华三的Comware网络操作系统,这些操作系统均与自己的硬件设备紧密结合,但都有其私有属性,无法用于其它厂商的设备上。SDN技术的出现打破了这种封闭,要将网络设备软件从硬件设备中脱离出来,这样不仅使用通用的软件就可以管理和控制网络设备,还可能便于网络管理,缩短业务部署的时间。这对传统的网络厂商不是什么好消息,本来传统网络厂商靠卖网络硬件设备也是够吃上几年,现在不得不做出改变了。
现在开源的网络项目可不少,这里挑主要的说:OpenStack是对整个IT行业的编排,比如提供网络服务的Neutron组件;OpenDaylight是全网络行业范围的SDN控制器;Open vSwitch是Linux内核中的可编程软件,可以通过Linux服务器实现虚拟交换的功能;其它的还有Open Network Linux、ONOS、CloudRouter、Quagga、OVN、ONIE、Open Compute等等,现在OpenDaylight发展走在了最前面,几乎成为了开源网络技术的排头兵。OpenDaylight是Linux Foundation组织实施的一个开源软件(Open Source Software)项目,旨在通过创建一个全行业支持的通用平台来进一步推动SDN的普及和创新。OpenDaylight有自己的社区,里面有大量愿意脚踏实地做出共享的人员组成,平均每月有近千项提交,并具有强大的集成和测试社区,这使得SDN理论和实践都发展很快,很快出现了较为成熟的开源软件版本。最新的软件版本已基本具备了实际应用的水平。
当然,OpenDaylight仍在不断进步完善当中,当在实际网络环境中部署时总会遇到这样那样的问题。当前的网络是利用四十年前的代码和经验构建的,正所谓“冰冻三尺,非一日之寒”,网络技术发展到今天,这么多年早已形成固有模式,改革起来难度阻力很大。
首先,不同网络不同设备对SDN的支持程度不同,这种混合网络很难通过一个统一的网络软件控制器来控制。实际上,到目前为止,所有网络厂商提供的控制器也仅仅是能对自己的硬件设备可以控制,对别的设备还无法实现互通。这大大限制了SDN技术的普及,而那些单纯做SDN软件的创新软件企业,根本得不到网络硬件厂商的强有力支持,使得这些软件就是空中楼阁,什么网络设备也管理不了,控制不了。
其次,SDN希望提供一个逻辑上集中的控制平面,而实际上我们需要的不仅仅是一台控制器,还可以容忍故障、扩展性能,提供多个控制器分区控制等,实际网络应用对SDN提出了更多的实际要求,这些要求一时间SDN很难都满足。
第三,开源意味着对所有人都可见,很多人都可以提交修改CASE,不同的人理解不同或者水平上的差异,导致SDN代码上会有很多问题,不能做拿来主义直接使用,甚至直接拿来根本不能用,必须要对开源代码非常熟悉做二次修改,才能使用。Linux也一样,虽然发展得很成熟,但在具体应用环境中,还是需要做一些调整和修改才行,有不少Linux的商用软件其实也是收费的,这些商用软件就是将开源的Linux做了再次修改,使其更加接近实际的应用环境,通过售卖这些二次开发的Linux系统赚钱。最后,开源也带来了信息安全上的风险,因为这无异于将网络实现向所有人敞开,万一在开源的代码里实现上有漏洞,就容易被人攻击,给数据中心安全带来隐患,这是很多人最为担心的一点。操作系统和很多通用软件均容易成为攻击的对象,就是因为这些实现代码黑客们也能看到,通过研究系统存在的漏洞,攻破软件防御系统,达到不可告人的目的。如果将网络部分也做成开源,那随时都有被攻破的风险,只要是人写的代码不可能都天衣无缝,都有可能存在漏洞。
虽然开源网络仍存在不少问题,并不妨碍其成为业内发展的共识,这也是数据中心网络的首次重大技术变革,孕育着巨大的市场机会,只有走向开放,数据中心网络才会拥有更好的明天。