Konfiguration eines Cisco Terminal-Servers (Part 1)

In fast allen Cisco-Kursen kommen Terminalserver vor um den Teilnehmern die Möglichkeit zu geben auf die Konsole der Geräte zu kommen, ohne ein extra Konsolen-Kabel zu den Geräten zu haben.
Diese Anleitung beschreibt wie so ein Terminalserver mit einem Cisco-Router aufgebaut und konfiguriert wird.

Die benötigten Geräte

  1. Ein Router mit Async-Interfaces.
    Das kann entweder ein 2511, 2512 sein, oder ein 26xx 36xx etc. mit einem NM-16A oder NM-32A. Die letzteren Module gibt es ab und an bei Ebay. Für ein NM-16A wird man meist noch um die 500 EUR bezahlen, zusammen mit einem gebrauchten 26er ist das aber immer noch günstiger als ein “reinrassiger” Terminalserver mit 16 Ports.
  2. Kabel zur Verbindung der Terminal-Server-Lines mit den Consolen der Geräte. Das sind entweder “normale” Konsolen-Kabel (wenn der Terminal-Server RJ-45-Buchsen hat oder wenn man den AUX-Port eines Routers verwenden möchte) oder aber Octal-Kabel (auch Peitschen genannt), die pro Kabel acht RJ-45-Stecker zum Anschluß an die Konsolen haben.

In diesem Beispiel kommt ein 2620 mit einem NM-16A mit zwei Octal-Kabeln zum Einsatz weil ich diese Kombination selbst in meinem Lab habe.

Die Konfiguration
In einem “show version” kann man sehen, daß der hier beschriebene Terminal-Server ein 26er Router mit 16 “terminal lines” ist. Diese Lines werden von dem NM-16A bereitgestellt:


Router#sh ver
Cisco Internetwork Operating System Software
IOS (tm) C2600 Software (C2600-IK9O3S3-M), Version 12.3(12e), RELEASE SOFTWARE (fc2)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2005 by cisco Systems, Inc.
Compiled Wed 24-Aug-05 07:51 by ssearch
Image text-base: 0x80008098, data-base: 0x819FB1EC

ROM: System Bootstrap, Version 12.1(3r)T2, RELEASE SOFTWARE (fc1)
ROM: C2600 Software (C2600-IK9O3S3-M), Version 12.3(12e), RELEASE SOFTWARE (fc2)

TS uptime is 1 minute
System returned to ROM by power-on
System image file is "flash:c2600-ik9o3s3-mz.123-12e.bin"

...

cisco 2620 (MPC860) processor (revision 0x600) with 61440K/4096K bytes of memory.
Processor board ID JAD05470819 (2043342174)
M860 processor: part number 0, mask 49
Bridging software.
X.25 software, Version 3.0.0.
1 FastEthernet/IEEE 802.3 interface(s)
16 terminal line(s)
32K bytes of non-volatile configuration memory.
16384K bytes of processor board System flash (Read/Write)

Configuration register is 0x2102

Dieser Router hat ein Feature-Set mit Crypto-Funktionen, damit er aus dem Internet heraus auch per SSH erreichbar sein kann. Für die einfache Terminal-Server-Funktion reicht aber ein IP-only-IOS.

Für das spätere Ansprechen der jeweiligen Lines muß man wissen welche Nummern diese haben. Das bekommt man mit dem Befehl “show line” heraus:


Router#sh line
Tty Typ     Tx/Rx    A Modem  Roty AccO AccI   Uses   Noise  Overruns   Int
*    0 CTY              -    -      -    -    -      0       0     0/0       -
33 TTY   9600/9600  -    -      -    -    -      0       0     0/0       -
34 TTY   9600/9600  -    -      -    -    -      0       0     0/0       -
35 TTY   9600/9600  -    -      -    -    -      0       0     0/0       -
36 TTY   9600/9600  -    -      -    -    -      0       0     0/0       -
37 TTY   9600/9600  -    -      -    -    -      0       0     0/0       -
38 TTY   9600/9600  -    -      -    -    -      0       0     0/0       -
39 TTY   9600/9600  -    -      -    -    -      0       0     0/0       -
40 TTY   9600/9600  -    -      -    -    -      0       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       -
65 AUX   9600/9600  -    -      -    -    -      0       0     0/0       -
66 VTY              -    -      -    -    -      0       0     0/0       -
67 VTY              -    -      -    -    -      0       0     0/0       -
68 VTY              -    -      -    -    -      0       0     0/0       -
69 VTY              -    -      -    -    -      0       0     0/0       -
Tty Typ     Tx/Rx    A Modem  Roty AccO AccI   Uses   Noise  Overruns   Int

