When I studied for my CCIE almost 15 years ago, I recall that I was fascinated by how different PDUs such as CDP, DTP, STP would have different encapsulations on a trunk depending on the configuration of it. What happens when you change the native VLAN? What happens if the native VLAN is not allowed on the trunk? What happens if you tag the native VLAN? There aren’t many resources describing this as most people don’t care for this level of detail, but there are situations where this is important. The goal of this post is to configure different protocols and see how they are encapsulated using different trunk configurations. You don’t need to consume this entire post, rather use it as a reference for different scenarios. Just be aware that some of this may be platform/OS specific.

The protocols we’ll cover for this post are:

  • CDP.
  • LLDP.
  • DTP.
  • PAgP.
  • LACP.
  • PVST+.
  • RPVST+.
  • MST.

The topology is going to be very simple, two switches connected by a single link:

These are IOSv-L2 devices:

SW1#show version
Cisco IOS Software, vios_l2 Software (vios_l2-ADVENTERPRISEK9-M), Experimental Version 15.2(20200924:215240) [sweickge-sep24-2020-l2iol-release 135]
Copyright (c) 1986-2020 by Cisco Systems, Inc.
Compiled Tue 29-Sep-20 11:53 by sweickge


ROM: Bootstrap program is IOSv

SW1 uptime is 3 days, 1 hour, 20 minutes
System returned to ROM by reload
System image file is "flash0:/vios_l2-adventerprisek9-m"

Trunk With Default Settings

To start out, we’ll use a trunk with the default settings which implies the following:

  • The native VLAN is 1.
  • All VLANs are allowed to traverse the trunk.

The trunk currently has this configuration:

interface GigabitEthernet0/0
 switchport trunk encapsulation dot1q
 switchport mode trunk
 negotiation auto

CDP

With the default configuration, CDP is sending untagged frames to a destination MAC of 0100.0ccc.cccc:

Frame 10: 381 bytes on wire (3048 bits), 381 bytes captured (3048 bits)
IEEE 802.3 Ethernet 
    Destination: 01:00:0c:cc:cc:cc
    Source: 52:54:00:0b:45:06
    Length: 367
Logical-Link Control
    DSAP: SNAP (0xaa)
    SSAP: SNAP (0xaa)
    Control field: U, func=UI (0x03)
    Organization Code: 00:00:0c (Cisco Systems, Inc)
    PID: CDP (0x2000)
Cisco Discovery Protocol
    Version: 2
    TTL: 180 seconds
    Checksum: 0x305d [correct]
    [Checksum Status: Good]
    Device ID: SW1
    Software Version
    Platform: Cisco 
    Addresses
    Port ID: GigabitEthernet0/0
    Capabilities
    IP Prefixes: 1
    VTP Management Domain: 
    Native VLAN: 1
    Duplex: Full
    Trust Bitmap: 0x00
    Untrusted port CoS: 0x00
    Management Addresses

Note that the frame is 802 SNAP encapsulated.

LLDP

With the default configuration, LLDP is sending untagged frames to a destination MAC of 0180.c200.000e:

Frame 19: 320 bytes on wire (2560 bits), 320 bytes captured (2560 bits)
Ethernet II, Src: 52:54:00:0b:45:06, Dst: 01:80:c2:00:00:0e
    Destination: 01:80:c2:00:00:0e
    Source: 52:54:00:0b:45:06
    Type: 802.1 Link Layer Discovery Protocol (LLDP) (0x88cc)
    Trailer: 000000
Link Layer Discovery Protocol
    Chassis Subtype = MAC address, Id: 52:54:00:0b:45:06
    Port Subtype = Interface name, Id: Gi0/0
    Time To Live = 120 sec
    System Name = SW1
     [truncated]System Description = Cisco IOS Software, vios_l2 Software (vios_l2-ADVENTERPRISEK9-M), Experimental Version 15.2(20200924:215240) [sweickge-sep24-2020-l2iol-release 135]\nCopyright (c) 1986-2020 by Cisco Systems, Inc.\nCompiled
    Port Description = GigabitEthernet0/0
    Capabilities
    Management Address
    End of LLDPDU

LLDP has Ethernet II encapsulation (not 802 SNAP) as this is IEEE protocol.

DTP

With the default configuration, DTP is sending untagged frames to a destination MAC of 0100.0ccc.cccc:

Frame 23: 60 bytes on wire (480 bits), 60 bytes captured (480 bits)
IEEE 802.3 Ethernet 
    Destination: 01:00:0c:cc:cc:cc
    Source: 52:54:00:04:2a:87
    Length: 34
    Padding: 000000000000000000000000
Logical-Link Control
    DSAP: SNAP (0xaa)
    SSAP: SNAP (0xaa)
    Control field: U, func=UI (0x03)
    Organization Code: 00:00:0c (Cisco Systems, Inc)
    PID: DTP (0x2004)
Dynamic Trunk Protocol:  (Operating/Administrative): Trunk/On (0x81) (Operating/Administrative): 802.1Q/802.1Q (0xa5): 52:54:00:04:2a:87
    Version: 1
    Domain
    Trunk Status
    Trunk Type
    Sender ID

This frame is also 802 SNAP encapsulated.

PAgP

With the default configuration, PAgP is sending untagged frames to a destination MAC of 0100.0ccc.cccc:

Frame 1: 84 bytes on wire (672 bits), 84 bytes captured (672 bits)
IEEE 802.3 Ethernet 
    Destination: 01:00:0c:cc:cc:cc
    Source: 52:54:00:0b:45:06
    Length: 70
Logical-Link Control
    DSAP: SNAP (0xaa)
    SSAP: SNAP (0xaa)
    Control field: U, func=UI (0x03)
    Organization Code: 00:00:0c (Cisco Systems, Inc)
    PID: PAgP (0x0104)
Port Aggregation Protocol
    Version: Info PDU (0x01)
    Flags: 0x00
    Local Device ID: 52:54:00:0b:80:00
    Local Learn Capability: Arbitrary Distribution (0x02)
    Local Port Hot Standby Priority: 128
    Local Sent Port ifindex: 1
    Local Group Capability: 0x00010001
    Local Group ifindex: 0
    Partner Device ID: 00:00:00:00:00:00
    Partner Learn Capability: Unknown (0x00)
    Partner Port Hot Standby Priority: 0
    Partner Sent Port ifindex: 0
    Partner Group Capability: 0x00000000
    Partner Group ifindex: 0
    Partner Count: 0
    Number of TLVs: 2
    TLV Entry #1
    TLV Entry #2

This frame is also 802 SNAP encapsulated.

LACP

With the default configuration, LACP is sending untagged frames to a destination MAC of 0180.c200.0002:

Frame 101: 124 bytes on wire (992 bits), 124 bytes captured (992 bits)
Ethernet II, Src: 52:54:00:0b:45:06, Dst: 01:80:c2:00:00:02
    Destination: 01:80:c2:00:00:02
    Source: 52:54:00:0b:45:06
    Type: Slow Protocols (0x8809)
Slow Protocols
Link Aggregation Control Protocol
    LACP Version: 0x01
    TLV Type: Actor Information (0x01)
    TLV Length: 0x14
    Actor System Priority: 32768
    Actor System ID: 52:54:00:0b:80:00
    Actor Key: 1
    Actor Port Priority: 32768
    Actor Port: 1
    Actor State: 0x45, LACP Activity, Aggregation, Defaulted
    [Actor State Flags: *F***G*A]
    Reserved: 000000
    TLV Type: Partner Information (0x02)
    TLV Length: 0x14
    Partner System Priority: 0
    Partner System: 00:00:00:00:00:00
    Partner Key: 0
    Partner Port Priority: 0
    Partner Port: 0
    Partner State: 0x00
    [Partner State Flags: ********]
    Reserved: 000000
    TLV Type: Collector Information (0x03)
    TLV Length: 0x10
    Collector Max Delay: 32768
    Reserved: 000000000000000000000000
    TLV Type: Terminator (0x00)
    TLV Length: 0x00
    Pad: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

LACP is using Ethernet II encapsulation.

PVST+

With the default configuration, PVST+ is sending two PDUs:

  • SSTP BPDU encapsulated with 802 SNAP to a destination MAC of 0100.0ccc.cccd.
  • IEEE BPDU encapsulated with 802.2 LLC to a destination MAC of 0180.c200.0000.

Both of the frames are untagged. First the SSTP BPDU:

Frame 2: 64 bytes on wire (512 bits), 64 bytes captured (512 bits)
IEEE 802.3 Ethernet 
    Destination: 01:00:0c:cc:cc:cd
    Source: 52:54:00:04:2a:87
    Length: 50
Logical-Link Control
    DSAP: SNAP (0xaa)
    SSAP: SNAP (0xaa)
    Control field: U, func=UI (0x03)
    Organization Code: 00:00:0c (Cisco Systems, Inc)
    PID: PVSTP+ (0x010b)
