Die Multi-Tenant-Funktion bietet eine Möglichkeit, die Sicherheits- und Netzwerkkonfiguration mandantenübergreifend in einer einzelnen NSX-Bereitstellung zu isolieren. Zur Unterstützung der Multi-Tenant-Funktion führt NSX 4.0.1.1 Organisationen und Projekte ein.
Das NSX-Richtlinien-Datenmodell ist hierarchisch und verfügt über zwei vom System erstellte Verzweigungen:
-
/infra
, verwaltet vom Infrastrukturadministrator. /orgs/default
, enthält die Multi-Tenant-Konstruktionen.
Das folgende Diagramm veranschaulicht das Datenmodell für die Multi-Tenant-Funktion.
Organisationen
Eine NSX-Bereitstellung verfügt über eine Standardorganisation. Sie können die Organisation nicht erstellen, ändern oder löschen. Das Organisationsobjekt wird beim Systemstart erstellt. Die Organisation kann auf alle Tier-0-Gateways und Edge-Cluster im System zugreifen.
Das Organisationsobjekt wird vom System mit dem folgenden Bezeichner erstellt:
/orgs/defaultProjekte
Unter der Organisation können Sie ein Projekt für jeden Mandanten erstellen, den Sie über Ihre NSX-Umgebung verwalten möchten. Projekte werden unter /orgs/default
erstellt, um unabhängige Konfigurationssätze für jeden Mandanten zu unterstützen:
- Projekte bieten das hierarchische Richtlinienmodell in einem bestimmten isolierten Kontext. Projektkonfigurationen werden unter
/orgs/default/projects/<project-id>/infra
eingerichtet. - Sie können keine Tier-0-Gateways und Edge-Cluster unter einem Projekt erstellen. Der Enterprise-Administrator kann Tier-0-Gateways und Edge-Cluster aus dem
/infra
-Bereich heraus für die Organisation freigeben, der dann für die Projekte unter der Organisation verfügbar ist. - Projekte haben Zugriff auf einige der Objekte und Konfigurationen, die aus dem
/infra
-Bereich heraus freigegeben wurden. - Im
infra
-Bereich können Sie Regeln erstellen, die für VMs in einem Projekt gelten. Um diese Regeln iminfra
-Bereich zu erstellen, nutzen Sie entweder die Standardgruppen des Projekts oder erstellen Gruppen mit dynamischen Mitgliedschaften oder einer statischen VM-Mitgliedschaft. - Neben der Regelerstellung im
infra
-Bereich wird die Konfiguration anderer Projektressourcen iminfra
-Bereich nicht unterstützt. Beispielsweise können Sie unter „Org“ keine Gruppen mit statischen Mitgliedern aus anderen Projekten als VMs /Standardgruppen des Projekts erstellen. Das Konfigurieren von Tier-1-Gateways, die zu einem Projekt aus dem infra-Bereich gehören, wird nicht unterstützt. Projektressourcen müssen innerhalb des Projekts konfiguriert werden.
Sie können den folgenden API-Aufruf ausführen, um ein Projekt unter der Organisation zu erstellen:
PATCH /policy/api/v1/orgs/default/projects/<project-id>Geben Sie beim Erstellen eines Projekts das Tier-0-Gateway und den Edge-Cluster an, den das Projekt verwenden soll. Verwenden Sie dieses Tier-0-Gateway für alle Konfigurationen innerhalb dieses Projekts. Der dem Projekt zugeteilte Edge-Cluster muss zur Standard-Transportzone gehören. In dieser Transportzone werden die Projektnetzwerke erstellt.
Beispielanforderung:
URL:
PATCH https:/{{nsx-manager-ip}}/policy/api/v1/orgs/default/projects/Project-Dev
Text:
{ "site_infos": [ { "edge_cluster_paths": [ "/infra/sites/default/enforcement-points/default/edge-clusters/ca1b2a4f-057d-42da-b3b8-cf218b1c1a51" ], "site_path": "/infra/sites/default" } ], "tier_0s": [ "/infra/tier-0s/Tier0GatewayTest" ] }
Wenn Sie ein Projekt erstellen, werden einige Standardobjekte wie eine Standarddomäne, Sicherheitsrichtlinien und Standardgruppen erstellt. Sie können gemäß Ihren Anforderungen mehrere Projekte erstellen.
Sobald ein Projekt erstellt wurde, können Sie API-Aufrufe zum Abschließen von Netzwerkkonfigurationen für DHCP, Tier-1-Gateways und Segmente durchführen.
Wählen Sie beim Erstellen der benutzerdefinierten Rolle Netzwerk aus und setzen Sie alle Berechtigungen auf Keine zurück. Wählen Sie im Dialogfeld Berechtigungen festlegen die Option aus und legen Sie die Tier-0-Gateways-Berechtigungen auf „Nur Lesen“ fest.
Ressourcenkontingente
Sie können Kontingente für Ressourcen in einem Projekt mithilfe von Einschränkungen definieren. Mithilfe von Kontingenten können Sie einen Maximalwert für bestimmte Ressourcen für ein bestimmtes Projekt definieren. Systemstandardgrenzwerte gelten, wenn keine Einschränkungen definiert sind.
PATCH /policy/api/v1/infra/constraints/<contraint-id>Beispielanforderung:
PATCH https://{{nsx-manager-ip}}/policy/api/v1/infra/constraints/c-1Text:
{ "display_name": "TestConstraint", "constraint_expression": { "resource_type": "EntityInstanceCountConstraintExpression", "count": 10, "operator": "<=" }, "target": { "path_prefix": "/orgs/default/projects/project-1", "target_resource_type": "Group" } }