【IT168 技术】半年之前写过一篇文章讨论SDN的本质,当时就说这会是一个系列文章,后面还要写一下SDN的落地。这一等就是半年多,其间有朋友问过我为什么还不写——不是我不想写,是有些问题还没想清楚。直到现在我也不敢说我完全想清楚了,但是毕竟有了更多的实践,实践过程中不停地思考,加上不断有媒体朋友找我约稿,我想还是写一写吧。这篇文章可以看作是对我三年SDN工作历程的一个总结和反思。我在这篇文章会回顾一下人们对SDN定义的争议,SDN的落地实践,阻碍SDN落地的一些障碍,给出一些对SDN落地的建议和看法。
SDN的定义回顾
现在大多数人对SDN的定义是控制跟转发分离+开放的编程接口,包括Gartner也是这样的定义。Gartner的数据中心云计算行业分析总监曾绍清告诉我,他们认为思科的ACI不是SDN,因为ACI并非是控制和转发分离,它只是把策略管理的功能分离到了控制器上,控制协议(OSPF、BGP等)仍然运行在交换机上。但是我曾经在国外著名的通信技术媒体lightreading上看到他们综合一些专家的意见给出的定义,该定义里面只提到了开放的可编程接口以及由此带来的业务敏捷性。就我个人的观点来看,我更倾向于lightreading的定义(具体请参阅我的第一篇文章)。不过,正如青云CEO Richard接受InfoQ采访的时候说过的,每个人对SDN都有不同的定义,这个并不重要,我深以为然,重要的是SDN带来的价值。所以,以后大家不要把精力浪费在讨论SDN的定义上吧。
SDN在网络虚拟化中的应用
总有人说没看到SDN有落地案例,但是你去看一些国外专业的咨询机构,总能看到他们的报告中,SDN的市场份额在逐年增加,且趋势向好。是有人在撒谎吗?No。
咨询报告中说的SDN市场份额在增加,主要是强调SDN现在最大的一个应用场景——网络虚拟化中的应用。很多人说没看到SDN有落地案例,那是因为他们潜意识里面只把控制器+硬件SDN交换机的应用认为是SDN应用,云平台+虚拟交换机他们认为不是SDN。而事实上,以VMware的NSX为代表的网络虚拟化的应用早已经是被广泛认可的SDN的典型落地案例。
目前看到的基于SDN的网络虚拟化解决方案有以下三种:
●纯软件方式,以VMware的NSX为代表。除了NSX,还有Juniper的Contrail、Midokura的MidoNet以及Vyatta、Nuage、Plumgrid等公司的商业网络虚拟化方案。这些公司的实现方式都不太一样,但是都在不同程度上用到了SDN技术。有的只是把一些策略管理的东西放在控制器上,转发表项还是由虚拟交换机自己来生成,而有的则是控制器来下发转发表项。而目前影响最广泛的OpenStack的网络组件Neutron,则两种方式都支持,Neutron更是一种标准的SDN架构。由于本文的目的不是介绍技术细节,所以这里就不深入展开来讲了。
●硬件方式,以思科的ACI为代表,即将网络虚拟化在硬件中实现(当然也不排除会用到vRouter)。具体ACI的架构,我之前也写过一篇文章,可以参阅一下。
●软件+硬件方式。盛科网络推出的SDN方案即属于此类(Arista也有类似方案),本质上它是一个软件方案的思路,只是把部分对性能影响最大的操作offload到硬件SDN交换机,可以认为是一个超级网卡。并且它为NSX之类的软件方案提供了SDN交换机作为Tunnel Gateway来满足物理服务器跟虚机混合组网的需求。
华为和华三也都相应的都有自己的解决方案,只是目前看到的他们都是推整体云计算解决方案,没有把网络部分整出一个方案来单独卖。
无论纯软件还是硬件的SDN解决方案,在云计算数据中心里面,应用的越来越广泛,所以如果要谈SDN的落地,这是目前最大的,最不容忽视的一个。