Spanning Tree Protocol
    Protocol Identifier: Spanning Tree Protocol (0x0000)
    Protocol Version Identifier: Spanning Tree (0)
    BPDU Type: Configuration (0x00)
    BPDU flags: 0x00
    Root Identifier: 32768 / 1 / 52:54:00:04:2a:87
    Root Path Cost: 0
    Bridge Identifier: 32768 / 1 / 52:54:00:04:2a:87
    Port identifier: 0x8001
    Message Age: 0
    Max Age: 20
    Hello Time: 2
    Forward Delay: 15
    Originating VLAN (PVID): 1

Note that the BPDU has the originating VLAN in it, as I described in the post Detecting Mismatched Native VLANs.

Then the IEEE BPDU:

Frame 3: 60 bytes on wire (480 bits), 60 bytes captured (480 bits)
IEEE 802.3 Ethernet 
    Destination: 01:80:c2:00:00:00
    Source: 52:54:00:04:2a:87
    Length: 38
    Padding: 0000000000000000
Logical-Link Control
    DSAP: Spanning Tree BPDU (0x42)
    SSAP: Spanning Tree BPDU (0x42)
    Control field: U, func=UI (0x03)
Spanning Tree Protocol
    Protocol Identifier: Spanning Tree Protocol (0x0000)
    Protocol Version Identifier: Spanning Tree (0)
    BPDU Type: Configuration (0x00)
    BPDU flags: 0x00
    Root Identifier: 32768 / 1 / 52:54:00:04:2a:87
    Root Path Cost: 0
    Bridge Identifier: 32768 / 1 / 52:54:00:04:2a:87
    Port identifier: 0x8001
    Message Age: 0
    Max Age: 20
    Hello Time: 2
    Forward Delay: 15

There are also tagged frames being sent for the non-native VLANs. These are only the SSTP BPDUs. The one for VLAN 2 is shown below:

Frame 4: 68 bytes on wire (544 bits), 68 bytes captured (544 bits)
Ethernet II, Src: 52:54:00:04:2a:87, Dst: 01:00:0c:cc:cc:cd
    Destination: 01:00:0c:cc:cc:cd
    Source: 52:54:00:04:2a:87
    Type: 802.1Q Virtual LAN (0x8100)
802.1Q Virtual LAN, PRI: 0, DEI: 0, ID: 2
    000. .... .... .... = Priority: Best Effort (default) (0)
    ...0 .... .... .... = DEI: Ineligible
    .... 0000 0000 0010 = ID: 2
    Length: 50
Logical-Link Control
    DSAP: SNAP (0xaa)
    SSAP: SNAP (0xaa)
    Control field: U, func=UI (0x03)
    Organization Code: 00:00:0c (Cisco Systems, Inc)
    PID: PVSTP+ (0x010b)
Spanning Tree Protocol
    Protocol Identifier: Spanning Tree Protocol (0x0000)
    Protocol Version Identifier: Spanning Tree (0)
    BPDU Type: Configuration (0x00)
    BPDU flags: 0x00
    Root Identifier: 32768 / 2 / 52:54:00:04:2a:87
    Root Path Cost: 0
    Bridge Identifier: 32768 / 2 / 52:54:00:04:2a:87
    Port identifier: 0x8001
    Message Age: 0
    Max Age: 20
    Hello Time: 2
    Forward Delay: 15
    Originating VLAN (PVID): 2

RPVST+

RPVST+ behaves exactly like PVST+. There are just some additional fields in the BPDU. Untagged SSTP BPDU:

Frame 13: 64 bytes on wire (512 bits), 64 bytes captured (512 bits)
IEEE 802.3 Ethernet 
    Destination: 01:00:0c:cc:cc:cd
    Source: 52:54:00:04:2a:87
    Length: 50
Logical-Link Control
    DSAP: SNAP (0xaa)
    SSAP: SNAP (0xaa)
    Control field: U, func=UI (0x03)
    Organization Code: 00:00:0c (Cisco Systems, Inc)
    PID: PVSTP+ (0x010b)
Spanning Tree Protocol
    Protocol Identifier: Spanning Tree Protocol (0x0000)
    Protocol Version Identifier: Rapid Spanning Tree (2)
    BPDU Type: Rapid/Multiple Spanning Tree (0x02)
    BPDU flags: 0x0e, Port Role: Designated, Proposal
    Root Identifier: 32768 / 1 / 52:54:00:04:2a:87
    Root Path Cost: 0
    Bridge Identifier: 32768 / 1 / 52:54:00:04:2a:87
    Port identifier: 0x8001
    Message Age: 0
    Max Age: 20
    Hello Time: 2
    Forward Delay: 15
    Version 1 Length: 0
    Originating VLAN (PVID): 1

Untagged IEEE BPDU:

Frame 14: 60 bytes on wire (480 bits), 60 bytes captured (480 bits)
IEEE 802.3 Ethernet 
    Destination: 01:80:c2:00:00:00
    Source: 52:54:00:04:2a:87
    Length: 39
    Padding: 00000000000000
Logical-Link Control
    DSAP: Spanning Tree BPDU (0x42)
    SSAP: Spanning Tree BPDU (0x42)
    Control field: U, func=UI (0x03)
Spanning Tree Protocol
    Protocol Identifier: Spanning Tree Protocol (0x0000)
    Protocol Version Identifier: Rapid Spanning Tree (2)
    BPDU Type: Rapid/Multiple Spanning Tree (0x02)
    BPDU flags: 0x0e, Port Role: Designated, Proposal
    Root Identifier: 32768 / 1 / 52:54:00:04:2a:87
    Root Path Cost: 0
    Bridge Identifier: 32768 / 1 / 52:54:00:04:2a:87
    Port identifier: 0x8001
    Message Age: 0
    Max Age: 20
    Hello Time: 2
    Forward Delay: 15
    Version 1 Length: 0

Tagged SSTP BPDU:

Frame 15: 68 bytes on wire (544 bits), 68 bytes captured (544 bits)
Ethernet II, Src: 52:54:00:04:2a:87, Dst: 01:00:0c:cc:cc:cd
    Destination: 01:00:0c:cc:cc:cd
    Source: 52:54:00:04:2a:87
    Type: 802.1Q Virtual LAN (0x8100)
802.1Q Virtual LAN, PRI: 0, DEI: 0, ID: 2
Logical-Link Control
    DSAP: SNAP (0xaa)
    SSAP: SNAP (0xaa)
    Control field: U, func=UI (0x03)
    Organization Code: 00:00:0c (Cisco Systems, Inc)
    PID: PVSTP+ (0x010b)
Spanning Tree Protocol
    Protocol Identifier: Spanning Tree Protocol (0x0000)
    Protocol Version Identifier: Rapid Spanning Tree (2)
    BPDU Type: Rapid/Multiple Spanning Tree (0x02)
    BPDU flags: 0x0e, Port Role: Designated, Proposal
    Root Identifier: 32768 / 2 / 52:54:00:04:2a:87
    Root Path Cost: 0
    Bridge Identifier: 32768 / 2 / 52:54:00:04:2a:87
    Port identifier: 0x8001
    Message Age: 0
    Max Age: 20
    Hello Time: 2
    Forward Delay: 15
    Version 1 Length: 0
    Originating VLAN (PVID): 2

MST

For MST, there is only untagged BPDU with a destination MAC of 0180.c200.000. It is encapsulated with 802.2 LLC:

Frame 62: 119 bytes on wire (952 bits), 119 bytes captured (952 bits)
IEEE 802.3 Ethernet 
    Destination: 01:80:c2:00:00:00
    Source: 52:54:00:04:2a:87
    Length: 105
Logical-Link Control
    DSAP: Spanning Tree BPDU (0x42)
    SSAP: Spanning Tree BPDU (0x42)
    Control field: U, func=UI (0x03)
Spanning Tree Protocol
    Protocol Identifier: Spanning Tree Protocol (0x0000)
    Protocol Version Identifier: Multiple Spanning Tree (3)
    BPDU Type: Rapid/Multiple Spanning Tree (0x02)
    BPDU flags: 0x0e, Port Role: Designated, Proposal
    Root Identifier: 32768 / 0 / 52:54:00:04:2a:87
    Root Path Cost: 0
    Bridge Identifier: 32768 / 0 / 52:54:00:04:2a:87
    Port identifier: 0x8001
    Message Age: 0
    Max Age: 20
    Hello Time: 2
    Forward Delay: 15
    Version 1 Length: 0
    Version 3 Length: 64
    MST Extension

Until now, all PDUs have been untagged, except for PVST+/RPVST+ for VLANs other than the native VLAN. Currently, the native VLAN is allowed on the trunk:

SW1#show int gi0/0 trunk

Port        Mode             Encapsulation  Status        Native vlan
Gi0/0       on               802.1q         trunking      1

Port        Vlans allowed on trunk
Gi0/0       1-4094

Port        Vlans allowed and active in management domain
Gi0/0       1

Port        Vlans in spanning tree forwarding state and not pruned
Gi0/0       1

What happens if we remove VLAN 1 from the trunk? Let’s find out!

Trunk Without VLAN 1

We’ll remove VLAN 1 from allowed VLANs on the trunk:

