PrettyPrint

giovedì 14 luglio 2022

Cisco CLI IOS: i comandi utili nell'attività laboratoriale

 

Di seguito verranno descritti alcuni comandi che rendono più produttività l'esperienza di amministrazione di una macchina Cisco, soprattutto nel contesto laboratoriale. Infatti, a differenza del contesto di produzione, nell'attività di laboratorio si tende a privilegiare sicuramente la semplificazione operativa anche se a scapito della sicurezza.

1. Non impostare password

Quando si usa la CLI in ambito laboratoriale (sia reale ma anche con Packet tracer) gli apparati vengono usati da più studenti; una password non conosciuta, impostata da un altro studente, comporta il reset fisico dell'apparato con evidenti ricadute sull'esperienza di laboratorio. Pertanto è buona norma non impostare alcuna password in nessuna modalità utente o privilegiata.

2. Disabilitare il DNS lookup

E' il primo comando EXEC sicuramente da immettere (subito dopo quello dell'assegnazione dell'hostname). Forse è quello più indispensabile. 

Quando si inserisce un comando errato, in alcune circostanze, il sistema prova a interrogare il server DNS impostato di default, nel tentativo di risolvere il nome (ipotizza che la stringa immessa sia il nome di un host al quale ci si vuole collegare). Esempio:

Switch# conifg
Translating "conifg"...domain server (255.255.255.255)
Dopo qualche minuto di blocco della console (non è possibile interrompere in nessun modo da tastiera questa interrogazione DNS...), il sistema risponde con il seguente messaggio, "rilasciando" così l'uso della console:

% Unknown command or computer name, or unable to find computer address

Switch# config terminal

Il problema viene aggirato disabilitando il lookup DNS con il seguente comando EXEC:

Switch(config)# no ip domain-lookup

3. Mitigare i disturbi del syslogging su console 

Il demone syslog del sistema operativo Cisco IOS logga sulla console, in qualsiasi momento, messaggi di sistema, per esempio attivazione/disattivazione di interfaccia, messaggi di protocolli ecc. Se in quel momento si sta, per esempio, usando la console per inserire un comando questo verrà "spezzato" e nel mezzo inserito il messaggio di syslog. Esempio:

R0(config-if)#ip address 192.168.1.10 255.2
%LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0, changed state to down
55.255.0
La prima soluzione potrebbe essere quella di disabilitare totalmente il logging di syslog attraverso i seguenti comandi:

Switch(config)# line console 0
Switch(config-line)# no logging console

Questa soluzione potrebbe però impedire di leggere messaggi importanti di sistema. Esistono diverse soluzioni alternative che risolvono o mitigano il problema (si rimanda a questo link). 

Il metodo consigliato sui testi Cisco è quello di mantenere abilitato il logging su console, ma in modo "sincrono". In questo modo il comando che si stava inserendo verrà ristampato esattamente dopo la stampa su console dell'evento syslog:

R0(config)#ip address 192.168.1.10 255.2
%LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0, changed state to up

R0(config)#ip address 192.168.1.10 255.2


ll logging sincrono viene abilitato con i seguenti comandi:

Switch(config)# line console 0
Switch(config-line)# logging synchronous

Se si prevede di usare login SSH/Telnet (VTY terminal) , ripetere i comandi:

Switch(config)# line vty 0 15
Switch(config-line)# logging synchronous

4. Disabilitare il timeout di sessione

Di default dopo 5 minuti di inattività (sia console che SSH/Telnet), il sistema disconnette l'accesso. E' evidente che in un ambiente esercitativo, non di produzione, sarebbe preferibile non disconnettere mai che viene codificato con la coppia 0 ore, 0 min:

Switch(config)# line console 0
Switch(config-line)# exec-timeout 0 0

Se si prevede di usare login SSH/Telnet (Virtual Teletype) , ripetere i comandi:

Switch(config)# line vty 0 15
Switch(config-line)# exec-timeout 0 0

Ovviamente  per salvare sulla memoria di avvio le modifiche fatte  e quindi non perderle con un reboot della macchina,  occorrerà lanciare il comando:

Switch# copy run start

________________

Sitografia/Bibliografia

lunedì 11 luglio 2022

Cisco Catalyst 2960: aggiornamento firmware mediante CLI

Ho comprato mesi fa su eBay uno Switch Cisco Catalyst 2960 ricondizionato, insieme ad altri apparati della stessa casa a un prezzo davvero conveniente, con lo scopo di allestirmi un classico CCNA lab per fare pratica con i comandi CLI di CISCO IOS.