70 VTY              -    -      -    -    -      0       0     0/0       -

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

Router#

Auf diesem Router haben die zu konfigurierenden TTY-Lines die Nummern 33 bis 48. Das liegt daran, dass pro Slot 32 Lines “vorgehalten” werden und das NM-16A im Slot1 steckt. Wenn ein NM-32A im Slot 2 eines 3640 stecken würde wären es entsprechend die Lines 65 bis 96.
Bevor es an die Terminalserver-Konfiguration geht wird erstmal die IP-Connectivity und ein paar Basics konfiguriert:


Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#hostname TS
TS(config)#ip domain-name lab.iwen.local
TS(config)#enable secret cisco
TS(config)#int fastEthernet 0/0
TS(config-if)#ip address 10.255.10.6 255.255.255.0
TS(config-if)#ip route 0.0.0.0 0.0.0.0 10.255.10.1
TS(config)#
TS(config)#line vty 0 4
TS(config-line)#pass cisco
TS(config-line)#^Z
TS#

Natürlich könnte/sollte man hier auch den SSH-Zugriff konfigurieren, aber das ist unabhängig von der Konfiguration des Terminal-Servers.

Jetzt werden die Lines konfiguriert. Mit “show line” konnte man sehen, daß die Lines die Nummern 33 bis 48 haben. Daher tauchen sie auch in der Konfiguration auf:


TS#sh run | b line
line con 0
line 33 48
line aux 0
line vty 0 4
 password cisco
 login
!
!
end

Die Lines müssen Telnet-Verbindungen annehmen können:


TS#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
TS(config)#line 33 48
TS(config-line)#transport input telnet

Obwohl wir auf den Lines ausgehende Verbindungen zu den Geräten initiieren möchten muss trotzdem “transport input” konfiguriert werden und nicht “transport output”

Weiterhin sollte auf den Lines das Starten einer Shell abgeschaltet werden:


TS(config-line)#no exec
TS(config-line)#

Die notwendige Grundkonfiguration ist damit dann auch gemacht und der Terminalserver kann über “reverse-Telnet” angesprochen werden. Dafür wird einfach eine Telnet-Verbindug auf den Terminalserver aufgebaut und die Port-Nummer Line+2000 verwendet. Da ich meinen Frame-Relay-Switch an den fünften Anschluß des zweiten Oktal-Kabels angeschlossen habe ist das die Line 45 (erstes Kabel, erster Anschluß ist 33, zweiter Anschluß 34 …) und wird über die Portnummer 2045 angesprochen:


C:Documents and SettingsKarsten>telnet 10.255.10.6 2045

FR-Switch>exit

Optional kann die Session auch nach einer Inaktivitätszeit (in Minuten) getrennt werden:


TS(config-line)#session-timeout 10 output
TS(config-line)#

Die Lines sehen jetzt folgendermaßen aus:


TS(config-line)#do sh run | b line
line con 0
line 33 48
 session-timeout 10  output
 no exec
 transport input telnet
 transport output none
line aux 0
line vty 0 4
 password cisco
 login
!
!
end

TS(config-line)#

Als weitere Zugriffsart sollen jetzt vom Terminalserver selbst die Lines angesprochen werden können. Dabei wird von der Konsole des Routers ein Telnet auf sich selbst mit dem richtigen Port durchgeführt. Um das zu vereinfachen sollte man Host-Einträge konfigurieren:


