试翻译了一下()
软件定义网络最近在数据中心和云计算社区是一个很热门的话题。有关机构预测到2016年,这个市场可能会达到20亿。SDN这个概念有潜力颠覆现在整个网络业务,同时已经有一些商业的或者开源产品出现,那么,SDN是什么,它为何有如此大的魔力?
首先,让我们通过观察传统网络来了解一下为什么需要SDN。
传统的网络架构:
在上图中,最需要注意的是控制平面和数据平面的分离。每个平面完成不同的任务来提供整个交换或者路由服务。控制平面负责配置设备和数据流路径。当你管理一台交换机时,你就在和控制平面交互。像路由表和STP就是在控制平面中进行计算的。这些是通过接收像诸如BPDU或者Hello信息然后处理他们来决定可用的路径。一旦这些路径决定了,它们就被压入到数据平面而且通常来说存储在硬件中。数据平面通常根据控制平面提供的最新信息来做出路径选择。通常来说,这是一个非常有效的方法。硬件决策速度非常的快,降低了整个延时同时控制平面自身可以处理繁重的处理配置需求。
但是这个方法也不是完美无缺的,我们关注的一点就是可扩展性。为了展示扩展性问题,我觉得使用QoS就是一个很好的例子。QoS允许根据转发帧中的特定字段给转发帧一个优先级。这就允许网络流量在网络拥塞的时候得到正确的对待。例如,延时敏感的声音视频流量需要一个相对更高的优先级来保证用户体验。流量优先级通常是基于帧中的CoS字段或者DSCP字段。这些字段必须在整个网络中被一致地标志并使用一致的规则来对待这些网络流量。这在传统的多交换网络中就非常的不灵活,因为配置工作必须按照某种方式在每个单独的交换设备上重复做一遍。
一个更简单的有关管理配置挑战的例子是网络中的没有端口都被看成是一个管理点,这意味着每个端口都被单独的配置。这不仅费时而且极其机械无聊。
另外的挑战包括正确的分类数据和路由流量。一个很好的例子是两种不同的流量类型,iSCSI和声音。iSCSI是存储流量,通常是大包大帧而voice数据通常都是以小包的形式传送的。另外,他们有不同的需求,为了保持通话质量,voice对延时非常敏感。而iSCSI对延时并不敏感,但是能够从高带宽中获益。传统的网络很少有工具能够区分这两种不同的流量类型,并通过不同的传输路径来使两种类型都获益。
这些问题就是SDN网络试图去解决的。
SDN的三个关键元素:
- 管理转发帧/包和应用策略的能力
- 可动态扩展的执行该任务的能力
- 可编程的能力
注意:SDN架构本质上与开放、标准、互操作等概念无关。一个专有架构也可以称之为SDN。
一个SDN架构必须能够以某种编程的方式管理通过大规模网络的帧和包流。SDN网络的硬件基础设施通常被设计成很多由fabric组成的网(The hardware plumbing of an SDN will typically be designed as a converged (capable of carrying all data types including desired forms of storage traffic) mesh of large lower latency pipes commonly called a fabric. )。SDN架构本身提供网络的全局试图,并可以集中管理网络和网络流。
该架构通过将控制平面从数据平面设备中分离出来并为控制平面提供一个可编程接口。数据平面设备接收来自单独的控制平面的转发规则并应用这些规则到硬件ASIC中。这些ASIC或者是商用的交换ASIC或者根据功能和性能需求定制的电路。下图显示了他们之间的关系:
在该模型中,SDN控制器提供控制平面,而数据平面则由硬件交换设备组成。这些设备可以是新的硬件设备或者已经存在的硬件设备但是有特定的firmware。这根据不同的厂商策略和部署模型的不同而不同。在这个例子中SDN的一个主要优点就被清楚的展示出来了,控制平面提供的可视化。比起传统网络中每个数据平面设备通过别的设备消息来获取整个网络拓扑视图,SDN中单个控制平面设备就拥有该网络的整个视图信息。这就给高级路由,安全,质量决策提供了一个平台,因此可编程的能力是需要的。另外一个通过中央控制可获得的能力是可视化。有一个中央控制设备可以更简单的获取网络中的实时流信息,从而可以根据这些数据做出某些决策。
这张图只展示了整个图景中关于物理基础架构和服务器的部分。另外一个主要的好处是将虚拟服务环境集成到SDN网络中来。这样就可以使用一致的策略集中管理物理和虚拟的资源。虚拟网络的集成通过在hypervisor中提供一个Vritual Ethernet Bridge,VEB可以被SDN控制器控制。下图显示了这种应用:
这张图更好的显示了为了对网络进行一致的管理将虚拟网络系统和物理网络系统进行集成。这在虚拟工作流迁移中扮演了重要的角色。因为虚拟和物理的数据平面被控制平面统一管理,当一个VM迁移开始时,它的网络配置可以和它一起迁移而不用在意其在网络中的目的地。这是在虚拟化环境中策略实施的关键好处,因为更多粒度的控制可以被放置在vm,同时这些在整个环境中与vm绑定。
随着网络中中央控制节点的存在和一个可编程接口,更智能的进程可以被添加到SDN中来处理复杂的系统。可以根据流量优化,安全,断供或者可维护性进行实时决策。不同的流量类型可以使用不同的路径和转发策略来应对不同的网络变化。
While all of the aspects are not yet defined SDN projects such as OpenFlow () provide the tools to begin testing and developing SDN architectures on supported hardware