Terminal Server Using Cisco NM-32a / NM-16a with 2600 Series Router

Today I finally got my terminal server setup for my networking homelab. The biggest reason I didn’t use it as much before was because sitting in a hot room with a bunch of switches and routers going sucks. Now I can comfortably be anywhere and telnet into my terminal server, accessing everything through it. The only thing to do at the actual rack now is cabling it.

Some of you might be wondering what the hell I mean by a terminal server.  Really, all it is, is a 2600 series Cisco Router (in this case a 2610), with an NM-32a and Octal cable.  The NM-32a has the ability to let  you attach up to 4 Octal Cables, which means in theory, it can connect to up to 32 different console ports. (That’s where the 32 comes from, there is also an NM-16a which does the same thing but only has 2 plugs for octal cables).

Cisco NM-16a, with 2 spots for Octal Cables
Cisco NM-16a available on Amazon or Ebay


The NM-16a or NM-32 both plug into the modular slot on your router, make sure you power the device down first, then install it into the modular expansion slot on your router.

Octal Cable
Octal Cable

You’re going to need an Octal Cable, which can be found on Amazon or eBay for around $25.  Plug it into the 0/0 port on your NM-32a or NM-16a. It should like this.

Terminal Server with Octal Cable and Cisco NM-32a
Octal Cable in NM-32a

Now you have to configure the Router.  It’s really easy.

First, do a “Show Line” command from the privileged-exec mode in order to find out which lines you have.

show line
 Tty Typ Tx/Rx A Modem Roty AccO AccI Uses Noise Overruns Int
 0 CTY - - - - - 19 1 0/0 -
 33 TTY 9600/9600 - - - - - 12 472 208/637 -
 34 TTY 9600/9600 - - - - - 5 34 0/0 -
 35 TTY 9600/9600 - - - - - 10 31 0/0 -
 36 TTY 9600/9600 - - - - - 3 71 38/117 -
* 37 TTY 9600/9600 - - - - - 1 0 0/0 -
 38 TTY 9600/9600 - - - - - 0 0 0/0 -
 39 TTY 9600/9600 - - - - - 6 0 0/0 -
* 40 TTY 9600/9600 - - - - - 2 0 0/0 -
 41 TTY 9600/9600 - - - - - 0 0 0/0 -
 42 TTY 9600/9600 - - - - - 0 0 0/0 -
 43 TTY 9600/9600 - - - - - 0 0 0/0 -
 44 TTY 9600/9600 - - - - - 0 0 0/0 -
 45 TTY 9600/9600 - - - - - 0 0 0/0 -
 46 TTY 9600/9600 - - - - - 0 0 0/0 -
 47 TTY 9600/9600 - - - - - 0 0 0/0 -
 48 TTY 9600/9600 - - - - - 0 0 0/0 -
 49 TTY 9600/9600 - - - - - 0 0 0/0 -
 50 TTY 9600/9600 - - - - - 0 0 0/0 -
 51 TTY 9600/9600 - - - - - 0 0 0/0 -
 52 TTY 9600/9600 - - - - - 0 0 0/0 -
 53 TTY 9600/9600 - - - - - 0 0 0/0 -
 Tty Typ Tx/Rx A Modem Roty AccO AccI Uses Noise Overruns Int

 54 TTY 9600/9600 - - - - - 0 0 0/0 -
 55 TTY 9600/9600 - - - - - 0 0 0/0 -
 56 TTY 9600/9600 - - - - - 0 0 0/0 -
 57 TTY 9600/9600 - - - - - 0 0 0/0 -
 58 TTY 9600/9600 - - - - - 0 0 0/0 -
 59 TTY 9600/9600 - - - - - 0 0 0/0 -
 60 TTY 9600/9600 - - - - - 0 0 0/0 -
 61 TTY 9600/9600 - - - - - 0 0 0/0 -
 62 TTY 9600/9600 - - - - - 0 0 0/0 -
 63 TTY 9600/9600 - - - - - 0 0 0/0 -
 64 TTY 9600/9600 - - - - - 0 0 0/0 -
 65 AUX 9600/9600 - - - - - 0 0 0/0 -
* 66 VTY - - - - - 17 0 0/0 -
 67 VTY - - - - - 10 0 0/0 -
 68 VTY - - - - - 0 0 0/0 -
 69 VTY - - - - - 0 0 0/0 -
 70 VTY - - - - - 0 0 0/0 -

Line(s) not in async mode -or- with no hardware support:
1-32

As you can see above, my NM-32a is using lines 33 – 65.  We will come back to use this later.  First, we are going to make a loopback interface and give it an IP address, we are going to use this to create hosts for serial lines we saw above.

conf t
int loopback0
ip address 10.10.10.1 255.255.255.255
exit

Next, we make those hosts, this is where we will use those line numbers we saw earlier. For the hosts, you can name them anything (I use r1 for router 1, r2 for router 2, etc.). Then we use the port 2000 + line# (so my first line is #33, so the port is 2033). My configs look like this.

ip host r1 2033 10.10.10.1
ip host r2 2034 10.10.10.1
ip host sw3 2038 10.10.10.1
ip host sw2 2037 10.10.10.1
ip host sw1 2036 10.10.10.1
ip host r3 2035 10.10.10.1

We’re almost done at this point, just one last big thing, and that is to configure the lines themselves. Add no exec in order to make sure your lines don’t open up whenever there is output from the devices onto the lines.  Trust me, you’ll get sick of clearing those lines constantly otherwise.

line 33 64
 exec-timeout 0 0
 no exec
 transport input telnet

So, it should all work now, but how?

It’s pretty easy, from privledge exec mode, type in the name of the host you made. It’ll connect.  In order to exit out, type cntrl+shift+6 x, this will return you to your terminal server, but will leave the session open.  To close it, you type disconnect $hostname… which for me would look something like

disconnect r1

If that doesn’t work, you might have to clear the line, which is easy, just clear and then the line number.

clear line 33

That should do it! Good luck and let me know how it goes for you!

-Peter