To create a VXLAN-backed network pool, you create a VMWNetworkPool element whose type attribute has the value VXLANPoolType, and POST the element to your cloud's add link for networkPools.

A VXLAN network pool is required when creating a Provider VDC. By default, the system creates this network pool for you as part of the Provider VDC creation process. This default VXLAN network pool is scoped to a global NSX multicast transport zone, one that encompasses all clusters on the vCenter Server that backs the Provider VDC. If you want to create a Provider VDC whose VXLAN network pool has custom properties for NSX transport zone scope and control plane mode, create that network pool before you create the Provider VDC, then specify it in the VxlanNetworkPool element in the VMWProviderVdc request body. See Create a Provider VDC.
vSphere VXLAN networks are based on the IETF draft VXLAN standard. These networks support local-domain isolation equivalent to what is supported by vSphere isolation-backed networks. In addition, they provide:
  • logical networks spanning layer 3 boundaries
  • logical networks spanning multiple racks on a single layer 2
  • broadcast containment
  • higher performance
  • greater scale (up to 16 million network addresses)

Prerequisites

Procedure

  1. Create an NSX transport zone on any vCenter Server registered to VMware Cloud Director. See the NSX Administration Guide.
  2. Create a VMWNetworkPool element that specifies the properties of the network pool.
    You must use the NSX API to retrieve the required NSX transport zone information. See the request portion of Create a VXLAN-Backed Network Pool.
  3. POST the VMWNetworkPool element you created in Step 2 to your cloud's add URL for networkPools.
    See the request portion of Create a VXLAN-Backed Network Pool.

Example: Create a VXLAN-Backed Network Pool

This example creates a VXLAN-backed network pool. You must use the NSX API to retrieve the transport zone MoRef and VimObjectType that are required in the TransportZoneRef.

Request:
POST https://vcloud.example.com/api/admin/extension/networkPools
Content-Type: application/vnd.vmware.admin.networkPool+xml
...
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<vmext:VMWNetworkPool
   xmlns="http://www.vmware.com/vcloud/v1.5"
   xmlns:vmext="http://www.vmware.com/vcloud/extension/v1.5"
   name="Example VXLAN Pool"
   type="application/vnd.vmware.admin.networkPool xml">
   <vcloud:Description>Example VXLAN-backed network pool</vcloud:Description>
   <vmext:TransportZoneRef>
      <vmext:VimServerRef
         href="https://vcloud.example.com3/api/admin/extension/vimServer/9"
         type="application/vnd.vmware.admin.vmwvirtualcenter xml" />
      <vmext:MoRef>vdnscope-12</vmext:MoRef>
      <vmext:VimObjectType>VDN_SCOPE</vmext:VimObjectType>
   </vmext:TransportZoneRef>
</vmext:VMWNetworkPool>

The response includes a Task that tracks the creation of the network pool, and a set of Link elements that you can use to operate on or modify it.

Response:
201 Created
Content-Type: application/vnd.vmware.admin.networkPool+xml
...
<vmext:VMWNetworkPool
   xmlns="http://www.vmware.com/vcloud/v1.5"
   xmlns:vmext="http://www.vmware.com/vcloud/extension/v1.5"
   name="Example VXLAN Pool"
   type="application/vnd.vmware.admin.networkPool+xml"
   href="https://vcloud.example.com/api/admin/extension/networkPool/23" ... >
   <vcloud:Link
      rel="up"
      type="application/vnd.vmware.admin.vmwNetworkPoolReferences+xml"
      href="https://vcloud.example.com/api/admin/extension/networkPoolReferences" />
   <vcloud:Link
      rel="edit"
      type="application/vnd.vmware.admin.networkPool+xml"
      href="https://vcloud.example.com/api/admin/extension/networkPool/23" />
   <vcloud:Link
      rel="remove"
      href="https://vcloud.example.com/api/admin/extension/networkPool/23" />
   <vcloud:Description>Example VXLAN-backed network pool</vcloud:Description>
   <vcloud:Tasks>
      <vcloud:Task
         status="running"
         ...
         operation="Creating Network Pool 23"
         ...
      </vcloud:Task>
   </vcloud:Tasks>
   ...
</vmext:VMWNetworkPool>