SW1(config-if)#switchport trunk allowed vlan remove 1

SW1#show int gi0/0 trunk

Port        Mode             Encapsulation  Status        Native vlan
Gi0/0       on               802.1q         trunking      1

Port        Vlans allowed on trunk
Gi0/0       2-4094

Port        Vlans allowed and active in management domain
Gi0/0       none

Port        Vlans in spanning tree forwarding state and not pruned
Gi0/0       none

After modifying the configuration, all the PDUs like CDP, LLDP, DTP, PAgP, LACP, are still being sent untagged. The control plane protocols are not impacted by removing VLAN 1. Essentially, there is some protection to not break control plane protocols even if transit data is not being allowed.

The only change is that the PVST+/RPVST+ BPDUs are all tagged now:

Why are there no untagged SSTP or IEEE BPDUs? This is because STP is not running for VLAN 1 on Gi0/0 any longer:

SW1#show span vlan 1

VLAN0001
  Spanning tree enabled protocol ieee
  Root ID    Priority    32769
             Address     5254.000b.4506
             This bridge is the root
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    32769  (priority 32768 sys-id-ext 1)
             Address     5254.000b.4506
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time  300 sec

Interface           Role Sts Cost      Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Gi0/1               Desg FWD 4         128.2    P2p 
Gi0/2               Desg FWD 4         128.3    P2p 
Gi0/3               Desg FWD 4         128.4    P2p

What about MST, though? Since MST does not send BPDUs per VLAN, they are sent untagged as always:

Frame 27: 119 bytes on wire (952 bits), 119 bytes captured (952 bits)
IEEE 802.3 Ethernet 
    Destination: 01:80:c2:00:00:00
    Source: 52:54:00:04:2a:87
    Length: 105
Logical-Link Control
    DSAP: Spanning Tree BPDU (0x42)
    SSAP: Spanning Tree BPDU (0x42)
    Control field: U, func=UI (0x03)
Spanning Tree Protocol
    Protocol Identifier: Spanning Tree Protocol (0x0000)
    Protocol Version Identifier: Multiple Spanning Tree (3)
    BPDU Type: Rapid/Multiple Spanning Tree (0x02)
    BPDU flags: 0x0e, Port Role: Designated, Proposal
    Root Identifier: 32768 / 0 / 52:54:00:04:2a:87
    Root Path Cost: 0
    Bridge Identifier: 32768 / 0 / 52:54:00:04:2a:87
    Port identifier: 0x8001
    Message Age: 0
    Max Age: 20
    Hello Time: 2
    Forward Delay: 15
    Version 1 Length: 0
    Version 3 Length: 64
    MST Extension

Removing the native VLAN from the trunk does not stop PDUs from being sent. They are still sent untagged with the exception of PVST+/RPVST+ that stop sending BPDUs for the native VLAN.

Now let’s take a look what happens when we change the native VLAN from 1 to 2.

Trunk Native VLAN 2

The native VLAN is set to 2. Note that VLAN 1 is once again allowed:

SW1(config-if)#switchport trunk native vlan2

SW1#show int gi0/0 trunk

Port        Mode             Encapsulation  Status        Native vlan
Gi0/0       on               802.1q         trunking      2

Port        Vlans allowed on trunk
Gi0/0       1-4094

Port        Vlans allowed and active in management domain
Gi0/0       1-2

Port        Vlans in spanning tree forwarding state and not pruned
Gi0/0       1-2

CDP

The CDP frame is now tagged with VLAN 1:

Frame 367: 358 bytes on wire (2864 bits), 358 bytes captured (2864 bits)
Ethernet II, Src: 52:54:00:04:2a:87, Dst: 01:00:0c:cc:cc:cc
    Destination: 01:00:0c:cc:cc:cc
    Source: 52:54:00:04:2a:87
    Type: 802.1Q Virtual LAN (0x8100)
802.1Q Virtual LAN, PRI: 0, DEI: 0, ID: 1
Logical-Link Control
    DSAP: SNAP (0xaa)
    SSAP: SNAP (0xaa)
    Control field: U, func=UI (0x03)
    Organization Code: 00:00:0c (Cisco Systems, Inc)
    PID: CDP (0x2000)
Cisco Discovery Protocol
    Version: 2
    TTL: 180 seconds
    Checksum: 0x464d [correct]
    [Checksum Status: Good]
    Device ID: SW2
    Software Version
    Platform: Cisco 
    Addresses
    Port ID: GigabitEthernet0/0
    Capabilities
    VTP Management Domain: 
    Native VLAN: 2
    Duplex: Full
    Trust Bitmap: 0x00
    Untrusted port CoS: 0x00
    Management Addresses

LLDP

For LLDP, the frame is still untagged:

Frame 94: 306 bytes on wire (2448 bits), 306 bytes captured (2448 bits)
Ethernet II, Src: 52:54:00:0b:45:06, Dst: 01:80:c2:00:00:0e
    Destination: 01:80:c2:00:00:0e
    Source: 52:54:00:0b:45:06
    Type: 802.1 Link Layer Discovery Protocol (LLDP) (0x88cc)
    Trailer: 100000
Link Layer Discovery Protocol
    Chassis Subtype = MAC address, Id: 52:54:00:0b:45:06
    Port Subtype = Interface name, Id: Gi0/0
    Time To Live = 120 sec
    System Name = SW1
     [truncated]System Description = Cisco IOS Software, vios_l2 Software (vios_l2-ADVENTERPRISEK9-M), Experimental Version 15.2(20200924:215240) [sweickge-sep24-2020-l2iol-release 135]\nCopyright (c) 1986-2020 by Cisco Systems, Inc.\nCompiled
    Port Description = GigabitEthernet0/0
    Capabilities
    End of LLDPDU

DTP

Interestingly, DTP is untagged as opposed to the other Cisco protocols:

Frame 24: 60 bytes on wire (480 bits), 60 bytes captured (480 bits)
IEEE 802.3 Ethernet 
Logical-Link Control
    DSAP: SNAP (0xaa)
    SSAP: SNAP (0xaa)
    Control field: U, func=UI (0x03)
    Organization Code: 00:00:0c (Cisco Systems, Inc)
    PID: DTP (0x2004)
Dynamic Trunk Protocol:  (Operating/Administrative): Trunk/On (0x81) (Operating/Administrative): 802.1Q/802.1Q (0xa5): 52:54:00:0b:45:06
    Version: 1
    Domain
    Trunk Status
    Trunk Type
    Sender ID

PAgP

For PAgP, the frame is tagged:

Frame 128: 88 bytes on wire (704 bits), 88 bytes captured (704 bits)
Ethernet II, Src: 52:54:00:0b:45:06, Dst: 01:00:0c:cc:cc:cc
    Destination: 01:00:0c:cc:cc:cc
    Source: 52:54:00:0b:45:06
    Type: 802.1Q Virtual LAN (0x8100)
802.1Q Virtual LAN, PRI: 0, DEI: 0, ID: 1
Logical-Link Control
    DSAP: SNAP (0xaa)
    SSAP: SNAP (0xaa)
    Control field: U, func=UI (0x03)
    Organization Code: 00:00:0c (Cisco Systems, Inc)
    PID: PAgP (0x0104)
Port Aggregation Protocol
    Version: Info PDU (0x01)
    Flags: 0x00
    Local Device ID: 52:54:00:0b:80:00
    Local Learn Capability: Arbitrary Distribution (0x02)
    Local Port Hot Standby Priority: 128
    Local Sent Port ifindex: 1
    Local Group Capability: 0x00010001
    Local Group ifindex: 0
    Partner Device ID: 00:00:00:00:00:00
    Partner Learn Capability: Unknown (0x00)
    Partner Port Hot Standby Priority: 0
    Partner Sent Port ifindex: 0
    Partner Group Capability: 0x00000000
    Partner Group ifindex: 0
    Partner Count: 0
    Number of TLVs: 2
    TLV Entry #1
    TLV Entry #2

LACP

LACP is still untagged, as expected:

Frame 190: 124 bytes on wire (992 bits), 124 bytes captured (992 bits)
Ethernet II, Src: 52:54:00:0b:45:06, Dst: 01:80:c2:00:00:02
    Destination: 01:80:c2:00:00:02
    Source: 52:54:00:0b:45:06
    Type: Slow Protocols (0x8809)
Slow Protocols
Link Aggregation Control Protocol
    LACP Version: 0x01
    TLV Type: Actor Information (0x01)
    TLV Length: 0x14
    Actor System Priority: 32768
    Actor System ID: 52:54:00:0b:80:00
    Actor Key: 1
    Actor Port Priority: 32768
    Actor Port: 1
    Actor State: 0x45, LACP Activity, Aggregation, Defaulted
    [Actor State Flags: *F***G*A]
    Reserved: 000000
    TLV Type: Partner Information (0x02)
    TLV Length: 0x14
    Partner System Priority: 0
    Partner System: 00:00:00:00:00:00
    Partner Key: 0
    Partner Port Priority: 0
    Partner Port: 0
    Partner State: 0x00
    [Partner State Flags: ********]
    Reserved: 000000
    TLV Type: Collector Information (0x03)
    TLV Length: 0x10
    Collector Max Delay: 32768
    Reserved: 000000000000000000000000
    TLV Type: Terminator (0x00)
    TLV Length: 0x00
    Pad: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

