软件定义网络(SDN):历史、架构和用途

最后更新: 五月3 , 2026
  • SDN 将控制平面与数据平面分离,从而可以使用 OpenFlow 等开放控制器和 API 对网络进行编程。
  • 与传统网络相比,软件定义网络简化了管理,提高了可见性和可扩展性,并降低了资本支出和运营支出。
  • 其架构基于 SDN 应用、集中式逻辑控制器和可编程数据路径,并通过南北接口进行协调。
  • ONF 和其他参与者正在推动涵盖企业广域网、数据中心、云、大数据和物联网的标准和实际用例。

软件定义网络

软件定义网络 (SDN)彻底改变了通信基础设施的设计、部署和管理方式。曾经由物理设备和手动配置构成的僵化框架,现在可以像编写代码一样进行管理,速度更快、更灵活,并且能够更清晰地了解网络各个角落的运行状况。

这种新方法并非凭空而来:它是数十年研究和多项技术里程碑的成果,从20世纪90年代的活跃网络到OpenFlow的标准化,再到控制器、API和应用程序等完整生态系统的构建。让我们一步步了解它的发展历程,SDN解决了哪些问题,它的内部工作原理,以及它如今在哪些实际应用场景中发挥作用。

软件定义网络(SDN)的起源和历史

SDN 的故事始于大约20 年前,商业互联网的萌芽时期。当时,全球网络的成功表明,通信基础设施需要能够更轻松地进行修改和演进。从那时起,我们可以区分出三个主要阶段,它们为我们今天所说的 SDN 铺平了道路。

第一阶段对应于活跃网络(大约在 1995 年至 2000 年)。其理念是将网络开放给编程,类似于对 PC 进行编程的方式,但应用于每个通信节点。为了实现这一目标,网络设备中定义了一个 API ,该 API 公开了计算能力、存储空间、数据包队列和处理功能等资源,从而允许加载代码,为特定的流量应用自定义行为。

这种方法与那些认为互联网要想扩展并保持正常运行的唯一途径是尽可能简化网络的人的观点相悖。即便如此,积极的网络计划仍然推动了关键性的进步:计算成本的降低、编程语言的改进、虚拟机的兴起,以及最重要的,将网络视为可编程平台而非仅仅是一系列封闭设备的集合这一理念。

那个时代的一个重要催化剂是DARPA等机构的支持,DARPA启动了“主动网络计划”,该计划从90年代中期一直持续到2000世纪初。尽管主动网络从未实现大规模部署,但它们播下了后来成为SDN基础的概念:网络中的可编程功能、资源虚拟化以及对不同设备(防火墙、IDS、NAT等)的统一视图。

随着十年的到来和流量的爆炸式增长,第二阶段开始了,其重点是控制平面和数据平面的分离(2001-2007 年)。传统的路由器和交换机将控制逻辑(路由选择、路由协议)和数据平面(实际的数据包转发)集成在同一设备中,这使得调试错误、调整流量工程或引入新服务变得非常困难。

为了应对这种情况,运营商开始在专用硬件上实现数据包转发,同时控制功能保持相对独立。与此同时,他们也在寻求管理日益庞大和复杂的网络的方法,例如VPN和其他高级功能。由此产生了两条创新路线:一方面是控制和转发之间的开放接口,例如ForCES(IETF)或Linux上的Netlink;另一方面是具有集中式逻辑控制的架构,例如RCP、SoftRouter或PCE协议,这些架构允许从全局视角做出路由决策。

第三阶段随着Project 4D 和后续的 Ethane 的出现而到来,它们将中央逻辑控制器的概念具体化,该控制器具有四个清晰定义的平面:数据平面(根据规则处理数据包)、发现平面(收集拓扑和流量信息)、分发平面(部署处理规则)和决策平面(将全局策略转化为具体规则)。Ethane 已部署在斯坦福大学等实际环境中,其极其简洁的交换机设计成为我们今天所知的OpenFlow的基础。

与此同时,实验生态系统也在不断发展:PlanetLab 和 Emulab 等基础设施、GENI 和欧洲 FIRE 项目等项目,以及斯坦福大学的 Clean Slate 项目,都促进了对各种替代网络架构的大规模测试。正是在这种环境下,OpenFlow 应运而生,成为一种利用标准 API 将交换机转发功能暴露给外部控制器的实用方法。

Avaya 在 2014 年的演示是业界的一个重要里程碑,它将最短路径桥接与 OpenStack 相结合,构建了只需极少人工配置的软件定义网络。此外,得益于简单的固件更新,许多商用交换机也逐渐开始支持 OpenFlow,而无需进行硬件更改。

SDN 解决了​​传统网络的哪些问题?

