Mental model
If you have 50 switches and need to add VLAN 100 to all of them, you have two options:
- SSH to each one and type
vlan 100; name USERS. Tedious. - Configure VLAN 100 on one switch and have it auto-propagate to the others. That’s VTP.
The convenience comes with risk: if a switch joining the network has a higher VTP revision number, its VLAN database overwrites everyone else’s. A misplaced switch from a lab → entire production VLAN database wiped → every access port reverts to VLAN 1. Big outage.
For CCNA: know VTP exists, how it works, and why most production networks run vtp mode transparent (each switch maintains its own VLAN database, no auto-sync) instead.
The roles
| Mode | Can create / modify VLANs? | Receives updates? | Forwards updates? |
|---|---|---|---|
| Server | Yes | Yes | Yes |
| Client | No | Yes | Yes |
| Transparent | Yes (locally) | No | Forwards (but doesn’t apply) |
| Off | Yes (locally) | No | No |
Server is the source-of-truth. Client receives. Transparent does its own thing but passes VTP through to others. Off is total isolation.
The dangerous revision number
Every change to the VLAN database on a Server (or Transparent) switch increments its revision number. When a Client receives a VTP update, it compares the revision number with its own. Higher number wins — the Client’s database gets overwritten.
The disaster scenario:
- Engineer powers up a lab switch that was previously in production, with revision number 47.
- Connects it to a trunk in production. Production VTP is at revision 35.
- Production switches see the higher number, accept the lab switch’s (empty) VLAN database.
- Every access port in the production network suddenly thinks its VLAN doesn’t exist → no traffic forwards.
This has happened many times. The fix: always set vtp mode transparent on any switch before plugging it in. Or reset its VTP revision to 0 by changing the domain name briefly.
VTP versions
| Version | Notes |
|---|---|
| v1 | Original. Limited features. Avoid. |
| v2 | Adds Token Ring + some bug fixes. CCNA default-tested. |
| v3 | Major improvement. Adds primary/secondary server, supports VLANs 1-4094, MST, password protection. Safer. |
VTPv3 is what you’d actually deploy in 2026. It has a “primary server” concept — only one switch is authoritative, others can’t accidentally override. Still many environments run v1/v2 from inertia.
Commands
! Set the VTP domain (must match on all switches)
SW1(config)# vtp domain CORP
! Set mode
SW1(config)# vtp mode server ! default
SW1(config)# vtp mode client
SW1(config)# vtp mode transparent
SW1(config)# vtp mode off
! Set version (v2 or v3 — affects feature support)
SW1(config)# vtp version 2
! Optional — password
SW1(config)# vtp password supersecret
! VTPv3 primary server (only this switch can change VLANs in the domain)
SW1# vtp primary
Verify
SW1# show vtp status
SW1# show vtp counters
SW1# show vtp password
Key fields in show vtp status:
- VTP Operating Mode: Server / Client / Transparent / Off
- VTP Domain Name: must match neighbors
- Configuration Revision: the number that determines who wins
- Number of existing VLANs: how many VLANs this switch knows about
Resetting the revision number
If you need to safely add a switch to an existing VTP domain, reset its revision number to 0 first. Three ways:
! Method 1 — change the domain name briefly (revision resets)
SW1(config)# vtp domain TEMPORARY
SW1(config)# vtp domain CORP-REAL
! Method 2 — change to transparent and back
SW1(config)# vtp mode transparent
SW1(config)# vtp mode client
! Method 3 — wipe vlan.dat (requires reload)
SW1# delete flash:vlan.dat
SW1# reload
Always do this before connecting the switch to a production trunk.
Why production often runs transparent
The “convenience vs blast radius” calculation. Pros of running everything in transparent mode:
- No risk of revision-number-based wipeout
- Each switch’s VLAN database is local — explicit and auditable
- Forced to update VLANs via config-management automation (Ansible, etc.) — generally healthier than relying on auto-propagation
Cons:
- Have to add VLANs on every switch separately (or via automation)
In modern networks with config management, transparent is the safer default. Auto-propagation of critical config across switches is a 2005-era convenience that doesn’t fit current best practices.
VTP Pruning
A different VTP feature: pruning removes VLAN broadcast / unknown-unicast traffic from trunks that don’t carry any access ports for that VLAN. Saves bandwidth.
SW1(config)# vtp pruning
Pruning is generally safer than VLAN propagation — manage allowed VLAN lists on trunks explicitly instead.
Common mistakes
Adding a lab switch to production without resetting revision. Wipes the production VLAN database. Has burned every CCNA learner at some point.
VTP domain name mismatch. Two switches with different domain names won’t exchange VTP info. Common after a config copy-paste mistake.
Running VTP servers everywhere. Defeats the point — any one of them can become the canonical source by being changed. Run one or two servers max; the rest as clients (or transparent in modern setups).
Forgetting password mismatch. Two switches in the same domain but with different VTP passwords → updates ignored.
show vtp passwordto verify.Confusing VTP with DTP. VTP synchronizes VLAN databases. DTP (Dynamic Trunking Protocol) negotiates trunk vs access mode between switches. Different things — both Cisco-proprietary, both can be disabled.
Trusting VTP to never break things. Mistakes happen. Always have a recent backup of running-configs and the VLAN database (
show vlan briefsaved somewhere).
Lab to try tonight
- Three switches connected via trunks. Same VTP domain
CORP. - Configure SW1 as server, SW2 and SW3 as clients.
- On SW1, create VLAN 10, 20, 30. Verify with
show vlan brief. - On SW2 and SW3, run
show vlan brief— the same VLANs appear automatically. - On SW2 (client), try
vlan 99. Should fail — clients can’t create VLANs. - The dangerous experiment: disconnect SW3, configure a totally different VLAN list on it locally, manually set a high revision (or change & change back the domain to bump it up), then reconnect to the trunk. Watch the production VLANs disappear. Restore from backup.
- Bonus: convert everything to
vtp mode transparent. Note each switch now maintains its own DB. Add a VLAN on each individually.
Cheat strip
| Concept | Plain English |
|---|---|
| VTP | Auto-share VLAN database between switches |
| Server | Source of truth — can add/modify VLANs |
| Client | Receives. Can’t make changes. |
| Transparent | Local DB only. Forwards VTP for others but ignores it. |
| Revision number | Higher wins. Cause of catastrophic accidents. |
| VTPv3 | Adds primary-server safety net. Use over v1/v2 if you must run VTP. |
| Pruning | Different VTP feature — removes unnecessary VLAN traffic from trunks |
| Production default | vtp mode transparent is the safest choice in 2026 |