PVST+

The SSTP BPDU is now sent tagged with VLAN 1:

Frame 32: 68 bytes on wire (544 bits), 68 bytes captured (544 bits)
Ethernet II, Src: 52:54:00:04:2a:87, Dst: 01:00:0c:cc:cc:cd
802.1Q Virtual LAN, PRI: 0, DEI: 0, ID: 1
Logical-Link Control
    DSAP: SNAP (0xaa)
    SSAP: SNAP (0xaa)
    Control field: U, func=UI (0x03)
    Organization Code: 00:00:0c (Cisco Systems, Inc)
    PID: PVSTP+ (0x010b)
Spanning Tree Protocol
    Protocol Identifier: Spanning Tree Protocol (0x0000)
    Protocol Version Identifier: Spanning Tree (0)
    BPDU Type: Configuration (0x00)
    BPDU flags: 0x00
    Root Identifier: 32768 / 1 / 52:54:00:04:2a:87
    Root Path Cost: 0
    Bridge Identifier: 32768 / 1 / 52:54:00:04:2a:87
    Port identifier: 0x8001
    Message Age: 0
    Max Age: 20
    Hello Time: 2
    Forward Delay: 15
    Originating VLAN (PVID): 1

The IEEE BPDU is sent untagged:

Frame 30: 60 bytes on wire (480 bits), 60 bytes captured (480 bits)
IEEE 802.3 Ethernet 
    Destination: 01:80:c2:00:00:00
    Source: 52:54:00:04:2a:87
    Length: 38
    Padding: 0000000000000000
Logical-Link Control
    DSAP: Spanning Tree BPDU (0x42)
    SSAP: Spanning Tree BPDU (0x42)
    Control field: U, func=UI (0x03)
Spanning Tree Protocol
    Protocol Identifier: Spanning Tree Protocol (0x0000)
    Protocol Version Identifier: Spanning Tree (0)
    BPDU Type: Configuration (0x00)
    BPDU flags: 0x00
    Root Identifier: 32768 / 1 / 52:54:00:04:2a:87
    Root Path Cost: 0
    Bridge Identifier: 32768 / 1 / 52:54:00:04:2a:87
    Port identifier: 0x8001
    Message Age: 0
    Max Age: 20
    Hello Time: 2
    Forward Delay: 15

The BPDU for VLAN 2 is now untagged as VLAN 2 is the native VLAN:

Frame 31: 64 bytes on wire (512 bits), 64 bytes captured (512 bits)
IEEE 802.3 Ethernet 
    Destination: 01:00:0c:cc:cc:cd
    Source: 52:54:00:04:2a:87
    Length: 50
Logical-Link Control
    DSAP: SNAP (0xaa)
    SSAP: SNAP (0xaa)
    Control field: U, func=UI (0x03)
    Organization Code: 00:00:0c (Cisco Systems, Inc)
    PID: PVSTP+ (0x010b)
Spanning Tree Protocol
    Protocol Identifier: Spanning Tree Protocol (0x0000)
    Protocol Version Identifier: Spanning Tree (0)
    BPDU Type: Configuration (0x00)
    BPDU flags: 0x00
    Root Identifier: 32768 / 2 / 52:54:00:04:2a:87
    Root Path Cost: 0
    Bridge Identifier: 32768 / 2 / 52:54:00:04:2a:87
    Port identifier: 0x8001
    Message Age: 0
    Max Age: 20
    Hello Time: 2
    Forward Delay: 15
    Originating VLAN (PVID): 2

RPVST+

Same as PVST+, just another version of the BPDU. Tagged SSTP BPDU:

Frame 261: 68 bytes on wire (544 bits), 68 bytes captured (544 bits)
Ethernet II, Src: 52:54:00:04:2a:87, Dst: 01:00:0c:cc:cc:cd
    Destination: 01:00:0c:cc:cc:cd
    Source: 52:54:00:04:2a:87
    Type: 802.1Q Virtual LAN (0x8100)
802.1Q Virtual LAN, PRI: 0, DEI: 0, ID: 1
Logical-Link Control
    DSAP: SNAP (0xaa)
    SSAP: SNAP (0xaa)
    Control field: U, func=UI (0x03)
    Organization Code: 00:00:0c (Cisco Systems, Inc)
    PID: PVSTP+ (0x010b)
Spanning Tree Protocol
    Protocol Identifier: Spanning Tree Protocol (0x0000)
    Protocol Version Identifier: Rapid Spanning Tree (2)
    BPDU Type: Rapid/Multiple Spanning Tree (0x02)
    BPDU flags: 0x3c, Forwarding, Learning, Port Role: Designated
    Root Identifier: 32768 / 1 / 52:54:00:04:2a:87
    Root Path Cost: 0
    Bridge Identifier: 32768 / 1 / 52:54:00:04:2a:87
    Port identifier: 0x8001
    Message Age: 0
    Max Age: 20
    Hello Time: 2
    Forward Delay: 15
    Version 1 Length: 0
    Originating VLAN (PVID): 1

Untagged IEEE BPDU:

Frame 262: 60 bytes on wire (480 bits), 60 bytes captured (480 bits)
IEEE 802.3 Ethernet 
Logical-Link Control
    DSAP: Spanning Tree BPDU (0x42)
    SSAP: Spanning Tree BPDU (0x42)
    Control field: U, func=UI (0x03)
Spanning Tree Protocol
    Protocol Identifier: Spanning Tree Protocol (0x0000)
    Protocol Version Identifier: Rapid Spanning Tree (2)
    BPDU Type: Rapid/Multiple Spanning Tree (0x02)
    BPDU flags: 0x3c, Forwarding, Learning, Port Role: Designated
    Root Identifier: 32768 / 1 / 52:54:00:04:2a:87
    Root Path Cost: 0
    Bridge Identifier: 32768 / 1 / 52:54:00:04:2a:87
    Port identifier: 0x8001
    Message Age: 0
    Max Age: 20
    Hello Time: 2
    Forward Delay: 15
    Version 1 Length: 0

Untagged BPDU for VLAN 2:

Frame 263: 64 bytes on wire (512 bits), 64 bytes captured (512 bits)
IEEE 802.3 Ethernet 
Logical-Link Control
    DSAP: SNAP (0xaa)
    SSAP: SNAP (0xaa)
    Control field: U, func=UI (0x03)
    Organization Code: 00:00:0c (Cisco Systems, Inc)
    PID: PVSTP+ (0x010b)
Spanning Tree Protocol
    Protocol Identifier: Spanning Tree Protocol (0x0000)
    Protocol Version Identifier: Rapid Spanning Tree (2)
    BPDU Type: Rapid/Multiple Spanning Tree (0x02)
    BPDU flags: 0x3c, Forwarding, Learning, Port Role: Designated
    Root Identifier: 32768 / 2 / 52:54:00:04:2a:87
    Root Path Cost: 0
    Bridge Identifier: 32768 / 2 / 52:54:00:04:2a:87
    Port identifier: 0x8001
    Message Age: 0
    Max Age: 20
    Hello Time: 2
    Forward Delay: 15
    Version 1 Length: 0
    Originating VLAN (PVID): 2

MST

MST has untagged BPDU as always:

Frame 317: 119 bytes on wire (952 bits), 119 bytes captured (952 bits)
IEEE 802.3 Ethernet 
Logical-Link Control
    DSAP: Spanning Tree BPDU (0x42)
    SSAP: Spanning Tree BPDU (0x42)
    Control field: U, func=UI (0x03)
Spanning Tree Protocol
    Protocol Identifier: Spanning Tree Protocol (0x0000)
    Protocol Version Identifier: Multiple Spanning Tree (3)
    BPDU Type: Rapid/Multiple Spanning Tree (0x02)
    BPDU flags: 0x0e, Port Role: Designated, Proposal
    Root Identifier: 32768 / 0 / 52:54:00:0b:45:06
    Root Path Cost: 0
    Bridge Identifier: 32768 / 0 / 52:54:00:0b:45:06
    Port identifier: 0x8001
    Message Age: 0
    Max Age: 20
    Hello Time: 2
    Forward Delay: 15
    Version 1 Length: 0
    Version 3 Length: 64
    MST Extension

Then, let’s see what happens if we enable tagging of the native VLAN.

Trunk With Native VLAN 1 and Native VLAN tagged

The native VLAN is set to 1 and tagging of native VLAN is enabled:

SW1(config-if)#switchport trunk native vlan 1
SW1(config)#vlan dot1q tag native 

CDP

CDP is now tagged with VLAN 1:

Frame 14: 358 bytes on wire (2864 bits), 358 bytes captured (2864 bits)
Ethernet II, Src: 52:54:00:04:2a:87, Dst: 01:00:0c:cc:cc:cc
    Destination: 01:00:0c:cc:cc:cc
    Source: 52:54:00:04:2a:87
    Type: 802.1Q Virtual LAN (0x8100)