Lo switch 2960 in mio possesso è la versione 24-TT-L non più in produzione e con supporto cessato nel 2019. L'apparato oltre alle 24 porte rame 10/100 ha altre 2 porte rame 10/100/1000 (tutte non PoE) che possono essere usate per i collegamenti di uplink. 


La guida che andrò a descrivere si riferisce all'aggiornamento del firmware dell'apparato usando un computer con sistema operativo Windows 11 (o 7/8/10) versione 64-bit


1. Gli strumenti software/hardware necessari

Oltre ovviamente a un computer con Windows 7/8/10/11 64-bit, dotato di porta RS232 o USB e porta Ethernet (con relativo cavo di rete RJ45/RJ45) occorrono:

Cavo Rollover

Occorrerà un cavo di programmazione rollover DB-9/RJ45 (se avete un computer ancora con la porta RS232 DB9). Se avete, invece, un computer con la sola porta USB la scelta è ovviamente la versione USB/RJ-45 . Se avete già il cavo DB9/RJ45 ma vi serve USB potete ovviamente usare qualsiasi cavo adattatore DB-9/USB

Il cavo andrà collegato, per l'estremità RJ45 nel retro (porta console) dell'apparato, l'estremità USB/DB9 ovviamente al computer:

   



Software emulazione terminale 

Come software di emulazione terminale, per collegarci tramite la porta COM (reale o virtuale USB), il software più usato è senz'altro l'ottimo freeware Putty, che andrà scaricato all'URL:

https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

Applicazione server TFTP

Il file binario dell'aggiornamento una volta scaricato sul computer, verrà, a sua volta, scaricato dallo switch mediante una sessione TFTP: quindi lo switch agirà da client e il computer agirà da server. Occorre quindi che sul PC sia in esecuzione un servizio TFTP. A tale scopo i documenti Cisco consigliano un'applicazione server TFTP free, per Windows, molto semplice da configurare e usare; è scaricabile al seguente indirizzo:

https://bitbucket.org/phjounin/tftpd64/downloads/Tftpd64-4.64-setup.exe

Vedremo più avanti come usarlo e configurarlo.

2. Che versione di firmware ho attualmente sulla macchina?


Per interagire con l'apparato abbiamo bisogno dell'emulatore terminale. Lanciamo PuTTY e lo configuriamo per la connessione seriale con lo switch:
  • Serial line
    La porta COM della seriale fisica (RS232) o virtuale (USB), es. COM3. Se non si conosce il numero è possibile individuarla da "Gestione dispositivi" > Porte seriali.
  • Speed
    Va bene anche 9600bps, ma diversi documenti Cisco consigliano 115200bps
  • Connection type
    Serial
Conviene salvare il profilo di connessione con un'etichetta "CISCO" in modo da richiamarlo velocemente per le future sessioni




D'ora in poi si supporà che lo switch si trovi configurato ai valori iniziali di fabbrica:
1) tutte le porte fanno parte della VLAN di default (VLAN ID=1)
2) la VLAN di management è la VLAN ID=1 (default management VLAN)
3) non sono state impostate password utente e/o modalità privilegiata


Aperto il terminale, battere INVIO, e al prompt lanciare il seguente comando EXEC:

Switch>show version

scorrendo il terminale, al termine, verrà visualizzata la versione del firmware attualmente in esecuzione:


3. Scarichiamo sul computer il file dell'aggiormanento


La pagina principale per il download del software Cisco è la seguente:


N.B. Occorre essere forniti di una login Cisco (la registrazione è libera).

Nel form di selezione del prodotto, digiteremo il modello del nostro apparato (nel nostro caso 2960-24TT-L) , quindi apparirà il link (in azzurro) corrispondente:


Successivamente selezioneremo il tipo di software (IOS):


A questo punto si apre la pagina del download del file di aggiornamento


Come si può notare l'ultima release consigliata è la 12.2.55-SE12(MD) a fronte della versione 12.2.55-SE4 attualmente installata.

Quindi procediamo al download cliccando sull'ultima icona sulla destra, salvando nella cartella "Scaricati" dell'utente corrente di Windows.

Nel nostro caso il nome del file è:    c2960-lanbasek9-mz.122-55.SE12.bin

4. Assegniamo allo switch un indirizzo IP

Lo switch si collega al computer anche mediante un cavo ethernet, che andrà collegato fra la porta ethernet del computer e una qualsiasi porta dello switch. 

