软件定义网络教程
软件定义网络 (SDN) 是一种构建网络的动态方法。它为您提供了网络技术创新的机会。SDN 并不直接解决诸如路由、拥塞控制和安全等技术挑战。但它具有开发和部署针对这些问题的创新解决方案的架构。
SDN 已成为网络中的关键概念。它重塑了网络的控制和管理方式。因此,它为您提供了灵活性、适应性和效率。
SDN 将网络中的控制和数据平面分开,以便集中管理网络设备,如交换机和路由器。新功能、应用程序和优化有机会解决传统网络方法的难题。在本 SDN 教程 中,我们将详细探讨 SDN 的基本和高级概念。我们将解释如何将其应用于当今的网络环境。
对软件定义网络的需求
网络历来由硬件供应商的垂直集成解决方案主导。网络运营商依赖于硬件和软件捆绑在一起的专有设备。
网络运营商在实施变革方面面临挑战。 SDN 通过 分离 控制 和 数据平面 来改变这一现状,这样网络运营商就可以拥有更多的控制、灵活性和独立性。
软件定义网络的属性
SDN 有几个属性,其中一些列在下面 −
- 控制平面和数据平面分离 − SDN 将网络逻辑(控制平面)与物理硬件(数据平面)分离。因此,控制平面独立运行以管理网络中的多个设备。
- 集中控制 − SDN 通过控制网络设备实现全局网络优化,从而简化了网络管理。
- 可编程性 −您可以使用软件对网络进行编程,以实现自动化、服务交付和自定义网络的能力。
- 灵活性和可扩展性 − 您可以根据应用程序和服务的需求调整和扩展网络。
- 开放标准 − SDN 促进使用开放标准来实现设备之间的互操作性,并减少对单一供应商解决方案的依赖。
软件定义网络的用途
您可以在从企业数据中心到云服务提供商的各个网络领域使用 SDN,以实现更灵活、可编程和高效的网络。
其中一些用例如下 −
- 数据中心 − 您可以集中控制数据中心网络。您可以优化流量、安全性,并根据运营商需求的变化重新配置网络。
- 云网络 − 您可以在云环境中使用 SDN 来管理网络基础设施,以快速配置服务并实现网络管理任务的自动化。
- 网络自动化 − 您可以通过可编程性实现自动化,降低手动配置网络设备的复杂性,并加快配置、维护和扩展等流程。
- 服务提供商 − 电信运营商和服务提供商使用 SDN 提供新服务、管理带宽,并通过控制流量来提高网络可靠性。
- 网络虚拟化 −网络运营商可以创建可调整的虚拟化网络环境,这些环境可以是特定用例,例如多租户数据中心和混合云。
软件定义网络中的关键概念
下面重点介绍了SDN的一些关键概念 −
控制平面和数据平面分离
SDN 将控制平面(做出网络决策的地方)与数据平面(转发数据包的地方)分离。通常,传统网络平面集成在每个设备中。而 SDN 引入了一个开放接口来连接这些平面,以便集中式软件控制多个设备。
集中控制
SDN 的主要优势之一是集中控制。它为您提供网络的全局视图。SDN 控制器充当网络的大脑,负责决策流量路由、安全策略和资源分配。您可以有效地管理网络,以便在整个网络中应用策略。
可编程性
网络运营商可以通过 SDN 控制器提供的 API 对其网络进行编程。因此,您可以配置、管理和优化网络资源,以便更轻松地实现自动化并更快地部署新服务。运营商不再需要手动配置每个网络设备。
硬件和软件的分离
传统网络设备与供应商的专有软件捆绑在一起。而 SDN 将硬件与软件分离(分离),以便运营商使用裸机交换机(没有预装软件的硬件)并安装他们选择的控制软件。
基于流的转发 (OpenFlow)
OpenFlow 是首批启用 SDN 的协议之一。因此,SDN 控制器使用交换机中的流规则来管理数据包的转发方式。例如,控制器可以使用具有给定目的地的所有数据包都应转发到给定端口。
网络虚拟化和抽象
SDN 通过创建网络操作系统 (NOS) 对物理网络进行了抽象。因此,运营商可以查看和控制整个网络。应用程序可以与网络的这种抽象视图进行交互,而无需了解物理硬件。
谁应该学习软件定义网络?
本SDN 教程专为那些想要了解软件定义网络的基础知识和高级属性的人而设计。它适用于网络工程师、IT 专业人员以及任何设计现代网络基础设施的人。
完成本教程后,您将对 SDN 有扎实的了解。您可以将其原理应用于现实世界的网络挑战。
学习 SDN 的先决条件
在深入研究本 SDN 教程 之前,您应该对网络概念(如 IP 寻址、路由和交换)有基本的了解。
熟悉传统网络协议(如 BGP、OSPF 和 RIP)会很有用,但这不是强制性的。
软件定义网络常见问题解答
在本节中,我们收集了一组有关 软件定义网络 的常见问题及其答案。
在您的网络中实施 SDN 有多种好处,其中一些好处如下 −
- 集中控制 − SDN 为您提供了管理整个网络的单一控制点。更容易实施变更、执行策略和解决问题。
- 灵活性和自动化 − 有网络管理员可以自动执行配置、流量管理和网络配置等任务,减少人工干预并最大限度地减少错误。
- 节省成本 − SDN 可以降低使用商用硬件管理网络的资本和运营费用,并减少对专有设备的依赖。
在传统网络中,控制平面(决定如何路由流量)和数据平面(转发流量)集成在每个网络设备中。因此,管理大型网络更加困难。
SDN 将这些平面分开,控制平面集中在控制器中,以实现更灵活、可编程的网络。 SDN 具有更简单的策略实施和更好的可扩展性。
OpenFlow 是 SDN 中使用的协议。您可以使用控制器与网络设备(如交换机和路由器)进行通信。您可以定义如何处理流量的规则。它是为 SDN 开发的首批协议之一。
您可以使用集中控制来管理网络。更容易实施策略、提高安全性和优化流量。 SDN 还用于更快的网络重新配置,可用于数据中心和云服务等动态环境。
是的,许多网络使用混合方法,其中 SDN 与传统网络设备一起引入。因此,您可以顺利过渡到 SDN,而无需彻底改造现有基础设施。
是的,要实施 SDN,您需要一个 SDN 控制器,这是一个管理网络控制平面的软件应用程序。
流行的 SDN 控制器包括 OpenDaylight、ONOS 和思科的 ACI(以应用程序为中心的基础设施)。这些控制器提供用于以编程方式配置网络设备的 API。
SDN 控制器充当网络的大脑。它保持对整个网络的全局视图,例如所有设备、流量和配置。控制器与网络设备(数据平面)通信并指示它们如何转发流量。它还提供了一个集中点,网络管理员可以在其中监控和配置网络。因此,实施变更和优化性能更加容易。
SDN 具有集中控制和对网络流量的更高可见性。因此,实施和执行安全策略更加容易。网络运营商可以通过动态更新防火墙规则、分段网络和隔离受感染设备来应对安全威胁。
大型企业、云提供商和电信运营商都在使用 SDN。但您也可以将其用于中小型企业。
小型企业也可以使用 SDN 来管理网络、提高性能并降低运营成本,而无需投资昂贵的专有硬件。
有各种 SDN 协议来管理控制平面和数据平面之间的通信。最知名的协议是 OpenFlow。
SDN 控制器可以与交换机和路由器交互。其他协议(如 NETCONF、RESTCONF 和 BGP)也用于 SDN 环境中的网络配置和管理。这些协议确保 SDN 控制器可以管理网络设备,无论平台如何。
OpenFlow 是 SDN 中使用的最早且最知名的协议之一。它允许 SDN 控制器 通过发送流规则来与交换机和路由器进行通信,这些流规则规定设备应如何处理网络流量。
虽然 OpenFlow 是 SDN 的重要垫脚石,但随着时间的推移,像 P4 这样更灵活、可编程的替代方案已经出现。