CCNA 200-301

CCNP Enterprise

CCNP Security

CCIE Enterprise Lab

CCIE Security Lab

CCNP Service Provider

CCNP Data Center

CCNP Collaboration

CCIE DC Lab

Managing Virtual Local Area Networks (VLANs) is a fundamental task in enterprise network administration. Over time, network restructuring, project decommissioning, or subnet consolidations require removing unused broadcast domains. However, removing a VLAN from a Cisco Catalyst or Nexus switch involves more than just entering a single command; network engineers must choose the correct scope—whether purging a VLAN globally, pruning it from an individual trunk link, or clearing the entire switch database for a hardware refresh. Selecting the wrong method can cause unexpected link outages, orphan access ports, or overwrite allowed trunk configurations.

This guide details how to delete VLANs on Cisco switches across different administrative scenarios, troubleshoot common deletion roadblocks, and maintain network stability throughout the process.


Deleting a Single VLAN or a Range of VLANs in Global Configuration

When an entire broadcast domain is retired across your local switching infrastructure, you remove it directly from the switch’s global VLAN database. This operation is executed in global configuration mode using the no vlan command.

Step 1: Verify the Target VLANs

Before removing any VLAN, review the active database to confirm the VLAN IDs and verify their assigned interfaces:

Switch# show vlan brief

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Gi0/1, Gi0/2
10   Engineering                      active    Gi0/3, Gi0/4
20   Marketing                        active    Gi0/5
30   Finance                          active    Gi0/6
40   Guest                            active    

Take note of any access ports associated with the VLANs you plan to remove.

Step 2: Enter Global Configuration Mode

Access the configuration terminal from privileged EXEC mode:

Switch# configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Switch(config)#

Step 3: Remove the Target VLANs

To delete a single VLAN, negate the VLAN ID:

Switch(config)# no vlan 40

To delete multiple non-contiguous VLANs at once, separate the IDs with commas (without spaces):

Switch(config)# no vlan 10,20,30

To delete a contiguous block of VLANs, specify the range using a hyphen:

Switch(config)# no vlan 50-60

You can also combine discrete IDs and ranges in a single statement:

Switch(config)# no vlan 15,25,70-75

Step 4: Verify the Global Removal

Exit configuration mode and verify that the target VLAN IDs no longer appear in the active database:

Switch(config)# end
Switch# show vlan brief

The output should confirm that the deleted VLANs have been expunged from the switch’s active broadcast domains.

Step 5: Save the Running Configuration

Commit your changes to non-volatile RAM (NVRAM) so they persist across reboots:

Switch# copy running-config startup-config

What Happens to Access Ports When Their VLAN Is Deleted?

A common misconception among administrators is that deleting a VLAN returns its assigned access ports to the default VLAN (VLAN 1). In Cisco IOS and IOS-XE, this is not what occurs.

Frequently Asked Questions

Do access ports automatically revert to VLAN 1 after VLAN deletion?

No. Cisco IOS does not automatically reassign an orphaned port to VLAN 1 or any other active VLAN. The interface retains its configured association (for example, switchport access vlan 10) inside the running configuration, but the underlying broadcast domain no longer exists in the VLAN database.

What is the operational state of an access port assigned to a deleted VLAN?

The interface becomes inactive (orphaned). While the physical port may still indicate an active link carrier (layer 1 “up” and layer 2 “up”), the port cannot transmit or receive user traffic. Frames arriving at the port are dropped because the switch has no forwarding table or broadcast domain associated with that missing VLAN ID.

When you run show interfaces status, the Vlan column displays inactive:

Switch# show interfaces status

Port      Name               Status       Vlan       Duplex  Speed Type
Gi0/3     Workstation-A      connected    inactive     auto   auto 10/100/1000BaseTX

Additionally, running show vlan brief will completely omit that physical port from all active VLAN port listings.

How do you restore traffic on an orphaned port?

You can resolve an orphaned port through one of three methods:
1. Reassign the port to a valid active VLAN:
text
Switch(config)# interface GigabitEthernet0/3
Switch(config-if)# switchport access vlan 20

2. Reset the port to the default VLAN 1:
text
Switch(config)# interface GigabitEthernet0/3
Switch(config-if)# no switchport access vlan

3. Re-create the missing VLAN globally:
text
Switch(config)# vlan 10
Switch(config-vlan)# name Engineering

As soon as VLAN 10 is re-created in the database, all interfaces configured for VLAN 10 immediately return to an active forwarding state without needing manual interface reconfiguration.


Removing a VLAN from a Trunk Port Without Deleting It Globally

Often, your goal is not to eliminate a VLAN across the entire switch, but rather to restrict its traffic from traversing a specific uplink or inter-switch trunk. Deleting the VLAN globally in this scenario would inadvertently break connectivity on local access ports. Instead, you modify the trunk port’s allowed VLAN list.

Warning: Never use the command switchport trunk allowed vlan <id> when intending to prune a VLAN. Running that command replaces the entire allowed list with only the specified ID, instantly dropping all other production VLANs on that trunk. Always use the explicit remove keyword.

Step 1: Identify the Trunk Interface and Current Allowed List

Examine the trunk’s active configuration:

Switch# show interfaces trunk

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

Port        Vlans allowed on trunk
Gi0/1       1-4094

Step 2: Enter Interface Configuration Mode

Navigate to the target trunk interface or interface range:

Switch# configure terminal
Switch(config)# interface GigabitEthernet0/1

Step 3: Remove the VLAN from the Allowed List

Use the switchport trunk allowed vlan remove command followed by the target VLAN ID or list:

Switch(config-if)# switchport trunk allowed vlan remove 20

To remove multiple VLANs or a range of VLANs from the trunk:

Switch(config-if)# switchport trunk allowed vlan remove 30,40,100-105

Step 4: Verify Trunk Traffic Filtering

Confirm that the trunk interface reflects the updated allowed list:

Switch(config-if)# do show interfaces trunk

Port        Vlans allowed on trunk
Gi0/1       1-19,21-29,31-39,41-99,106-4094

VLAN 20 remains fully operational in the global database and continues to service local access ports, but its broadcast, multicast, and unicast frames will no longer pass across GigabitEthernet0/1.


Troubleshooting VLAN Deletion: VTP Restrictions and Reserved VLANs

When attempting to run no vlan <id>, you may encounter error messages preventing the deletion. These errors typically stem from VLAN Trunking Protocol (VTP) client constraints or attempts to delete system-reserved VLANs.

Frequently Asked Questions

Why does the switch return %VTP: VLAN configuration not permitted in VTP client mode?

This error occurs because the switch is operating as a VTP Client. A VTP Client switch cannot create, alter, or delete VLANs locally; it can only synchronize its database from a VTP Server within the same management domain.

To resolve this issue, use one of the following approaches:
– Delete the VLAN on the VTP Server: Access the switch configured as the VTP Server for that domain and execute no vlan <id> there. The change will automatically propagate to all client switches.
– Change the local switch to VTP Transparent mode: If this switch should manage VLANs independently without network-wide VTP synchronization, switch its operating mode:
text
Switch(config)# vtp mode transparent
Setting device to VTP Transparent mode for VLANS.
Switch(config)# no vlan 20

– Change the local switch to VTP Server mode: If the switch was misconfigured as a client and should function as an authoritative server:
text
Switch(config)# vtp mode server
Setting device to VTP Server mode for VLANS.
Switch(config)# no vlan 20

Why can’t VLAN 1 be deleted?

Attempting to run no vlan 1 produces the error:

% Default VLAN 1 cannot be deleted.

VLAN 1 is the hardcoded default management and control VLAN on Cisco switches. Essential control-plane protocols—including Cisco Discovery Protocol (CDP), Dynamic Trunking Protocol (DTP), Port Aggregation Protocol (PAgP), and VTP—transmit control frames across VLAN 1 by default. The switch operating system strictly forbids deleting or renaming VLAN 1 to maintain core internal operations.

What are VLANs 1002 through 1005, and why can’t they be removed?

VLANs 1002, 1003, 1004, and 1005 are factory-reserved defaults originally allocated for legacy network architectures:
– 1002: fddi-default
– 1003: token-ring-default
– 1004: fddinet-default
– 1005: trnet-default

Even on modern enterprise Catalyst switches that lack legacy hardware interfaces, Cisco IOS reserves these four IDs within the standard VLAN range. Attempting to delete any ID between 1002 and 1005 yields:

% Default VLAN 1002 cannot be deleted.

Like VLAN 1, these IDs cannot be modified, deleted, or reassigned for standard Ethernet traffic.

Why did a deleted VLAN reappear after reloading the switch?

If a deleted VLAN returns following a reboot, check the following common causes:
– VTP Synchronization: If the switch is joined to an active VTP domain and another switch is acting as a VTP Server with a higher configuration revision number, the server will repopulate the VLAN upon boot.
– Startup Configuration Discrepancies: Extended-range VLANs (IDs 1006–4094) in VTP Transparent or VTPv3 modes are saved directly within the text configuration file. If you deleted an extended VLAN from the running configuration but failed to save (copy running-config startup-config), the switch will reload the VLAN from the startup configuration.


Purging the Entire VLAN Database by Deleting vlan.dat

When preparing a switch for redeployment, decommissioning hardware, or performing a factory reset, deleting dozens of individual VLANs one by one is impractical. On Cisco Catalyst switches, standard-range VLANs (1–1005) are not stored in the ASCII startup-config file; they are kept in a separate binary file named vlan.dat located in flash memory.

