With the new dvSwitch capabilities in ESX 4.x, one feature that has been introduced is Private VLANs. Private VLANs give you the ability to isolate network devices/nodes that are within the same Layer 2 domain.
Check out http://kb.vmware.com/kb/1010691 for VMware’s description of Private VLANs.
Cisco also has an article for configuring Private VLANs on Catalyst switches.
Essentially, you are able to create Private VLANs on a Cisco switch and trunk it to the ESX server.
On the ESX server you can create a dvSwitch with the private VLAN assignments as required.
As shown above, I have created a single primary VLAN with ID 3 and associated with it Secondary VLAN ID 300.
PVLAN 300 is an isolated VLAN. This means that guests inside PVLAN 300 will not be able communicate with each other. They will only be able to communicate with guests in the promiscuous vlan.
Once this is done, you will need to create a new port group which has the vlan settings set to Private vlan and in the drop down list, select the appropriate PVLAN.
You can see two port groups have been created. Servers in the DMZ-WebServers port group will only be able to communicated with servers in the DMZ port group.
As for the Cisco configuration, it is relatively simple.
Creation of the PVLANs can be found in the Cisco documentation as linked earlier in this post.
To integrate with VMware, the switch ports associated with the ESX host must be trunked and allow all the appropriate VLANs including the PVLANs you have created.
You will find that VMware virtual machines will not be able to communicate with other machines in the PVLAN except for hosts in the promiscuous vlan. Also note that the PVLAN settings are still honoured when entering the Cisco switch. This means you can have a combination of ESX PVLAN isolated/community hosts as well as physical PVLAN hosts and still have isolation between all machines.



