SDN已经10多岁了,甫一问世,其控制平面与数据平面分离的理念引起了网络界的极大关注和研究热潮。如今,SDN的光环不再,有人说,“SDN已死,有事烧纸”;有人说,SDN精神不朽,“万变不离其宗”。何为SDN?SDN目前究竟如何?SDN的理想与现实有何差距?
虚拟化的发展导致网络流量,尤其是数据中心流量发生了很大变化。Core/Distribution/Access的三层网络架构在传统的Client-Server网络架构中非常有效,然而如今,用户到服务器的南北流量远低于服务器到服务器的东西流量,当东西向流量急剧增加时,三层网络架构开始变得力不从心。
同时,传统网络系统也暴露出诸多局限——系统过于复杂,无法根据企业的业务需求灵活应对变化。因此,快速部署、灵活的可扩展性、自动化和易于集成是网络必须满足的关键属性。
市场的需求催生了网络行业新趋势的诞生:SDN(软件定义网络)!
SDN:从灵感到本质
根据ONF(开放网络基金会)的说法,SDN 是一种控制平面和数据平面分离且可编程的网络架构。
何为控制平面和数据平面?举个栗子,我们熟知家到公司的路线,不需要导航就可出发,因为我们已经提前获得了数据和决策。但是,如果要从家到陌生客户所在的A 公司,如何规划路线呢?我们需要思考、查找并选择正确的路径,计算和决策路径在网络语言中相当于使用了控制平面;而从家走到公司,不需要计算和决策,只需要直接出发,相当于在数据平面上处理。
网络系统也是如此。要将数据从A点传输到B点,每个网络设备上必须同时包含计算功能(即控制平面)和数据传输功能(即数据平面)。在 SDN 网络中,控制平面与设备分离,并集中在一个称为 SDN 控制器(本质上是为控制网络而编程的软件)的地方。网络系统有数百个设备,但只需要一个控制器来计算和决策,设备仅通过控制器的指令进行数据传输。
在架构方面,SDN分为三层。基础设施层包括所有具有数据转发功能(即数据平面执行)的网络设备。SDN控制层包含一个或多个控制器,负责管理和控制底层网络设备的分组转发,这两层之间使用南向接口(例如OpenFlow)进行通信。最上层是应用层,包括应用和服务(如流量控制、安全、QoS等),它们通过北向接口直接与控制层交互。
有了上面的网络架构,SDN网络带来了很多变革:
首先,分离控制平面和数据平面有助于为整个网络创建“全局视图”,提高可见性和策略一致性。理论上设备只执行数据平面任务的话将简化设计,大大降低硬件生产成本,因为设备本身不需要运行太多的协议,只需执行来自控制器的命令。最重要的是,这种分离可以更好地抽象网络系统。
“抽象”是SDN网络中一个非常重要的特性。如今的网络愈加趋于简单和自动化,为此必须对网络系统进行抽象。通过分层的网络架构,网络管理员可以根据需要对网络系统进行编程,在不需要对数百个设备、数千行代码和复杂协议进行交互的情况下,向下推进底层实现。
从集中控制平面创建整个网络的“全局视图”,到通过 API 进行层间通信,SDN 中的所有网络元素都支持自定义编程。这种组合有助于网络管理员提高其网络的自动化程度,应用程序、网络服务可以实时运行。网络系统完全可以定制和优化所需的特性,而不依赖于设备制造商。
SDN:从理想到现实
SDN的理想与现实之间存在着许多差异。与SDN定义和研究相比,SDN实际产品存在着许多不同。对于实际的SDN产品,控制平面和数据平面真的是分开的吗?这些设备会独立制造而不依赖于供应商吗?Openflow 是流行的通信协议吗?
SDN在不断地发展,网络架构也非常多样化:
上文提到的SDN网络架构就是上图架构(2a),控制平面和数据平面完全分离。OSPF、BGP等路由协议或MAC学习机制都集中在控制器中,设备只是实现数据转发的物理部分,这被认为是原始的 SDN 架构。
然而,这种架构可能多存在于研究实验室和一些实验产品中。真正落实到商业 SDN 产品时却有不同,例如 SD-WAN使用的是架构(2b),控制整个网络的组件集中在控制器上,但控制平面保留在设备上,以便设备可以相对独立地运行。甚至,有些解决方案虽然被称为SDN,但实际上控制平面完全在设备上,控制器只倾向于集中管理整个网络,以支持与应用层和用户的通信。
图中架构(3)所示为基于SDN的Overlay架构,也是当今市场上许多软件定义产品的一部分。Overlay网络旨在使用网络虚拟化在物理基础设施之上建立连接的逻辑网络。
从SDN的理念来看,市场上提供的解决方案产品非常多样化,被称为SDX(软件定义xx)。因为 SDN 不是产品,它是一种架构、一种理念,最终产品取决于构建目的和具体的解决方案。
例如 SDN 可用于网络流量调度。通常传统网络的路径选择依据是通过路由协议计算出的“最优”路径,但结果可能会导致“最优”路径上流量拥塞,其他非“最优”路径空闲。当采用SDN网络架构时,具有“全局视野”的SDN就可以根据网络流量状态智能调整网络流量路径,提升网络利用率。SD-WAN 就是很好的一个例子。
对于网络功能的虚拟化,包括多租户环境中物理网络基础设施的虚拟化,SDN有助于在数据中心创建虚拟网络,为基础设施层和应用程序提供快速配置。
由此可以看到,从SDN网络的思想来看,它可以发展成不同的产品和解决方案,以克服很多传统网络不可能或难以解决的问题。
SDN(或者更确切地说是SDN的思想)将继续被应用和发展,在未来带来更加多样化和改进的产品。希望通过本文能够让有兴趣的读者更好地掌握市场趋势,了解SDN网络的本质以及在实践中的应用。