This article is also available as a TechRepublic download.
This article was originally published on May 18, 2006.

When connecting a PC to a Cisco switch, it may sometimes
take 30 seconds or more before the PC can communicate on the network. When you’re
waiting for something to work, 30 seconds can seem like an eternity. Let’s look
at how you can speed up the switch port initialization process.

Understand the phases of switch port initialization

When you connect a device to an enabled switch port, the
switch port goes through four phases by default. Let’s take a closer look.

Spanning Tree
Protocol (STP) initialization

STP is the IEEE 802.1d protocol, and it prevents loops in a LAN. Testing this
switch port is necessary; disabling STP can create a loop on a LAN. If a hub,
switch, or router connected to this port, STP would be very important. On the
other hand, if a PC, printer, server, or laptop connected to this port (and remains
connected ), the STP initialization process isn’t necessary.

During the STP initialization phase, the port goes through
the five phases of STP: blocking, listening, learning, forwarding, and disabled.
This process takes about 15 seconds. However, if you know that a client will
remain connected to this port, you can disable the process.

Testing for Ether
Channel configuration

The next process the switch port goes through is testing for Ether Channel,
which is the bonding together of switch ports to create larger aggregate
Ethernet connections. Ether Channel also provides redundancy if one of the
channels goes down. This process, which uses the Port Aggregation Protocol
(PAgP), takes about 15 seconds.

Testing for trunk

Next, the switch tests to see if the port is a trunk port. Trunking delivers
data for multiple VLANs across a single switch port. While testing for a trunk
port doesn’t take that long, you can disable it to save a few more seconds.

Auto-negotiation of
switch port speed and duplex

Finally, the switch port goes through auto-negotiation of the speed and duplex.
For example, a switch port may support 1000-Mb (1Gb) Full Duplex, but a client
PC may only support 100-Mb Full Duplex. The switch and the client work this out
to negotiate the fastest speed that both can support.

You can hard-code this process to save time on the switch
port initialization. However, this isn’t always the best option because you may
never know the speed that a client supports. This auto-negotiation doesn’t take
that long, so it may be worth it when compared to hard-coding the speed and
duplex of every switch port.

Now that we’ve reviewed the different phases of switch port
initialization, let’s look at how you can lessen the time this process takes.

Reduce switch port initialization

On a Cisco IOS-based switch, you can save 30 seconds or more
on new port initialization time by following these steps:

  1. Put
    the switch port in Access Mode. This disables trunk negotiation and prevents
    the port from going through Ether Channel negotiation. This shaves about
    15 seconds off of the switch port initialization.
  2. Configure
    PortFast. This saves the port from going through STP negotiation and cuts
    another 15 seconds from the switch port initialization.

Here’s an example:

Switch(config)# int fa0/21
Switch(config-if)# switchport mode access 
Switch(config-if)# spanning-tree portfast 
%Warning: Only enable PortFast on ports connected to a single host. 
Connecting hubs, concentrators, switches, bridges, etc. to this 
interface when you've PortFast can cause temporary bridging loops. 
Use with CAUTION.

%This has configured PortFast on FastEthernet0/21 but will only 
have an effect when the interface is in a non-trunking mode. 
Switch(config-if)# no shutdown 

You can also configure this on a range of ports. Here’s an

Switch(config)# int range fastEthernet 0/1 - 24
Switch(config-if-range)# switchport mode access
Switch(config-if-range)# spanning-tree portfast 

As a shortcut to entering these two commands, you can use the following command:

Switch(config-if-range)# switchport host

This will configure both the switchport mode access and spanning-tree portfast commands for you.

Optionally, you could manually configure the switch port’s
speed and duplex, saving a few more seconds. Here’s an example:

Switch(config-if)#  speed 100
Switch(config-if)# duplex full

Disabling STP initialization, trunk negotiation, and Ether Channel
negotiation can shave 30 seconds off the switch port initialization process. In
addition, you can easily do this for all ports on the switch using the interface range command.

Miss a column?

Check out the Cisco Routers and Switches
, and catch up on David Davis’ most recent columns.

Want to learn more
about router and switch management? Automatically
sign up for our free Cisco Routers and Switches newsletter
, delivered each

David Davis has worked
in the IT industry for 12 years and holds several certifications, including
CCIE, MCSE+I, CISSP, CCNA, CCDA, and CCNP. He currently manages a group of
systems/network administrators for a privately owned retail company and
performs networking/systems consulting on a part-time basis.