802.1Q Virtual LAN, PRI: 0, DEI: 0, ID: 1
Logical-Link Control
    DSAP: SNAP (0xaa)
    SSAP: SNAP (0xaa)
    Control field: U, func=UI (0x03)
    Organization Code: 00:00:0c (Cisco Systems, Inc)
    PID: CDP (0x2000)
Cisco Discovery Protocol
    Version: 2
    TTL: 180 seconds
    Checksum: 0x474d [correct]
    [Checksum Status: Good]
    Device ID: SW2
    Software Version
    Platform: Cisco 
    Addresses
    Port ID: GigabitEthernet0/0
    Capabilities
    VTP Management Domain: 
    Native VLAN: 1
    Duplex: Full
    Trust Bitmap: 0x00
    Untrusted port CoS: 0x00
    Management Addresses

LLDP

LLDP is also tagged with VLAN 1, which is something I didn’t expect:

Frame 33: 60 bytes on wire (480 bits), 60 bytes captured (480 bits)
Ethernet II, Src: 52:54:00:04:2a:87, Dst: 01:80:c2:00:00:0e
    Destination: 01:80:c2:00:00:0e
    Source: 52:54:00:04:2a:87
    Type: 802.1Q Virtual LAN (0x8100)
802.1Q Virtual LAN, PRI: 0, DEI: 0, ID: 1
Link Layer Discovery Protocol
    Chassis Subtype = MAC address, Id: 52:54:00:04:2a:87
    Port Subtype = Interface name, Id: Gi0/0
    Time To Live = 0 sec
    End of LLDPDU

DTP

DTP is now also tagged:

Frame 28: 60 bytes on wire (480 bits), 60 bytes captured (480 bits)
Ethernet II, Src: 52:54:00:04:2a:87, Dst: 01:00:0c:cc:cc:cc
    Destination: 01:00:0c:cc:cc:cc
    Source: 52:54:00:04:2a:87
    Type: 802.1Q Virtual LAN (0x8100)
802.1Q Virtual LAN, PRI: 0, DEI: 0, ID: 1
Logical-Link Control
    DSAP: SNAP (0xaa)
    SSAP: SNAP (0xaa)
    Control field: U, func=UI (0x03)
    Organization Code: 00:00:0c (Cisco Systems, Inc)
    PID: DTP (0x2004)
Dynamic Trunk Protocol:  (Operating/Administrative): Trunk/On (0x81) (Operating/Administrative): 802.1Q/802.1Q (0xa5): 52:54:00:04:2a:87
    Version: 1
    Domain
    Trunk Status
    Trunk Type
    Sender ID

DTP was untagged for all other scenarios, except when explicitly tagging the native VLAN.

PAgP

PAgP is tagged:

Frame 35: 88 bytes on wire (704 bits), 88 bytes captured (704 bits)
Ethernet II, Src: 52:54:00:04:2a:87, Dst: 01:00:0c:cc:cc:cc
    Destination: 01:00:0c:cc:cc:cc
    Source: 52:54:00:04:2a:87
    Type: 802.1Q Virtual LAN (0x8100)
802.1Q Virtual LAN, PRI: 0, DEI: 0, ID: 1
Logical-Link Control
    DSAP: SNAP (0xaa)
    SSAP: SNAP (0xaa)
    Control field: U, func=UI (0x03)
    Organization Code: 00:00:0c (Cisco Systems, Inc)
    PID: PAgP (0x0104)
Port Aggregation Protocol
    Version: Info PDU (0x01)
    Flags: 0x00
    Local Device ID: 52:54:00:04:80:00
    Local Learn Capability: Arbitrary Distribution (0x02)
    Local Port Hot Standby Priority: 128
    Local Sent Port ifindex: 1
    Local Group Capability: 0x00010001
    Local Group ifindex: 0
    Partner Device ID: 00:00:00:00:00:00
    Partner Learn Capability: Unknown (0x00)
    Partner Port Hot Standby Priority: 0
    Partner Sent Port ifindex: 0
    Partner Group Capability: 0x00000000
    Partner Group ifindex: 0
    Partner Count: 0
    Number of TLVs: 2
    TLV Entry #1
    TLV Entry #2

LACP

LACP is untagged:

Frame 61: 124 bytes on wire (992 bits), 124 bytes captured (992 bits)
Ethernet II, Src: 52:54:00:04:2a:87, Dst: 01:80:c2:00:00:02
    Destination: 01:80:c2:00:00:02
    Source: 52:54:00:04:2a:87
    Type: Slow Protocols (0x8809)
Slow Protocols
Link Aggregation Control Protocol
    LACP Version: 0x01
    TLV Type: Actor Information (0x01)
    TLV Length: 0x14
    Actor System Priority: 32768
    Actor System ID: 52:54:00:04:80:00
    Actor Key: 1
    Actor Port Priority: 32768
    Actor Port: 1
    Actor State: 0x45, LACP Activity, Aggregation, Defaulted
    [Actor State Flags: *F***G*A]
    Reserved: 000000
    TLV Type: Partner Information (0x02)
    TLV Length: 0x14
    Partner System Priority: 0
    Partner System: 00:00:00:00:00:00
    Partner Key: 0
    Partner Port Priority: 0
    Partner Port: 0
    Partner State: 0x00
    [Partner State Flags: ********]
    Reserved: 000000
    TLV Type: Collector Information (0x03)
    TLV Length: 0x10
    Collector Max Delay: 32768
    Reserved: 000000000000000000000000
    TLV Type: Terminator (0x00)
    TLV Length: 0x00
    Pad: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

LACP is the only protocol to remain untagged in all scenarios.

PVST+

SSTP BPDU is sent tagged:

Frame 1: 68 bytes on wire (544 bits), 68 bytes captured (544 bits)
Ethernet II, Src: 52:54:00:04:2a:87, Dst: 01:00:0c:cc:cc:cd
    Destination: 01:00:0c:cc:cc:cd
    Source: 52:54:00:04:2a:87
    Type: 802.1Q Virtual LAN (0x8100)
802.1Q Virtual LAN, PRI: 0, DEI: 0, ID: 1
Logical-Link Control
    DSAP: SNAP (0xaa)
    SSAP: SNAP (0xaa)
    Control field: U, func=UI (0x03)
    Organization Code: 00:00:0c (Cisco Systems, Inc)
    PID: PVSTP+ (0x010b)
Spanning Tree Protocol
    Protocol Identifier: Spanning Tree Protocol (0x0000)
    Protocol Version Identifier: Spanning Tree (0)
    BPDU Type: Configuration (0x00)
    BPDU flags: 0x00
    Root Identifier: 32768 / 1 / 52:54:00:04:2a:87
    Root Path Cost: 0
    Bridge Identifier: 32768 / 1 / 52:54:00:04:2a:87
    Port identifier: 0x8001
    Message Age: 0
    Max Age: 20
    Hello Time: 2
    Forward Delay: 15
    Originating VLAN (PVID): 1

IEEE BPDU is sent untagged:

Frame 2: 60 bytes on wire (480 bits), 60 bytes captured (480 bits)
IEEE 802.3 Ethernet 
Logical-Link Control
    DSAP: Spanning Tree BPDU (0x42)
    SSAP: Spanning Tree BPDU (0x42)
    Control field: U, func=UI (0x03)
Spanning Tree Protocol
    Protocol Identifier: Spanning Tree Protocol (0x0000)
    Protocol Version Identifier: Spanning Tree (0)
    BPDU Type: Configuration (0x00)
    BPDU flags: 0x00
    Root Identifier: 32768 / 1 / 52:54:00:04:2a:87
    Root Path Cost: 0
    Bridge Identifier: 32768 / 1 / 52:54:00:04:2a:87
    Port identifier: 0x8001
    Message Age: 0
    Max Age: 20
    Hello Time: 2
    Forward Delay: 15

BPDU for VLAN 2 is sent tagged:

Frame 3: 68 bytes on wire (544 bits), 68 bytes captured (544 bits)
Ethernet II, Src: 52:54:00:04:2a:87, Dst: 01:00:0c:cc:cc:cd
    Destination: 01:00:0c:cc:cc:cd
    Source: 52:54:00:04:2a:87
    Type: 802.1Q Virtual LAN (0x8100)
802.1Q Virtual LAN, PRI: 0, DEI: 0, ID: 2
Logical-Link Control
    DSAP: SNAP (0xaa)
    SSAP: SNAP (0xaa)
    Control field: U, func=UI (0x03)
    Organization Code: 00:00:0c (Cisco Systems, Inc)
    PID: PVSTP+ (0x010b)