传统网络几乎完全基于独立配置的物理设备,在应对企业、服务提供商和最终用户当前的需求时,其性能已接近极限。其主要弱点在于多年积累的复杂性。

为了涵盖所有可能的情况,业界不断添加越来越具体的网络协议来解决特定问题(例如安全性、效率、冗余性等),但这些协议通常是独立设计的。其结果是形成了一个错综复杂的机制网络,必须手动协调,缺乏一个通用的抽象层来简化整体。

  面向企业的集成视频安防解决方案

当组织希望在整个网络中实施一致的策略时——例如,确定哪些用户可以访问哪些资源——管理员必须修改成百上千台设备。即使是添加一台新的虚拟机这样简单的操作,也可能需要修改散布在整个环境中的大量访问控制列表 (ACL),这不仅存在人为错误的风险,还会导致数小时的延误。

缺乏可扩展性是另一个严峻的问题。数据中心的兴起、用户的增长以及流量的增加,都要求添加越来越多的设备。每增加一台设备,就意味着更多的配置、更多的管理以及更多的潜在故障点。要让所有这些都与业务需求保持一致,简直难如登天。

从经济角度来看,企业严重依赖制造商的产品周期。如果需要新的网络功能,仅仅更新软件往往是不够的:企业必须等待供应商发布合适的型号,完成内部认证,采购设备,进行部署——这个过程可能需要数年时间,并扼杀创新。

更糟糕的是,近期的趋势使情况更加复杂:流量模式呈现出更加多样化的趋势,包括机器间通信、分布式数据库、微服务,以及用户随时随地使用手机、平板电脑和笔记本电脑进行连接。随着传统网络边界的逐渐消失,管理员的工作量也随之增加,他们需要在保护敏感数据的同时,应对日益严峻的挑战。

此外,云服务(SaaS、IaaS、PaaS)的快速发展也带来了新的挑战,这些服务需要快速部署、动态扩展计算、存储和网络资源,以及更复杂的安全要求。大数据时代的到来需要跨越数千台服务器的海量带宽和传输容量,而传统网络往往难以满足这一需求。

SDN 究竟是什么?它如何解决问题?

软件定义网络(SDN)作为一种新型架构应运而生,旨在为网络提供灵活性、集中控制和可编程性,将复杂性从硬件转移到软件层面。它不再是单独管理每个设备,而是从更高的逻辑层定义所需的网络行为。

其核心原则是将控制平面和数据平面分离。数据平面负责在端点之间高速传输数据包;控制平面则决定这些数据包的传输方式和路径,并应用策略、路由和规则。在软件定义网络(SDN)中,这两个平面是解耦的,控制权集中在一个或多个逻辑控制器中。

两者之间会建立一个定义明确的接口,通常通过像 OpenFlow 这样的标准协议来实现。借助这个接口,控制器可以安装、修改或删除交换机和路由器上的转发规则,使它们能够像可编程设备一样运行,而不是封闭的系统。OpenFlow 并非唯一可用的协议,但它是应用最广泛的,并且已经成为事实上的标准。

在控制器之上,SDN 应用使用北向 API 来表达它们需要从网络获得的行为:优先处理某些流量、划分部门、负载均衡、提高服务质量、应对拒绝服务攻击等等。控制器将这些高级请求转换为在数据平面中应用的具体转发规则。

换句话说,SDN 将网络转变为一个平台,应用程序和服务可以像开发纯软件一样进行开发,而无需关注每个设备型号或底层协议的细节。这种抽象化有助于自动化,减少错误,并能更快地适应需求变化。

SDN架构:控制器、API和关键组件

典型的SDN网络由多个逻辑层和功能明确的组件构成。其核心是SDN控制器,它充当网络的大脑,从数据平面收集信息并执行应用决策。

控制器维护着网络的抽象视图:拓扑结构、每个设备的功能、流量统计信息、链路状态等。凭借这些信息,并依靠可以激活或停用的插件模块(库存管理、统计信息收集、安全模块、负载均衡等),它做出决策,并通过南向 API(通常是 OpenFlow 或其他协议,例如 OVSDB 或 Cisco OpFlex)将这些决策传达给设备。

数据平面设备——包括物理交换机、虚拟交换机和路由器——实现了 ONF 所称的SDN 数据路径:一组逻辑上公开的转发引擎和流量处理功能。每个数据路径中都有一个控制接口处理代理(CDPI 代理),它接收来自控制器的指令,并将其转换为流表中的规则或特定的硬件操作。

架构的顶层是SDN应用。这些程序通过北向API(NBI)与控制器通信,并表达业务或技术需求,例如:IP地址管理(IPAM)、服务编排、服务质量(QoS)控制、DoS攻击防御系统、高级分析工具等。每个应用都包含自身的逻辑以及一个或多个用于与控制器交互的NBI。

