A Cisco terminal server is a router with multiple, low speed, asynchronous ports that are connected to other serial devices. These are often used to provide out-of-band management to those devices. Using this, you can establish a single point of access to the console ports of multiple devices in your infrastructure, and gain administrative access in scenarios of failed network connectivity.

Cisco usually provides a few types of breakout cables (also referred to as octocables) to connect to your router's async ports. The CAB-OCTAL-ASYNC is a 8-port variant popularly used on the 2500 series routers, and will be explained here. (Make sure to read the documentation for your device and find out which cables are appropriate to use for your setup.)

Let's assume you have a 2500 series router you would like to configure into a terminal server, and you have two 2600 series catalyst switches you will be managing. We should be able to quickly get this setup in a matter of minutes for remote access.

Cabling

Connect your breakout cable to the 2500 router and connect the RJ-45 connectors labeled P0 and P1 to the console ports of your 2600 switches. As long as all of your devices are powered on (and booted up; remember cisco gear can take 5 min or so to fully boot up) you should be ready to continue! (it's that easy.)

Setting your Loopback

You will need to have a loopback device defined in your router to properly administrate your devices on. In IOS, it should be as simple as the following:

Router(config)#interface loop0
Router(config-if)#ip address 172.16.1.1 255.255.255.255
Router(config-if)#^Z

Here, we are defining the device "loop0" and assigning the address of 172.16.1.1/32 to the device. This will be used to connect to your async lines when managing the switches.

Finding your management ports

Cisco gear is a little bit magical here, as they will automatically enumerate ports for your async lines on the loopback device. These ports will be assigned the values of 2000 + P, where P is the label of the breakout cable port number you have plugged in.

For example, we have plugged in P0 and P1 into our test switches, so the enumerated ports will be 2000 and 2001 respectively.

Configure transport access

Telnet is usually defined by default, but it's a good idea (and sometimes necessary) to explicitly define your settings. In order to allow your router to speak out to the switches over the async lines, you must set the transport settings to allow telnet. We can use the following command to do this:

Router(config)#line 0/0/0 0/0/7
Router(config-line)#transport output telnet
Router(config-line)#^Z

This will set the transport output settings on all 8 of your available async lines. Please not that, depending on the hardware you may be using, these lines may be enumerated differently. You can use the show lines command to see your actual available line information and configure accordingly.

Connecting

Now, you can easily connect from your router to either of the switches using telnet.

Router#telnet 172.16.1.1 2000

As usual, Ctrl+Shift+6 then x will bring you back to your terminal server.

If you want to make a quick alias to make connecting easier, you can do so using the ip host commands.

ip host switch1 2000 172.16.1.1
ip host switch2 2001 172.16.1.1

You can now just type switch1 to log into your switch.

From here, you can get fancy and setup aux connections to the router, say if you needed dial-up access to your gear in case of an ISP outage or something similar. But at the very least, this should be enough to get you up and going.