Spanning Tree Protocol
    Protocol Identifier: Spanning Tree Protocol (0x0000)
    Protocol Version Identifier: Spanning Tree (0)
    BPDU Type: Configuration (0x00)
    BPDU flags: 0x00
    Root Identifier: 32768 / 2 / 52:54:00:04:2a:87
    Root Path Cost: 0
    Bridge Identifier: 32768 / 2 / 52:54:00:04:2a:87
    Port identifier: 0x8001
    Message Age: 0
    Max Age: 20
    Hello Time: 2
    Forward Delay: 15
    Originating VLAN (PVID): 2

RPVST+

For RPVST+, it’s the same, just another version of BPDU. SSTP BPDU is tagged:

Frame 87: 68 bytes on wire (544 bits), 68 bytes captured (544 bits)
Ethernet II, Src: 52:54:00:04:2a:87, Dst: 01:00:0c:cc:cc:cd
    Destination: 01:00:0c:cc:cc:cd
    Source: 52:54:00:04:2a:87
    Type: 802.1Q Virtual LAN (0x8100)
802.1Q Virtual LAN, PRI: 0, DEI: 0, ID: 1
Logical-Link Control
    DSAP: SNAP (0xaa)
    SSAP: SNAP (0xaa)
    Control field: U, func=UI (0x03)
    Organization Code: 00:00:0c (Cisco Systems, Inc)
    PID: PVSTP+ (0x010b)
Spanning Tree Protocol
    Protocol Identifier: Spanning Tree Protocol (0x0000)
    Protocol Version Identifier: Rapid Spanning Tree (2)
    BPDU Type: Rapid/Multiple Spanning Tree (0x02)
    BPDU flags: 0x0e, Port Role: Designated, Proposal
    Root Identifier: 32768 / 1 / 52:54:00:04:2a:87
    Root Path Cost: 0
    Bridge Identifier: 32768 / 1 / 52:54:00:04:2a:87
    Port identifier: 0x8001
    Message Age: 0
    Max Age: 20
    Hello Time: 2
    Forward Delay: 15
    Version 1 Length: 0
    Originating VLAN (PVID): 1

Untagged IEEE BPDU:

Frame 88: 60 bytes on wire (480 bits), 60 bytes captured (480 bits)
IEEE 802.3 Ethernet 
Logical-Link Control
    DSAP: Spanning Tree BPDU (0x42)
    SSAP: Spanning Tree BPDU (0x42)
    Control field: U, func=UI (0x03)
Spanning Tree Protocol
    Protocol Identifier: Spanning Tree Protocol (0x0000)
    Protocol Version Identifier: Rapid Spanning Tree (2)
    BPDU Type: Rapid/Multiple Spanning Tree (0x02)
    BPDU flags: 0x0e, Port Role: Designated, Proposal
    Root Identifier: 32768 / 1 / 52:54:00:04:2a:87
    Root Path Cost: 0
    Bridge Identifier: 32768 / 1 / 52:54:00:04:2a:87
    Port identifier: 0x8001
    Message Age: 0
    Max Age: 20
    Hello Time: 2
    Forward Delay: 15
    Version 1 Length: 0

Tagged BPDU for VLAN 2:

Frame 89: 68 bytes on wire (544 bits), 68 bytes captured (544 bits)
Ethernet II, Src: 52:54:00:04:2a:87, Dst: 01:00:0c:cc:cc:cd
    Destination: 01:00:0c:cc:cc:cd
    Source: 52:54:00:04:2a:87
    Type: 802.1Q Virtual LAN (0x8100)
802.1Q Virtual LAN, PRI: 0, DEI: 0, ID: 2
Logical-Link Control
    DSAP: SNAP (0xaa)
    SSAP: SNAP (0xaa)
    Control field: U, func=UI (0x03)
    Organization Code: 00:00:0c (Cisco Systems, Inc)
    PID: PVSTP+ (0x010b)
Spanning Tree Protocol
    Protocol Identifier: Spanning Tree Protocol (0x0000)
    Protocol Version Identifier: Rapid Spanning Tree (2)
    BPDU Type: Rapid/Multiple Spanning Tree (0x02)
    BPDU flags: 0x0e, Port Role: Designated, Proposal
    Root Identifier: 32768 / 2 / 52:54:00:04:2a:87
    Root Path Cost: 0
    Bridge Identifier: 32768 / 2 / 52:54:00:04:2a:87
    Port identifier: 0x8001
    Message Age: 0
    Max Age: 20
    Hello Time: 2
    Forward Delay: 15
    Version 1 Length: 0
    Originating VLAN (PVID): 2

MST

MST is untagged as always:

Frame 130: 119 bytes on wire (952 bits), 119 bytes captured (952 bits)
IEEE 802.3 Ethernet 
Logical-Link Control
    DSAP: Spanning Tree BPDU (0x42)
    SSAP: Spanning Tree BPDU (0x42)
    Control field: U, func=UI (0x03)
Spanning Tree Protocol
    Protocol Identifier: Spanning Tree Protocol (0x0000)
    Protocol Version Identifier: Multiple Spanning Tree (3)
    BPDU Type: Rapid/Multiple Spanning Tree (0x02)
    BPDU flags: 0x0e, Port Role: Designated, Proposal
    Root Identifier: 32768 / 0 / 52:54:00:04:2a:87
    Root Path Cost: 0
    Bridge Identifier: 32768 / 0 / 52:54:00:04:2a:87
    Port identifier: 0x8001
    Message Age: 0
    Max Age: 20
    Hello Time: 2
    Forward Delay: 15
    Version 1 Length: 0
    Version 3 Length: 64
    MST Extension

Trunk With Native VLAN 2, VLAN 2 Not Allowed

What happens if we set the native VLAN to 2, but remove it from the trunk? Is this different than removing VLAN 1? Let’s see!

SW1(config-if)#switchport trunk native vlan 2
SW1(config-if)#switchport trunk allowed vlan remove 2

CDP

CDP is tagged with VLAN 1:

Frame 43: 60 bytes on wire (480 bits), 60 bytes captured (480 bits)
Ethernet II, Src: 52:54:00:0b:45:06, Dst: 01:00:0c:cc:cc:cc
    Destination: 01:00:0c:cc:cc:cc
    Source: 52:54:00:0b:45:06
    Type: 802.1Q Virtual LAN (0x8100)
802.1Q Virtual LAN, PRI: 0, DEI: 0, ID: 1
    000. .... .... .... = Priority: Best Effort (default) (0)
    ...0 .... .... .... = DEI: Ineligible
    .... 0000 0000 0001 = ID: 1
    Length: 41
    Padding: 00
Logical-Link Control
    DSAP: SNAP (0xaa)
    SSAP: SNAP (0xaa)
    Control field: U, func=UI (0x03)
    Organization Code: 00:00:0c (Cisco Systems, Inc)
    PID: CDP (0x2000)
Cisco Discovery Protocol
    Version: 2
    TTL: 0 seconds
    Checksum: 0x75ff [correct]
    [Checksum Status: Good]
    Device ID: SW1
    Port ID: GigabitEthernet0/0

LLDP

LLDP is untagged:

Frame 6: 306 bytes on wire (2448 bits), 306 bytes captured (2448 bits)
Ethernet II, Src: 52:54:00:04:2a:87, Dst: 01:80:c2:00:00:0e
    Destination: 01:80:c2:00:00:0e
    Source: 52:54:00:04:2a:87
    Type: 802.1 Link Layer Discovery Protocol (LLDP) (0x88cc)
    Trailer: 100000
Link Layer Discovery Protocol
    Chassis Subtype = MAC address, Id: 52:54:00:04:2a:87
    Port Subtype = Interface name, Id: Gi0/0
    Time To Live = 120 sec
    System Name = SW2
     [truncated]System Description = Cisco IOS Software, vios_l2 Software (vios_l2-ADVENTERPRISEK9-M), Experimental Version 15.2(20200924:215240) [sweickge-sep24-2020-l2iol-release 135]\nCopyright (c) 1986-2020 by Cisco Systems, Inc.\nCompiled
    Port Description = GigabitEthernet0/0
    Capabilities
    End of LLDPDU

DTP

DTP is untagged:

Frame 3: 60 bytes on wire (480 bits), 60 bytes captured (480 bits)
IEEE 802.3 Ethernet 
    Destination: 01:00:0c:cc:cc:cc
    Source: 52:54:00:0b:45:06
    Length: 34
    Padding: 000000000000000000000000
Logical-Link Control
    DSAP: SNAP (0xaa)
    SSAP: SNAP (0xaa)
    Control field: U, func=UI (0x03)
    Organization Code: 00:00:0c (Cisco Systems, Inc)
    PID: DTP (0x2004)
Dynamic Trunk Protocol:  (Operating/Administrative): Trunk/On (0x81) (Operating/Administrative): 802.1Q/802.1Q (0xa5): 52:54:00:0b:45:06
    Version: 1
    Domain
    Trunk Status
    Trunk Type
    Sender ID

PAgP

PAgP is tagged with VLAN 1:

Frame 41: 88 bytes on wire (704 bits), 88 bytes captured (704 bits)
Ethernet II, Src: 52:54:00:0b:45:06, Dst: 01:00:0c:cc:cc:cc
    Destination: 01:00:0c:cc:cc:cc
    Source: 52:54:00:0b:45:06
    Type: 802.1Q Virtual LAN (0x8100)
