How it works...
As part of the logical switch creation, you will see a new dvPortGroup created under the vSphere networking. The logical switch is represented as a dvPortGroup on each vSphere distributed switch (vDS). The backing dvPortGroup for the logical switch naming convention is vxw-dvs-###-virtualwire-###-sid-<Segment ID>-<Logical Switch Name>:
- vxw: VXLAN-VirtualWire to distinguish the dvPortGroup created by NSX
- dvs-###: MoRefID of the vDS
- virtualwire-###: virtualwire ID within NSX
- sid-<Segment ID>: segment ID or VNI
For example, the Transit_Network_01 logical switch will have a backing dvPortGroup, vxw-dvs-38-virtualwire-1-sid-10000-Transit_Network_01, and will use the VLAN ID (VLAN 130 in this example), which was configured during the VXLAN configuration:
Logical switches can extend across multiple vSphere distributed switches if the logical switch is created on a transport zone that is spanning across multiple vDS. The backing dvPortGroup will be created in all the vDSs on that transport zone, as shown in the following example:
The detailed process of the logical switch creation is as follows:
- The vSphere web client plugin for VMware NSX makes an API call to create the logical switch to the NSX Manager through TCP port 443.
- The NSX Manager then makes an API call to create dvPortGroup(s) for the logical switch and pushes three vDS opaque configurations to the vCenter server:
- Control plane: com.vmware.net.vxlan.cp= 0x 0.0.0.1.
0 = Disabled on multicast; 1 = Enabled on hybrid or unicast. - VNI or segment ID: com.vmware.net vxlan.id = 0x 0.0.27.10.
The VNI format is on a dotted-hexadecimal notation. In this example, VNI is 10000. - Multicast IP address: com.vmware.net.vlxan.mcastip= 0x ef.0.0.2.
In this example, the multicast IP address is 239.0.0.2. It will be 1 for unicast.
- Control plane: com.vmware.net.vxlan.cp= 0x 0.0.0.1.
- The NSX Manager makes a REST API call to the NSX controller cluster to create the logical switch.
This vDS opaque data can be viewed from the ESXi console, using the net-dvs -l command: