Related Documentation
Understanding Secondary VLAN Trunk Ports and Promiscuous Access Ports on PVLANs
VLANs limit broadcasts to specified users. Private VLANs (PVLANs) take this concept a step further by splitting a VLAN into multiple broadcast subdomains and essentially putting secondary VLANs inside a primary VLAN. PVLANs restrict traffic flows through their member ports so that these ports communicate only with a specified uplink trunk port or with specified ports within the same VLAN. The uplink trunk port is usually connected to a router, firewall, server, or provider network. A PVLAN typically contains many private ports that communicate only with a single uplink, thereby preventing the ports from communicating with each other.
Secondary trunk ports and promiscuous access ports extend the functionality of PVLANs for use in complex deployments, such as:
- Enterprise VMWare Infrastructure environments
- Multitenant cloud services with VM management
- Web hosting services for multiple customers
For example, you can use secondary VLAN trunk ports to connect QFX devices to VMware servers that are configured with private VLANs. You can use promiscuous access ports to connect QFX devices to systems that do not support trunk ports but do need to participate in private VLANs.
This topic explains the following concepts regarding PVLANs on the QFX Series:
PVLAN Port Types
PVLANs can use the following different port types:
- Promiscuous trunk port—A promiscuous port is an upstream trunk port connected to a router, firewall, server, or provider network. A promiscuous trunk port can communicate with all interfaces, including the isolated and community ports within a PVLAN.
- PVLAN trunk port—A PVLAN trunk port is required
in multiswitch PVLAN configurations to span the switches. The PVLAN
trunk port is a member of all VLANs within the PVLAN (that is, the
primary VLAN, the community VLANs, and the interswitch isolated VLAN),
and it carries traffic from the primary VLAN and all secondary VLANs.
It can communicate with all ports.
Communication between a PVLAN trunk port and an isolated port is usually unidirectional. A PVLAN trunk port’s membership in the interswitch isolated VLAN is egress-only, meaning that an isolated port can forward packets to a PVLAN trunk port, but a PVLAN trunk port does not forward packets to an isolated port (unless the packets ingressed on a promiscuous access port and are therefore being forwarded to all the secondary VLANs in the same primary VLAN as the promiscuous port).
- Secondary VLAN trunk port—Secondary VLAN trunk ports
carry secondary VLAN traffic. For a given private (primary) VLAN,
a secondary VLAN trunk port can carry traffic for only one secondary
VLAN. However, a secondary VLAN trunk port can carry traffic for multiple
secondary VLANs as long as each secondary VLAN is a member of a different
primary VLAN. For example, a secondary VLAN trunk port can carry traffic
for a community VLAN that is part of primary VLAN pvlan100 and also
carry traffic for an isolated VLAN that is part of primary VLAN pvlan400.
Note: When traffic egresses from a secondary VLAN trunk port, it normally carries the tag of the primary VLAN that the secondary port is a member of. If you want traffic that egresses from a secondary VLAN trunk port to retain its secondary VLAN tag, use the extend-secondary-vlan-id statement.
- Community port—Community ports communicate among themselves and with their promiscuous ports. Community ports serve only a select group of users. These interfaces are separated at Layer 2 from all other interfaces in other communities or isolated ports within their PVLAN.
- Isolated access port—Isolated ports have Layer 2 connectivity only with promiscuous ports and PVLAN trunk ports. An isolated access port cannot communicate with another isolated port even if these two ports are members of the same isolated VLAN.
- Promiscuous access port—These ports carry untagged traffic and can be a member of only one primary VLAN. Traffic that ingresses on a promiscuous access port is forwarded to the ports of the secondary VLANs that are members of the primary VLAN that the promiscuous access port is a member of. In this case, the traffic carries the appropriate secondary VLAN tag when it egresses from the secondary VLAN port if the secondary VLAN port is a trunk port. If traffic ingresses on a secondary VLAN port and egresses on a promiscuous access port, the traffic is untagged on egress. If tagged traffic ingresses on a promiscuous access port, the traffic is discarded.
Secondary VLAN Trunk Port Details
When using a secondary VLAN trunk port, be aware of the following:
- You must configure an isolation VLAN ID for each primary VLAN that the secondary VLAN trunk port will participate in. This is true even if the secondary VLANs that the secondary VLAN trunk port will carry are confined to a single device.
- If you configure a port to be a secondary VLAN trunk port
for a given primary VLAN, you can also configure the same physical
port to be any of the following:
- Secondary VLAN trunk port for another primary VLAN
- PVLAN trunk for another primary VLAN
- Promiscuous trunk port
- Access port for a non-private VLAN
- Traffic that ingresses on a secondary VLAN trunk port (with a secondary VLAN tag) and egresses on a PVLAN trunk port retains the secondary VLAN tag on egress.
- Traffic that ingresses on a secondary VLAN trunk port and egresses on a promiscuous trunk port has the appropriate primary VLAN tag on egress.
- Traffic that ingresses on a secondary VLAN trunk port and egresses on a promiscuous access port is untagged on egress.
- Traffic that ingresses on a promiscuous trunk port with
a primary VLAN tag and egresses on a secondary VLAN trunk port carries
the appropriate secondary VLAN tag on egress. For example, assume
that you have configured the following on a switch:
- Primary VLAN 100
- Community VLAN 200 as part of the primary VLAN
- Promiscuous trunk port
- Secondary trunk port that carries community VLAN 200
If a packet ingresses on the promiscuous trunk port with primary VLAN tag 100 and egresses on the secondary VLAN trunk port, it carries tag 200 on egress.
Use Cases
On the same physical interface, you can configure multiple secondary VLAN trunk ports (in different primary VLANs) or combine a secondary VLAN trunk port with other types of VLAN ports. The following use cases provide examples of doing this and show how traffic would flow in each case:
- Secondary VLAN Trunks In Two Primary VLANS
- Secondary VLAN Trunk and Promiscuous Trunk
- Secondary VLAN Trunk and PVLAN Trunk
- Secondary VLAN Trunk and Non-Private VLAN Interface
- Traffic Ingressing on Promiscuous Access Port
Secondary VLAN Trunks In Two Primary VLANS
For this use case, assume you have two switches with the following configuration:
- Primary VLAN pvlan100 with tag 100.
- Isolated VLAN isolated200 with tag 200 is a member of pvlan100.
- Community VLAN comm300 with tag 300 is a member of pvlan100.
- Primary VLAN pvlan400 with tag 400.
- Isolated VLAN isolated500 with tag 500 is a member of pvlan400.
- Community VLAN comm600 with tag 600 is a member of pvlan400.
- Interface xe-0/0/0 on Switch 1 connects to a VMware server (not shown) that is configured with the private VLANs used in this example. This interface is configured with secondary VLAN trunk ports to carry traffic for secondary VLAN comm600 and the isolated VLAN (tag 200) that is a member of pvlan100.
- Interface xe-0/0/0 on Switch 2 is shown configured as a promiscuous trunk port or promiscuous access port. In the latter case, you can assume that it connects to a system (not shown) that does not support trunk ports but is configured with the private VLANs used in this example.
- On Switch 1, xe-0/0/6 is a member of comm600 and is configured as a trunk port.
- On Switch 2, xe-0/0/6 is a member of comm600 and is configured as an access port.
Figure 1 shows this topology and how traffic for isolated200 and comm600 would flow after ingressing on xe-0/0/0 on Switch 1. Note that traffic would flow only where the arrows indicate. For example, there are no arrows for interfaces xe-0/0/2, xe-0/0/3, and xe-0/0/5 on Switch 1 because no packets would egress on those interfaces.
Figure 1: Two Secondary VLAN Trunk Ports on One Interface