To completely reset the VLAN database back to factory defaults, you must delete this file and restart the switch.

Step 1: Verify the Location of vlan.dat

From privileged EXEC mode, list the contents of the primary flash file system:

Switch# dir flash:

Directory of flash:/

  101  -rwx         616   Mar 1 2026 00:04:12 +00:00  vlan.dat
  102  -rwx    33554432   Jan 15 2026 12:20:00 +00:00  c2960x-universalk9-mz.152-7.E2.bin

On modular switches or platforms equipped with dual supervisors, the path may be designated as bootflash:vlan.dat or flash:vlan.dat.

Step 2: Delete the vlan.dat File

Execute the delete command referencing the storage medium and filename:

Switch# delete flash:vlan.dat

The switch CLI will prompt for confirmation twice:

Delete filename [vlan.dat]? [Press Enter]
Delete flash:/vlan.dat? [confirm] [Press Enter]

Press Enter at both prompts to confirm removal.

Step 3: (Optional) Erase the Startup Configuration

If your objective is a complete factory reset of the switch, erase the configuration file so old interface VLAN assignments and host settings do not persist:

Switch# erase startup-config
Erasing the nvram filesystem will remove all configuration files! Continue? [confirm] [Press Enter]
[OK]
Erase of nvram: complete

Step 4: Reload the Switch

Reload the switch to force Cisco IOS to initialize an empty, default VLAN structure:

Switch# reload
Proceed with reload? [confirm] [Press Enter]

If prompted to save the running configuration prior to the reload, type no. Entering “yes” will regenerate parts of the old configuration into NVRAM.

Step 5: Verify the Factory Default State

Once the switch finishes booting, confirm that all user-defined VLANs have been cleared:

Switch# show vlan brief

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Gi0/1, Gi0/2, Gi0/3, Gi0/4 ...
1002 fddi-default                     act/unsup 
1003 token-ring-default               act/unsup 
1004 fddinet-default                  act/unsup 
1005 trnet-default                    act/unsup 

All ports revert to default VLAN 1, and only system-reserved VLANs remain.


Cisco Catalyst Command Reference and Official Documentation

For formal documentation and command verification across Cisco Catalyst, Nexus, and Industrial Ethernet platforms, refer to the following structural command definitions and technical reference guides.

Command Reference Summary

Command SyntaxExecution ModePrerequisites & ConstraintsFunctional Description
no vlan <vlan-id>Global Configuration (config)VTP mode must be Server, Transparent, or Off. Cannot be applied to VLAN 1 or 1002–1005.Deletes a single standard or extended VLAN from the switch database.
no vlan <start-id>-<end-id>Global Configuration (config)IDs must be within valid ranges (2–1001, 1006–4094). Cannot include reserved IDs.Deletes a contiguous block of VLANs in a single CLI transaction.
switchport trunk allowed vlan remove <list>Interface Configuration (config-if)Interface must be configured in trunk mode (switchport mode trunk).Removes specified VLANs from the 802.1Q trunk allowed list without altering the global database.
delete [filesystem:]vlan.datPrivileged EXEC (#)Requires write permissions to flash memory. Requires a subsequent reload to take effect.Deletes the binary VLAN database file, restoring standard-range VLANs to factory defaults upon reboot.
vtp mode transparentGlobal Configuration (config)Administrative rights. Disables local participation in shared VTP domain updates.Decouples switch from VTP server updates, enabling local VLAN additions and deletions.

Official Technical Resources

When planning major topology modifications or automated script deployments, review the platform-specific documentation provided by Cisco Systems:
– Cisco Catalyst 9000 Series Switches Layer 2 Configuration Guides: Covers software architectures for IOS-XE, including VLAN provisioning, private VLANs, and VTPv3 configuration standards.
– Cisco IOS Software Command Reference (LAN Switching): Provides formal syntax definitions and operational limitations for the vlan, switchport, and vtp command branches.
– Cisco TAC Technology Support (LAN Switching): Reference documentation for troubleshooting orphaned ports, spanning-tree convergence issues resulting from VLAN churn, and cross-stack database synchronizations.


Conclusion

Deleting VLANs from a Cisco switch requires choosing the right method for your operational goals. When permanently decommissioning a subnet, use no vlan <id> in global configuration mode, and remember to reassign any associated access ports beforehand to prevent them from becoming inactive. To filter broadcast traffic across an uplink without affecting local hosts, use switchport trunk allowed vlan remove on the trunk interface rather than removing the VLAN globally. Finally, when re-provisioning or factory-resetting a switch, purging flash:vlan.dat and reloading the device guarantees a clean slate, leaving only the required default VLANs in place.

Please follow and like us:
Last modified: October 31, 2026

Author

Comments

Write a Reply or Comment

Your email address will not be published.