OSI第4~7层网络服务被实现为来自不同服务提供模块的小插件

OSI第4~7层网络服务被实现为来自不同服务提供模块的小插件

OSI第4~7层网络服务被实现为来自不同服务提供模块的小插件

在ZStack的网络模型中,OSI第4~7层网络服务被实现为来自不同服务提供模块的小插件。默认提供模块,称为虚拟路由,采用定制的Linux虚拟机作为虚拟设备,为每一个L3网络提供包括DHCP、DNS、NAT、EIP和端口转发在内的网络服务。使用虚拟机作为虚拟路由器的方式的优点有:没有单点故障、对物理设备没有特殊要求,因此用户无需购买昂贵的硬件,就可以在商用设备上实现各种网络服务。

概述

正如“ZStack--网络模型1:L2和L3网络”中提到的,ZStack以小插件的方式设计网络服务,供应商可以通过创建网络服务提供模块的方式,选择性地实现他们的硬件或软件支持的网络服务。默认情况下,ZStack带有一个虚拟路由,它负责使用一个应用虚拟机(Virtual Router VM)实现所有网络服务。

注:事实上ZStack有另一个提供模块称为安全组提供模块,它提供了分布式防火墙功能。我们称虚拟路由为默认的提供模块,因为它提供了最常见的,一个云需要的网络服务。

在IaaS软件中,实现网络服务有几种方法

一种方式是使用中心的、功能强大的网络节点,它们通常是一些物理服务器;通过聚集来自不同租户的流量,网络节点将负责流量隔离并使用类似Linux网络命名空间的技术来提供网络服务。

另一种方法是使用专用的网络硬件,例如,可编程的物理交换机、物理防火墙、物理负载平衡器,它会要求用户去购买特定的硬件。

最后一个方法是使用网络功能虚拟化(NFV)技术,像ZStack的虚拟路由虚拟机,就是在商用x86服务器虚拟化网络服务。

每种方法都有优点和缺点;我们选择NFV作为我们的解决方案是出于如下考虑:

1.需要最少的基础设施:解决方案应该对用户的物理基础设施需求很少甚至为零;也就是说,用户不应该改变现有的基础设施或购买特殊的基础设施来迎合IaaS软件的网络模型。我们不想强迫用户购买特定的硬件或要求他们在一组主机前放置一些特殊的功能服务器

2.没有单点故障:解决方案应该是采用没有单点故障的分布式的方式。一个网络节点崩溃应该只能影响拥有它的租户,不应该影响任何其他租户。

3.无状态:网络节点应该是无状态的,这样IaaS软件在发生无法预料的错误后,可以轻易摧毁并重新创建它们。

4.利于高可用性(HA):解决方案应该易于实现高可用,这样租户可以要求部署富余的网络节点。

5.不依赖虚拟机管理程序:解决方案不应该依赖于Hypervisor,并且应该和主流的Hypervisor完美结合工作,包括KVM、XEN、VMWare和Hyper-V。

OSI第4~7层网络服务被实现为来自不同服务提供模块的小插件

6.较好的性能:解决方案应该为大多数使用场景提供合理的网络性能。

基于虚拟路由的NFV解决方案满足上述所有考虑。我们选择它作为默认的实现,同时也为开发人员提供了采用其他解决方案的可能。