在这些模块之间是控制到数据平面接口 (CDPI),它负责提供转发可编程性、通告设备功能、公开统计信息以及通知事件。控制器实现此接口的驱动程序,设备实现代理,因此每个驱动程序/代理对都建立了物理基础架构和应用程序之间的特定关系。

除了这三个主要层之外,ONF 还定义了一个管理和行政层,该层涵盖更多静态任务:为客户端分配资源、物理设备的基本配置、凭证管理以及逻辑实体和物理实体之间的关联。这些任务通常在动态流量控制周期之外进行管理。

  以太网端口完全指南:类型、标准和操作

南北界面和流量规划模型

南向 API 将控制器连接到硬件或数据路径。OpenFlow 是第一个被广泛采用的接口:它定义了控制器如何在交换机的流表中添加条目、如何收集统计信息、如何报告诸如数据包不匹配之类的事件等等。其他替代方案,例如 Cisco OpFlex,提出了不同的模型,但其基本思想相同,即允许中心元素影响设备行为。

北向 API允许应用程序与控制器通信并接收网络的抽象视图。这里没有像 OpenFlow 那样成熟的标准:在协议栈的不同层级(REST、gRPC、特定 SDK、基于意图的模型等)存在许多提案和库,正因如此,ONF 才如此重视定义最佳实践并朝着兼容的方法靠拢。

在运行层面,控制器可以采用主动式、被动式或混合式模型在设备上实施流规则。在被动式模型中,当交换机收到一个与其规则表中任何条目都不匹配的数据包时,它会向控制器发出查询;控制器会响应指令,并在必要时为未来类似的数据包创建新规则。

在主动式模型中,控制器会预先安装预期流量的规则,类似于传统路由表的填充方式。这可以最大限度地减少实时查询,并降低初始通信的延迟。许多实际部署都结合了这两种模型,既能应对不可预测的流量,又能主动处理已知的流量。

SDN 的真正优势在于这些开放 API 提供的可编程性。得益于这些 API,可以根据负载动态调整路由,优先处理关键流量,自动响应故障或安全事件,甚至允许应用程序自身与网络协商所需的条件(带宽、最大延迟、冗余级别等)。

SDN中可编程性的应用案例

为了阐明网络可编程性的概念,通常会讨论三个主要用例来展示软件定义网络 (SDN) 在实践中的应用。第一个用例是流量微调:借助 OpenFlow 等协议,控制器几乎可以实时决定特定类型流量的传输路径,从而实现链路间的负载均衡、避免拥塞,或在必要时应用更严格的安全策略。

第二个主要方面在于高级应用支持。网络不再对应用程序的运行情况一无所知,而是可以公开其需求(例如,语音或视频的低延迟、特定传输的高带宽、客户端之间的严格隔离),控制器会相应地调整配置以满足这些需求。此外,自动化部署——尤其是在云和大规模虚拟化环境中——可以实现新服务的快速部署,而无需管理员手动更改参数。

第三个关键要素是网络运维的自动化。在设计良好的软件定义网络(SDN)场景中,网络可以自主响应多种事件:链路故障时,路由自动重新计算;出现可疑流量模式时,应用阻塞规则或将流量重定向到分析系统;新应用启动时,网络自动分配资源。管理员的角色也从简单的“修改命令”转变为定义高级策略并确保其合规性。

SDN 对组织的优势

SDN 的价值主张为企业和服务提供商带来了一系列显而易见的优势。其中最显著的优势之一是集中式管理:通过控制器,可以对整个网络定义访问策略、安全规则、流量优先级和服务配置,而无需单独管理每个设备或依赖各厂商的特定接口。

在可扩展性方面,SDN 提供了极高的灵活性。管理员可以近乎实时地添加或移除虚拟设备、划分网络、连接分支机构或数据中心,并调整路由,这些操作通常与云编排平台集成。所有这些操作对底层物理基础设施的影响都极小,使其保持相对稳定。

另一个重要优势在于对网络行为的全面可视性。通过将信息集中在控制器或一组协同控制器中,可以全面了解网络性能、瓶颈、活跃流量和潜在威胁。这种可视性不仅有助于日常运维,还有助于容量规划和早期问题检测。

从经济角度来看,SDN有助于降低资本支出(CAPEX)和运营支出(OPEX)。一方面,由于许多交换机只需简单的固件更新即可启用SDN功能,因此可以重复利用大部分现有硬件。另一方面,自动化减少了员工在重复性配置任务上花费的时间,降低了人为错误,并简化了维护和升级。

最后一组主要优势与创新和响应速度有关。通过将硬件和软件分离,企业可以创建新服务、尝试不同的商业模式,或使网络适应新的需求(混合云、物联网、边缘计算、大数据),而无需受限于特定制造商的产品发布计划。