Here is the traffic flow for VLAN isolated200:
- After traffic for isolated200 ingresses on the secondary VLAN trunk port on Switch 1, it egresses on the PVLAN trunk port because the PVLAN trunk port is a member of all the VLANs. The packets keep the secondary VLAN tag (200) when egressing.
- After traffic for isolated200 ingresses on the secondary
VLAN trunk port on Switch 2, it egresses on xe-0/0/0, which is configured
as a promiscuous trunk port or promiscuous access port.
- If xe-0/0/0 on Switch 2 is configured as a promiscuous trunk port, the packets egress on this port with the primary VLAN tag (100).
- If xe-0/0/0 on Switch 2 is configured as a promiscuous access port, the packets egress on this port untagged.
Note that traffic for VLAN isolated200 does not egress on isolated access port xe-0/0/2 on Switch 1 or secondary VLAN trunk port xe-0/0/2 on Switch 2 even though these two ports are members of the same isolated VLAN.
Here is the traffic flow for VLAN comm600:
- After traffic for comm600 ingresses on the secondary VLAN trunk port on Switch 1, it egresses on the PVLAN trunk port because the PVLAN trunk port is a member of all the VLANs. The packets keep the secondary VLAN tag (600) when egressing.
- Traffic for comm600 also egresses on community port xe-0/0/6 on Switch 1. The traffic is tagged because the port is configured as a trunk.
- After traffic for comm600 ingresses on the PVLAN trunk
port on Switch 2, it egresses on xe-0/0/0, if this interface is configured
as a promiscuous trunk port.
Note: If xe-0/0/0 on Switch 2 is configured as a promiscuous access port, the port can participate in only one primary VLAN. In this case, the promiscuous access port is part of pvlan100, so traffic for comm600 does not egress from it
- Traffic for comm600 also egresses on community port xe-0/0/6 on Switch 2. In this case, the traffic is untagged because the port mode is access.
Secondary VLAN Trunk and Promiscuous Trunk
For this use case, assume you have two switches configured with the same ports and VLANs as in the previous use case, with one exception: In this case, xe-0/0/0 on Switch 1 is configured as a secondary VLAN trunk port for VLAN pvlan100 and is also configured as a promiscuous trunk port for pvlan400.
Figure 2 shows this topology and how traffic for isolated200 (member of pvlan100) and comm600 (member of pvlan400) would flow after ingressing on Switch 1.
Figure 2: Secondary VLAN Trunk and Promiscuous Trunk on One Interface

