As network engineers, one of our many duties is maintaining access layer—and possibly distribution layer—switches. All but the smallest of networks have multiple switches interlinked together. This design ensures that the traffic coming into all of the ports is isolated into the correct virtual LAN (VLAN) and gets to the intended destination.
Maintaining VLANs across multiple switched devices requires special links to separate traffic within each individual VLANs; these special links are called trunks. This article takes a look at the trunking mechanism in Cisco devices—how it works and how it can be configured.
The general interworkings of trunks are not very complicated. When you need to connect switches, two methods are available: using an access port with a single VLAN, or using a trunk. When using an access port, only traffic within a single VLAN is sent between the switches, as shown in Figure 1.
Figure 1 Switched network with common VLANs without trunks.
This structure works well if the network consists of a single VLAN. But what happens if multiple VLANs are on the network? Check out the scenario in Figure 2.
Figure 2 Switched network without common VLANs.
In the Figure 2 network, only traffic on VLAN 10 is transported between the switches, but since both of the PCs shown are in different VLANs, they would be unable to communicate with each other. This is where trunking comes in, as shown in Figure 3.
Figure 3 Switched network with trunks.
In this revised network, the traffic from both VLAN 10 and VLAN 20 would be transported across the trunk, and all of the devices in their respective VLANs would be able to communicate.
Modern switches use one primary mechanism of trunking between devices: IEEE 802.1Q, which allows traffic from multiple VLANs to be transported across a trunk. It performs this task using two different methods: a native VLAN, and a tagging mechanism. Traffic in the native VLAN is sent between devices without adding anything to it (no addition tags, as I'll cover in a moment). By default, the native VLAN on switches is set to VLAN 1, as are all of the switchports; this default setting allows traffic to be passed between all ports of multiple switches without any additional configuration.
Traffic that is not in the native VLAN will be tagged, adding 32 bits to the Ethernet header. This tag identifies the VLAN for any traffic sent between Ethernet devices, as shown in Figure 4.
Figure 4 Switched network with trunks and VLAN tags.
In this example, all traffic between PCs in VLAN 10 will be tagged with VLAN 10 and sent across the trunk between switches, and all traffic between PCs in VLAN 20 will be tagged with VLAN 20 and sent across the trunk.
Configuring a Trunk
All of the information I've discussed up to this point is vendor-agnostic and true across all switching vendors. This section takes a step forward into how trunks operate when using Cisco IOS switches. Cisco's switch trunks can be configured in a number of ways, including statically, passively dynamic, and actively dynamic. By default, many Cisco switches are configured into a passively dynamic state called the Dynamic Auto mode.
It's important to understand a couple of things about these trunking modes. First, the trunking mode of a switchport is used in combination with the Dynamic Trunking Protocol (DTP), which is used on ports to negotiate trunking parameters. Switchports that are configured into the Dynamic Auto mode don't actively attempt to become trunks; if two switchports are connected to each other, and both are configured with the Dynamic Auto mode, the trunk will not form. When using dynamic trunking, one of the ports must be actively dynamic (or statically enabled—described shortly); Cisco calls this dynamic mode Dynamic Desirable. The difference between a passively dynamic port (Dynamic Auto) and an actively dynamic port (Dynamic Desirable) is that only an actively dynamic port will attempt to become a trunk without remote solicitation. (This is also true if one side is statically enabled to trunk.)
A way to think about this is like a typical high school dance; a number of girls and a number of boys would like to dance, but fear/anxiety prevents them from actively asking each other to dance. Someone has to summon up the nerve to ask another person to dance. In the trunking scenario, the actively dynamic switchport (Dynamic Desirable) takes the trunking initiative. The passively dynamic (Dynamic Auto) switchport is willing to trunk, but must be asked.
A third mode is available: the static configuration of a switchport to be a trunk. Notice that this mode doesn't disable the use of DTP (another command does that). Instead, a statically configured trunk acts a lot like an actively dynamic switchport, in that it actively attempts to form a trunk with the remotely connected device. If two statically configured switchports are connected, that link will always come up quickly and as a trunk.
The switchport mode command configures a trunk in one of three ways:
- switchport mode trunk configures a switchport to always be a trunk.
- switchport mode dynamic auto configures a switchport to be passively dynamic.
- switchport mode dynamic desirable configures a switchport to be actively dynamic.
By this point in this series of articles, you should have a good understanding of what a trunk is in the context of an Ethernet switching environment. This article explained how trunks carry traffic from multiple VLANs across switches to their configured switchports. We also discussed the Cisco IOS commands that configure the intended trunking ports, as well as how the different modes alter the behavior of how trunks are formed.
Your next step is trying out these concepts on some real Cisco equipment. Almost all enterprise-level Cisco Ethernet switches have supported trunking for more than 15 years, which makes them very cheap to purchase on eBay and other online auction options. Spend a few dollars and start your own lab work.