> ## Content Index
> Fetch the complete content index at: https://www.pinglabz.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# Configuring VLANs on Cisco Catalyst Switches
- URL: https://www.pinglabz.com/configuring-standard-vlans-on-catalyst-switches/
- Published: 2024-12-23T06:56:30.000Z
- Updated: 2026-07-04T23:01:38.000Z
- Description: Learn how to create VLANs, assign access ports, and verify your VLAN configuration on Cisco Catalyst 9000 series switches using IOS XE 17.x.
- Author: Jaime
- Tags: VLAN, #Import 2026-08-01 19:54

Creating VLANs on Cisco Catalyst switches is the foundation of logical network segmentation, allowing you to isolate traffic, improve security, and optimize bandwidth allocation across your infrastructure. Whether you're building a new campus network or expanding an existing one, understanding how to create VLANs and assign ports is essential for every network engineer.

If you want the bigger picture first, the [VLAN complete guide](https://www.pinglabz.com/vlans-layer-2-switching/) covers the architecture this article plugs into.

## Understanding VLAN Creation on Catalyst

When you create a VLAN on a Catalyst switch, the configuration is stored in two places: the running-configuration (RAM) and the vlan.dat file (NVRAM). For standard-range VLANs (1-1005), the VLAN is automatically synchronized with vlan.dat during a reload. Understanding this behavior prevents accidental VLAN loss.

## Creating VLANs in Global Configuration Mode

The standard method for creating VLANs on Catalyst 9000 series switches uses global configuration mode:

```
CORE-SW1# configure terminal
CORE-SW1(config)# vlan 10
CORE-SW1(config-vlan)# name Users
CORE-SW1(config-vlan)# exit

CORE-SW1(config)# vlan 20
CORE-SW1(config-vlan)# name Servers
CORE-SW1(config-vlan)# exit

CORE-SW1(config)# vlan 30
CORE-SW1(config-vlan)# name Mgmt
CORE-SW1(config-vlan)# exit

CORE-SW1(config)# vlan 40
CORE-SW1(config-vlan)# name Voice
CORE-SW1(config-vlan)# exit

CORE-SW1(config)# vlan 50
CORE-SW1(config-vlan)# name Guest
CORE-SW1(config-vlan)# exit

CORE-SW1(config)# vlan 99
CORE-SW1(config-vlan)# name Native
CORE-SW1(config-vlan)# exit

CORE-SW1(config)# vlan 999
CORE-SW1(config-vlan)# name Parking
CORE-SW1(config-vlan)# exit

CORE-SW1(config)# end
CORE-SW1# write memory

```

Each `vlan` command enters VLAN configuration mode where you can assign a descriptive name. The name helps administrators quickly identify the VLAN's purpose in show command output and network documentation. Without a name, VLANs appear as "VLAN####" in displays.

## Assigning Access Ports to VLANs

After creating VLANs, assign physical ports to them using switchport commands. On an access port, all traffic on that port belongs to a single VLAN:

```
CORE-SW1(config)# interface GigabitEthernet 1/0/1
CORE-SW1(config-if)# switchport mode access
CORE-SW1(config-if)# switchport access vlan 10
CORE-SW1(config-if)# description Users-Access-Port-1
CORE-SW1(config-if)# no shutdown
CORE-SW1(config-if)# exit

CORE-SW1(config)# interface GigabitEthernet 1/0/2
CORE-SW1(config-if)# switchport mode access
CORE-SW1(config-if)# switchport access vlan 20
CORE-SW1(config-if)# description Servers-Access-Port-1
CORE-SW1(config-if)# no shutdown
CORE-SW1(config-if)# exit

```

The `switchport mode access` command configures the port in access mode (Layer 2 only, no trunking). The `switchport access vlan` command assigns the VLAN ID to that port. All frames transmitted on this port will be tagged with VLAN 10 internally; untagged frames received on the port are assumed to belong to VLAN 10.

## Complete VLAN Configuration for ACC-SW1

Here's the full configuration for an access switch with all standard lab VLANs and port assignments:

```
ACC-SW1# configure terminal

ACC-SW1(config)# vlan 10
ACC-SW1(config-vlan)# name Users
ACC-SW1(config-vlan)# exit

ACC-SW1(config)# vlan 20
ACC-SW1(config-vlan)# name Servers
ACC-SW1(config-vlan)# exit

ACC-SW1(config)# vlan 30
ACC-SW1(config-vlan)# name Mgmt
ACC-SW1(config-vlan)# exit

ACC-SW1(config)# vlan 40
ACC-SW1(config-vlan)# name Voice
ACC-SW1(config-vlan)# exit

ACC-SW1(config)# vlan 50
ACC-SW1(config-vlan)# name Guest
ACC-SW1(config-vlan)# exit

ACC-SW1(config)# vlan 99
ACC-SW1(config-vlan)# name Native
ACC-SW1(config-vlan)# exit

ACC-SW1(config)# vlan 999
ACC-SW1(config-vlan)# name Parking
ACC-SW1(config-vlan)# exit

! Configure User ports
ACC-SW1(config)# interface range GigabitEthernet 1/0/1-10
ACC-SW1(config-if-range)# switchport mode access
ACC-SW1(config-if-range)# switchport access vlan 10
ACC-SW1(config-if-range)# description Users-Access-Ports
ACC-SW1(config-if-range)# no shutdown
ACC-SW1(config-if-range)# exit

! Configure Server ports
ACC-SW1(config)# interface range GigabitEthernet 1/0/11-14
ACC-SW1(config-if-range)# switchport mode access
ACC-SW1(config-if-range)# switchport access vlan 20
ACC-SW1(config-if-range)# description Servers-Access-Ports
ACC-SW1(config-if-range)# no shutdown
ACC-SW1(config-if-range)# exit

! Configure Management port
ACC-SW1(config)# interface GigabitEthernet 1/0/15
ACC-SW1(config-if)# switchport mode access
ACC-SW1(config-if)# switchport access vlan 30
ACC-SW1(config-if)# description Mgmt-Access-Port
ACC-SW1(config-if)# no shutdown
ACC-SW1(config-if)# exit

! Configure Voice ports
ACC-SW1(config)# interface range GigabitEthernet 1/0/16-18
ACC-SW1(config-if-range)# switchport mode access
ACC-SW1(config-if-range)# switchport access vlan 40
ACC-SW1(config-if-range)# description Voice-Access-Ports
ACC-SW1(config-if-range)# no shutdown
ACC-SW1(config-if-range)# exit

! Configure Guest ports
ACC-SW1(config)# interface range GigabitEthernet 1/0/19-21
ACC-SW1(config-if-range)# switchport mode access
ACC-SW1(config-if-range)# switchport access vlan 50
ACC-SW1(config-if-range)# description Guest-Access-Ports
ACC-SW1(config-if-range)# no shutdown
ACC-SW1(config-if-range)# exit

! Configure Parking (unused ports)
ACC-SW1(config)# interface range GigabitEthernet 1/0/22
ACC-SW1(config-if-range)# switchport mode access
ACC-SW1(config-if-range)# switchport access vlan 999
ACC-SW1(config-if-range)# description Parking-Port
ACC-SW1(config-if-range)# shutdown
ACC-SW1(config-if-range)# exit

ACC-SW1(config)# end
ACC-SW1# write memory

```

## Verifying VLAN Configuration

After configuring VLANs and ports, verify the configuration using show commands. The `show vlan brief` command displays all VLANs and their assigned ports:

```
ACC-SW1# show vlan brief

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Gi1/0/23,Gi1/0/24
10   Users                            active    Gi1/0/1,Gi1/0/2,Gi1/0/3,Gi1/0/4
                                                Gi1/0/5,Gi1/0/6,Gi1/0/7,Gi1/0/8
                                                Gi1/0/9,Gi1/0/10
20   Servers                          active    Gi1/0/11,Gi1/0/12,Gi1/0/13,Gi1/0/14
30   Mgmt                             active    Gi1/0/15
40   Voice                            active    Gi1/0/16,Gi1/0/17,Gi1/0/18
50   Guest                            active    Gi1/0/19,Gi1/0/20,Gi1/0/21
99   Native                           active
999  Parking                          active    Gi1/0/22

```

The `show interfaces switchport` command shows detailed switchport configuration for individual ports or ranges:

```
ACC-SW1# show interfaces GigabitEthernet 1/0/1 switchport

Name: Gi1/0/1
Switchport: Enabled
Administrative Mode: static access
Operational Mode: static access
Administrative Trunking Encapsulation: dot1q
Operational Trunking Encapsulation: native
Negotiation of Trunking: Off
Access Mode VLAN: 10 (Users)
Trunking Native Mode VLAN: 1 (default)
Administrative private-vlan host-association: none
Administrative private-vlan mapping: none
Operational private-vlan: none
Trunking VLANs Enabled: All
Pruning VLANs Enabled: 2-1001
Capture Mode Disabled
Capture Session ID - Common Session ID: 0
Protected Port: false
Unknown unicast blocked: disabled
Unknown multicast blocked: disabled
Appliance trust: none

```

To view multiple ports at once, use the `show interfaces` command with a range:

```
ACC-SW1# show interfaces GigabitEthernet 1/0/1-10 switchport | include Name|Access Mode VLAN

Name: Gi1/0/1
Access Mode VLAN: 10 (Users)
Name: Gi1/0/2
Access Mode VLAN: 10 (Users)
Name: Gi1/0/3
Access Mode VLAN: 10 (Users)
Name: Gi1/0/4
Access Mode VLAN: 10 (Users)
Name: Gi1/0/5
Access Mode VLAN: 10 (Users)
Name: Gi1/0/6
Access Mode VLAN: 10 (Users)
Name: Gi1/0/7
Access Mode VLAN: 10 (Users)
Name: Gi1/0/8
Access Mode VLAN: 10 (Users)
Name: Gi1/0/9
Access Mode VLAN: 10 (Users)
Name: Gi1/0/10
Access Mode VLAN: 10 (Users)

```

## Verification and Troubleshooting

### Symptom: Hosts cannot ping each other on the same VLAN

**Cause:** Ports may not be assigned to the same VLAN, or one port is administratively down.

**Fix:** Verify port assignments with `show vlan brief`, check port status with `show interfaces status`, and confirm both ports are enabled (no shutdown).

```
ACC-SW1# show interfaces status | include Users|Gi1/0/1

Interface    Name                 Status       Vlan       Duplex Speed Type
Gi1/0/1      Users-Access-Port-1  connected    10         a-full a-100 10/100/1000BaseTX
Gi1/0/2      Users-Access-Port-2  connected    10         a-full a-100 10/100/1000BaseTX

```

If a port shows "notconnect," the issue may be a cable problem or the connected device is down. Use `show interfaces GigabitEthernet 1/0/1` to check physical status.

### Symptom: VLAN configuration disappears after reload

**Cause:** VLANs 1-1005 are stored in vlan.dat, but if vlan.dat is deleted or corrupted, only VLAN 1 survives a reload.

**Fix:** Verify vlan.dat exists with `show flash:` or `dir flash:`. If missing, reconfigure VLANs and execute `write memory` to rebuild vlan.dat. For extended-range VLANs (1006-4094), always include them in running-config via `vlan database` or config mode, then copy running-config to startup-config.

```
ACC-SW1# show flash: | include vlan.dat

    32  -rw-          786432   Mar 28 2026 17:42:31 +00:00  vlan.dat

```

### Symptom: Wrong VLAN assigned to a port

**Cause:** Port assignment commands were entered incorrectly or overwritten by a misconfiguration script.

**Fix:** Re-enter the correct VLAN assignment for the port. The `switchport access vlan` command automatically replaces the previous assignment.

```
ACC-SW1(config)# interface GigabitEthernet 1/0/5
ACC-SW1(config-if)# switchport access vlan 20
ACC-SW1(config-if)# end

ACC-SW1# show interfaces GigabitEthernet 1/0/5 switchport | include Access Mode VLAN

Access Mode VLAN: 20 (Servers)

```

## Key Takeaways

- Create VLANs in global configuration mode using `vlan <id>` and assign a descriptive name for easy identification
- Assign access ports using `switchport mode access` followed by `switchport access vlan <id>`
- Verify VLAN configuration with `show vlan brief` to see all VLANs and their port members
- Standard-range VLANs (1-1005) are automatically saved to vlan.dat; always execute `write memory` after configuration changes
- Use interface ranges (e.g., `interface range Gi1/0/1-10`) to efficiently configure multiple ports with the same VLAN assignment