TS(config-line)#ip host FR 2045 10.255.10.6
TS(config)#ip host c3750 2033 10.255.10.6
TS(config)#^Z
TS#

Jetzt kann einfach über das (case-insensitive) Kürzel “FR” die Verbindung zum Terminalserver aufgerufen werden:


TS#fr
Trying FR (10.255.10.6, 2045)... Open

FR-Switch>

Evtl. wäre es besser nicht die Interface-Adresse in den Host-Befehlen zu nehmen, sondern eine Loopback-Adresse:


TS#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
TS(config)#no ip host FR 2045 10.255.10.6
TS(config)#no ip host c3750 2033 10.255.10.6
TS(config)#
TS(config)#int loopback 0
TS(config-if)#ip address 10.10.10.10 255.255.255.255
TS(config-if)#ip host c3750 2033 10.10.10.10
TS(config)#ip host FR 2045 10.10.10.10
TS(config)#^Z
TS#

An der Funktionalität hat sich natürlich nichts geändert:


TS#fr
Trying FR (10.10.10.10, 2045)... Open

FR-Switch>

Wie kommen wir jetzt aber von dem FR-Switch wieder zum Terminalserver zurück? Das geht über die Tastenkombination Shift/STRG/6 +x (also Shift, STRG und 6 drücken – loslassen – “x” hinterherdrücken).


FR-Switch> (shift+strg+6+x)
TS#

Im Hintergrund merkt sich der Terminalserver aber dass eine Session läuft und das nächste “Return” bringt einen wieder auf das zuvor benutzte Gerät:


TS# (Return)
[Resuming connection 1 to fr ... ]

FR-Switch>

FR-Switch> (shift+strg+6+x)
TS#

Wenn man die letzte Konsolensitzung trennen möchte kann dies mit “disconnect” getan werden:


TS#disconnect
Closing connection to fr [confirm]
TS#

Manchmal blockiert der Terminalserver eine Konsole wenn man diese schon längst verlassen hat. Dann wird die Verbindung mit “clear line line” gelöscht:


TS#clear line 45
[confirm]
[OK]
TS#

Und so sieht die komplette Konfiguration getzt aus:


TS#sh run
Building configuration...
Current configuration : 833 bytes
!
version 12.3
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname TS
!
boot-start-marker
boot-end-marker
!
enable secret 5 $1$X13g$PLW/KuqiWF8Fp.4QZbCHh1
!
no aaa new-model
ip subnet-zero
ip cef
!
!
ip domain name lab.iwen.local
ip host c3750 2033 10.10.10.10
ip host FR 2045 10.10.10.10
!
ip audit po max-events 100
!
!
interface Loopback0
 ip address 10.10.10.10 255.255.255.255
!
interface FastEthernet0/0
 ip address 10.255.10.6 255.255.255.0
 duplex auto
 speed auto
!
ip http server
no ip http secure-server
ip classless
ip route 0.0.0.0 0.0.0.0 10.255.10.1
!
!
line con 0
line 33 48
 session-timeout 10  output
 no exec
 transport input telnet
 transport output none
line aux 0
line vty 0 4
 password cisco
 login
!
!
end
TS#

Im “Part 2” kommen dann noch ein paar Erweiterungen in unserer Terminalserver-Konfiguration dazu. Bis dahin viel Spaß mit dieser Grundkonfiguration!

5 Replies to “Konfiguration eines Cisco Terminal-Servers (Part 1)”

  1. Hallo

    Toller Report !

    Hab noch eine kleine Frage:
    Kann ich dies auch mit einer normalen AUX Schnittstelle machen?
    Wenn ja, wie geht dies?

    Hab mit der gleichen Konfig wie oben probiert, doch klappt dies leider nicht
    Ich haben einen Cisco 1760 hier und einen Cisco Switch2940-8TTS

    Muss ich auf dem Switch noch was konfigurieren?

    Danke

    Kneuzgi

  2. Kann ich damit auch auf ne serielle Konsole von nem PC zugreifen? Hab mir mal paar Adapter geholt, häng aber grad an der Pinbelegung 🙁

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.