History of SDN 1.3 - 1.4
Network Virtualization
网络可虚拟化,可以说是SDN的一项核心内容,同样也源自很多先前的技术和思想。我们先讨论何为网络虚拟化,然后我们会追溯其历史,探索其在近十年来为网络实验提供的支持、以及带来的一些新概念。最后,讲一下网络虚拟化与SDN的联系。
What is Network Virtualization?
wiki - In computing, network virtualization or network virtualisation (see spelling differences) is the process of combining hardware and software network resources and network functionality into a single, software-based administrative entity, a virtual network. Network virtualization involves platform virtualization, often combined with resource virtualization.
老师下的定义:
Representation of one or more logical network topologies on the same underlying infrastructure.
网络虚拟化就是表示在相同的基础设施上集合了一个或多个逻辑网络拓扑结构。
Benefits of Network Virtualization
- Sharing
- Multiple logical routers on single platform.
- Resource isolation in CPU, memory, bandwith, forwarding tables...
运用网络虚拟化的思想,可以在单一的平台,或者物理结点上搭建多个逻辑路由器的实例。也可以以某一个网络为基础设施,在其之上建立多个虚拟网络。可以方便信息的分享,同时带来了对资源的独立性的要求,例如CPU、内存、带宽等等。
- Customizability
- Customizable routing and forwarding softwares.
- General-purpose CPUs for the control node.
- Network processors and FGPAs for data plane.
除了方便信息分享,网络虚拟化为用户带来了自定义功能的前景。从本质上讲,虚拟化网络的用户可以对他们自己的逻辑网络、网络拓扑可以有很清晰的观察(view),而且是不受其他用户的逻辑网络干扰的,即使它们运行在同一个物理基础设施上面。能够很清楚地了解自己的独立的逻辑网络,允许用户运行自定义的路由、传输数据的业务,并且是在自己的那一部分网络上,并不影响虚拟网络中的其他用户。
下面是一个固定的网络基础设施。有许多的使用者想使用这些基础设施来搭建网络,他们中的每一方有可能想去访问不同的网络资源,也有可能想建立任意数量的网络拓扑结构,而这一切都是在共享共同的基础设施之上的。这里可以运用网络虚拟化的思想,让想使用这些基础设施的一方拥有一种能力:拥有自己一方的网络拓扑结构的清晰视野,而每一方的服务都能独立运行,不会受对方干扰,也不会打扰对方。
Three Examples of Network Virtualization
- Tempest:Switchlets(1998)
- Seperation of control framework from switches.
- Virtualization of the switch.
上世纪九十年代末有一个框架叫做 Tempest ,它也有提出从底层交换机中将控制模块分离出来的思想,同时又有虚拟化交换机硬件的能力。
在这个架构的底部配置了一台交换机,管控资源。在它的上面有一个开放的控制接口,可以为其上方的软件提供资源。这种控制接口的思想有点儿像 OpenFlow。这种思想的动机是为了让多个控制架构在一个网络结构上运行。Divider 将多个 Switchlets controllers 和底部设施分离,允许每个 controller 都拥有各自的视野。
- VINI:A Virtual Network Infrastructure(2006)
VINI,是一种网络基础设施的虚拟化版本。它的动机是想让研究人员在其各自的网络上做实验,这些网络分享同一个基础设施。
网络虚拟化是一座桥梁,它将研究人员做的小范围研究和模拟,与实际的运用与配置联系起来。一般来说,小范围的研究成果是可以重复实现的,但与实际运用有差别。如果实际运用跑起来了,那不一定要求可重复实现,但会遇到一些很实际的问题。我们可以运用网络虚拟化的思想来弥补这其中的空缺。
- Cabo:Separate infrastructure, services(2007)
Cabo(Concurrent Architectures are Better than One) 提供了一种思路:允许服务提供商和基础设施提供商互相独立地工作,这样方便引入新的服务,为创新加速。基础设施提供商,负责提供硬件并维护;服务提供商,为用户提供各种点对点服务。他们可以互相独立地工作。
Summary
网络虚拟化将原本绑定在一起的逻辑网络和基础设施分离开来,允许提供商和用户对自己的网络有很清晰的视野,允许多个参与方共享同一网络基础设施。网络虚拟化有着丰富的历史,为SDN提供了很丰富的思想。例如分离服务和基础设施、单个交换机和多个控制器的组合,等等。