编者按:笔者从SDN的研究现状入手,简单叙述了国内SDN的研究现状。接着,从SDN与网络虚拟化的区别切入详细论述“何为SDN”。然后多层次、全方位介绍SDN的应用、安全等等,表明SDN走向实际应用是必然,但仍然需要一些时日。
目前很多SDN(Software Defined Network,软件定义网络)的解决方案还主要集中在高校、ONF组织、运营商及设备厂商中进行探索研究,多停留在分析讨论、实验阶段,很少在国内企业中得到实际的应用。鉴于此种情况,也有一些厂商并没有受到这方面的局限性影响,而是从另外的角度切入SDN,比如网络虚拟化的应用,其实SDN平安城市视频监控运维与网络虚拟化的核心是一致的,在SDN领域有很多技术实现是通过虚拟化来完成的,同时SDN又赋予了网络虚拟化新的发展空间。例如被VMware收购的Nicira的控制器就采用了虚拟化Overlay隧道封装来分离数据平面和控制平面。国内一些运营商(中国电信、中国移动、中国联通)也开始进入SDN的实质性研究阶段,对网络流量的感知,提升网络的可管理性。将网络虚拟化技术作为SDN的一种应用方式进行研究。此外,需要注意的是SDN有别于网络虚拟化,只不过网络虚拟化在应用层面已经先行一步,离我们越来越近了。
SDN有别于网络虚拟化,SDN是一种新型的开放网络创新架构。最初是由美国斯坦福大学研究组提出,借助OpenFlow通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,为核心网络及应用的创新提供了良好的平台,包括OpenFlow控制器和OpenFlow交换机。但是在发展的过程中,SDN逐渐从OpenFlow扩展开来, 网络运维管理一些 定制化的编程方式,通过开放的API接口或其他开放协议,实现转发层跟控制层的分离和管理的一致性;以及一些通过Overlay的技术实现软件对硬件的控制的方式也被认为是SDN。OpenFlow是SDN控制器间通信和控制分支环境中兼容OpenFlow网络设备的标准方式。网络控制平面通过SDN从数据平面中分离出来。这意味着网络控制权将从转发数据包的设备中剥离出来,并集中放在服务器上被称为控制器的软件上。
网络虚拟化是能够实现网络资源动态调配、动态管理的技术。基本上分成两个部分:其一是网络基础架构本身的虚拟化,比如原来单一的网络可以虚拟化成多个网络,原来多个单一的网络单元也可以虚拟成单一网络。其二是网络提供与虚拟化服务器、储存等数据中心环境适配的特性,这些特性包含与虚拟机的互动、虚拟机的识别等。与服务器虚拟化和存储虚拟化类似,多个虚拟网络基础结构在同一个物理网络上运行(可能有重叠的IP地址),而且每个虚拟网络基础结构的运作就好像只有这网络运维管理一个虚拟网络在此共享的网络基础结构上运作。
总体而言,网络虚拟化负责在物理网络基础上建立虚拟通道并添加虚拟功能,而SDN则用于调整物理网络,因此后者对于网络体系的配置及管理来说属于真正的全新外部手段。举例来说,我们可以将颇具规模的“大型传输流”由1G端口迁移至10G端口,或者将大量“小型传输流”汇聚在同一个1G端口处。SDN依靠网络交换机作为实现载体,而不像前者那样借助x86服务器的参与。这两类技术方案的设计目的都是为了实现网络环境的移动性与敏捷性。我们需要对网络体系进行编程的途径,而实现该目的的手段除了网络虚拟化以及软件定义网络之外还有网络功能虚拟化。网络虚拟化与网络功能虚拟化能够直接作用于现有网络,因为它们的运行基础是服务器以及与之相交互的“经过处理”的流量;软件定义网络则要求采用全新的网络结构,其中数据与控制平台必须加以划分。
应用环节,SDN还需突破传统网络的局限性,SDN对企业的IT人士来说既提供了重大的机遇,也提出了巨大的挑战。SDN有希望让网络更加灵活,缩短配络的时间,改善服务质量,降低运营成本,并且可以让网络更安全。但对国内大多数应用企业而言,对这项新技术仍不敢过多尝试,往往停留在调查研究与评估阶段。目前,SDN的主要用户群仍停留在运营商、 平安城市视频监控运维互联网数据中心和研究机构实施SDN之前,首先要考虑传统网络遇到了哪些难题,SDN技术会给企业带来哪些好处,是否能解决传统网络遇到的瓶颈,同时对遗留的网络基础设施会产生什么样的影响?要搞清楚这些问题,而不能盲目的追求新技术,要追寻SDN技术背后给企业带来的益处。
从概念上讲,SDN带来的益处显而易见:其不必触及每个交换机和路由器,OpenFlow通过将网络设备控制面与数据面分离开来,便可实现网络流量的灵活控制从长远看,大多数机构在迁移到SDN应用的同时将坚持他们对传统设备的投资。事实上,SDN到目前为止还主要用于高等教育领域和大型网络企业。而主流的企业应用SDN还将需要更多的增强功能和标准化。
SDN未来的发展,需要将SDN和传统的网络进行协同发展。SDN的基础网络原理都来源于传统网络,并没有对网络原理提出更多的创新,熟悉传统网络,将传统网络和SDN网络的协作过程及需要的标准、 产品、工具做好,也必定能促进SDN的发展。同时需要不断研究SDN的不足,找出SDN技术不适用的领域,就可以避开SDN的死角。考虑到传统网络目前的现状,实现SDN仍须时日。目前可能实现的目标是网络虚拟化,其方式是在虚拟机管理程序之上建立一个软件控制的叠加网络,以将所有的虚拟服务器资产整合在一起。在SDN的广阔应用前景中,包括物理与虚拟资源在内的所有资源将在软件控制的世界当中协同工作。
SDN应用的安全,SDN本身也会存在漏洞,特别是复杂的SDN的控制器。数据平面和控制平面的分离主要是由控制器实现的,控制器需要应对各种动态的网络拓扑,解析各种类型的数据包,接收上层应用的信息,并控制底层网络设备的行为,所以功能实现将会非常复杂,也就可能存在不少漏洞。
当攻击者攻破控制器,就可以向所有的网络设施发送指令,很容易瘫痪整个网络,或将某些数据流重定向到恶意VM(虚拟机),造成敏感信息的泄露。攻击者只要通过高级持续攻击获得对SDN控制器的控制权,就可能导致整个网络“沦陷”。作为直接与网络设备通信的应用程序系统,SDN控制器是在所有组件直接建立通信的软件系统。也正因为如此,目前企业选择SDN就意味着要选择承受来自网络安全的威胁,而一直以来,SDN概念中并没有过多的去考虑安全因素。这也是造成企业在选择SDN时犹豫不决,无法进行规模部署的原因之一。因此,企业需如何将安全系统融入SDN网络是未来应用SDN的关键。
未来,SDN也许会在企业中普遍应用,实现网络的可编程性,使上层的软件应用与下层的硬件彻底剥离。企业可以在SDN的网络中,开发适合企业自身所需的功能,降低硬件投入,简化管理水平,降低企业IT部门的人员成本。但是在硬件成本降低的同时,是否意味着软件或网络服务成本提高?还需要根据企业自身的特点进一步评估,但相信不久的将来,SDN会像网络虚拟化一样,离我们越来越近。