IOS-Administration mit Telnet und Perl

Es gibt verschiedene Ansätze, IOS-Geräte (und ich spreche nicht von iPhones, sondern Cisco-Hardware) zu managen. Gerade in großen Umgebungen sind dazu zentrale Management-Lösungen installiert, die per SNMP die Geräte auslesen und Konfigurationen verteilen. Besitzt man nur wenige Cisco-Geräte, so ist eine solche Lösung zu teuer in der Anschaffung. Wie automatisiert man regelmäßige Administrationsaufgaben, ohne dabei immer auf die Kommandozeile jedes Gerätes zu müssen? Hierfür gibt es einen Lösungsansatz mit der „Schweizer Armeekettensäge“ Perl.

Eins vorweg: Dies ist weder die eleganteste, noch die sicherste Lösung. Per Telnet übertragene Daten wandern komplett im Klartext über das Netzwerk und sind somit relativ leicht abgreifbar.

Man installiert sich auf einem Linux-Rechner einfach das Paket libnet-telnet-cisco-perl, alternativ kann man dieses Modul auch per CPAN beziehen. Dann lässt sich in einem Perl-Skript mit passendem Syntax das IOS-Gerät ansprechen:

#!/usr/bin/perl
use Net::Telnet::Cisco;

my $session = Net::Telnet::Cisco->new(Host => '192.168.0.1');
$session->login('login', 'password');

# Execute a command
my @output = $session->cmd('show version');
print @output;

$session->close;

Alternativ könnte man hier nun eine Reihe von IOS-Kommandos absetzen, um z.B. die aktuelle Konfiguration und Routing-Tabelle auszugeben. Genauso gut lassen sich aber auch Einstellungen verändern, wie z.B. ein VLAN umkonfigurieren.

Die vollständige Dokumentation erklärt erweiterte Befehle und Anwendungsfälle.

Schreibe einen Kommentar