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.