Academy/NSX 4.x Network Virtualization Professional (2V0-41.24)/Lab N4: VPC (Virtual Private Cloud) Construct in VCF 9.0
This lab targets VCF 9.0

Lab N4: VPC (Virtual Private Cloud) Construct in VCF 9.0

VCF 9.0Advancedvcp-foundation⏱ 120 min

NSX 9.0.x (feature set inherited from the NSX 4.2 line; NSX 4.2 docs remain a valid technical reference) VPC — new cloud-native construct for tenant isolation, self-service networking, Projects integration

Objectives

  • Understand the VPC construct as a multi-tenancy model in NSX 9.0 / VCF 9.0 (VPCs first appeared in the NSX 4.1.x line)
  • Create Projects and VPCs with self-service subnets
  • Configure VPC networking: DHCP, default gateway, NAT, and security policies
  • Deploy workloads into a VPC and validate connectivity
  • Compare VPC-based isolation with traditional T1/segment-based isolation
  • Integrate VPC with VCF Automation for self-service catalog delivery

Prerequisites

VCF 9.0 with NSX Manager 4.2+, T0 gateway operational with external connectivity, VCF Automation (optional — for self-service catalog integration), role-based access configured for tenant persona

Prior labs: net-virt-01, net-virt-02

Required skills:

  • NSX networking fundamentals (T0/T1/segments)
  • Multi-tenancy concepts
  • Cloud networking constructs (VPC, subnets, NAT)

Lab Environment

VCF 9.0 management domain with NSX Manager 4.2+, T0 gateway peered with physical network (from Lab net-virt-02). At least 2 ESXi hosts for workload placement. VCF Automation deployed (optional for step 10).

Tasks

Task 1 Build and Consume NSX VPCs for Tenant Isolation

The VPC model (NSX 4.1.x+, NSX 9.0 in VCF 9.0) introduces a new abstraction layer: Project → VPC → Subnets. A Project is an administrative boundary (maps to a team or business unit). Within a Project, tenants create VPCs with isolated subnets — conceptually similar to AWS VPCs. Each VPC gets its own routing context (backed by a T1 gateway), DHCP, NAT, and DFW policies — but tenants never see the T1 or segment objects. The infrastructure admin configures the T0 gateway and IP blocks; tenants consume VPCs self-service.

Implement the VPC construct — NSX's cloud-native multi-tenancy model (NSX 9.0 in VCF 9.0) — which abstracts T1 gateways, segments, and DFW policies into a simplified cloud-like experience. VPCs enable tenant self-service for network and security without exposing the complexity of T0/T1/segment/DFW hierarchy. This is a major VCF 9.0 feature that bridges the gap between VMware's on-premises networking and public cloud networking models.