The traffic flow for VLAN isolated200 is the same as in the previous use case, but the flow for comm600 is different. Here is the traffic flow for VLAN comm600:
- After traffic for comm600 ingresses on community VLAN port xe-0/0/6 on Switch 1, it egresses on promiscuous trunk port xe-0/0/0 on Switch 1. In this case it carries the primary VLAN tag (400).
- Traffic for comm600 also egresses on the PVLAN trunk port because the PVLAN trunk port is a member of all the VLANs. The packets keep the secondary VLAN tag (600) when egressing.
- After traffic for comm600 ingresses on the PVLAN trunk
port on Switch 2, it egresses on xe-0/0/0, if this interface is configured
as a promiscuous trunk port.
It does not egress on xe-0/0/0 if this interface is configured as a promiscuous access port because the port can participate only in pvlan100.
- Traffic for comm600 also egresses on community port xe-0/0/6 on Switch 2.
Secondary VLAN Trunk and PVLAN Trunk
For this use case, assume you have two switches configured with the same ports and VLANs as in the previous use cases except that xe-0/0/0 on Switch 1 is configured as a secondary VLAN trunk port for VLAN pvlan100 and is also configured as a PVLAN trunk port for pvlan400.
Figure 3 shows this topology and how traffic for comm300 (member of pvlan100) and comm600 (member of pvlan400) would flow after ingressing on Switch 1.
Figure 3: Secondary VLAN Trunk and PVLAN Trunk on One Interface

