阅读文章《The Road to SDN: An Intellectual History of Programmable Networks》,并根据所阅读的文章,书写一篇博客,回答以下两个问题:
1.过去20年中可编程网络的发展可以分为几个阶段?每个阶段的贡献是什么?
在过去20年中可编程网络的发展可以分为以下三个阶段:
- 主动网络阶段(从20世纪90年代中期到21世纪初)
贡献:它在网络中引入了可编程功能,实现了更大的创新。
在20世纪90年代中期,由于网络协议标准化过程的缓慢,一些网络研究人员采用了一种开放网络控制的替代方法,大致是基于对独立PC重新编程相对容易的类比。具体地说,传统网络在任何意义上都不是“可编程”的,主动网络代表了一种激进的网络控制方法,通过设想一个编程接口(或网络API)来公开各个网络节点上的资源(例如,处理、存储和数据包队列),并支持构建应用于子集的定制功能,主动网络研究计划探索了传统互联网协议栈通过IP或异步传输模式(ATM)提供服务的根本替代方案。 - 控制和数据平面分离阶段(从2001年到2007年左右)
贡献:开发了控制和数据平面之间的开放接口。
由于传统路由器和交换机体现了控制和数据平面之间的紧密集成,这种耦合使得各种网络管理任务,如调试配置问题和预测或控制路由行为,变得非常具有挑战性。为了应对这些挑战,各种分离数据和控制平面的努力开始出现。领先的设备供应商直接在硬件上实现包转发逻辑,独立于控制平面软件。此外,互联网服务提供商(ISP)正在努力管理其网络不断扩大的规模和范围,以及对更高可靠性和新服务(如虚拟专用网络)的需求。这些趋势催生出了两项创新技术:一是控制和数据平面之间的开放接口;二是网络的逻辑集中控制。 - OpenFlow API和网络操作系统(2007年至2010年左右)
贡献:代表了广泛采用开放接口的第一个实例,并开发了使控制数据平面分离具有可扩展性和实用性的方法。
在OpenFlow出现之前,SDN的基本思想面临着完全可编程网络和实用主义之间的紧张关系。但OpenFlow在这两个目标之间取得了平衡,它启用了比早期路由控制器更多的功能,并通过在商品交换机中越来越多地使用商用硅芯片组来构建现有的交换机硬件。尽管依赖现有的交换机硬件在一定程度上限制了灵活性,但OpenFlow几乎可以立即部署,这使得SDN的移动既实用又大胆。在OpenFlow API的创建之后,紧接着是NOX这样的控制器平台的设计,它支持创建许多新的控制应用程序。
2.网络虚拟化与SDN的关系?
SDN和网络虚拟化主要有三种关系:
<1>SDN作为网络虚拟化的一种支持技术
云计算使网络虚拟化变得突出,因为云提供商需要一种方式,允许多个客户(或“租户”)共享同一网络基础设施。Nicira的网络虚拟化平台(Network Virtualization Platform,NVP)提供了这种抽象,而不需要底层网络硬件的任何支持,解决方案是使用覆盖网络为每个租户提供连接其所有虚拟机的单个交换机的抽象。然而,与先前在覆盖网络上的工作相比,每个覆盖节点实际上是物理网络的一个扩展——一个软件交换机(如Open vSwitch),它封装了发送到其他服务器上运行的虚拟机的流量。逻辑集中式控制器在这些虚拟交换机中安装规则,以控制如何封装数据包,并在虚拟机移动到新位置时更新这些规则。
<2>网络虚拟化用于评估和测试SDN
将SDN控制应用程序与底层数据平面分离的能力,使得在将SDN控制应用程序部署到操作网络之前,可以在虚拟环境中测试和评估SDN控制应用程序。Mininet使用基于进程的虚拟化在同一物理(或虚拟)机上运行多个虚拟OpenFlow交换机、终端主机和SDN控制器,每个控制器都作为单个进程。使用基于进程的虚拟化允许Mininet模拟一个网络,在一台机器上有数百个主机和交换机。在这样的环境中,研究人员或网络运营商可以开发控制逻辑,并在生产数据平面的全面仿真上轻松地对其进行测试。一旦对控制平面进行了评估、测试和调试,就可以将其部署到实际的生产网络上。
<3>虚拟化(切片)SDN
在传统网络中,虚拟化路由器或交换机是很复杂的,因为每个虚拟组件都需要运行自己的Controlplane软件实例,相比下虚拟化“哑”SDN交换机要简单得多。FlowVisor系统使校园能够支持在承载生产流量的相同物理设备上进行联网研究的试验台,其主要思想是将业务流空间划分为“片”,其中每个片有一个网络资源共享,由不同的SDN控制器管理。FlowVisor作为Hypervisor运行,向每个SDN控制器和底层交换机传递OpenFlow。
Network virtualization represents the abstraction of the network separated from the underlying physical devices. Network virtualization allows multiple virtual networks to run on a shared infrastructure, and each virtual network can have a simpler (more abstract) topology than the underlying physical network. For example, a virtual local area network (VLAN) provides the illusion of a single LAN across multiple physical subnets that can run on the same set of switches and routers. Network virtualization (abstracting physical network from the perspective of logical network) obviously does not need Sdn. Similarly, SDN (separation of logical centralized control plane and underlying data plane) does not mean network virtualization. Although network virtualization is conceptually independent of SDN, the relationship between the two technologies has become closer in recent years.