802.1Q Virtual LAN, PRI: 0, DEI: 0, ID: 1
    000. .... .... .... = Priority: Best Effort (default) (0)
    ...0 .... .... .... = DEI: Ineligible
    .... 0000 0000 0001 = ID: 1
    Length: 70
Logical-Link Control
    DSAP: SNAP (0xaa)
    SSAP: SNAP (0xaa)
    Control field: U, func=UI (0x03)
    Organization Code: 00:00:0c (Cisco Systems, Inc)
    PID: PAgP (0x0104)
Port Aggregation Protocol
    Version: Info PDU (0x01)
    Flags: 0x00
    Local Device ID: 52:54:00:0b:80:00
    Local Learn Capability: Arbitrary Distribution (0x02)
    Local Port Hot Standby Priority: 128
    Local Sent Port ifindex: 1
    Local Group Capability: 0x00010001
    Local Group ifindex: 0
    Partner Device ID: 00:00:00:00:00:00
    Partner Learn Capability: Unknown (0x00)
    Partner Port Hot Standby Priority: 0
    Partner Sent Port ifindex: 0
    Partner Group Capability: 0x00000000
    Partner Group ifindex: 0
    Partner Count: 0
    Number of TLVs: 2
    TLV Entry #1
    TLV Entry #2

LACP

LACP is untagged:

Frame 86: 124 bytes on wire (992 bits), 124 bytes captured (992 bits)
Ethernet II, Src: 52:54:00:0b:45:06, Dst: 01:80:c2:00:00:02
    Destination: 01:80:c2:00:00:02
    Source: 52:54:00:0b:45:06
    Type: Slow Protocols (0x8809)
Slow Protocols
Link Aggregation Control Protocol
    LACP Version: 0x01
    TLV Type: Actor Information (0x01)
    TLV Length: 0x14
    Actor System Priority: 32768
    Actor System ID: 52:54:00:0b:80:00
    Actor Key: 1
    Actor Port Priority: 32768
    Actor Port: 1
    Actor State: 0x45, LACP Activity, Aggregation, Defaulted
    [Actor State Flags: *F***G*A]
    Reserved: 000000
    TLV Type: Partner Information (0x02)
    TLV Length: 0x14
    Partner System Priority: 0
    Partner System: 00:00:00:00:00:00
    Partner Key: 0
    Partner Port Priority: 0
    Partner Port: 0
    Partner State: 0x00
    [Partner State Flags: ********]
    Reserved: 000000
    TLV Type: Collector Information (0x03)
    TLV Length: 0x10
    Collector Max Delay: 32768
    Reserved: 000000000000000000000000
    TLV Type: Terminator (0x00)
    TLV Length: 0x00
    Pad: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

PVST+

The SSTP BPDU is tagged:

Frame 1: 68 bytes on wire (544 bits), 68 bytes captured (544 bits)
Ethernet II, Src: 52:54:00:04:2a:87, Dst: 01:00:0c:cc:cc:cd
    Destination: 01:00:0c:cc:cc:cd
    Source: 52:54:00:04:2a:87
    Type: 802.1Q Virtual LAN (0x8100)
802.1Q Virtual LAN, PRI: 0, DEI: 0, ID: 1
    000. .... .... .... = Priority: Best Effort (default) (0)
    ...0 .... .... .... = DEI: Ineligible
    .... 0000 0000 0001 = ID: 1
    Length: 50
Logical-Link Control
    DSAP: SNAP (0xaa)
    SSAP: SNAP (0xaa)
    Control field: U, func=UI (0x03)
    Organization Code: 00:00:0c (Cisco Systems, Inc)
    PID: PVSTP+ (0x010b)
Spanning Tree Protocol
    Protocol Identifier: Spanning Tree Protocol (0x0000)
    Protocol Version Identifier: Spanning Tree (0)
    BPDU Type: Configuration (0x00)
    BPDU flags: 0x00
    Root Identifier: 32768 / 1 / 52:54:00:04:2a:87
    Root Path Cost: 0
    Bridge Identifier: 32768 / 1 / 52:54:00:04:2a:87
    Port identifier: 0x8001
    Message Age: 0
    Max Age: 20
    Hello Time: 2
    Forward Delay: 15
    Originating VLAN (PVID): 1

The IEEE BPDU is untagged:

Frame 2: 60 bytes on wire (480 bits), 60 bytes captured (480 bits)
IEEE 802.3 Ethernet 
    Destination: 01:80:c2:00:00:00
    Source: 52:54:00:04:2a:87
    Length: 38
    Padding: 0000000000000000
Logical-Link Control
    DSAP: Spanning Tree BPDU (0x42)
    SSAP: Spanning Tree BPDU (0x42)
    Control field: U, func=UI (0x03)
Spanning Tree Protocol
    Protocol Identifier: Spanning Tree Protocol (0x0000)
    Protocol Version Identifier: Spanning Tree (0)
    BPDU Type: Configuration (0x00)
    BPDU flags: 0x00
    Root Identifier: 32768 / 1 / 52:54:00:04:2a:87
    Root Path Cost: 0
    Bridge Identifier: 32768 / 1 / 52:54:00:04:2a:87
    Port identifier: 0x8001
    Message Age: 0
    Max Age: 20
    Hello Time: 2
    Forward Delay: 15

There is no BPDU for VLAN 2 as it’s not allowed on the trunk.

RPVST+

The SSTP BPDU is tagged:

Frame 139: 68 bytes on wire (544 bits), 68 bytes captured (544 bits)
Ethernet II, Src: 52:54:00:04:2a:87, Dst: 01:00:0c:cc:cc:cd
    Destination: 01:00:0c:cc:cc:cd
    Source: 52:54:00:04:2a:87
    Type: 802.1Q Virtual LAN (0x8100)
802.1Q Virtual LAN, PRI: 0, DEI: 0, ID: 1
    000. .... .... .... = Priority: Best Effort (default) (0)
    ...0 .... .... .... = DEI: Ineligible
    .... 0000 0000 0001 = ID: 1
    Length: 50
Logical-Link Control
    DSAP: SNAP (0xaa)
    SSAP: SNAP (0xaa)
    Control field: U, func=UI (0x03)
    Organization Code: 00:00:0c (Cisco Systems, Inc)
    PID: PVSTP+ (0x010b)
Spanning Tree Protocol
    Protocol Identifier: Spanning Tree Protocol (0x0000)
    Protocol Version Identifier: Rapid Spanning Tree (2)
    BPDU Type: Rapid/Multiple Spanning Tree (0x02)
    BPDU flags: 0x0e, Port Role: Designated, Proposal
    Root Identifier: 32768 / 1 / 52:54:00:04:2a:87
    Root Path Cost: 0
    Bridge Identifier: 32768 / 1 / 52:54:00:04:2a:87
    Port identifier: 0x8001
    Message Age: 0
    Max Age: 20
    Hello Time: 2
    Forward Delay: 15
    Version 1 Length: 0
    Originating VLAN (PVID): 1

The IEEE BPDU is untagged:

Frame 140: 60 bytes on wire (480 bits), 60 bytes captured (480 bits)
IEEE 802.3 Ethernet 
    Destination: 01:80:c2:00:00:00
    Source: 52:54:00:04:2a:87
    Length: 39
    Padding: 00000000000000
Logical-Link Control
    DSAP: Spanning Tree BPDU (0x42)
    SSAP: Spanning Tree BPDU (0x42)
    Control field: U, func=UI (0x03)
Spanning Tree Protocol
    Protocol Identifier: Spanning Tree Protocol (0x0000)
    Protocol Version Identifier: Rapid Spanning Tree (2)
    BPDU Type: Rapid/Multiple Spanning Tree (0x02)
    BPDU flags: 0x0e, Port Role: Designated, Proposal
    Root Identifier: 32768 / 1 / 52:54:00:04:2a:87
    Root Path Cost: 0
    Bridge Identifier: 32768 / 1 / 52:54:00:04:2a:87
    Port identifier: 0x8001
    Message Age: 0
    Max Age: 20
    Hello Time: 2
    Forward Delay: 15
    Version 1 Length: 0

There is no BPDU for VLAN 2. Same as with PVST+, of course.

MST

With MST, the BPDU is untagged as always:

Frame 159: 119 bytes on wire (952 bits), 119 bytes captured (952 bits)
IEEE 802.3 Ethernet 
    Destination: 01:80:c2:00:00:00
    Source: 52:54:00:04:2a:87
    Length: 105
Logical-Link Control
    DSAP: Spanning Tree BPDU (0x42)
    SSAP: Spanning Tree BPDU (0x42)
    Control field: U, func=UI (0x03)