Il collegamento di rete, come detto in precedenza, serve affinché lo switch possa "scaricare" dal computer il file di aggiornamento, salvato in una cartella dello stesso computer, mediante una connessione client (lo switch) / server (il computer) usando il protocollo TFTP.

Quindi lo switch dovrà avere una configurazione IP (indirizzo IP host, subnet-mask) in accordo con quella della configurazione IP del computer, dovendo le due macchine, ovviamente, far parte della stessa rete per poter comunicare.

Lo switch 2960 è uno switch layer-2, quindi non può avere porte fisiche associate a indirizzi IP. In questo caso, l'interfaccia IP sarà di tipo virtuale (SVI: Switch Virtual Interface) e sarà associata alla VLAN 1  che corrisponde alla default management VLAN. 

Per conoscere la configurazione IP dell'interfaccia ethernet del computer, dal prompt comandi lanciare il seguente comando:

>ipconfig

Scheda Ethernet Ethernet:

   Indirizzo IPv4. . . . . . . . . . . . : 192.168.1.5
   Subnet mask . . . . . . . . . . . . . : 255.255.255.0
   Gateway predefinito . . . . . . . . . : 192.168.1.1

Quindi l'indirizzo IP server (cioè quello dell'interfaccia ethernet del computer) è 192.168.1.5

Assegniamo allo switch un indirizzo IP host compatibile con la subnet mask, e non assegnato già ad altro end device, per esempio l'indirizzo IP 192.168.1.100.

Dal terminale di Putty:

Switch> en
Switch# conf t
Switch(config)# int vlan 1
Switch(config-if)# ip address 192.168.1.100  255.255.255.0
Switch(config-if)# no shut
Switch(config-if)# exit
Switch(config)# ip default-gateway 192.168.1.1

Lo schema definitivo dei collegamenti è quindi il seguente:



N.B. Si ricorda di attendere, ovviamente, che il LED della porta dello switch diventi verde prima di collegarsi all'apparato

5. Avviamo e configuriamo il server TFTP

Una volta lanciata l'applicazione TFTP server, occorrerà prestare attenzione a impostare le seguenti proprietà:

  • Current Directory 
    La cartella dove è stata salvata l'immagine scaricata al precedente punto. Nel nostro caso era la cartella "Scaricati", quindi sarà la s/directory "Downloads" della home dell'utente corrente 

  • Server Interfaces
    Occorre selezionare l'indirizzo IP dell'interfaccia ethernet (cablata), che nel nostro caso è 192.168.1.5 




6. Aggiorniamo il firmware

Da modalità privilegiata (non configurazione), lanceremo il seguente comando:

Switch> en
Switch# copy tftp://192.168.1.5/c2960-lanbasek9-mz.122-55.SE12.bin flash:

Terminata la fase di copia (battere INVIO alle domande), lanciare i comandi:

Switch# show flash:

Directory of flash:/

    2  -rwx     9827106   Mar 1 1993 03:25:11 +00:00  c2960-lanbasek9-mz.122-55.SE12.bin

  617  -rwx         108   Mar 1 1993 00:15:20 +00:00  info

    3  -rwx        1048   Mar 1 1993 00:00:59 +00:00  multiple-fs

  622  drwx         192   Jun 6 2012 10:16:14 +00:00  c2960-lanbasek9-mz.122-55.SE4

Se è andato tutto correttamente, dovrebbe essere visualizzate entrambe le immagini, sia la nuova (SE12) che la precedente (SE4).

Facciamo il boot con la nuova immagine, salviamo la nuova configurazione dalla NVRAM alla memoria flash di avvio e riavviamo il sisteam:

Switch# conf t
Switch(config)# boot system flash:c2960-lanbasek9-mz122-55.SE12.bin
Switch(config)# end
Switch# copy run start
Switch# reload

Riavviato il sistema, verifichiamo con il comando:

Switch> show version

che sia stata caricata la nuova versione del firmwre



7. Conclusioni


La procedura mediante CLI appare la più flessibile e ovviamente portabile su ogni sistema operativo usato per l'aggiornamento. Indipendentemente dal proprio os, occorrerà ovviamente avere un'applicazione TFTP server in esecuzione sul proprio sistema operativo e un'applicazione di emulazione terminale per potersi interfacciare con l'apparato di rete per l'invio dei comandi CLI (comandi EXEC). Applicazioni entrambe reperibili, gratuitamente, per qualunque sistema operativo.

________________

Sitografia: https://www.cisco.com/c/en/us/support/docs/smb/switches/cisco-550x-series-stackable-managed-switches/smb5566-upgrade-firmware-on-a-switch-through-the-command-line-interf.html