Software Defined Networking Tutorial

软件定义网络教程

软件定义网络 (SDN) 是一种构建网络的动态方法。它为您提供了网络技术创新的机会。SDN 并不直接解决诸如路由拥塞控制安全等技术挑战。但它拥有一个架构,用于开发和部署针对这些问题的创新解决方案。

SDN 已发展成为网络中一个关键的概念。它重塑了网络的控制和管理方式。因此,它为您提供了灵活性适应性效率

SDN 将网络中的控制平面数据平面分离,以便集中管理网络设备,如交换机和路由器。对于传统网络方法难以实现的新功能、应用程序和优化,它提供了机会。在本SDN 教程中,我们将详细探讨SDN 的基本和高级概念。我们将解释它如何应用于当今的网络环境。

软件定义网络的需求

历史上,网络一直由硬件供应商提供的垂直集成解决方案主导。网络运营商依赖于专有设备,其中硬件和软件捆绑在一起。

What is Software-Defined Networking

网络运营商在实施更改方面面临挑战。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 地址、路由和交换。

熟悉传统的网络协议,如BGPOSPFRIP 将很有用,但不是必须的。

关于软件定义网络的常见问题

在本节中,我们收集了一组关于软件定义网络常见问题及其答案。

在网络中实施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控制器可以与交换机和路由器交互。其他协议,如NETCONFRESTCONFBGP,也用于SDN环境中的网络配置和管理。这些协议确保SDN控制器可以管理网络设备,而不管平台如何。

OpenFlowSDN中最早和最著名的协议之一。它允许SDN控制器通过发送流规则与交换机和路由器通信,这些流规则规定设备应如何处理网络流量。

虽然OpenFlow是SDN的重要基石,但随着时间的推移,出现了更灵活和可编程的替代方案,例如P4

广告