SDN 和 NFV 到底有什么区别?

网络工程 专用网 无功
2021-07-15 00:43:58

SDN(软件定义网络)和 NFV(网络功能虚拟化)有什么区别?维基百科说 NFV 依赖于标准的客户端-服务器模型。该模型与数据平面-控制器平面模型有何不同?

如果可能,请举例说明。

4个回答

我不同意@Pedro Perez 提供的答案,我认为他的答案是混合短语和模棱两可的,所以我在下面提供了我自己的解释。

SDN: 我认为这几乎就是名称所说的“软件定义网络”。这对我来说意味着软件正在定义数据包自动通过网络的路径(可能有一些由人工操作员提供的上限/下限约束)。它还可以自动重新调整那些预定义约束内的路径。我会考虑将使用开箱即用(集中式)控制平面(例如 OpenDaylight SDN 控制器以及 Open Flow、BGP-LS 或 PCEP 等协议)的部署作为 SDN 部署。SDN 控制器正在与网络设备通信,并根据从网络设备接收到的实时数据来控制流量。

NFV:

再次几乎是首字母缩略词所暗示的“网络功能虚拟化”。这对我来说是关于虚拟化网络功能——不是设备如何转发数据包和做出决定(SDN 涵盖),而是在设备级别如何虚拟化和容器化网络功能,以便它们可以快速部署、重放、迁移,退役等。为了澄清网络功能,这里会说 NAT、CG-NAT、ACL、QoS、隧道、DNS 或 Web 过滤、负载平衡等。我会考虑使用标准计算硬件(例如 x86 服务器)的部署例如)运行虚拟机或容器,如路由器、交换机、防火墙负载平衡器等,作为 NFV 部署。使用 NFV,可以将多个虚拟功能链接在一起以形成服务链。例如在单个 x86 机器上运行多个虚拟机,形成一个管道,一个数据包必须通过整个 VM 管道;第一个虚拟机可能是一个虚拟交换机,面向办公室 LAN,如果数据包发往 Internet,它可以移交给虚拟防火墙,如果数据包通过防火墙规则,它可以移交给虚拟路由器,然后从物理 WAN 链路发送数据包。

国家统计局/LSO:

在我看来,“网络服务编排”或“生命周期服务编排”对于将更改应用于网络设备、配置和基础设施以及管理基础设施(如部署、升级、退役等)的(通常)自动化过程有一个重叠的定义。我是提出这一点是因为基于 NFV 的网络可以完全手动部署;您可能在 Linux 上使用 KVM,并且通过 SSH 连接到每台 KVM 机器,并在 CLI 上手动启动来自 Juniper 和 Cisco 之类的虚拟路由器映像,使用virsh例如。也可能是 VMware 使用 ESXi,然后您再次使用 Web 控制台来完成所有工作(这些只是常见示例)。您仍在虚拟化网络功能,并在需要时可能将它们链接在一起,只是缓慢且可能会手动错误。对于 SDN,人们可以使用 BGP-LS 和一个离线控制器来自动引导网络周围的流量,这可以使用物理路由器(传统的基础设施构建方法)构建,但控制器也可以控制虚拟路由器上的流量(一个基于 NFV 的基础设施),SDN 不知道设备是物理的还是虚拟的,或者只是两个 bean 罐和一些字符串以及它们上面的 API 层。

NSO/LSO 网络运营方法已经存在多年,但没有按照他们现在的正式指南(例如通过 MEF LSO(城域以太网论坛)标准)。在最基本的形式中,工程师一直在编写通过 telnet 或 SSH 连接到设备并通过 CLI 应用命令的脚本。如果进一步扩展这个基本示例,让脚本可以通过 CLI 自动将配置位应用于设备,TFTP 会在设备上启动新固件版本,从模板生成配置文件,这是人们多年来一直在做的事情,然后我们有一个非正式的 NSO/LSO 平台。

我希望已经说清楚了,NSO/LSO 与 NFV 和 SDN 不同,它们是三个概念,可以在没有另外两个的情况下都存在,或者可以与另外两个任意组合使用。

关于网络覆盖、虚拟网络和网络虚拟化的旁注:

@Pedro Perez 提到:完全抽象物理网络并将其用作虚拟(覆盖?)网络的资源池。