SDN网络的缺点和挑战

SDN并非万能灵药,在设计和运行此类网络时,也存在一些必须考虑的挑战。其中最常被提及的挑战之一是控制器的潜在脆弱性:由于控制器集中了大量的逻辑和决策功能,它成为了一个关键节点,其故障或被攻破都可能导致整个系统崩溃。

  路由器和WiFi接入点分析完整指南

这就需要部署高可用性、冗余和故障转移机制,以及非常严格的访问控制。例如,必须具备足够的容量来缓解针对控制器的拒绝服务 (DDoS) 攻击,以防止网络对关键事件“视而不见”。

另一个挑战是,随着设备和数据流数量的增长,延迟和复杂性可能会增加。如果控制器需要处理过多的数据平面交互,则可能会过载。一个设计良好的SDN架构应该分布式处理功能,在适当的时候(例如,为了快速从本地故障中恢复)对分布式元素保持一定的控制,并能够横向扩展控制器。

在安全性方面,虽然SDN提供了更佳的可见性,但它也缺乏一些以前集成在传统路由器、交换机或物理防火墙中的机制。保护控制器、应用程序和设备之间的通信,确保通信的真实性和完整性,并设计一个强大的策略环境来验证策略是否按预期执行,这一点至关重要。

此外,建立网络取证流程至关重要:包括详细的事件日志记录、变更追踪以及在事件发生时重现事件经过的能力。所有这些都必须与软件定义网络(SDN)固有的动态性相兼容,既要防止安全成为瓶颈,又要确保不存在任何漏洞。

ONF 和其他参与者在 SDN 生态系统中的角色

开放网络基金会(ONF)在软件定义网络(SDN)的发展演进中发挥着基础性作用。它是一个由最终用户(运营商、大型企业)驱动的组织,旨在通过开放标准和协作流程来促进软件定义网络的普及应用。

ONF 一直负责定义、维护和发展 OpenFlow 标准,该标准是第一个被认可的 SDN 标准,至今仍是许多架构的核心要素。但 ONF 的工作远不止于此:它领导着多个工作组,分析商业部署的需求,提出新的接口、数据模型和术语,并促进多厂商生态系统的发展。

与此同时,科技公司和设备制造商也开发了自己的SDN平台和混合方案。其中一些方案,例如基于逻辑集中式控制器的解决方案(如Ciena的Blue Planet),将集中式功能(端到端可见性、策略、带宽)与跨网络元素的分布式功能相结合,用于故障恢复、本地监控或安全防护。

这种混合方法反映了一种实际情况:并非所有控制都必须放在中央控制器上,某些快速反应机制可以方便地靠近交通,而更复杂的智能和协调则以集中式和可编程的方式进行管理。

SDN、网络虚拟化和实际应用案例

在许多组织中,软件定义网络 (SDN) 与网络虚拟化技术结合使用,在现有物理基础设施之上构建叠加网络。这些虚拟网络可以利用相同的底层硬件来划分不同的环境(生产环境、开发环境、不同客户环境),或者可以将多个物理网络互连,如同它们是同一个逻辑实体一样。

当与SaaS、IaaS 和 PaaS 等云计算服务集成时,这种方法尤其强大。软件定义网络与编排平台协调运作,从而能够以一致、快速和自动化的方式执行整个配置周期——包括虚拟机、存储、网络和安全,通常通过 API 实现。

在大型企业和运营商中,SDN 用于构建更智能的企业广域网 (WAN),从而对总部、数据中心和公有云之间的流量进行精细化管理。例如,谷歌多年来一直使用 SDN 来互连其全球数据中心,并与 ONF 合作定义了除 OpenFlow 之外的新型控制接口。

在数据中心环境中,SDN 是实现快速高效扩展的关键组件:它能让新的数据中心在数小时内投入运营,并在数分钟内完成网络资源的配置。此外,它还能简化大规模物联网环境的部署,轻松管理数千个分布式设备和传感器,而无需面对过于复杂的系统。

最后,SDN 是软件定义基础设施这一更广泛趋势的一部分,在这种趋势下,不仅网络,存储(SDS)和其他资源也由逻辑控制平面进行控制,而无需依赖具体的硬件。这赋予了企业更高的可移植性、敏捷性,以及根据需要将工作负载在云端和本地迁移的能力。

凭借这些历史、技术和实践背景,SDN 正在巩固自身作为一种不同的网络理解方式的地位:它更接近软件世界,专注于自动化和可编程性,并且能够应对流量增长、云计算、大数据和物联网的挑战,而无需无限增加硬件或运营复杂性。

网络性能分析
相关文章:
网络性能分析:行为、指标和工具