Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

Navigation
Guide That Contains This Content
[+] Expand All
[-] Collapse All

    Example: Configuring PVLANs with Secondary VLAN Trunk Ports and Promiscuous Access Ports

    This example shows how to configure secondary VLAN trunk ports and promiscuous access ports as part of a private VLAN configuration. Secondary VLAN trunk ports carry secondary VLAN traffic.

    For a given private 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 private (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.

    To configure a trunk port to carry secondary VLAN traffic, use the isolated and interface statements, as shown in steps 12 and 13 of the example configuration for Switch 1.

    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.

    A promiscuous access port carries 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. This traffic carries the appropriate secondary VLAN tags when it egresses from the secondary VLAN ports if the secondary VLAN port is a trunk port.

    To configure an access port to be promiscuous, use the promiscuous statement, as shown in step 12 of the example configuration for Switch 2.

    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.

    Requirements

    This example uses the following hardware and software components:

    • Two QFX devices
    • Junos OS Release 12.2 or later for the QFX Series

    Overview and Topology

    Figure 1 shows the topology used in this example. Switch 1 includes several primary and secondary private VLANs and also includes two secondary VLAN trunk ports configured to carry secondary VLANs that are members of primary VLANs pvlan100 and pvlan400.

    Switch 2 includes the same private VLANs. The figure shows xe-0/0/0 on Switch 2 as configured with promiscuous access ports or promiscuous trunk ports. The example configuration included here configures this port as a promiscuous access port.

    The figure also shows how traffic would flow after ingressing on the secondary VLAN trunk ports on Switch 1.

    Figure 1: PVLAN Topology with Secondary VLAN Trunk Ports and Promiscuous Access Port

    PVLAN Topology with Secondary VLAN Trunk
Ports and Promiscuous Access Port

    Table 1 and Table 2 list the settings for the example topology on both switches.

    Table 1: Components of the Topology for Configuring a Secondary VLAN Trunk on Switch 1

    ComponentDescription

    pvlan100, ID 100

    Primary VLAN

    pvlan400, ID 400

    Primary VLAN

    comm300, ID 300

    Community VLAN, member of pvlan100

    comm600, ID 600

    Community VLAN, member of pvlan400

    isolation-vlan-id 200

    VLAN ID for isolated VLAN, member of pvlan100

    isolation–vlan-id 500

    VLAN ID for isolated VLAN, member of pvlan400

    xe-0/0/0.0

    Secondary VLAN trunk port for primary VLANs pvlan100 and pvlan400

    xe-0/0/1.0

    PVLAN trunk port for primary VLANs pvlan100 and pvlan400

    xe-0/0/2.0

    Isolated access port for pvlan100

    xe-0/0/3.0

    Community access port for comm300

    xe-0/0/5.0

    Isolated access port for pvlan400

    xe-0/0/6.0

    Community trunk port for comm600

    Table 2: Components of the Topology for Configuring a Secondary VLAN Trunk on Switch 2

    ComponentDescription

    pvlan100, ID 100

    Primary VLAN

    pvlan400, ID 400

    Primary VLAN

    comm300, ID 300

    Community VLAN, member of pvlan100

    comm600, ID 600

    Community VLAN, member of pvlan400

    isolation-vlan-id 200

    VLAN ID for isolated VLAN, member of pvlan100

    isolation–vlan-id 500

    VLAN ID for isolated VLAN, member of pvlan400

    xe-0/0/0.0

    Promiscuous access port for primary VLANs pvlan100

    xe-0/0/1.0

    PVLAN trunk port for primary VLANs pvlan100 and pvlan400

    xe-0/0/2.0

    Secondary trunk port for isolated VLAN, member of pvlan100

    xe-0/0/3.0

    Community access port for comm300

    xe-0/0/5.0

    Isolated access port for pvlan400

    xe-0/0/6.0

    Community access port for comm600

    Configuring the PVLANs on Switch 1

    CLI Quick Configuration

    To quickly create and configure the PVLANs on Switch 1, copy the following commands and paste them into a switch terminal window:

    [edit]

    set interfaces xe-0/0/0 unit 0 family ethernet-switching port-mode trunk

    set interfaces xe-0/0/1 unit 0 family ethernet-switching port-mode trunk

    set interfaces xe-0/0/1 unit 0 family ethernet-switching vlan members pvlan100

    set interfacesxe-0/0/1 unit 0 family ethernet-switching vlan members pvlan400

    set interfaces xe-0/0/2 unit 0 family ethernet-switching port-mode access

    set interfaces xe-0/0/3 unit 0 family ethernet-switching port-mode access

    set interfaces xe-0/0/5 unit 0 family ethernet-switching port-mode access

    set interfaces xe-0/0/6 unit 0 family ethernet-switching port-mode trunk

    set vlans pvlan100 vlan-id 100

    set vlans pvlan400 vlan-id 400

    set vlans pvlan100 pvlan

    set vlans pvlan400 pvlan

    set vlans pvlan100 interface xe-0/0/1.0 pvlan-trunk

    set vlans pvlan400 interface xe-0/0/1.0 pvlan-trunk

    set vlans comm300 vlan-id 300

    set vlans comm300 primary-vlan pvlan100

    set vlans comm300 interface xe-0/0/3.0

    set vlans comm600 vlan-id 600

    set vlans comm600 primary-vlan pvlan400

    set vlans comm600 interface xe-0/0/6.0

    set vlans pvlan100 pvlan isolation-vlan-id 200

    set vlans pvlan400 pvlan isolation-vlan-id 500

    set vlans pvlan100 interface xe-0/0/0.0 isolated

    set vlans pvlan400 interface xe-0/0/0.0 isolated

    set vlans comm600 interface xe-0/0/0.0

    set vlans pvlan100 interface xe-0/0/2.0 isolated

    set vlans pvlan400 interface xe-0/0/5.0 isolated

    Step-by-Step Procedure

    To configure the private VLANs and secondary VLAN trunk ports:

    1. Configure the interfaces and port modes:
      [edit interfaces]
      user@switch# set xe-0/0/0 unit 0 family ethernet-switching port-mode trunk
      user@switch# set xe-0/0/1 unit 0 family ethernet-switching port-mode trunk
      user@switch# set xe-0/0/1 unit 0 family ethernet-switching vlan members pvlan100
      user@switch# set xe-0/0/1 unit 0 family ethernet-switching vlan members pvlan400
      user@switch# set xe-0/0/2 unit 0 family ethernet-switching port-mode access
      user@switch# set xe-0/0/3 unit 0 family ethernet-switching port-mode access
      user@switch# set xe-0/0/5 unit 0 family ethernet-switching port-mode access
      user@switch# set xe-0/0/6 unit 0 family ethernet-switching port-mode access
    2. Create the primary VLANs:
      [edit vlans]
      user@switch# set pvlan100 vlan-id 100
      user@switch# set pvlan400 vlan-id 400

      Note: Primary VLANs must always be tagged VLANs, even if they exist on only one device.

    3. Configure the primary VLANs to be private:
      [edit vlans]
      user@switch# set pvlan100 pvlan
      user@switch# set pvlan400 pvlan
    4. Configure the PVLAN trunk port to carry the private VLAN traffic between the switches:
      [edit vlans]
      user@switch# set pvlan100 interface xe-0/0/1.0 pvlan-trunk
      user@switch# set pvlan400 interface xe-0/0/1.0 pvlan-trunk
    5. Create secondary VLAN comm300 with VLAN ID 300:
      [edit vlans]
      user@switch# set comm300 vlan-id 300
    6. Configure the primary VLAN for comm300:
      [edit vlans]
      user@switch# set comm300 primary-vlan pvlan100
    7. Configure the interface for comm300:
      [edit vlans]
      user@switch# set comm300 interface xe-0/0/3.0
    8. Create secondary VLAN comm600 with VLAN ID 600:
      [edit vlans]
      user@switch# set comm600 vlan-id 600
    9. Configure the primary VLAN for comm600:
      [edit vlans]
      user@switch# set comm600 primary-vlan pvlan400
    10. Configure the interface for comm600:
      [edit vlans]
      user@switch# set comm600 interface xe-0/0/6.0
    11. Configure the interswitch isolated VLANs:
      [edit vlans]
      user@switch# set pvlan100 pvlan isolation-vlan-id 200
      user@switch# set pvlan400 pvlan isolation-vlan-id 500

      Note: When you configure a secondary VLAN trunk port to carry an isolated VLAN, you must also configure an isolation-vlan-id. This is true even if the isolated VLAN exists only on one switch.

    12. Enable trunk port xe-0/0/0 to carry secondary VLANs for the primary VLANs:
      [edit vlans]
      user@switch# set pvlan100 interface xe-0/0/0.0 isolated
      user@switch# set pvlan400 interface xe-0/0/0.0 isolated
    13. Configure trunk port xe-0/0/0 to carry comm600 (member of pvlan400):
      [edit vlans]
      user@switch# set comm600 interface xe-0/0/0.0

      Note: You do not need to explicitly configure xe-0/0/0 to carry the isolated VLAN traffic (tags 200 and 500) because all the isolated ports in pvlan100 and pvlan400–including xe-0/0/0.0–are automatically included in the isolated VLANs created when you configured isolation-vlan-id 200 and isolation-vlan-id 500.

    14. Configure xe-0/0/2 and xe-0/0/6 to be isolated:
      [edit vlans]
      user@switch# set pvlan100 interface xe-0/0/2.0 isolated
      user@switch# set pvlan400 interface xe-0/0/5.0 isolated

    Results

    Check the results of the configuration on Switch 1:

    [edit]user@switch# show
    interfaces {xe-0/0/0 {unit 0 {family ethernet-switching {port-mode trunk;vlan {members pvlan100;members pvlan400;}}}}xe-0/0/1 {unit 0 {family ethernet-switching {port-mode trunk;vlan {members pvlan100;members pvlan400;}}}}xe-0/0/2 {unit 0 {family ethernet-switching {port-mode access;}}}xe-0/0/3 {unit 0 {family ethernet-switching {port-mode access;}}}xe-0/0/5 {unit 0 {family ethernet-switching {port-mode access;}}}xe-0/0/6 {unit 0 {family ethernet-switching {port-mode trunk;}}}}
    vlans {comm300 {vlan-id 300;interface {xe-0/0/3.0;}primary-vlan pvlan100;}comm600 {vlan-id 600;interface {xe-0/0/6.0;}primary-vlan pvlan400;}pvlan100 {vlan-id 100;interface {xe-0/0/0.0;xe-0/0/2.0;xe-0/0/3.0;xe-0/0/1.0 {pvlan-trunk;}}no-local-switching;isolation-id 200;}pvlan400 {vlan-id 400;interface {xe-0/0/0.0;xe-0/0/5.0;xe-0/0/6.0;xe-0/0/1.0 {pvlan-trunk;}}no-local-switching;isolation-id 500;}}

    Configuring the PVLANs on Switch 2

    The configuration for Switch 2 is almost identical to the configuration for Switch 1. The most significant difference is that xe-0/0/0 on Switch 2 is configured as a promiscuous trunk port or a promiscuous access port, as Figure 1 shows. In the following configuration, xe-0/0/0 is configured as a promiscuous access port for primary VLAN pvlan100.

    If traffic ingresses on VLAN-enabled port and egresses on a promiscuous access port, the VLAN tags are dropped on egress and the traffic is untagged at that point. For example, traffic for comm600 ingresses on the secondary VLAN trunk port configured on xe-0/0/0.0 on Switch 1 and carries tag 600 as it is forwarded through the secondary VLAN. When it egresses from xe-0/0/0.0 on Switch 2, it will be untagged if you configure xe-0/0/0.0 as a promiscuous access port as shown in this example. If you instead configure xe-0/0/0.0 as a promiscuous trunk port (port-mode trunk), the traffic for comm600 carries its primary VLAN tag (400) when it egresses.

    CLI Quick Configuration

    To quickly create and configure the PVLANs on Switch 2, copy the following commands and paste them into a switch terminal window:

    [edit]

    set interfaces xe-0/0/0 unit 0 family ethernet-switching port-mode access

    set interfaces xe-0/0/1 unit 0 family ethernet-switching port-mode trunk

    set interfaces xe-0/0/1 unit 0 family ethernet-switching vlan members pvlan100

    set interfaces xe-0/0/1 unit 0 family ethernet-switching vlan members pvlan400

    set interfaces xe-0/0/2 unit 0 family ethernet-switching port-mode trunk

    set interfaces xe-0/0/3 unit 0 family ethernet-switching port-mode access

    set interfaces xe-0/0/5 unit 0 family ethernet-switching port-mode access

    set interfaces xe-0/0/6 unit 0 family ethernet-switching port-mode access

    set vlans pvlan100 vlan-id 100

    set vlans pvlan400 vlan-id 400

    set vlans pvlan100 pvlan

    set vlans pvlan400 pvlan

    set vlans pvlan100 interface xe-0/0/1.0 pvlan-trunk

    set vlans pvlan400 interface xe-0/0/1.0 pvlan-trunk

    set vlans comm300 vlan-id 300

    set vlans comm300 primary-vlan pvlan100

    set vlans comm300 interface xe-0/0/3.0

    set vlans comm600 vlan-id 600

    set vlans comm600 primary-vlan pvlan400

    set vlans comm600 interface xe-0/0/6.0

    set vlans pvlan100 pvlan isolation-vlan-id 200

    set vlans pvlan400 pvlan isolation-vlan-id 500

    set vlans pvlan100 interface xe-0/0/0.0 promiscuous

    set vlans pvlan100 interface xe-0/0/2.0 isolated

    set vlans pvlan400 interface xe-0/0/5.0 isolated

    Step-by-Step Procedure

    To configure the private VLANs and secondary VLAN trunk ports:

    1. Configure the interfaces and port modes:
      [edit interfaces]
      user@switch# set xe-0/0/0 unit 0 family ethernet-switching port-mode access

      user@switch# set xe-0/0/1 unit 0 family ethernet-switching port-mode trunk
      user@switch# set xe-0/0/1 unit 0 family ethernet-switching vlan members pvlan100
      user@switch# set xe-0/0/1 unit 0 family ethernet-switching vlan members pvlan400
      user@switch# set xe-0/0/2 unit 0 family ethernet-switching port-mode trunk
      user@switch# set xe-0/0/3 unit 0 family ethernet-switching port-mode access
      user@switch# set xe-0/0/5 unit 0 family ethernet-switching port-mode access
      user@switch# set xe-0/0/6 unit 0 family ethernet-switching port-mode access
    2. Create the primary VLANs:
      [edit vlans]
      user@switch# set pvlan100 vlan-id 100
      user@switch# set pvlan400 vlan-id 400
    3. Configure the primary VLANs to be private:
      [edit vlans]
      user@switch# set pvlan100 pvlan
      user@switch# set pvlan400 pvlan
    4. Configure the PVLAN trunk port to carry the private VLAN traffic between the switches:
      [edit vlans]
      user@switch# set pvlan100 interface xe-0/0/1.0 pvlan-trunk
      user@switch# set pvlan400 interface xe-0/0/1.0 pvlan-trunk
    5. Create secondary VLAN comm300 with VLAN ID 300:
      [edit vlans]
      user@switch# set comm300 vlan-id 300
    6. Configure the primary VLAN for comm300:
      [edit vlans]
      user@switch# set comm300 primary-vlan pvlan100
    7. Configure the interface for comm300:
      [edit vlans]
      user@switch# set comm300 interface xe-0/0/3.0
    8. Create secondary VLAN comm600 with VLAN ID 600:
      [edit vlans]
      user@switch# set comm600 vlan-id 600
    9. Configure the primary VLAN for comm600:
      [edit vlans]
      user@switch# set comm600 primary-vlan pvlan400
    10. Configure the interface for comm600:
      [edit vlans]
      user@switch# set comm600 interface xe-0/0/6.0
    11. Configure the interswitch isolated VLANs:

      [edit vlans]
      user@switch# set pvlan100 pvlan isolation-vlan-id 200
      user@switch# set pvlan400 pvlan isolation-vlan-id 500
    12. Configure access port xe-0/0/0 to be promiscuous for pvlan100:
      [edit vlans]
      user@switch# set pvlan100 interface xe-0/0/0.0 promiscuous

      Note: A promiscuous access port can be a member of only one primary VLAN.

    13. Configure xe-0/0/2 and xe-0/0/6 to be isolated:
      [edit vlans]
      user@switch# set pvlan100 interface xe-0/0/2.0 isolated
      user@switch# set pvlan400 interface xe-0/0/5.0 isolated

    Results

    Check the results of the configuration on Switch 2:

    [edit]user@switch# show
    interfaces {xe-0/0/0 {unit 0 {family ethernet-switching {port-mode access;vlan {members pvlan100;}}}}xe-0/0/1 {unit 0 {family ethernet-switching {port-mode trunk;vlan {members pvlan100;members pvlan400;}}}}xe-0/0/2 {unit 0 {family ethernet-switching {port-mode trunk;}}}xe-0/0/3 {unit 0 {family ethernet-switching {port-mode access;}}}xe-0/0/5 {unit 0 {family ethernet-switching {port-mode access;}}}xe-0/0/6 {unit 0 {family ethernet-switching {port-mode access;}}}
    vlans {comm300 {vlan-id 300;interface {xe-0/0/3.0;}primary-vlan pvlan100;}comm600 {vlan-id 600;interface {xe-0/0/6.0;}primary-vlan pvlan400;}pvlan100 {vlan-id 100;interface {xe-0/0/0.0;xe-0/0/2.0;xe-0/0/3.0;xe-0/0/1.0 {pvlan-trunk;}}no-local-switching;isolation-id 200;}pvlan400 {vlan-id 400;interface {xe-0/0/5.0;xe-0/0/6.0;xe-0/0/1.0 {pvlan-trunk;}}no-local-switching;isolation-id 500;}}

    Verification

    To confirm that the configuration is working properly, perform these tasks:

    Verifying That the Private VLAN and Secondary VLANs Were Created

    Purpose

    Verify that the primary VLAN and secondary VLANs were properly created on Switch 1.

    Action

    Use the show vlans command:

    user@switch> show vlans private-vlan
    Name               Role        Tag      Interfaces
    pvlan100           Primary     100  	   xe-0/0/0.0, xe-0/0/1.0, xe-0/0/2.0, xe-0/0/3.0
    __iso_pvlan100__   Isolated    200      xe-0/0/2.0
    comm300            Community   300      xe-0/0/3.0
    
    pvlan400           Primary     400      xe-0/0/0.0, xe-0/0/1.0, xe-0/0/5.0, xe-0/0/6.0
    __iso_pvlan400__   Isolated    500      xe-0/0/5.0
    comm600            Community   600     xe-0/0/6.0
    

    Meaning

    The output shows that the private VLANs were created and identifies the interfaces and secondary VLANs associated with them.

    Verifying The Ethernet Switching Table Entries

    Purpose

    Verify that the Ethernet switching table entries were created for primary VLAN pvlan100.

    Action

    Show the Ethernet switching table entries for pvlan100.

    user@switch> show ethernet-switching table vlan pvlan100 private-vlan
    Ethernet-switching table: 0 unicast entries
      pvlan100             *                 Flood          - All-members
      pvlan100             00:10:94:00:00:02 Learn            xe-0/0/2.0
      __iso_pvlan100__     *                 Flood          - All-members
      __iso_pvlan100__     00:10:94:00:00:02 Replicated      - xe-0/0/2.0
    

    Published: 2013-01-23