传统网络采用的是分布式控制架构,虽然经过了多年的发展更新,但面对“云大物移智”时代的到来,各种问题仍然层出不穷,已逐渐无法满足人们的需求。具体来说,传统网络存在着如下一些弊端:
❑部署管理不灵活。如今的网络设备生产商数量较多,不同厂商生产的设备型号繁杂。在实际使用的过程中用户常常将不同厂商的设备混合使用,虽然它们的底层协议是相同的,但通常还有一些私有的扩展协议,部署方式和命令仍存在差异,这使得设备之间无法实现统一部署管理,运维复杂。
❑无法实现策略定制和按需调整。通常传统网络的内部运行协议在设备生产时就已经确定,后续难以根据实际情况修改和更新协议,缺乏一定的灵活性。
软件定义网络(Software Defined Network, SDN)技术是由美国斯坦福大学Nike Mckewn教授领导的Clean-Slate课题研究组提出的一种基于OpenFlow的新型网络创新架构 [2] ,它基于OpenFlow协议将路由器的控制平面从数据平面中分离,改以软件方式实现,从而摆脱了硬件对网络架构的限制,实现了将分散在各个网络设备上的控制平面进行集中化管理。SDN架构能够使网络管理员在不改变硬件设备的前提下,通过中央控制方式重新规划网络,对网络流量进行灵活控制,实现网络虚拟化和智能化,同时也为核心网络和应用创新提供了良好平台。
SDN是对传统网络架构的一次重构,由传统的分布式控制网络架构转变为集中式控制网络架构。如图3-2所示,SDN架构通常分为三部分,即应用层、控制层和基础设施层。
图3-2 SDN网络架构
❑应用层:主要包括各种面向用户的上层应用程序,这些应用通过调用SDN控制器和北向接口实现对数据平面的设备的配置、控制和管理。
❑控制层:主要包括SDN控制器,是SDN的核心组件。SDN控制器不仅掌握着全局网络信息,监控网络状态,同时还执行网络控制。它能够将应用层的请求转换到SDN数据路径,同时还能为应用层提供底层网络的抽象模型。
❑基础设施层:主要包括数据平面中的网络设备,负责转发和处理数据信息。
在SDN架构中除了三个平面还有两个重要的接口,即北向接口和南向接口。
❑北向接口:位于应用平面和控制平面之间,向应用层提供抽象的网络视图,使上层应用程序能通过北向接口获取下层的网络资源,并能够向下层发送数据,直接控制网络的行为。
❑南向接口:位于控制平面和数据平面之间,负责SDN控制器与网络单元之间的数据交换,将控制器中的转发规则下发至转发设备,其中最主要的应用为OpenFlow协议。
与传统网络设备对流量控制和转发独立控制不同,SDN的核心在于将路由器和交换机中的控制功能从网络设备中分离出来,网络设备采用通用的硬件平台,只负责数据转发,而原来用于网络逻辑控制的功能采用相对独立、集中的控制器代替,实现网络可编程、资源有效利用、提升网络控制管理效率。SDN网络特点总结如下:
❑转发与控制分离。SDN控制器负责实现网络拓扑收集、路由计算、产生流表、网络控制与管理等,而网络设备只负责流量转发和策略执行,这种转控分离的方式能够使网络系统的转发面和控制面独立发展。转发面更加通用简单,在一定程度上降低了设备硬件成本。而控制面更加集中统一,提高了网络整体性能。
❑集中控制。在实现了转控分离后,控制器朝着集中统一的方向发展。SDN控制器掌握网络的全局拓扑、转发信息、资源利用等,能够实现统一管理控制而不需要设备逐一操作,以及对网络实施全局优化,提高了网络整体效率。
❑开放可编程性。SDN开放了编程接口,使得第三方应用提供商只需要通过控制器提供的开放接口,以编程的方式定义新的网络功能,然后在控制器上执行即可,大大增加了部署调整的灵活性。