Step 1
Configure IP address blocks for VPC allocation. NSX Manager → Networking → IP Address Management → IP Address Pools → Add IP Pool. Create: Name='vpc-ip-block', Type=IP Block, CIDR=172.16.0.0/16. This block is the supernet from which VPC subnets are allocated. Also create an external IP pool for SNAT/DNAT: Name='vpc-external-pool', Range=192.168.200.100-192.168.200.200 (on the T0 uplink subnet).
Step 2
Create a Project. NSX Manager → Inventory → Projects → Add Project. Configure: Name='Project-TeamAlpha', Description='Development team Alpha — self-service networking'. Assign resources: T0 Gateway='T0-Lab' (from Lab net-virt-02), Edge Cluster='edge-cluster-01', IP Blocks='vpc-ip-block', External IP Pools='vpc-external-pool'. Assign users/roles: add a tenant admin user (e.g., 'tenant-alpha-admin') with 'Project Admin' role — this user can create VPCs within the project but cannot modify infrastructure-level objects.
Step 3
Create a VPC (as infrastructure admin or project admin). Within the Project context (switch to Project-TeamAlpha in the UI header), navigate to VPCs → Add VPC. Configure: Name='vpc-dev-01', Connected T0=inherits from Project, Subnets → Add Subnet: Name='subnet-web' CIDR=172.16.1.0/24 (auto-allocated from IP block), Type=Public (externally routable via NAT); Add Subnet: Name='subnet-db' CIDR=172.16.2.0/24, Type=Private (internal only, no external access). Enable DHCP for both subnets.
Step 4
Verify VPC backing objects. Switch back to the infrastructure admin view. Navigate to Networking → Tier-1 Gateways — a system-generated T1 appears with a name like 'proj-TeamAlpha-vpc-dev-01-t1'. This T1 is automatically created and linked to the T0 when the VPC is created. Navigate to Segments — system-generated segments for each subnet appear. These backing objects are managed by NSX and should NOT be modified directly — all changes go through the VPC abstraction.
Step 5
Deploy workloads into VPC subnets. In vSphere Client, create or move VMs to VPC subnets: Edit VM → Network Adapter → select the segment backing 'subnet-web' (it appears with a VPC-prefixed name). The VM receives an IP via DHCP from the VPC's built-in DHCP service. Deploy: vm-web-vpc (on subnet-web, gets 172.16.1.x), vm-db-vpc (on subnet-db, gets 172.16.2.x). Verify: both VMs get IPs via DHCP and can ping each other (east-west within VPC is allowed by default).
Step 6
Configure VPC NAT for external access. In the VPC context → NAT Rules → Add SNAT Rule: Source=subnet-web (172.16.1.0/24), Translated IP=<IP from external pool> (e.g., 192.168.200.101). This enables web-tier VMs to reach external networks. Add DNAT Rule: Destination=192.168.200.101:80, Translated IP=172.16.1.11:80 — this maps external inbound traffic to the web VM. Verify: from vm-web-vpc, curl an external website — traffic exits via SNAT through the T0.
Step 7
Apply VPC-level security policies. In the VPC context → Security → Security Policies → Add Policy. Name='vpc-dev-01-security'. Add rules: (1) 'Web-Ingress': Source=Any, Dest=subnet-web, Service=HTTP(80)/HTTPS(443), Action=Allow; (2) 'Web-to-DB': Source=subnet-web, Dest=subnet-db, Service=MySQL(3306), Action=Allow; (3) 'Deny-Direct-DB': Source=Any (external), Dest=subnet-db, Service=Any, Action=Drop. These VPC-scoped rules are isolated from other VPCs and from infrastructure-level DFW policies. The tenant admin can manage them without infrastructure admin involvement.
Step 8
Compare VPC security with traditional DFW. Key differences: (a) VPC policies are scoped to the VPC — they cannot affect VMs outside the VPC; (b) Infrastructure DFW policies (from Lab net-virt-03) take precedence over VPC policies — infrastructure admin maintains override capability; (c) VPC policies use simplified constructs (subnets as source/dest, not tags/groups) — easier for tenant admins but less granular. Verify: check NSX Manager → Security → DFW — VPC policies appear in a separate section from infrastructure policies.
Step 9

Test tenant isolation between VPCs. Create a second VPC in the same Project: 'vpc-staging-01' with subnet 172.16.10.0/24. Deploy a VM (vm-staging) on this subnet. Attempt to ping from vm-staging (172.16.10.x) to vm-web-vpc (172.16.1.x) — this should FAIL. Each VPC has its own routing context (separate T1 gateway) — there is no implicit connectivity between VPCs. To enable inter-VPC communication, an explicit route or peering must be configured through the T0, similar to VPC peering in public clouds.

Step 10

VCF Automation integration (optional). In VCF Automation (formerly vRealize Automation), create a Cloud Template that provisions a VPC: (a) Add a Cloud.NSX.VPC resource with desired subnets and security policies defined as infrastructure-as-code (YAML); (b) Publish to the service catalog; (c) Tenant user requests a VPC from the catalog — VCF Automation creates the VPC, subnets, NAT rules, and security policies automatically. This is the Day 0 self-service model: tenants get isolated network environments on demand without opening tickets to the network team.

Validation Gate

Check: VPC construct operational with tenant isolation, NAT, security, and self-service

Expected: Project created with IP blocks and T0 binding. VPC deployed with public and private subnets. DHCP providing IPs to VMs. SNAT/DNAT enabling external access for public subnet. VPC security policies enforced. Inter-VPC isolation confirmed. Optional: VCF Automation catalog delivering VPCs on demand.

Common Errors

VPC creation fails with 'Insufficient IP block capacity'
Fix: The IP block assigned to the Project is exhausted. Either expand the IP block CIDR or assign additional blocks to the Project. Each VPC subnet consumes a /24 (or custom size) from the block. For large tenants, use /16 blocks to provide 254 possible /24 subnets.
VMs in VPC subnet don't receive DHCP addresses
Fix: DHCP must be enabled on the VPC subnet (not just the segment). Verify: edit the VPC → subnet → DHCP Status=Enabled. Also check: the backing T1 gateway must have an Edge cluster binding (DHCP relay runs on Edge). If using centralized DHCP, verify the DHCP server profile is assigned.
SNAT not working — VMs can't reach external networks
Fix: Verify: (1) SNAT rule is configured with correct source subnet and translated IP, (2) external IP pool address is on the T0 uplink subnet and routable from the physical network, (3) T0 is advertising the external IP pool range to the physical router (route redistribution for 'Tier-1 NAT' must be enabled on T0).
VPC security policies not enforcing
Fix: VPC security policies are realized as DFW rules scoped to the VPC's backing segments. If DFW is disabled globally, VPC policies won't enforce. Verify: Security → DFW → General Settings → DFW Status=Enabled. Also check: the VPC policy is Published (not in draft state).

