扫描二维码
软件定义网络(Software-defined Networking,简称SDN)技术是一种网络管理方法,它支持动态可编程的网络配置,提高了网络性能和管理效率,使网络服务能够像云计算一样提供灵活的定制能力。SDN将网络设备的转发面与控制面解耦,通过控制器负责网络设备的管理、网络业务的编排和业务流量的调度,具有成本低、集中管理、灵活调度等优点。
为什么需要SDN
传统网络的局限
传统网络是一个分布式的网络,在二层网络中,设备通过广播的方式传递设备间的可达信息。在三层网络中,设备间通过标准路由协议传递拓扑信息。这些模式要求每台设备必须使用相同的网络协议,保证各厂商的设备可以实现相互通信。随着业务的飞速发展,用户对网络的需求日新月异,一旦原有的基础网络无法满足新需求,就需要上升到协议制定与修改的层面,这样就会导致网络设备升级十分缓慢。
传统网络为了适应不同的需求和场景,发展也越来越复杂。部署一个传统网络往往需要使用到很多协议,由于标准协议中往往存在一些未明确的地方,导致各厂商的实现有差异。
传统网络以单台设备为单位,以命令行的方式进行管理。网络管理和业务调度时效率低下,运维成本高。
SDN的技术路线
为了解决传统网络发展滞后、运维成本高的问题,服务提供商开始探索新的网络架构,希望能够将控制面(操作系统和各种软件)与硬件解耦,实现底层操作系统、基础软件协议以及增值业务软件的开源自研,这就诞生了SDN技术。
在传统网络中,网络设备可以分为管理面、控制面和转发面。管理面负责业务的编排和策略的制定,控制面负责操作系统的运行以及各种算法的运算,转发面负责数据包的转发和接收。SDN的理念是将网络设备的控制和转发功能解耦,使网络设备的控制面可直接编程,将网络服务从底层硬件设备中抽象出来。SDN架构与传统网络架构的对比如下图所示。
传统网络架构与SDN架构对比
经典的SDN技术路线强调控制面的剥离,希望能够将网络设备变为白盒设备,实现网络功能的自定义。
但在SDN的发展过程中,由于底层协议的复杂性、软件开发投入等多方面原因,厂商逐渐转向了以自动化运维为主要目标,弱化控制面剥离的SDN技术路线。厂商们主张将操作系统以及大部分的软件仍放在硬件设备上进行,保留原有的网络设备形态,通过控制器实现与硬件设备、与网络配置管理工具的对接,由控制器在管理面的维度完成对硬件设备的统一管理和业务编排。下图为两种SDN技术路线的对比,经典的SDN技术路线又可以称为软件SDN,而弱化控制面剥离的SDN技术路线可以称为硬件SDN。
软件SDN与硬件SDN对比
SDN架构
SDN架构可分为基础设施层、控制层和应用层。
基础设施层:主要为转发设备,实现转发功能,例如数据中心交换机。
控制层:由SDN控制软件组成,可通过标准化协议与转发设备进行通信,实现对基础设施层的控制。
应用层:常见的有基于OpenStack架构的云平台。另外,也可以基于OpenStack构建用户自己的云管理平台。
SDN使用北向和南向应用程序接口(API)来进行层与层之间的通信,分为北向API和南向API。北向API负责应用层和控制层之间的通信,南向API负责基础设施层和控制层之间的通信。
SDN架构
【微信公众号】
【抖音号】
【视频号】
Copyright©版权所有江苏云弛网络科技有限公司 苏ICP备2021052917号-1
技术支持: 易动力网络