Spanning Tree Protocol
    Protocol Identifier: Spanning Tree Protocol (0x0000)
    Protocol Version Identifier: Multiple Spanning Tree (3)
    BPDU Type: Rapid/Multiple Spanning Tree (0x02)
    BPDU flags: 0x0e, Port Role: Designated, Proposal
    Root Identifier: 32768 / 0 / 52:54:00:04:2a:87
    Root Path Cost: 0
    Bridge Identifier: 32768 / 0 / 52:54:00:04:2a:87
    Port identifier: 0x8001
    Message Age: 0
    Max Age: 20
    Hello Time: 2
    Forward Delay: 15
    Version 1 Length: 0
    Version 3 Length: 64
    MST Extension

Trunk With Native VLAN 2, VLAN 1 and 2 Not Allowed

What happens if we remove VLAN 1 from the trunk?

SW1(config-if)#switchport trunk allowed vlan remove 1

CDP

CDP is sent tagged with VLAN 1:

Frame 4: 358 bytes on wire (2864 bits), 358 bytes captured (2864 bits)
Ethernet II, Src: 52:54:00:04:2a:87, Dst: 01:00:0c:cc:cc:cc
    Destination: 01:00:0c:cc:cc:cc
    Source: 52:54:00:04:2a:87
    Type: 802.1Q Virtual LAN (0x8100)
802.1Q Virtual LAN, PRI: 0, DEI: 0, ID: 1
Logical-Link Control
    DSAP: SNAP (0xaa)
    SSAP: SNAP (0xaa)
    Control field: U, func=UI (0x03)
    Organization Code: 00:00:0c (Cisco Systems, Inc)
    PID: CDP (0x2000)
Cisco Discovery Protocol
    Version: 2
    TTL: 180 seconds
    Checksum: 0x464d [correct]
    [Checksum Status: Good]
    Device ID: SW2
    Software Version
    Platform: Cisco 
    Addresses
    Port ID: GigabitEthernet0/0
    Capabilities
    VTP Management Domain: 
    Native VLAN: 2
    Duplex: Full
    Trust Bitmap: 0x00
    Untrusted port CoS: 0x00
    Management Addresses

LLDP

LLDP is untagged:

Frame 6: 306 bytes on wire (2448 bits), 306 bytes captured (2448 bits)
Ethernet II, Src: 52:54:00:04:2a:87, Dst: 01:80:c2:00:00:0e
    Destination: 01:80:c2:00:00:0e
    Source: 52:54:00:04:2a:87
    Type: 802.1 Link Layer Discovery Protocol (LLDP) (0x88cc)
    Trailer: 100000
Link Layer Discovery Protocol
    Chassis Subtype = MAC address, Id: 52:54:00:04:2a:87
    Port Subtype = Interface name, Id: Gi0/0
    Time To Live = 120 sec
    System Name = SW2
     [truncated]System Description = Cisco IOS Software, vios_l2 Software (vios_l2-ADVENTERPRISEK9-M), Experimental Version 15.2(20200924:215240) [sweickge-sep24-2020-l2iol-release 135]\nCopyright (c) 1986-2020 by Cisco Systems, Inc.\nCompiled
    Port Description = GigabitEthernet0/0
    Capabilities
    End of LLDPDU

DTP

DTP is untagged:

Frame 2: 60 bytes on wire (480 bits), 60 bytes captured (480 bits)
IEEE 802.3 Ethernet 
    Destination: 01:00:0c:cc:cc:cc
    Source: 52:54:00:04:2a:87
    Length: 34
    Padding: 000000000000000000000000
Logical-Link Control
    DSAP: SNAP (0xaa)
    SSAP: SNAP (0xaa)
    Control field: U, func=UI (0x03)
    Organization Code: 00:00:0c (Cisco Systems, Inc)
    PID: DTP (0x2004)
Dynamic Trunk Protocol:  (Operating/Administrative): Trunk/On (0x81) (Operating/Administrative): 802.1Q/802.1Q (0xa5): 52:54:00:04:2a:87
    Version: 1
    Domain
    Trunk Status
    Trunk Type
    Sender ID

PAgP

PAgP is tagged with VLAN 1:

Frame 18: 88 bytes on wire (704 bits), 88 bytes captured (704 bits)
Ethernet II, Src: 52:54:00:0b:45:06, Dst: 01:00:0c:cc:cc:cc
    Destination: 01:00:0c:cc:cc:cc
    Source: 52:54:00:0b:45:06
    Type: 802.1Q Virtual LAN (0x8100)
802.1Q Virtual LAN, PRI: 0, DEI: 0, ID: 1
Logical-Link Control
    DSAP: SNAP (0xaa)
    SSAP: SNAP (0xaa)
    Control field: U, func=UI (0x03)
    Organization Code: 00:00:0c (Cisco Systems, Inc)
    PID: PAgP (0x0104)
Port Aggregation Protocol
    Version: Info PDU (0x01)
    Flags: 0x00
    Local Device ID: 52:54:00:0b:80:00
    Local Learn Capability: Arbitrary Distribution (0x02)
    Local Port Hot Standby Priority: 128
    Local Sent Port ifindex: 1
    Local Group Capability: 0x00000000
    Local Group ifindex: 0
    Partner Device ID: 00:00:00:00:00:00
    Partner Learn Capability: Unknown (0x00)
    Partner Port Hot Standby Priority: 0
    Partner Sent Port ifindex: 0
    Partner Group Capability: 0x00000000
    Partner Group ifindex: 0
    Partner Count: 0
    Number of TLVs: 2
    TLV Entry #1
    TLV Entry #2

LACP

LACP is untagged:

Frame 22: 124 bytes on wire (992 bits), 124 bytes captured (992 bits)
Ethernet II, Src: 52:54:00:0b:45:06, Dst: 01:80:c2:00:00:02
    Destination: 01:80:c2:00:00:02
    Source: 52:54:00:0b:45:06
    Type: Slow Protocols (0x8809)
Slow Protocols
Link Aggregation Control Protocol
    LACP Version: 0x01
    TLV Type: Actor Information (0x01)
    TLV Length: 0x14
    Actor System Priority: 32768
    Actor System ID: 52:54:00:0b:80:00
    Actor Key: 1
    Actor Port Priority: 32768
    Actor Port: 1
    Actor State: 0x45, LACP Activity, Aggregation, Defaulted
    [Actor State Flags: *F***G*A]
    Reserved: 000000
    TLV Type: Partner Information (0x02)
    TLV Length: 0x14
    Partner System Priority: 0
    Partner System: 00:00:00:00:00:00
    Partner Key: 0
    Partner Port Priority: 0
    Partner Port: 0
    Partner State: 0x00
    [Partner State Flags: ********]
    Reserved: 000000
    TLV Type: Collector Information (0x03)
    TLV Length: 0x10
    Collector Max Delay: 32768
    Reserved: 000000000000000000000000
    TLV Type: Terminator (0x00)
    TLV Length: 0x00
    Pad: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

PVST+

No BPDUs as the VLANs aren’t allowed on the trunks.

RPVST+

Same as for PVST+.

MST

BPDUs are sent untagged:

Frame 1: 119 bytes on wire (952 bits), 119 bytes captured (952 bits)
IEEE 802.3 Ethernet 
    Destination: 01:80:c2:00:00:00
    Source: 52:54:00:04:2a:87
    Length: 105
Logical-Link Control
    DSAP: Spanning Tree BPDU (0x42)
    SSAP: Spanning Tree BPDU (0x42)
    Control field: U, func=UI (0x03)
Spanning Tree Protocol
    Protocol Identifier: Spanning Tree Protocol (0x0000)
    Protocol Version Identifier: Multiple Spanning Tree (3)
    BPDU Type: Rapid/Multiple Spanning Tree (0x02)
    BPDU flags: 0x4e, Agreement, Port Role: Designated, Proposal
    Root Identifier: 32768 / 0 / 52:54:00:04:2a:87
    Root Path Cost: 0
    Bridge Identifier: 32768 / 0 / 52:54:00:04:2a:87
    Port identifier: 0x8001
    Message Age: 0
    Max Age: 20
    Hello Time: 2
    Forward Delay: 15
    Version 1 Length: 0
    Version 3 Length: 64
    MST Extension

That’s a lot of testing and iterating! Let’s summarize all of the tests with a table:

You don’t have to go through this entire post. Just use it as a reference. Of course, results may vary based on platform and OS. I hope you learned something interesting! See you in the next one!

Encapsulation of PDUs On Trunk Ports
Tagged on:                     

2 thoughts on “Encapsulation of PDUs On Trunk Ports

  • July 16, 2024 at 2:04 pm
    Permalink

    Thanks for putting this together, Daniel.

    Seeing LLDP tagged is surprising to me too!

    An extra test with “Native VLAN 2 and Native VLAN tagged” might be interesting. I guess LLDP would be sent with tag 2 in that case?

    I was starting to wonder how interoperable THAT would be, but I guess it doesn’t matter: “tag native” is a strange and proprietary (I think) lever. All bets are off when you pull it.

    Reply
    • July 16, 2024 at 6:54 pm
      Permalink

      Nice seeing you here, Chris!

      I ran a quick test and indeed LLDP is tagged with VLAN 2. Also DTP, which is normally sent untagged, is sent with VLAN 2. However, CDP and PAgP are sent tagged with VLAN 1.

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *