tcl script ciscoPuò capitare nelle attività di tutti i giorni in merito al networking, o a fronte di un determinato case study CCNP, di dover per esempio isolare, ad un determinato orario, due Spoke dal proprio HUB, o dei switch di Distribution verso il loro Core,
per un'attività che preveda l'isolamento di quella tratta di rete.

In merito a ciò ci viene in soccorso il tcl "tool command language" che è un potente e maturo linguaggio di programmazione dinamico e in continua evoluzione il quale si adatta ad una vasta gamma di utilizzi.

Per quanto ci riguarda per poter settare i scripts su un router o switch sarà sufficente, una volta entrati in enable mode, digitare il comando tclsh e fornire alla macchina l'input che si vuole far eseguire. ​ Preso in considerazione lo scenario scritto in apertura del blog il nostro primo scopo sarà quello di creare, in un file, i script di start e stop fornendo loro come variabile di input una interface su cui agire. Quindi, una volta entrati in enable mode, andremo a digitare, per lo script di start, quanto segue:

!
tclsh puts [open "flash:start-port.tcl" w] {
set ports [lindex $argv 0]
ios_config "int $ports" "no shut" "end"
}
tclquit
!

Mentre per quanto riguarda lo script di stop, sempre in enable mode, quanto segue :

​!
tclsh puts [open "flash:stop-port.tcl" w] {
set ports [lindex $argv 0]
ios_config "int $ports" "shut" "end"
}
tclquit
!

Ovviamente prima di fare ciò assicuratevi che già non esistono, sotto le flash, file con questi nomi. Una volta analizzata la configurazione dello switch, o del router, prendiamo nota dell'interfaccia con cui lo SPOKE si collega all'HUB che nel nostro caso ammettiamo che sia ad esempio la GigabitEthernet 1/0/48. A questo punto ci viene chiesto che questa tratta di rete non sia raggiungibile dalle 12:30 alle 13:30 Allora non ci resta che mettere in crontab tale attività, sull'apparato di rete, con la seguente sintassi:

Cisco(config)#
Cisco(config)#kron policy-list policy_Interface_stop
Cisco(config-kron-policy)#cli tclsh flash:stop-port.tcl "GigabitEthernet1/0/48"
Cisco(config-kron-policy)#exit
Cisco(config)#

Una volta settata la policy la mettiamo in crontab scrivendo per lo stop:

Cisco(config)#kron occurrence policy_Interface_stop at 12:30 oneshot
Cisco(config-kron-occurrence)#policy-list policy_Interface_stop
Cisco(config-kron-occurrence)#exit
Cisco(config)#

Mentre per il restart:

Cisco(config)#kron occurrence policy_Interface_start at 13:30 oneshot
Cisco(config-kron-occurrence)#policy-list policy_Interface_start
Cisco(config-kron-occurrence)#exit

Ovviamente bisogna assicurarsi che l'apparato sia allineato con un NTP. Con questi passaggi si ha la possibilità di intervenire sulle interfaccie ad orari ben precisi. Volendo i file tclsh avrebbero anche un'altra utilità ossia stoppare e startare interfaccie senza passare da configure terminal. Come ? Settando un alias così riportato:

​​alias exec stop tclsh flash:stop-port.tcl
alias exec start tclsh flash:start-port.tcl

In questo modo facendo stop GigabitEthernet1/0/48 si stopperà l'interfaccia mentre con start GigabitEthernet1/0/48 quell'interfaccià passerà in no shutdown. Spero che tale tema possa esservi di aiuto e vi invitiamo a non utilizzare tale spiegazione per scopi malevoli in quanto procedura fornita solamente a titolo di studio.

Disclaimer: Non assicuriamo che con l'uso di tale documento si assicurerà un esito positivo nell'ambiente svolto di fatto il lettore deve applicare il proprio giudizio professionale per le specifiche circostanze presentate dai particolari sistemi o ambienti informatici. Inoltre evidenziamo che il materiale e l'informazione contenuto nel presente è fornito a titolo semplicemente informativo e sebbene si è prestato la massima attenzione all'aggiornamento ed all'esattezza delle informazioni diffuse nell'articolo, non può essere tuttavia fornita alcuna garanzia. Gli utenti, di conseguenza, sono tenuti a prendere tutte le precauzioni necessarie prima di utilizzare tali informazioni svolgendo tale procedura prima in un ambiente di collaudo e poi, avendo avuto un esito positivo, eseguirlo, solo a fronte di una autorizzazione dei loro responsabili, in esercizio/produzione.


evEros Verdini
Logo IpCert piramide

Contatti

     328 37 84 030
   0775 16 26 500
   [email protected]

RICHIESTA INFORMAZIONI

DEMO GRATUITA DI 14 GIORNI
CORSO CCNA ONLINE
Puoi richiedere l'accesso alle prime 3 ore di lezioni e al materiale didattico del corso CCNA ON DEMAND, senza costi e senza alcun vincolo di acquisto.
Vuoi attivare la DEMO di 14 giorni e ricevere via mail le credenziali di accesso?