Upgrading IOS using TFTP

I have decided to start documenting my studies, labs and notes. It seems like a fun way to learn and create an archive for future reference. And if my ramblings just happen to help anyone out in the future, then that’s great too!

So let’s get started.

I wanted to test DAI (Dynamic ARP Inspection) today in a lab environment but it seems the switch I am using does not support this feature. Which is weird, because it’s a 3550 and should support almost everything I would need for the exam.

Switch(config)#ip arp?
% Unrecognized command

Looking at the current version, using the command show version, it seemed rather old;

Switch#sh ver
Cisco IOS Software, C3550 Software (C3550-I5Q3L2-M), Version 12.2(25)SE

I checked my IOS archive folder and found a newer IP Services image which should support the commands I’d need;


Seeing as I will have to upgrade my switch, I figured I might as well document the process for whoever is looking for it.

So, the first step will be checking to see if your switch’s flash memory has room for the new IOS image with the command show file systems.

Switch#show file systems

File Systems:

     Size(b)     Free(b)      Type  Flags  Prefixes
*   15998976     9957376     flash     rw   flash:
–           –    opaque     ro   bs:
–           –    opaque     rw   vb:
15998976     9957376   unknown     rw   zflash:
–           –    opaque     rw   system:
393216      389374     nvram     rw   nvram:

We have a good 9950000 bytes free on the flash drive.

The image we are planning to upload is 9707520 bytes which seems like a bit of a tight fit.

In this case I’m planning to start with a clean configuration anyway so I decided to completely wipe the flash drive with the command erase flash:

Switch#erase flash:
Erasing the flash filesystem will remove all files! Continue? [confirm]
flashfs[1]: 0 files, 1 directories
flashfs[1]: 0 orphaned files, 0 orphaned directories
flashfs[1]: Total bytes: 15998976
flashfs[1]: Bytes used: 1024
flashfs[1]: Bytes available: 15997952
flashfs[1]: flashfs fsck took 9 seconds.
Erase of flash: complete

Et voila, nice and clean again.

Now, to upload the new image.

To set up the TFTP server I used Solarwinds’ free TFTP server.

I will not cover the configuration of the server itself as it’s trivial (get it?) and quite straightforward.

First we will copy the image from our server to our switch with the copy tftp: flash: command.

Switch#copy tftp: flash:
Address or name of remote host []?
Source filename []? c3550-ipservicesk9-mz.122-44.SE6.bin
Destination filename [c3550-ipservicesk9-mz.122-44.SE6.bin]?
Accessing tftp://…
Loading c3550-ipservicesk9-mz.122-44.SE6.bin from (via Vlan1):
[OK – 9707290 bytes]

9707290 bytes copied in 180.944 secs (53648 bytes/sec)

That went well. Now we need to tell the switch which IOS image to load during the boot process.

We can do this with the boot system flash:filename.bin command.

Switch(config)#boot system flash:c3550-ipservicesk9-mz.122-44.SE6.bin

That was it, now save your config and reload the switch.

Building configuration…
Proceed with reload? [confirm]

Once the switch is done booting we’ll check if it’s actually running the image we just uploaded with the command show version.

Switch#show version
Cisco IOS Software, C3550 Software (C3550-IPSERVICESK9-M), Version 12.2(44)SE6

Alright, and are my commands working now?

Switch(config)#ip arp ?
gratuitous  Gratuitous ARP control
inspection  Arp Inspection configuration
poll        IP ARP polling for unnumbered interfaces
proxy       Global proxy ARP configuration
track       ARP Track configuration

Yep, there they are.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s