Here is the traffic flow for VLAN comm300:
- After traffic for comm300 ingresses on community port
xe-0/0/3 on Switch 1, it egresses on PVLAN trunk port xe-0/0/1 because
that PVLAN trunk port is a member of all the VLANs. The packets keep
the secondary VLAN tag (300) when egressing.
Note: Traffic for comm300 does not egress on xe-0/0/0 because the secondary VLAN trunk port on this interface carries isolated200, not comm300.
- After traffic for comm300 ingresses on the PVLAN trunk
port on Switch 2, it egresses on xe-0/0/0, which is configured as
a promiscuous trunk port or promiscuous access port.
- If xe-0/0/0 on Switch 2 is configured as a promiscuous trunk port, the packets egress on this port with the primary VLAN tag (100).
- If xe-0/0/0 on Switch 2 is configured as a promiscuous access port, the packets egress on this port untagged.
- Traffic for comm300 also egresses on community port xe-0/0/3 on Switch 2.
Here is the traffic flow for VLAN comm600:
- After traffic for comm600 ingresses on the PVLAN port xe-0/0/0 on Switch 1, it egresses on the community port xe-0/0/6 on Switch 1. The packets keep the secondary VLAN tag (600) when egressing because xe-0/0/6 is a trunk port.
- Traffic for comm600 also egresses on PVLAN trunk port xe-0/0/1 because that PVLAN trunk port is a member of all the VLANs. The packets keep the secondary VLAN tag (600) when egressing.
- After traffic for comm600 ingresses on the PVLAN trunk
port on Switch 2, it egresses on xe-0/0/0, if this interface is configured
as a promiscuous trunk port.
It does not egress on xe-0/0/0 if this interface is configured as a promiscuous access port because the port can participate only in pvlan100.
- Traffic for comm600 also egresses on community port xe-0/0/6 on Switch 2. This traffic is untagged on egress because xe-0/0/6 is an access port.
Secondary VLAN Trunk and Non-Private VLAN Interface
For this use case, assume you have two switches configured with the same ports and VLANs as in the previous use cases except for these differences:
- Configuration for xe-0/0/0 on Switch 1:
- Secondary VLAN trunk port for VLAN pvlan100
- Access port for vlan700
- Port xe-0/0/6 on both switches is an access port for vlan700.
Figure 4 shows this topology and how traffic for isolated200 (member of pvlan100) and vlan700 would flow after ingressing on Switch 1.
Figure 4: Secondary VLAN Trunk and Non-Private VLAN Port on One Interface

Here is the traffic flow for VLAN isolated200:
- After traffic for isolated200 ingresses on the secondary VLAN trunk port on Switch 1, it egresses on the PVLAN trunk port. The packets keep the secondary VLAN tag (200) when egressing.
- After traffic for isolated200 ingresses on the PVLAN trunk
port on Switch 2, it egresses on xe-0/0/0, which is configured as
a promiscuous trunk port or promiscuous access port.
- If xe-0/0/0 on Switch 2 is configured as a promiscuous trunk port, the packets egress on this port with the primary VLAN tag (100).
- If xe-0/0/0 on Switch 2 is configured as a promiscuous access port, the packets egress on this port untagged.
Note that traffic for VLAN isolated200 does not egress on isolated access port xe-0/0/2 on Switch 1 or secondary VLAN trunk port xe-0/0/2 on Switch 2 even though these two ports are members of the same isolated VLAN.
After traffic for vlan700 ingresses on the access port configured on xe-0/0/0 on Switch 1, it egresses on access port xe-0/0/6 because that port is a member of the same VLAN. Traffic for vlan700 is not forwarded to Switch 2 (even though xe-0/0/6 on Switch 2 is a member of vlan700) because the PVLAN trunk on xe-0/0/1 does not carry this VLAN.
Traffic Ingressing on Promiscuous Access Port
For this use case, assume you have two switches configured with the same ports and VLANs as in the previous use case except that xe-0/0/0 on Switch 1 is configured as a promiscuous access port and is a member of pvlan100. Figure 5 shows this topology and how untagged traffic would flow after ingressing through this interface on Switch 1.
Figure 5: Traffic Ingressing on Promiscuous Access Port

As the figure shows, untagged traffic that ingresses on a promiscuous access port is forwarded to all the secondary VLAN ports that are members of the same primary VLAN that the promiscuous access port is a member of. The traffic is untagged when it egresses from access ports and tagged on egress from a trunk port (xe-0/0/2 on Switch 2).