Cisco IOS update, enable ethernet

in Cisco, Ubuntu

Having actually managed to connect to the router via console, I thought I'd be capable of doing some simple configuration tests with the router. Well, that turned out to only be half true, since there still were some kinks with the way Cisco has decided to plumb its products. I set the following tasks to do for today:

  • Update IOS to the latest version I happened to have ( 12.4-15.T8 )
  • Make the router available via Ethernet telnet

After taking a few hours of time, I discovered that unlike most other routers, the 857 ( and probably the rest of the 8XX series ) don't like having IPs assigned directly to their ports, as most posts suggest. Many attempts to do so always ended with the whiney message

% IP addresses may not be configured on L2 links.
After some more digging around, I found out that you need to set the address to a VLAN instead. Well, the (recently nuked) configuration had a VLAN, interface Vlan1 :) And quite obviously, it's only configuration was "no ip address"...

As for updating, now that you have an IP address, you can use TFTP, which is suprisingly simple to setup in Ubuntu, just follow the steps found in David Sudjiman's Blog

Although in my case, Step 4 was redundant ( service was auto-started after installing, giving me all sorts of weird errors when trying to start it again ). To check, use restart instead of plain start on step 4.

After my new TFTP server was up and happily running, I threw my nice new and shiny IOS in /tftpboot. On the router side, the way to get that file is

Router# copy tftp://10.0.0.11/c850-whatever.bin flash:

If you have enough space in your flash, that'll do the trick. However, if you don't (which was my case ), you need to erase something.

Since I didn't have anything of importance there ( and a good friend to help me out if I screwed up ), I just backed up the previous IOS to the TFTP through

Router# copy flash:c850-whatever.bin tftp

and got prompted for all the TFTP details. After that, I just used

erase flash:

to wipe out everything stored there.

Do note though that this command will erase everything there is to erase on the internal flash memory, use delete for anything more specific.

Once done, rerun the copy tftp:// line again, to get the IOS binary onto the flash.

Theoretically, you should run a “verify flash:c850-whatever.bin”, but apparetly there's some bug there, since all I ever got was errors about the file not existing. Once I reloaded the router though, show version happily greeted me with the correct version number :)

Finally, in order to enable telnet access without the need for a direct console connection, we need to setup a virtual terminal ( vtty ). For some reason I don't understand, you need to setup a minimum of 5, and setting a common access password. To do so:

Router# conf t
Router(config)# line vty 0 4
Router(config-line)# login
% Login disabled on line 66, until 'password' is set
% Login disabled on line 67, until 'password' is set
% Login disabled on line 68, until 'password' is set
% Login disabled on line 69, until 'password' is set
% Login disabled on line 70, until 'password' is set
Router(config-line)# password letmein
Router(config-line)#exit

And in you are :) You can safely get rid of the console cable.... for now anyway :)