CCNA Lab IV: Choosing the IOS Version and Feature Set

Or Keep It Simple, and Get 12.4T!

It's back to the CCNA Lab series today to discuss how to choose the right IOS for routers. Cisco routers run software called IOS. Traditionally - that is, from the early days of Cisco until the last year or two - Cisco offered lots of different IOS images. When most people go to buy their CCNA prep hardware, they've never chosen an IOS image, never loaded an IOS image into a router, and don't know where to start. Today, I'll discuss how to start, and then go straight to what I think is the best answer today: get any 12.4T image that will run on your hardware.

Router IOS 101

Cisco puts the entire OS, called IOS, into a single file, called an IOS image. To install a new OS into a router, you literally copy one file into the router's flash memory, and maybe add 1 config command that tells the router to boot (next time) using that new IOS image you just copied. Viola, you just upgraded the IOS.

Cisco produces a legion of IOS images, although over time, they've been reducing the number of different images. For instance, each model series (see related discussion on model series) has different IOS image. In fact, inside one model series, they may be more than one image for different subsets of the model series. To make bug fixes, Cisco fixes the code, compiles the IOS into an image file, gives it a new release number, and posts it. For every model series that has a different IOS image, and every subset in that series that has a different IOS, Cisco then has to create a new IOS image for that next minor bug fix release. On top of that, Cisco maintains different major versions of software, as you would expect, so a single bug fix may need to roll out into multiple major versions - all of which means different IOS images are recompiled.

Cisco also produces different trains of IOS, using a suffix on the main version number to identify the train. A train is a series of IOS images that Cisco updates either with an eye towards safety, adding new features (which isn't as safe), or some compromise between the two. Some trains are build to reduce risk, at the expense of adding less features; some have more features, but at the risk that those features cause other problems.

For example, 12.2, with no suffix, is the core train, called "mainline". It is the most stable train, with no new features added. The T-train, named 12.2T, has the same bug fixes as 12.2 mainline, plus some new features when Cisco completes them, so it's potentially less stable, but it may give you a feature you need. Other suffixes identify other trains, sometimes with newer features that are riskier, sometimes with newer features meant for a particular market.

IOS Versions for CCNA: Focus on Mainline and T-train

For the purposes of planning your CCNA lab, I'd suggest focusing on the mainline and T-train, and ignoring the other train. First, it's tough enough just to get your head around what I've discussed so far. Second, I think you can get what you need for CCNA prep with mainline and T-train releases.

For exam prep, we probably all care more about features than any concern over code stability, because you're learning in a lab. When thinking about IOS versions, you need to keep in mind the following fact: the T-train is closer in function to the next major release, rather than the same mainline release. In other words:

  • 12.2T is closer in function to 12.3 mainline than 12.2 mainline
  • 12.3T is closer in function to 12.4 mainline than 12.3 mainline
  • 12.4T is closer in function to 15.0 mainline than 12.4 mainline

(Yes, Cisco skipped major versions 13.0 and 14.0.)

The reason for the closer match between T-train and the next major release is the way Cisco traditionally rolled out functions into IOS. Major version X mainline (generically speaking) got bug fixes only; the X T-train got new features. At some point, Cisco would split off the T-train as the code base for Version X+ 1.

What does this mean for your lab? It means that when you're looking for IOS images based on the features that they support, treat the following as a group:

  • 12.2 mainline
  • 12.2T/12.3 mainline
  • 12.3T/12.4 mainline
  • 12.4T

(Note that the reason I stopped at 12.4T, and didn't move on to 15.0, is that most of the reasonably-priced used routers won't run 15.0 and beyond.)

IOS Feature Sets

Yet another thing that makes Cisco create different IOS images (different files that contain IOS) is the concept called a feature set. The concept itself is simple: the less IOS features you use, the less you pay.

For instance, say your network has routers, and all you need to do is route IPv4, and use EIGRP. Some other company uses tons of other features: say that still need some legacy features, like DLSW to tunnel IBM SNA, or Novell IPX. Maybe they want to run Intrusion Detection System (IDS) on their branch routers. Maybe they want to run Communications Manager Express, which is a VoIP PBX function running on a router.  Cisco creates feature sets - groups of features - that can be priced differently.

IOS Feature Sets for CCNA

When building a lab, when you buy a router, you need to compare the functions needed in the router with the function supported in a particular version and feature set. But which feature set matters? Well, you could spend a lifetime trying to figure it out. So let me get you to a good CCNA starting point.

  1. The baseline, least functional feature set for router IOS, as of 12.3 mainline/12.2T, has 90% (or more) of what you need for CCNA. So, you could choose to not worry about the feature set as long as your routers have at least 13.3/12.2T.
  2. If you want to research more, go to www.cisco.com/go/fn, and use the Cisco Feature Navigator. There, you can pick a router, IOS version, feature (eg, IPv6), and follow the bouncing menus. Eventually, you can see what individual features exist on each versions/release/feature set/platform.
  3. I made a list of CCNA features in a table on my web site, just to keep myself from pulling my own hair out. This list does not include every CCNA feature, but does include the big features, and a few small ones that show the differences between the feature sets.

CCNA Strategy: Get 12.4T if You Can!!!

With all that background in mind, choosing the IOS major version and feature set, if you focus solely on CCNA, is relatively straightforward. The baseline feature sets (typically called IP base or IP) support most every CCNA feature, at least going back to 12.3 mainline/12.2T. Then it's just a matter of figuring out what's missing in the IOS image on the router you're thinking about buying.

Using my tables over at certskills.com as a reference, the least-feature-rich feature set (IP Base) at version 12.2T/12.3 has everything in the list except IPv6 and SSH. You should be able to get this version of IOS easily, on many hardware platforms. So, if you're going cheaper on the hardware, you should at least get these versions of code.

To get IPv6, you need to get 12.4T. So, how do you get 12.4T? First, choose a router platform that is still potentially cheap in the used market, but supports 12.4T. For instance, 2500s cannot run 12.4T, but 1721's can. (How do I know? Look at the Cisco Feature Navigator (www.cisco.com/go/fn), and select a router "platform", and following the menus.)

Here's a table that shows the latest mainline and T-train IOS's supported by each of the model series discussed in our earlier posts in this series; note that I ignored the next major version (15.0).

(Note: I based the 800 series notations on the older 800 series routers, but some 800s are still sold today, and have support for more current IOS.)

(Note: I ignored 15.anything.)

The only other consideration about choosing an IOS for CCNA is whether you want to add support for SSH. SSH is a small feature, but is often not in IP Base because of US export laws regarding cryptography. However, for learning, you only need 1 router that supports SSH to learn it well, so if it's a matter of any extra expense when you go shopping, then only get an SSH-capable image on one router.

So, if you want to have it all, start by looking for routers that support and have a 12.4T image installed, and make sure at least one has a feature set that supports SSH.

(Note: The tables of CCNA features at Certskills list the major features, and I may have forgotten something; feel free to mention any such features here, or to the support email address listed at the site.)

Links for More Info

If you're into learning more about the above topics, then I've listed some links below.

Good landing page:

12.3/12.3T Feature Sets: 2600XM

Cisco IOS Packaging (2005): 

Cisco IOS Packaging (2008):

Related Posts:

CCNA Lab Series 2011: Overview

CCNA Lab II: How Topologies Drive Device Choices

CCNA Lab III: Sifting Through the Router Model Series

Join the Network World communities on Facebook and LinkedIn to comment on topics that are top of mind.
Related:
Now read: Getting grounded in IoT