IOS is the TLA for Cisco's Internetwork Operating Systems. A Unix derived OS used by Cisco on all their routers and switches. Currently on version 12.x, Cisco updates the OS frequently against hacks and cracks. Most of the traffic that moves across the Internet crosses a device running IOS.

Internetwork Operating System

This is the brains and the will power behind Cisco Routers. The brawn being in the powerful hardware this all runs on. IOS is the ultimate in configureability from what i have found. Couple of facts, some more about the bootstrap software than IOS, but not worth another node:

    Places to boot from:
  • ROM Chip - Normally an old stripped down emergency IOS
  • Flash Memory - Generally where you keep your current copy of IOS
  • TFTP - Boot it over the network, the router will determine the port to use and download the IOS over that. This can take awhile over a 10BaseT connection. (the image for the 2500series is ~5megs)
  • Debug mode / ROM Montior mode - boots to a prompt which allows you to specify where to boot from, and even download an IOS image over the console port if you are that desperate (the 1600 series console runs at 9600 baud)
Configuration scripts can be loaded from most of those places as well, except the ROM chip. Configuration is done line by line, with `!' to seperate sections of the configuration. This may be the comment indicator, however IOS defaults to using it to seperate sections of the script (protocols, interface, IP, vty's, etc)

If you've ever wanted to throw the Linux ifconfig out the window by excising the exact sectors from your physical hard drive where it resides, you will adore IOS. Configuration being done line by line helps with this. Anything you wish to add (such as an IP address, ``router(config-if)# ip address 10.0.0.1 255.0.0.0'', or maybe the speed of a serial port, ``router(config-if)# clockrate 56000'') is just a line away. Deleteing a line is done by adding the word ``no'' infront of the line in the appropriate mode. (``router(config-if)# no ip address...'')

Possible interfaces on a Cisco router: Ethernet/AUI, FDDI, token ring, and serial.

IOS commands may also (and probably should be) abbreviated. To make a command, or argument, work, all that needs to be typed in is the shortest number of characters to make it a unique argument against all the other possibilities. Ex: ``router# copy running-config startup-config'' can become ``router# copy ru s'', the only reason for the `u' is because of another source, RCP.

Mmm... debugging.... the debug command is incredibly powerful in IOS, one can see everything they never cared to know about what is happening in their router. For example, debug ppp authentication chap will give you 6-8 lines every time someone challenges the other. And again, to turn off debugging, you would use no debug ppp auth chap.

The interactive help system is fairly intuitive, although it does sometimes take a manual or general know-how to understand what exactly it wants. This is brought up by simply typing the question mark. No enter required! Say you want to know the subcommands available for the ``copy'' command, typing in ``copy ?'' would list everything, along with a line about what it is. (memory, tftp, rcp, nvram, etc) Without a space the ? shows all possible commands using that start with those letters. (``i? might bring up ip, ipx, interface). Some Quirks about it are, WORD means it wants a hostname, and A.B.C.D means it either wants an IP, subnet mask, or an access mask (think inverted subnet mask).

the show command brings up everything you may want to know about your router. The ``show interface'' will scroll the interfaces by page by page, including network and data link adresses, encapsulations, statistics out the wazoo, including stats about the stats.

It does take a minute or so to bootup though. Although loading a 5meg image off of flash can be a very time consuming process.
there is more than one 'IOS' from Cisco there is the IOS that runs on their routers(the one most people think of and the one that runs on some of their switches(derrived from original Kalpana switch interface. There are also other non-IOS pieces of software that often get reffered to as IOS, such as the Altiga derrived software that runs on their VPN Concentrators. There are also some nifty devices that run both the Kalpana and the Cisco IOS. these wonderful devices are usually large switches that have layer 3 routing modules in them. the layer 3 board is actually a router that talks with the switch using virtual gigabit uplinks.
speaking of fun with the debug command in the IOS, i accidentally brought a router to its knees today buy debugging an IP NAT session. someone had configured the router to log at the debug level to a syslog server that was off of one of the NATed interfaces. i made the mistake of doing a debug ip nat detail which really pissed off happy mr. router. fortunately for me the ios is smart enough to kill off processes that take an inordinate amount of cpu time. that will teach me to try to solve an ip nat problem at 5:00AM after staying up all night

Log in or register to write something here or to contact authors.