2026-09-01
Adding VTP to the L2 triangle
Today I felt that I was able to finally learn in the way that suits me. Three switches in a triangle, a config file that would push everything except the one thing I needed, and one command that explained it.
Layer 2 can still serve me some humble pie
The thing that stumped me
VTP has to be in transparent mode before a config file can add a VLAN to the database.
I almost decided to give up and just manually enter the VLAN information for every device after they turned on for the first time. But that was not going to pass muster, automation was the reason I built this. Automation was the reason I spent an entire weekend building a management plane. I persisted.
I stripped the config file down to nothing: the hostname, the VLAN, and a console line. Still no joy. Every other line in that file was taking, and the VLAN was not.
The command that cracked it
show vtp statusVTP Version capable : 1 to 3
VTP Operating Mode : Server
Maximum VLANs supported locally: 1005
Number of existing VLANs : 5
Configuration Revision : 0VTP Operating Mode : Server. I did not think that was the fix, you set VLANs on the server, right? So why would server mode be the thing stopping me?
Why it actually happens
Because of where the VLAN gets written. In server and client mode the VLAN database does not live in the running configuration at all — it lives in vlan.dat in flash, kept in step with the rest of the domain by VTP itself. A vlan 99 line pushed in a config file is not the place VTP looks, so nothing lands.
Transparent mode changes that. The switch stops participating in the domain, and its VLAN definitions get written into the running configuration like any other command — which is exactly what a config file can push.
configure terminal
vtp mode transparent
vlan 99
name MGMTThen the config file went through on the next boot without touching it.
Checking it
- show vtp status
- The mode, first. This is the one I should have run an hour earlier than I did.
- show vlan brief
- Whether the VLAN is actually in the database, and which ports are in it.
- show run | section vlan
- In transparent mode the VLANs appear here. If this comes back empty on a switch you just configured, you are not in transparent mode.
- show interfaces trunk
- Which VLANs are actually crossing the links between the three switches — a VLAN in the database still has to be allowed on the trunk.
Check the mode before you blame the config file. The VLAN was never being rejected — it was being written somewhere the file could not reach.