다중 테넌시는 단일 NSX 배포에서 테넌트 간에 보안 및 네트워킹 구성을 분리하는 방법을 제공합니다. 다중 테넌시를 지원하기 위해 NSX 4.0.1.1에는 조직 및 프로젝트가 도입되었습니다.

NSX 정책 데이터 모델은 계층 구조이며 다음과 같은 두 가지 시스템 생성 분기가 있습니다.

  • 인프라 관리자가 관리하는 /infra
  • 다중 테넌시 구조를 유지하는 /orgs/default
참고: NSX 배포에 대한 다중 테넌시를 설정하는 것은 선택 사항이며 해당 구현은 기존 NSX 구성에 영향을 주지 않습니다.

다음 다이어그램은 다중 테넌시에 대한 데이터 모델을 보여 줍니다.

데이터 모델

조직

NSX 배포에는 하나의 기본 조직이 있습니다. 이 조직은 생성, 수정 또는 삭제할 수 없습니다. 조직 개체는 시작 시 시스템에서 생성됩니다. 시스템의 모든 Tier-0 게이트웨이 및 Edge 클러스터는 조직에서 액세스할 수 있습니다.

조직 개체는 다음 식별자를 사용하여 시스템에서 생성됩니다.

/orgs/default

프로젝트

조직 아래에 NSX 환경에서 관리하려는 각 테넌트에 대한 프로젝트를 생성할 수 있습니다. 프로젝트는 각 테넌트에 대해 독립적인 구성 집합을 지원하기 위해 /orgs/default 아래에 생성됩니다.

  • 프로젝트는 특정 격리된 컨텍스트에서 정책 계층형 모델을 제공합니다. 프로젝트 구성은 /orgs/default/projects/<project-id>/infra 아래에 설정됩니다.
  • 프로젝트 아래에는 Tier-0 게이트웨이 및 Edge 클러스터를 생성할 수 없습니다. 엔터프라이즈 관리자는 /infra 공간의 Tier-0 게이트웨이 및 Edge 클러스터를 조직과 공유할 수 있으며, 조직 아래의 프로젝트에서 해당 조직을 사용할 수 있게 됩니다.
  • 프로젝트는 /infra 공간에서 공유된 일부 개체 및 구성에 액세스할 수 있습니다.
  • infra 공간에서 프로젝트의 VM에 적용되는 규칙을 생성할 수 있습니다. infra 공간에서 이러한 규칙을 생성하려면 프로젝트 기본 그룹을 활용하거나 동적 멤버 자격 또는 VM 고정 멤버 자격이 있는 그룹을 생성합니다.
  • infra 공간의 규칙 생성 외에, infra 공간에서 다른 프로젝트 리소스를 구성하는 것은 지원되지 않습니다. 예를 들어 VM/프로젝트 기본 그룹 이외의 프로젝트에서 고정 멤버를 사용하여 조직 아래에 그룹을 생성할 수 없습니다. 인프라 공간에서 프로젝트에 속하는 Tier-1 게이트웨이를 구성하는 것은 지원되지 않습니다. 프로젝트 리소스는 프로젝트 내에서 구성해야 합니다.

다음 API 호출을 수행하여 조직 아래에서 프로젝트를 생성할 수 있습니다.

PATCH /policy/api/v1/orgs/default/projects/<project-id>

프로젝트를 생성할 때 프로젝트가 사용할 Tier-0 게이트웨이 및 Edge 클러스터를 지정합니다. 이 Tier-0 게이트웨이를 해당 프로젝트 내의 모든 구성에 사용합니다. 프로젝트에 할당된 Edge 클러스터는 기본 전송 영역에 속해야 합니다. 이 전송 영역은 프로젝트 네트워크가 생성되는 위치입니다.

샘플 요청:

URL:

PATCH https:/{{nsx-manager-ip}}/policy/api/v1/orgs/default/projects/Project-Dev

본문:

{
    "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"
    ]
}

프로젝트를 생성할 때 기본 도메인, 보안 정책 및 기본 그룹과 같은 일부 기본 개체가 생성됩니다. 요구 사항에 따라 여러 프로젝트를 생성하도록 선택할 수 있습니다.

일단 프로젝트가 생성되면 API 호출을 수행하여 DHCP, Tier-1 게이트웨이 및 세그먼트에 대한 네트워킹 구성을 완료할 수 있습니다.

참고: 프로젝트 관리자가 세그먼트 또는 Tier-1 게이트웨이를 Tier-0 게이트웨이 또는 Tier-0 VRF에 연결할 수 있도록 하려면 프로젝트 관리자 역할을 사용하여 사용자에게 추가 사용자 지정 역할을 할당합니다. 할당하는 사용자 지정 역할에는 시스템 Tier-0 게이트웨이에 대한 읽기 액세스 권한이 있어야 합니다. 이를 통해 프로젝트 관리자는 시스템의 모든 Tier-0 게이트웨이를 볼 수 있습니다. 사용자 지정 역할 생성에 대한 자세한 내용은 사용자 지정 역할 생성 또는 관리 항목을 참조하십시오.

사용자 지정 역할을 생성할 때 네트워킹을 선택하고 모든 사용 권한을 없음으로 재설정합니다. 사용 권한 설정 대화상자에서 네트워킹 > 연결을 선택하고 Tier-0 게이트웨이 사용 권한을 읽기 전용으로 설정합니다.

리소스 할당량

제약 조건을 사용하여 프로젝트의 리소스에 대한 할당량을 정의할 수 있습니다. 할당량을 사용하면 지정된 프로젝트의 특정 리소스에 대한 최대 제한을 정의할 수 있습니다. 시스템 기본 제한은 제약 조건이 정의되지 않은 경우에 적용됩니다.

프로젝트에 대한 제약 조건을 정의하려면 다음 API 호출을 수행합니다.
PATCH /policy/api/v1/infra/constraints/<contraint-id>
샘플 요청:
URL:
PATCH https://{{nsx-manager-ip}}/policy/api/v1/infra/constraints/c-1
본문:
{
    "display_name": "TestConstraint",
    "constraint_expression": {
        "resource_type": "EntityInstanceCountConstraintExpression",
        "count": 10,
        "operator": "<="
    },
    "target": {
        "path_prefix": "/orgs/default/projects/project-1",
        "target_resource_type": "Group"
    }
}