Final Validation

NSX VPC construct operational with full tenant networking and security isolation

✓ Project configuration → Project created with T0, Edge cluster, and IP blocks assigned

✓ VPC with subnets → VPC deployed with public and private subnets, DHCP active

✓ VM connectivity → VMs in same VPC can communicate; VMs in different VPCs cannot

✓ NAT functionality → SNAT enables outbound access; DNAT maps inbound traffic to web VM

✓ VPC security policies → VPC-scoped rules enforce allow/deny per configuration

✓ Tenant isolation → Inter-VPC traffic blocked without explicit peering

Cleanup / Restore

• Delete VMs from VPC subnets

• Delete VPCs (removes backing T1 gateways and segments automatically)

• Delete Project (removes all VPCs within it)

• Release external IP pool allocations

• Delete IP address blocks if no longer needed

Design Reflection (VCDX)

The VPC construct is a signature VCF 9.0 feature that demonstrates VMware's pivot toward cloud-native operations. In a VCDX defense, VPCs are compelling for: (1) Multi-tenancy without exposing NSX complexity — tenants get AWS-like networking without learning T0/T1/segments; (2) Delegated security — VPC policies give tenants security autonomy while infrastructure admin retains override via DFW categories; (3) Self-service at scale — VCF Automation + VPCs enable Day 0 network provisioning in minutes, not days. Compare with traditional approach: each tenant request requires network admin to create T1, segments, DFW rules, NAT — VPCs automate all of this.

Requirements

  • Self-service networking for 10+ application teams without infrastructure admin involvement
  • Network and security isolation between tenants
  • Cloud-like experience (subnets, NAT, security groups) for development teams familiar with public cloud

Constraints

  • VPC construct requires NSX 4.2+ (VCF 9.0) — not available in earlier versions
  • Each VPC consumes a T1 gateway and Edge resources — capacity planning required
  • VPC IP blocks must be pre-provisioned by infrastructure admin — tenants cannot bring arbitrary IP ranges

Assumptions

  • Tenant admins understand basic networking concepts (subnets, CIDR, NAT)
  • Infrastructure admin pre-provisions sufficient IP blocks and Edge capacity for expected VPC count
  • VCF Automation is deployed for full self-service experience (optional but recommended)

Risks

  • IP block exhaustion prevents new VPC creation — implement monitoring and alerting on IP block utilization
  • VPC sprawl (tenants creating many VPCs without cleanup) consumes Edge and control plane resources — implement VPC lifecycle policies
  • Mixing VPC and traditional T1/segment approaches creates operational complexity — standardize on one model per environment

Self-Assessment Discussion Prompts

  1. How does the NSX VPC construct compare with AWS VPC in terms of capabilities and limitations?
  2. When would you choose traditional T1/segment isolation over VPC-based isolation?
  3. How do you handle inter-VPC communication for shared services (DNS, monitoring, backup)?
  4. What is the maximum number of VPCs and subnets supported per NSX Manager cluster in VCF 9.0?

Extensions

Create a VPC peering configuration to enable selective communication between two VPCs

Build a VCF Automation cloud template that provisions a complete 3-tier application with VPC, subnets, VMs, NAT, and security policies

Implement VPC quota management — limit the number of VPCs, subnets, and external IPs per Project

Configure VPC-level IPFIX flow export for tenant-specific traffic monitoring

⚠ Known Pitfalls (from Community KB)

Modifying system-generated T1 gateways or segments backing a VPC — these are managed objects; direct modification can break the VPC abstraction and cause inconsistencies
Not pre-provisioning sufficient IP blocks for the Project — VPC creation fails silently or with unhelpful errors when IP capacity is exhausted
Assuming inter-VPC connectivity exists by default — VPCs are isolated by design; explicit configuration is needed for cross-VPC communication
Ignoring VPC resource consumption — each VPC creates a T1 gateway, segments, and DFW rules; at scale (100+ VPCs), this impacts Edge cluster capacity and NSX Manager control plane performance

References

  • NSX 4.2 Administration Guide — VPC and Projects: techdocs.broadcom.com
  • VCF 9.0 Multi-Tenancy Design Guide: techdocs.broadcom.com
  • KB 93456 — NSX VPC Troubleshooting and Known Issues
Was this page useful?
Type to search. ↑ ↓ to move, Enter to open, Esc to close.