Generare centinaia di file di configurazione per i router cisco

Quando si costruisce una grande WAN, di solito bisognerebbe configurare i router filiali in modo simile in base a un modello di progettazione. L’esempio utilizza uno script in Perl per unire un file CSV contenente informazioni di base con un file di modello standard. Prende il file CSV come input su STDIN.

 

 

Esempio create-configs.pl
#!/usr/local/bin/perl
#
$template_file_name="rtr-template.txt";
while(<>) {

   ($location, $name, $lo0ip, $frameip, $framedlci, $eth0ip, $x)
       = split (/,/);

   open(TFILE, "< $template_file_name") || die "config template file $template_file_name:
$!\n";
   $ofile_name = $name . ".txt";
   open(OFILE, "> $ofile_name") || die "output config file $ofile_name: $!\n";

   while (<TFILE>) {

     s/##location##/$location/;
     s/##rtrname##/$name/;
     s/##eth0-ip##/$eth0ip/;
     s/##loop0-ip##/$lo0ip/;
     s/##frame-ip##/$frameip/;
     s/##frame-DLCI##/$framedlci/;

     printf OFILE $_;
   }
}

Questo script Perl è una versione semplificata di script molto più lunga che abbiamo utilizzato per creare i file di configurazione per alcune reti molto grandi. Dopo aver caricato questi file di configurazione nei router, li abbiamo spediti alle postazioni remote insieme ad una copia cartacea della configurazione nel caso in cui vi siano dei problemi durante la spedizione. Il tecnico adetto all’installazione dei routers potrebbe quindi semplicemente collegare i cavi appropriati e accendere il router. Non avrebbe nemmeno bisogno di accedere alla console del router a meno che non ci siano problemi inaspettati. Questa metodologia può salvare centinaia di ore in un progetto.

Lo script ha una fusione relativamente semplice e si aspetta che i dati di input in formato CSV su STDIN. Per un file di input denominato RTR-data.csv, eseguire lo script come segue

 

linux% create-configs.pl < RTR-DATA.CSV

Il file di input, in questo caso potrebbe essere simile a questa

 

Toronto, Router1, 172.25.15.1, 172.25.16.6, 101, 172.25.100.1,
Boston, Router2, 172.25.15.2, 172.25.16.10, 102, 172.25.101.1,
San Francisco, Router3, 172.25.15.3, 172.25.16.14, 103, 172.25.102.1,

Utilizzando un file CSV è conveniente, perché è possibile tenere traccia di tutta la rete in un foglio di calcolo e creare un file CSV contenente i dati necessari per le configurazioni del router.La configurazione del modello deve includere nomi univochi delle variabili che lo script andrà a sostituire con i valori del file CSV. Ad esempio, il file di configurazione del modello potrebbe somigliare a questo:

!
version 12.1
service timestamps debug datetime msec
service timestamps log datetime msec
service password-encryption
!
hostname ##rtrname##
!
enable password cisco
enable secret cisco
!
interface Loopback0
 ip address ##loop0-ip## 255.255.255.255
!
interface Serial0/0
 description Frame-Relay Circuit
 no ip address
 encapsulation frame-relay
 ip route-cache policy
 frame-relay lmi-type ansi
 no shutdown
!
interface Serial0/0.1 point-to-point
 ip address ##frame-ip## 255.255.255.252
 frame-relay interface-dlci ##frame-DLCI##
!
interface FastEthernet0/1
 description User LAN Segment
 ip address ##eth0-ip## 255.255.255.0
 no shutdown
!
router eigrp 99
 network 172.25.0.0
!
snmp-server location ##location##
!
line con 0
 password cisco
 login
 transport input none
line aux 0
 password cisco
 login
line vty 0 4
 password cisco
 login
 transport input telnet
!
end

Lo script si aspetta di trovare il file di modello che si trova nella directory corrente con il nome RTR-template.txt ma è possibile modificare questo file facilmelmente editando la variabile template_file_name chiamata nello script.

Naturalmente a seconda dei modelli dei router bisognerà cambiare la configurazione. Questo script avrà probabilmente bisogno di una notevole modifica ogni volta che si utilizza su una nuova rete, ma la quantità di tempo necessario per modificare lo script è di solito molto meno rispetto alla quantità di tempo necessario per creare tutti i file di configurazione a mano.

L’output di questo script sarà una serie di file cui nomi sono gli stessi dei router, ma con. Txt aggiunto alla fine. È quindi possibile utilizzare un emulatore di terminale per tagliare e incollare i file di configurazione nei router prima di spedirle alle loro destinazioni. Ricordarsi sempre di salvare la configurazione NVRAM del router prima di spegnerlo:

 

Router1#copy running-config startup-config

 

Lascia un commento

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.