云计算和云数据中心作为近来IT行业的热门话题对网络的性能和管理功能提出了更高的要求。传统网络的管理非常复杂而且容易出错,IP网络的不可感知特性不仅影响了用户体验,还对网络管理员提出了较高的要求,排除通常需对网元进行逐一排查。网络拓扑的改变时常伴随着手工网络配置。SDN很好地解决了传统网络管理中存在的一些问题。SDN即软件定义网络,其概念最早于2008年由美国斯坦福大学提出。SDN最主要的特点是控制平面和数据平面的分离,从而实现对网络中各设备的灵活控制和全网感知[1]。在SDN中,网络管理员无需连接到具体的物理网络设备,只需要通过一个控制器就可以对网络中任何设备进行配置操作管理以及排错。由此可见,SDN在云数据中心里起到了非常重要的作用。
一、SDN介绍
关于SDN的定义,业界内有各种不同的说法,总体来讲,SDN是一种允许网络管理员能动态地使用各种高级语言和API来对大批量的网络设备,服务,拓扑逻辑,业务路径,以及QOS策略等进行管理和控制的架构。这些管理包括在多用户的情况下业务的开启,业务的优化,监控以及排错和安全维护等等。SDN逻辑上由上至下可分为应用层,控制层和数据层,关系图如图1所示[2]。SDN将控制层面和数据层面从网络设备上分离,所有的控制决策均由控制器执行,与传统网络不同,SDN中,网络操作系统仅在控制器中运行,网络设备仅进行转发操作,起到了纯粹的管道功能。控制器作出相应决策后,会对网络中对应设备的数据层面进行相应编程,从而建立网络。SDN控制器作为一个软件实体,掌控了网络的全局状况和行为,它通过图形化界面可以实时地将整个网络的情况反应给网络管理员,使得网络管理更为直观。SDN除了控制与数据层面的分离特性外,主要还包括了可编程特性。管理员可以在控制器层面之上编写应用程序,北向API即是管理员自定义应用程序的接口。管理员自定义的应用程序通过该接口与控制器进行通信,控制器将其编译后发送至底层。而南向API即为控制层和数据层通信的接口。常见的南向接口包括OpenFlow[3],XMPP[4],ForCES[5],PCE[6],ALTO[7]等。OpenFlow是SDN中最为著名的南向接口之一。OpenFlow是第一个允许网络管理员用同样的方法修改不同厂家的路由器和交换机的配置的开放协议。因为OpenFlow不需要特定厂家透露他们设备的内部详细信息就可以对硬件进行编程,而且因为它在现有设备上便于开发的特性,OpenFlow受到了很多人的青睐。OpenFlow交换机与传统的二层交换机类似,不同的是,在传统网络中,交换机和路由器都需要对路由表和MAC地址表进行存储,网络中各设备需交换路由表信息然后通过特定的算法确定数据包转发路径。而在SDN中,这些全都由控制器负责处理。OpenFlow交换机不仅降低了硬件方面的成本,而且使得网络设备集中化,不再需要对各设备分开处理和配置也不再依赖于复杂的路由和交换协议,网络管理趋于简洁便利。
二、SDN做出的改变
目前的数据中心都是由大量的路由器和交换机堆叠组成,而每个机架都会安装有TOR交换机来连接服务器。所有的这些路由器和交换机都需要单独进行配置和维护,随着网络规模的增大和拓扑的改变,重复和复杂的工作也会剧增。虚拟化技术的出现使得网络变得更为复杂,业务的变化导致服务器虚拟化的网络配置需要同步变换。SDN中引入了控制器的概念后,更为关注全网的状态,只需要在控制器中做统一配置,由它像大脑一般进行翻译和下发指令到交换机和路由器,就能完成对目标设备的全部配置。传统的IP网络是无连接,尽力而为的,因此难以保证传输质量,并且难以确认在何处丢包。IP网络中传输的数据报文缺乏与业务相关的信息,当网络拥挤服务质量变差时,网络管理员无法第一时间得知问题所在以进行排查。SDN主要通过计算和统计多个端口在固定时间内流入与流出的报文数之差来判断网络的丢包情况。同时,SDN的可编程特性允许网络管理员实时地改变QoS策略以满足不同用户的需求。安全策略方面,SDN以全网视角发现潜在的威胁,结合大数据的分析和控制器对网络中各设备信息的收集,可以发现从单个设备的角度无法发现的潜在威胁。发现可疑信息后第一时间通过图形界面反应给网络管理员,进而网络管理员可以及时调用全网安全资源对风险进行防御,系统的可靠性得到了进一步的提升。在广域网方面,SDN被用来提升链路的利用率。由于传统网络路由发送都是经过特定算法确定最短路径后发送,故网络拓扑未改变的情况下,数据包传送的路径总是固定的,这在流量剧增的时候会对服务质量产生较大的影响,当达到链路带宽瓶颈之时就会产生丢包现象,同时,该情况下链路利用率也极其低下。
三、SDN推广存在的问题
首先SDN虽然有很多优点,其全网管控特性可以解决目前网络管理工作中的许多问题,但是企业较多考虑的一个因素是投入成本,没有人愿意过多地进行重复建设。建设SDN虽然和兼容现有网络并不冲突,但是如何在不影响现网业务运行和不改变原有网络拓扑的情况下保证SDN提供所有功能,是当前值得思考的一个重要问题。只有保证了现有网络向SDN平滑地过渡,SDN才能顺利地推广。SDN网络由控制器集中控制,仅布置单个控制器风险较大,控制器故障会导致整个网络瘫痪。通过建设多个控制器实现冗余虽然可以减少此类情况的发生,同时也需要做好控制器集群对网络攻击的防范。对于中小型网络,由于SDN的优势不再那么明显,网络管理员的工作也不会太过繁琐,网络管理的复杂度在可接受的范围之内。从这个角度看,在SDN的技术得到完善和成熟之前,SDN的推广估计会像IPv6取代IPv4那样,有着很长的一条路要走。SDN对运营商也有着较大的影响,运营商虽然也还处于对SDN技术的研究阶段,但是SDN所倡导的软件化和虚拟化已经成为未来网络发展的重要趋势和特征,相关的代表性技术和协议将构成未来网络的基础。一般认为SDN将增强当前的网络功能,而不是取代当前的网络。
四、结论
互联网的发展已大步迈入云计算时代,网络发展势必得跟上服务器虚拟化的演变节奏。SDN作为下一代网络发展的一个方向,其基本原则和协议已经明确。它的一系列特性不仅满足了云计算的需求,而且还大大简化了网络管理方面的工作。本文主要对SDN的结构,特性以及现状等进行了相关探讨。并分别提出了SDN网络管理的各方面优点,与传统网络进行了比较。另外,本文还对SDN目前存在的问题提出了相应的看法。对于它的未来发展给予了肯定。
作者:李瑶 单位:国家新闻出版广电总局无线电台管理局