从多租户数据面到完整的多租户框架
我们很高兴地宣布NSX中的Projects这一项新功能,可以对NSX部署的多个租户进行细粒度的资源管理。
Projects提供灵活的资源分配和管理,将NSX的多租户支持提升到新的水平。企业管理员可以将平台划分为不同Projects,将不同的空间分配给不同的租户,同时保持完全的可见性和控制。NSX消费模式的这一扩展支持NSX用户使用他们自己的对象,看到与他们自己的配置相关的警报,并通过Traceflow测试他们工作负载之间的连接性。
这篇文章概述了NSX的新多租户功能,解释了它们是如何从传统的多租户数据面(仍然支持)发展到基于Projects的新多租户框架(管理员可以选择利用)。
多租户数据面 - 路由
在讨论Projects引入的新的多租户功能之前,我们先来看看传统上在数据平面怎么实现多租户的。
NSX支持多层路由模型,在NSX基础设施内的不同网关之间进行逻辑分离,对服务和政策给予完全的控制和灵活性。这种模式使数据中心的互连简单而稳定,也使复杂的、可能被隔离的应用环境实现自动化。
Tier-0网关在逻辑和物理网络之间提供网关服务。传统上,它被设置为动态路由或服务。
Tier-1网关为租户或应用路由器提供一系列的服务(NAT、GFW、DNS转发器等)。NSX管理它们与Tier-0网关的连接和路由分配。
扩展的网络功能
有多种方法可以扩展这个模型以进行额外的细分。
在下面的图片中,你可以看到同一NSX部署中的多个Tier-0s:
租户A可以被映射到Tier-0 A和底层Tier-1上。
租户B可以被映射到Tier-0 B和底层Tier-1上。
这种配置将用于在NSX中从数据中心传播网络分段,但它需要为不同的环境提供一组不同的Edge节点。
随着Tier-0 VRF的引入,这一要求不再有必要。Tier-0 VRF网关被托管在Edge节点的父级Tier-0网关上。如下图所示,我们可以实现以下配置:
租户A可以被映射到Tier-0 VRF A和底层Tier-1上。
租户B可以被映射到Tier-0 VRF B和底层Tier-1上。
随着EVPN的引入,Tier-0 VRF的用例得到进一步扩展,它通过消除对每个VRF路由配置的需要,简化了南北配置的规模。
多租户数据面 - 分布式安全结构
NSX还提供分布式安全结构,允许隔离工作负载(虚拟机或容器)并控制它们之间的流量。因为安全问题是在vNIC内处理的,所以无论网络架构如何,隔离仍然是可能的。无论虚拟机是否在同一主机或同一子网,你都能得到同样的安全保护。
这种强大的功能使你能够对工作负载进行分组,并根据各种属性(从操作系统到业务线特征)创建规则集。
这也意味着,从NSX推送的单一规则可以应用于环境中的所有工作负载,这增加了能够管理平面多租户的价值。如果没有细分,授权会很快变得低效和复杂。
云管理平台
下图所示的模型允许供应商设置Tier-0网关,定义它如何连接到网络,并通过云管理平台(如Aria Automation、OpenStack或vCloud Director)进行Tier-1的创建。
从数据面的角度,通过NSX实现租约,从管理面的角度,通过云管理平台实现租约,该平台隔离了不同的环境配置。
为什么在NSX中引入多租户框架?
在之前讨论的模型中,你可以看到NSX如何允许用户应用所需的数据平面分段。然而,在NSX 4.1发布之前,租户并没有在NSX中明确定义。这种逻辑是由NSX管理员或云管理平台完成的。
如果一个安全团队想委托管理防火墙规则,需要基于角色访问NSX,怎么办?如果该团队的相同用户只想看到与他们的环境相关的警报呢?或者,如果他们只想收集其租户内指定的防火墙日志?
这些只是一些理论上的场景,突出了团队面临的挑战;从管理和监控的角度来看,NSX中存在对多租户构造的明显需求。
Projects介绍
NSX 4.1中的多租户是通过在平台中引入Projects而实现的。
企业管理员(供应商)可以将平台划分为定义的Projects。这些Projects将用户委托给不同的空间和租户,他们有自己的对象、配置、虚拟机和监控(基于警报和日志)。
Projects与传统的数据模型并存,可以选择使用,并且不会以任何方式破坏与现有设置的兼容性。企业管理员仍然可以访问Projects之外的所有功能(从系统设置到防火墙规则),但如果需要,可以使用Projects来定义租户的逻辑消费。
提供者视图:创建和管理Projects
从NSX 4.1.0开始,Projects可以在NSX UI屏幕顶部的下拉菜单中的正面和中心位置使用。当访问平台时,企业管理员将登录到下拉菜单所示的默认空间。
在 "默认 "空间中,企业管理员可以对所有Projects进行综合查看,或切换到查看特定Projects。他们还可以用不同的Projects创建多个租户(Projects1,Projects2,等等)。要做到这一点,他们必须分配好:
至少有一个Tier-0或Tier-0 VRF(支持多个)。
至少有一个Edge集群(支持多个)。
分配给Projects的用户。
在与Projects有关的日志上标注一个简短的日志ID(仅限于NSX 4.1.0的安全日志)。
需要注意的是,如果企业管理员需要,Tier-0/Tier-0 VRF和Edge Clusters可以跨Projects共享。
一旦分配,Projects1的Projects用户可以在为他们定义的范围内直接访问NSX。他们还可以创建部署在所分配的Edge集群上的配置,这些配置可以连接到所分配的Tier-0或Tier-0 VRF。
企业管理员还可以分配Projects的配置,以简化消费或限制通过配额创建的对象的数量。下面的图片显示了一个分配配额的例子。
企业管理员可以创建全系统的防火墙规则,这些规则将适用于所有环境中的所有虚拟机。这些规则是从默认空间配置的,无法在租户内修改。
租户视角:Projects消费
一旦Projects被建立起来,就可以将访问权委托给租户。企业管理员可以分配一个Projects管理员的通用角色,或使用更有针对性的角色,如Projects1的安全管理员或Projects1的网络操作员。租户可以通过用户界面或API来使用NSX。
登录后,用户将直接进入他们指定的Projects,只看到与他们Projects相关的配置、警报、虚拟机等。
配置将被限制在逻辑对象上。租户不能管理平台设置(安装、升级等),因为这些功能保持在企业管理员管理之下。其他保持在企业管理员管理下的功能,不暴露给租户,包括Tier-0配置和排除列表。
Projects中的网络
对于显露的功能,Projects下的消耗与Projects外的消耗是一样的。创建Tier-1、网段和其他配置遵循相同的模式,它们使用分配的Tier-0(s)/Tier-0 VRF(s)和Edge Cluster(s)。关于分配的资源(配额)的信息可以在Projects标签中找到。
对于显露的特征,Projects下的消耗与Projects外的消耗是一样的。
Projects中的安全问题
Projects功能的主要目标之一是能够委托安全策略管理,避免规则被应用于错误的虚拟机的风险。
当一个Projects被创建时,一个代表该Projects的组也被创建,同时还有一些默认的规则,这些规则能保证项目内正常通信。
Projects管理员可以通过改变默认规则、创建新规则等来管理他们自己的规则。这些规则将只适用于连接到其Projects段的虚拟机。所有其他的虚拟机(未连接到Projects段)将不会从Projects中看到,也不会受到Projects中配置的规则的影响。
现在可以让用户访问NSX分布式防火墙,同时消除用户可能创建影响整个系统的规则风险。
如前所述,企业管理员在默认空间定义的规则可以适用于Projects中的那些虚拟机,并且按照优先级生效。这允许企业管理员设置环境,以创建适用于所有工作负载或适用于特定Projects的全局规则。这些全局规则不能由Projects用户修改。
来自分布式防火墙和网关防火墙的日志将被贴上Projects信息的标签,以便它们能够被租户识别和分离。
总结
NSX内的多租户模型在数据层已经存在好几年了,但Projects化管理的引入提高了这一能力的运行效率。在基于角色的访问控制、配额、共享的配置方面,企业管理员现在可以通过更广泛、更灵活的多租户配置控制,由此提高效率。同时,租户可以通过日志和警报等功能更有效地管理自己的资源和配置。
同样,Projects化管理不是必选项;如果需要,你可以继续单独在数据层管理多租户,这样做可能对较简单的用例有意义,因为你的主要目标是在网关之间实现逻辑分离。但对于更复杂的用例来说,Projects化管理增强了灵活性,创建和管理多租户部署都比以往更容易了。