Setting Up a Terminal Console Server

Although it is not possible to remove the requirement for going on site to deploy networking equipment, wouldn't it be great if engineers could do all the hardware commissioning and configuration whilst still working from home.

Setting Up a Terminal Console Server

The impact of COVID-19 has forced many organisations to move much of their IT systems to the cloud; however, there are still many companies who need to deploy networking equipment to buildings to enable their operations.

Although it is not possible to remove the requirement for going on site to deploy networking equipment, wouldn't it be great if engineers could do all the hardware commissioning and configuration whilst still working from home.  So, for instance, in a typical network refresh project with 20 or 30 L2 and L3 network devices, how do you provide serial console access to each device remotely?

Typically SSH would be used to manage devices but as the devices wouldn't yet have any config applied that doesn't help. The answer is a terminal console server, which enables management of any device with a serial console port, including Cisco routers, switches and firewalls, Servers, PBXs and more. The other major benefit of such an approach is that it allows you a single jump point from which to access the console ports of many devices.

There are of course a number of purpose-built 32-port serial console servers, from the likes of Perle, WTI et al, however they cost many thousands of pounds. These make sense for mission critical out-of-band console management but for configuration work fortunately Cisco has had a solution for many years and it is relatively inexpensive.

Hardware

The base hardware, a Cisco router, doesn't have to be the latest technology platform and so is readily available - we use a Cisco 2811. There are a couple of additional elements required, an Async Network Module (8, 16 or 32) and a number of special breakout cables (OCTAL-ASYNC) that provide eight RJ-45 rolled cable async ports on each 68-pin connector. The following link provides details of the HWIC variants.

Serial and Asynchronous Modules for Cisco Integrated Services Routers
Data sheet for Cisco serial and asynchronous modules for Cisco 1800, 1900, 2800, 2900, 3800 and 3900 Series Integrated Services Routers

The asynchronous port utilizes the tty line numbering scheme, which is linear and allows for 32 tty ports per network module slot. The server uses reverse telnet to facilitate connecting to the server in the first instance and then connecting out from the server to the target device via one of the asynchronous lines.

One the hardware is installed use the show line command to identify the line details as they will differ depending on the router and modules.  On our 2811 router using a HWIC-16A, the physical lines are numbered 0-15 (0/1/0 to 0/1/15). and the virtual line numbers 18 to 33. This means that the telnet port numbers exposed for remote management are 2000 + virtual line number, so 2018-2033.

As can be seen, the default configuration assumes that all of the equipment being connected to from the console server uses the Cisco-default serial connection speed of 9600bps (9600 baud). This can be changed on the line config if required.

Configuration Steps

There are four elements to the configuration:

  1. Identify the Async Network Module lines
  2. Create a loopback interface and assign an IP address
  3. Allow telnet as a transport across asynchronous lines
  4. Create a host table that maps a device name to the async line

Sample Configuration

interface Loopback0
ip address 172.31.1.1 255.255.255.255
no ip directed-broadcast
exit

line 0/1/0 0/1/15
transport input telnet
exec-timeout 0 0
session-timeout 20
no exec
exit

ip host Host01 2018 172.31.1.1
ip host Host02 2019 172.31.1.1
...
ip host Host16 2033 172.31.1.1

Managing Sessions

Connect to a Target Device
Connect to a device using the name defined in the host table (HOST01, etc).

Switch Between Active Sessions
The following steps enable you to manage the active sessions:
1. Use the escape sequence Ctrl-Shift-6 then x to exit the current session
2. Use the show sessions command to display all open connections

3. Enter the connection number [connection] to reconnect to the device.
4. Use the disconnect [connection] command to disconnect from the device.

To Follow - Improving usability with IOS CLI menus