SDN网络的概念吸引了网络工程师和业内媒体人的注意,但是很少有鲜活的SDN部署实例。而在这为数不多的实例中,谷歌算是一个。作为搜索引擎巨头谷歌在2013 ONS峰会上详细阐述了其在SDN网络方面的细节。
显然,谷歌运营的是一个大型网络。大到什么程度?2010年Arbor Networks的一项研究总结称“如果谷歌是一家ISP公司,那么谷歌将是全球增长最快的第三大运营商。因为目前只有两家供应商的域间流量超过了谷歌。”
在ONS峰会上,谷歌著名工程师Amin Vahdat发表了题为“SDN在谷歌怎么做?”的论述。他的讲话分享了谷歌把Quagga开源软件和OpenFlow结合起来优化数据中心内部连接的细节。还分享了谷歌在自有数据中心使用OpenFlow的细节。谷歌称自己的SDN网络为B4。
Vahdat注意到谷歌后端网络(东-西)的长势正迅速超越前端用户面向型网络。这种增长代价很大,因为网络不能像存储和运算那样用比较经济的方式扩展。运算和存储的单位运营开支会随着扩展而减少,但是网络却不然。
Vahdat展示了谷歌SDN网络的基本原理。首先,把硬件与软件分离开,谷歌可以在所需特性的基础上选择硬件,同时还可以沿着软件时间轴创新和部署软件。再者,它可以提供本地集中式控件,这样的控制可谓更确定,更有效且更具容错能力。另外,自动化也让谷歌可以把监控,管理和运营从每个盒子中分离出来。所有这些要素都带来了灵活性和一种创新环境。
B4网络硬件
Vahdat没有提及现在市场上是否有SDN交换机可以满足谷歌的硬件需求,一般这样的产品会涉及供应商的固件升级,包括OpenFlow代理,尽管如此,Vahdat称虽然OpenFlow并非完美的协议,但谷歌会继续将其用于数据流实例化,因为很多供应商将支持该协议。这意味着谷歌并不打算推出自己的硬件产品,而对于OpenFlow的支持将是未来硬件采购的一项指标。
另外,Vahdat在谈及谷歌的SDN迁移路线时表示,谷歌将从完全分布式的整体控制和数据层硬件架构转变为物理分散式(逻辑上仍然集中)的控制层架构。
谷歌B4网络的混合式迁移分三步走:
传统SDN部署:
混合式SDN部署:
最终的混合式SDN部署:
在下图中,我们可以看到谷歌已经部署了几套网络控制器服务器(NCS)以及交换机。这些NCS包含为各种网络要素提取的控制层。这些交换机运行了一个OpenFlow代理,Vahdat解释到,“这种基本的控制是基于所有事件都运行于外部服务器的一套控制器上,且需要处于同一位置,而这些NCS都使用32核服务器。“
在这些NCS之上,有运行首项选择的OpenFlow控制器,用于高可用的故障转移。Vahdat讲到,“主要应用是一个流量工程应用,可以把策略实例化为控制协议,包括BGP,ISIS和OpenFlow。”
总结
通过以上介绍,谷歌似乎被限制在了如何相对网络状态做出反应以及机械性的转发数据包上面。假设网络会回到低优先级,前瞻性的将数据流规则实例化。在数据流表中,如果一个数据包不符合数据流规则,它就会被排除到转发通道之外或是通过一套预安装的数据流规则到达对外的网关。虽然自定义转发可能会回到最短路径或是一条静态路径,但在控件要素被恢复前,其会保持流量转发。
从以上的图例中可以看出,控件要素是以多层级的方式排列。层级性和模块性是我们确定大型网络等级的标准。谷歌把NIB的部分数据放到模块中,它的方法像是在目前的网络架构的每个数据层减掉一个专用控制层。