在我看来,虚拟网络和网络虚拟化是两件不同的事情。首先退后一步,有一些协议提供了我所说的网络覆盖,例如 VXLAN、NVGRE 和 STT(它们又使用 MPLS 等传输协议,或 IP 中的 IP 等)。单独的这些覆盖协议虽然不提供虚拟化网络,但它们通过网络传输流量,但我们还需要支持覆盖网络内的网络功能或服务(例如 NAT、QoS、ACL,也许像 TE 等流量控制)。 ),还需要一定数量的行政管理、报告和质量控制等。一旦我们拥有了所有这些,那么我会说我们有一个虚拟网络产品(“虚拟网络”)。

我们认为虚拟服务器是在物理服务器之上运行的服务器(让我们暂时忘记嵌套虚拟化/嵌套管理程序!)。上面我定义了我认为的虚拟网络,它运行在传统上是物理锡的“真实”网络上。一个例子可能是,作为 ISP,可以以 MPLS L3 VPN 的形式向客户提供虚拟网络(L3 IP VPN 使用 VRF/RT/RD 作为覆盖模型,MPLS 用于传输协议,MP-BGPv4 用于用于某些操作管理的控制平面和 MPLS OAM)。这将在支持 MPLS 作为传输协议的物理网络上运行。

对于网络虚拟化的定义,我会参考上面的 NFV 部分。所以要走完整个圈子;在这个 ISP 示例中,如果我们的客户提供的是虚拟网络,并且如果我们将主干网络作为基于 NFV 的部署运行,那么我会说我们正在通过我们的网络虚拟化部署提供虚拟网络。清如泥。

免责声明:好的,我会遇到麻烦,因为总是有很多关于 SDN 和 NFV 概念的讨论,所以请对我的回答稍加保留。你的观点可能不同,我们都可能是对的,也可能是错的 :)

我将 SDN 视为两件事,这取决于你问谁:

  1. 能够自动化/编排您的物理网络。
  2. 完全抽象物理网络,并将其用作虚拟(覆盖?)网络的资源池。然后当然应用之前的自动化/编排点。

NFV 更侧重于提取网络产品的价值主张并将其虚拟化。

NFV 通常不会在上面的#1 中占有一席之地,因为我们只是在编排物理网络并自动化更改。我们没有虚拟化任何功能。

在#2 NFV 上更有意义。我喜欢用“防火墙”示例来说明这一点,因为它很容易形象化。在大多数网络上,您希望对流量有一定的可见性和控制力,因此您战略性地放置了一个防火墙设备(或一对在 HA 中)并确保流量必须通过它;然后你部署你最喜欢的防火墙规则并为其中的一堆启用日志记录。

在虚拟化网络上,您仍然可以部署运行相同防火墙软件的 VM 并模拟您的物理网络部署,但为什么不更进一步虚拟化防火墙功能而不是产品本身呢?

您所有的虚拟网络流量都已经通过虚拟交换机。这些虚拟交换机驻留在您的所有物理主机上。为什么我们不直接在虚拟交换机上部署这些防火墙规则?通过这种方式,您可以虚拟化防火墙功能并在您的基础设施之间分配控制流量的成本,从而具有更可预测的扩展成本(即您的防火墙功能随着您的计算能力而增加)。

所以这不是关于每个人的管理模式,而是关于他们每个人的目的。两者之间存在重叠,SDN 绝对支持 NFV。

NFV 旨在将 NF 与专用硬件元素分离,而 SDN 则侧重于将数据包和连接的处理与整体网络控制分开。

在SDN架构中,虚拟化是将抽象资源分配给特定的客户端或应用程序;在 NFV 中,目标是将 NF 从专用硬件中抽象出来,例如允许它们托管在云数据中心的服务器平台上

NFV 可以在现有网络上工作,因为它驻留在服务器上并与发送给它们的特定流量进行交互,SDN 需要一个新的网络结构,其中数据和控制平面是分开的

SDN

在启用 SDN 的网络中,将有一个控制器(不同的控制器 POX、RYU、OPENDAYLIGHT、FLOODLIGHT),该控制器将了解整个网络元素并了解实时流量信息。该知识可用于执行实时交通工程。

网络虚拟化

在 NFV 的帮助下,我们可以在软件而不是专用硬件中实现网络元素。例如。我们可以运行点击程序(点击模块化路由器)来实现网络元素,如开放流交换机中的负载均衡器,而不是专用硬件