什么是软件定义网络?
软件定义网络 (SDN) 是一种构建网络的现代方法。通常,网络依赖于路由器和交换机等硬件设备。这些设备难以配置和管理。
您可以使用 SDN 通过将控制逻辑(控制平面)与物理设备(数据平面)分离来管理网络设备。借助 SDN,网络管理员可以使用软件从中央位置控制网络,以管理、自动化和优化网络。
软件定义网络的架构
软件定义网络围绕三个关键层构建。这些层中的每一层在网络中都有不同的功能。
应用层
这是最顶层。它包括各种网络应用程序,如安全系统(防火墙)、负载平衡器和入侵检测系统。这些应用程序与 SDN 控制器通信以请求特定的网络行为,如路由、访问控制和流量优化。
控制层
控制层有 SDN 控制器。它充当网络的中央决策单元。它从数据平面中的设备收集信息并决定网络应如何运行。
控制器通过 API 与数据平面中的设备通信。它指导如何根据预定义的规则和策略转发数据。
基础设施层
基础设施层具有构成数据平面的物理和虚拟设备。这些设备(如交换机和路由器)负责根据 SDN 控制器给出的指令转发数据。它们不会对流量做出任何决定,而是执行从控制器收到的命令。
软件定义网络的组件
软件定义网络 (SDN) 有各种重要组件。
控制平面和数据平面分离
在 SDN 中,控制平面(做出路由决策)与数据平面(转发数据)分离。控制平面集中在 SDN 控制器中。它监督整个网络并向数据平面中的设备发送指令。数据平面设备(如交换机和路由器)遵循这些指令转发流量。
SDN 控制器
SDN 控制器是 SDN 架构的核心部分。它从网络设备收集信息,以决定如何路由数据。它将这些指令发送到数据平面中的设备。控制器有一个集中管理点来配置和优化网络。
SDN 网络设备
数据平面中的设备(如交换机和路由器)负责根据从控制器收到的指令转发流量。这些设备使用 SDN 控制器设置的规则在整个网络中高效转发数据。
OpenFlow 协议
SDN 中使用的主要协议之一是 OpenFlow。该协议用于与交换机和路由器通信,发送确定应如何转发流量的流规则。OpenFlow 用于 SDN 提供的集中控制和可编程性。
SDN 如何工作?
在 SDN 中,网络控制与转发数据的硬件分离。通常,控制平面和数据平面都集成在每个网络设备中。SDN 通过将控制平面移动到集中式 SDN 控制器来改变这种情况。数据平面保留在硬件设备上,如交换机,并根据控制器的指令转发数据。
例如,在正常网络中,当数据包到达交换机时。交换机将咨询其控制平面以决定将数据包转发到何处。而在 SDN 中,交换机只需遵循 SDN 控制器给出的指令。如果交换机不知道如何处理数据包。它会查询控制器。它发回处理该数据包的规则。
SDN 的优点和缺点
使用 SDN 有几个优点和缺点,下面重点介绍其中一些 −
SDN 的优势
- 您可以使用软件对 SDN 进行编程和修改。
- 网络管理员无需手动调整每个设备即可配置网络。
- SDN 硬件更简单、更便宜,因为每个交换机仅处理数据转发。
- 您可以控制由 SDN 控制器集中管理的逻辑。
- 它通过集中控制流量和策略来提高安全性。
- 您可以使用 SDN 控制器检测可疑的网络活动。
SDN 的缺点
- SDN 依赖于集中控制器。因此它可能存在单点故障。
- 如果中央控制器发生故障,整个网络都会受到影响。
- 在非常大且坚固的网络中扩展 SDN 存在挑战。
SDN 与传统网络之间的差异
下表比较和对比了 SDN 和传统网络的主要功能,并强调了它们之间的差异 −
软件定义网络 | 传统网络 |
---|---|
通过基于软件的控制器进行集中控制。 | 分布式控制。每个设备管理自己的操作。 |
它将控制平面与数据平面分开。 | 它将每个设备的控制平面和数据平面结合在一起。 |
它是可编程的和动态的。 | 它是不可编程的和静态的。 |
开放标准使不同供应商的设备能够互操作。 | 专有且通常与单个供应商绑定。 |
它更容易扩展并适应不断变化的业务需求。 | 扩展需要手动配置和硬件升级。 |
它使用集中式 API 来控制网络设备。 | 它使用特定于设备的配置方法如 CLI 或 SNMP。 |
结论
软件定义网络 (SDN) 正在改变网络的设计、管理和运营方式。SDN 可以使用控制和数据平面集中控制、灵活性和自动化。SDN 在企业环境、云网络和数据中心的成本节约、可扩展性和效率方面具有多种优势。
SDN 代表了网络架构的重大转变。您可以采用动态和可编程的网络管理方法。它能够简化操作、降低成本并提高现代网络基础设施的性能。