注:本文部分译自 https://www.cisco.com/c/en/us/solutions/software-defined-networking/sdn-vs-nfv.html
虽然NFV与SDN都体现了网络抽象化的思维,二者的方法迥然不同。关于网络抽象化的益处的讨论随处可见,但很多人关于实现网络抽象化的SDN与NFV这两个方法存在疑惑。
SDN vs NFV:相似与不同
SDN与NFV的核心共同点在于它们都体现了网络抽象化的思维。SDN尝试将网络控制层与网络数据层分割开来,而NFV努力实现网络数据层转发功能和其他网络功能的虚拟化(使网络功能独立于底层的硬件)。因此,二者都严重依赖虚拟化,以使得网络的设计和基础架构能够用软件抽象,之后使用跨硬件平台的基础软件实现。
当SDN在NFV的架构上实现时,SDN控制从一个网络设备向另一个网络设备转发报文。同时,SDN进行路由、策略制定的网络控制功能和应用运行在网络中的某一台虚拟机中。因此,NFV提供了基础的网络功能,而SDN则负责控制协调这些基础功能以完成一些特定的网络控制。并且SDN的配置与行为可以通过编程方式定义和更改。
SDN与NFV不同之处在于如何进行网络功能的分离和资源抽象。SDN抽象物理的网络资源--交换机和路由器等,并将决策制定移到一个虚拟的网络控制层。在SDN中,控制层决定流量的方向,而仍然是底层硬件负责转发和处理流量。NFV致力于完全用软件对物理网络资源进行虚拟化,以使得网络的增长不需要增加额外的网络设备。
虽然SDN与NFV都使得网络架构更加灵活和可动态化,它们在定义网络架构中扮演着不同的角色。(可以理解为SDN抽象层次更高,NFV抽象层次较低。因为NFV抽象具体的网络功能,而SDN抽象网络拓扑)。
SDN
SDN实际上从顶层层面描绘了网络:需要的网络架构的种类,提供的服务和应用,规范和指导的策略。这种类型的功能--尤其是关联的规则和策略--随时都在改变,有时甚至是迅速改变。这解释了为何要强调可编程网络控制和使用带有架构全局拓扑的SDN控制器。
SDN的关键特性包括一下几点:
1.SDN提供直接的可编程控制。提供新的网络元素和设备或重新配置现有网络元素和设备的能力来自于一系列可编程接口。这使管理员可以通过脚本工具或第三方工具和控制台轻松地对网络进行编程,所有这些工具均使用这些可编程接口。
2.SDN具有灵敏性且能迅速反应。SDN允许管理员动态调整网络范围的流量,以满足不断变化的需求。
3.SDN的控制局部中心化于SDN的控制器上。控制器通过软件实现,可以维护网络的一致全局视图。对于应用程序和策略引擎,SDN看起来像一个逻辑交换机。
4.SDN提供可编程的配置。网络管理员可以使用自动化SDN程序配置,控制,保护和调整网络资源。此外,网络专业人员可以使用标准的,有据可查的工具和界面自行创建此类程序。
5.SDN是标准化的且与网络设备供应商无关的。SDN使用开放标准,简化了网络设计和运营。指令源自使用标准协议和接口的SDN控制器,而不是依赖于特定于供应商的协议,接口和设备。