.. meta:: :language: it :description language=it: Networking Fundamentals: device discovery, gestione e manutenzione :description language=en: Networking Fundamentals: device discovery, management and maintenance :keywords: Networking Fundamentals, device discovery, management and maintenance :author: Luciano De Falco Alfano P2/10 device discovery, gestione e manutenzione ================================================= .. contents:: :local: 10.0 introduzione -------------------- 10.0.1 benvenuto ^^^^^^^^^^^^^^^^^^^^^^^^ **10.0.1.1 capitolo 10 - device discovery, gestione e manutenzione**. Cisco usa due protocolli in grado di scoprire informazioni sui device connessi:: * Cisco Discovery Protocol (CDP); * Link Layer Discovery Protocol (LLDP). Un altro tool importante è il Network Time Protocol (NTP) per sincronizzare gli orari dei sistemi, che sono utilizzati per confrontare i log. La manutenzione, infice, deve assicurare che siano effettuati i backup delle immagini dei sistemi operativi e delle configurazioni dei sistemi. Oltre a mantenere aggiornati i sistemi operativi. 10.1 Device discovery ----------------------- 10.1.1 device discovery con CDP ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **10.1.1.1 overview del CDP**. Cisco Discovery Protocol è un protocollo proprietario Cisco che lavora a layer 2 per scambiare info tra i device di rete. Indipendente dal media, gira su tutti i device Cisco. Le info che invia periodicamente ai vicini sono: tipo di device, nome, n.ro e tipo di interfacce. **10.1.1.2 configurare e verificare CDP**. CDP può lavorare globalmente sul device o su ogni singola interfaccia. Di conseguenza le configurazioni sono a livello globalo o sulla interfaccia selezionata. Ricordare i seguenti comandi (il secondo # indica inizio del commento):: R# show cdp # mostra le info globali del servizio R(config)# cdp run # abilita il servizio globalmente R(config)# no cdp run # DISABILITA il servizio globalmente R(config-if)# cdp enable # abilita il servizio solo per l'interfaccia corrente R(config-if)# no cdp enable # DISabilita il servizio solo per l'interfaccia corrente R# show cdp neighbors [detail] # mostra le principali info dei device vicini R# show cdp interface # mostra le info delle interfacce **10.1.1.3 scoprire device usando il CDP**. Chiave è il comando *show cdp neighbors* che mostra varie informazionni, tra cui: * identificazione del device; * identificazione delle porte che lo interfaccia; * elenco delle capacità (router vs switch); * piattaforma hardware. La parola chiave *detail* mostra un maggiore dettaglo di informazioni. *10.1.1.4 packet tracer - mappare una rete usando CDP** 10.1.2 device discovery con LLDP ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **10.1.2.1 overview di LLDP**. Il Layer Link Discovery Protocol è uno standard pubblico, indipendente dal vendor, per lo scambio di informazioni tra device, sempre a layer 2. Funziona su device di rete inclusi gli access point wireless. **10.1.2.2 configurazione e verifica di LLDP**. Come CDP può essere configurato a livello globale per il device o a livello di singola interfaccia. Comandi di riferimento sono:: R# show lldp # mostra le info globali del servizio R(config)# lldp run # abilita il servizio globalmente R(config)# no lldp run # DISABILITA il servizio globalmente R(config-if)# lldp transmit # abilita la trasmissione delle info solo per l'interfaccia corrente R(config-if)# lldp receive # abilita la ricezione delle info solo per l'interfaccia corrente R# show lldp neighbors [detail] # mostra le principali info dei device vicini **10.1.2.3 device discovery con LLDP**- Comando chiave è *show lldp neighbors* eventualmente con la keyword *detail* per avere un output dettagliato. **10.1.2.4 attività- comparazione di CDP e LLDP** **10.1.2.5 lab- configurare CDP e LLDP** 10.2.1 NTP ^^^^^^^^^^^^^ **10.2.1.1 settare il sistem clock**. È importante per confrontare gli eventi che avvengono in sistemi diversi. Si può fare manualmente o com il Network Time Protocol (NTP). NTP è raccomandato. I client ricevono i dati dell'orario e della data da uno (o più) orologi di riferimento (master clock) NTP usa UDP, porta 123, ed è documentato in RFC 1305. **10.2.1.2 operatività di NTP**. Una rete NTP è un albero gerarchico, organizzato a strati. Alla radice (stratum 0) vi sono i master clock: sorgenti temporali autoritative. Sono device specializzati, molto precisi e con bassi delay. Ad es. orologi atomici o GPS (che cmq è generato da orologi atomici a bordo dei satelliti GPS). Lo stratum 1 sono macchine connesse direttamente con lo stratum 0, da cui ricevono il segnale temporale. Gli stratum successivi (da 2 a 15) sono connessi ciascuno con lo stratum di n.ro inferiroe. Possono essere anche connessi con rapporto peer-to-peer tra loro (backup e controllo). Lo Stratum 16 contiene macchine che non utilizzano il servizio NTP. **10.2.1.3 configurare e verificare NTP**. Ricordare i seguenti comandi (il secondo # indica inizio del commento):: R# show clock [detail] # mostra il tempo corrente, con detail anche la sorgente R(config)# ntp-server srv-addr # imposta il NTP da cui ricevere i messaggi NTP R# show ntp associations # mostra i server NTP agganciati R# show ntp status # mostra lo stratum della macchina e dettagli del servizio **10.2.1.4 packet tracer - configurare e verificare NTP** 10.2.2 operatività del syslog ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **10.2.2.1 introduzione al syslog**. I device di rete possono notificare all'amministratore quando accadono determinati eventi. I messaggi di notifica possono essere gestiti (visualizzati/memorizzati) con diverse modalità. Il modo più diffuso di gestire e accedere a questi messaggi è un protocollo chiamato **syslog**. *Syslog* è anche uno standard (IETF - RFC 3164). Usa UDP, porta 514 per inviare i messaggi a server che li memorizzano. Syslog permette: * di collezionare le informazioni di logging per monitoraggio e correzione; * di selezionare il tipo di informazione da catturare; * di specificare le destinazioni dei messaggi catturati. **10.2.2.2 operatività del Syslog**. Nei device Cisco, syslog invia i messaggi di sistema e le informazioni dal *debug* ad un processo di logging interno al device. Il processo di logging può essere configurato per indicare come gestire i messaggi. I messaggi possono essere inviati via rete ad un server syslog esterno, oppure ad un buffer interno (RAM del device). Così come si può decidere il tipo di messaggi da catturare. Le principali idestinazioni dei messaggi sono: * logging buffer (RAM del device); * linea console; * linea terminale; * server syslog. **10.2.2.3 formato del messaggio Syslog**. I messaggi syslog sono categorizzati da un livello di severità e dall'indicazione del servizio. I livelli numericamente inferiori sono i più critici. Abbiamo i seguenti livelli di severità: * I livelli da 0 (emergenza) a 4 (warning) sono messaggi d'errore per malfunzionamenti software o hardware. * Il livello 5 (notifica) riguarda livelli normali anche se significativi. Ad esempio le transizioni *interfaccia su/giù*. * Il livello 6 (informativo) è un normale messaggio d'informazione. * Il livello 7 (debugging) sono output del comando di debug. Riguardo l'indicazione del servizio, le versioni moderne di Cisco IOS possono indicare 12 diversi tipi di servizi, per un totale di 24 servizi specifici. I più comuni sono: * IP, * OSPF protocol, * SYS (operating system), * IPSEC (IP security), * IF (interface IP). Il formato del messaggio, di default è il seguente: * sequence number - n.ro sequenziale progressivo; deve essere settato:: R(config)# service sequence-numbers * timestamp - deve essere settato:: R(config)# service timestamps * facility - servizio di origine del messaggio; * severity - codice del livello di severità; * mnemonic - descrizione univoca del messaggio; * description - informazioni di dettaglio. Ad esempio uno switch può generare un messaggio tipo:: 00:00:46: %LINK-3-UPDOWN: Interface Port-channel1, changed state to up Messaggi più frequenti: i link up/down, messaggi aluscita della configurazione, logging delle ACL se è settato. **10.2.2.4 service timestamp**. Di default il timestamp non è indicato. Per inserire il timestamp nei messaggi:: R(config)# service timestamps log datetime Attenzione che *datetime* richiede il clock impostato (si veda NTP). **10.2.2.5 activity - interpretare l'output del syslog** 10.2.3 configurazione del syslog ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **10.2.3.1 syslog server**. Esistono syslog server di vario tipo: da versioni enterprise a pagamento a versioni freeware. Ad esempio il prodotto Kiwi Syslog Daemon per Windows 7 ha una verisone di valutazioen. Un syslog server ha una interfaccia utente che semplifica la navigazione nei dati, effettuando ricerche di dettaglio e eliminando i dati non necessari. **10.2.3.2 default logging**. Di default i sistemi Cisco inviano i messagi di log alla console, e il livello di severità di default è 7 (debugging). In alcune versioni di IOS inoltre di default i messaggi sono bufferizzati. Si ricordino i seguenti: R(config)# logging console # log msgs a console R(config)# logging buffered # log msgs a buffer R# show logging # mostra lo stato del syslog e l'elenco dei messaggi (buffer) **10.2.3.3 comandi per router e switch clients di syslog**. Vi sono tre step da effettuare:: R(config)# logging 192.168.1.3 # imposta il syslog server (anche hostname) R(config)# logging trap 4 # imposta il severity level max loggato R(config)# logging source-interface g0/0 # specifica il source IP del msg di log (indipendente dall'interfaccia che invia fisicamente) Per vedere al lavoro la configurazione precedente:: R(config)# interface loopback 0 R(config-if)# shutdown R(config-if)# no shutdown Alla console del router si osserveranno tutti i messaggi di log (livelli da 0 a 7), mentre nel syslog server vi saranno solo i messaggio da 0 a 4 perché si è impostata la trap a 4. **10.2.3.4 verificare il syslog**. Si usa il comando *show logging* per controllare l'elenco dei messaggi loggati localmente. Se vi sono molti messaggi, si usi la opzione di pipe. Ad esempio:: R# show logging | include changed state to up **10.2.3.5 packet tracer - configurare syslog e NTP** **10.2.3.6 lab - configurare syslog e NTP** 10.3 device management ------------------------ 10.3.1 file maintenance di router e switch ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **10.3.1.1 filesystem di router**. Cisco IOS è un sistema operativo dotato di file system che permette di navigare tra le directory ed elencare i file, oltre la creazione di subdirectory in flash memory o su disco. Le directory presenti dipendono dal device. Comandi:: R# show file systems # mostra i file system disponibili R# dir # elenca file e subdirectory della filesystem+dir corrente R# cd nvram: # change directory - cambia file system, rende corrente nvram R# pwd # present working directory nvram:/ I file system d'interesse sono: * tftp; * flash; * nvram. Il file system corrente viene infdicato da un asterisco in prima colonna. Un file system bootable viene indicato con un cancelletto (#) in ultima colonna. Di solito è la flash. Il **file system flash**. Vi sono vari file. In particolare d'interessemè l'ultimo file (c1900-universalk9-...) che è il sistema operativo running. Il **file system NVRAM**. Rendendo corrente nvram la dir mostra tra i vari file lo startup-config. **10.3.1.2 switch file systems**. Per lo switch 2960 i comandi sono analoghi a quelli dei router. **10.3.1.3 backup e restore usando file di testo**. **Backup delle configurazioni tramite la cattura del testo**. Utilizzare lo strumento di log del testo visualizzato sul terminale mentre si esegue:: R# show running-config # o startup-config **Restore delle configurazioni da file di testo**. Prima di effettuare il copy & paste del file di backup indicato nella voce precedente è necessario ripulirlo dalle linee di output che non sono comandi. Ad esempio l'output ogni tanto presenta linee del tipo *--More--*, oppure messaggi di IOS. Questi vanno rimossi. Dopo di che effettuare login con il terminale, andare in *global configuration* e fare copy & paste sul terminale dei contenuti ripuliti del backup. In questo modo l'input al terminale viene eseguito dal CLI come se fosse digitato dall'utente. **10.3.1.4 backup e restore da TFTP**. Per fare la copia di backup della configurazione su TFTP:: R# copy running-config tftp # o startup-config Remote host []? 192.168.10.254 # tftp server address Name of configuration file to write [R-config]? R-jan-2016 ... Per il restore, invertire sorgente e destinazione:: R# copy tftp running-config Remote host []? 192.168.10.254 # tftp server address Name of configuration file to write [R-config]? R-jan-2016 **10.3.1.5 usare le porte USB di un router Cisco**. Alcuni modelli di router Cisco possono montare USB flash driver tramite porte USB:: R# dir usbflash0: ... Si possono copiare i file dalla flash: alla usbflash: e viceversa, eventualmente archiviando versioni diverse del sistema operativo. **10.3.1.6 backup e restore usando la USB** **backup delle configurazioni usando un USB flash drive**. Ricordare:: R# show file systems # controlla il drive USB e il suo nome ... R# copy running.config usbflash0:/ # copia la config.corrente su susb Destination filename [running-config]? R-config # nome del file destinazione ... R# dir usbflash0:/ # controlla la presenza del file dest. R# more usbflash0:/R-config # controlla il contenuto del file dest. ... Per il restore, invertire sorgente e destinazione:: R# copy usbflash0:/R-config running-config # restore della configurazione **10.3.1.7 password recovery**. Per recuperare le password: #. entrare in modalità **ROMMON**; Con accesso da console, per entrare in *ROMMON* usare la sequenza di break durante il processo di boot up o, a device spento, rimuovere la flash memory esterna. Per Putty la sequenza di break é ctrl-break. #. cambiare il registro di configurazione al valore 0x2142, in tal modo si ignora lo startup-config:: Readonly ROMMON initialized monitor: command "boot" aborted due to user interrupt rommon 1 > confreg 0x2142 rommon 2 > reset ... #. modificare lo startup-config come necessario; R> enable # va in privileged mode R# copy startup-config running-config # config.originale cancella la corrente- attenzione: non fare il contrario R# configure terminal R(config)# enable secret my-new-password # impostare le nuove password R(config)# config-register 0x2102 # ricaricare lo starup-config al boot R(config)# end R# copy running-config startup-config # salvare la config.corrente come startup R# reload # riavvio **10.3.1.8 packet tracer - backup dei file di configurazione** **10.3.1.9 lab - gestire file di configurazione di router con Tera Term** **10.3.1.10 lab - gestire file di configurazione dei device usando TFTP, Flash e USB** **10.3.1.11 lab - cercare procedure di password recovery** 10.3.2 file di sistema IOS ^^^^^^^^^^^^^^^^^^^^^^^^^^^ **10.3.2.1 Packaging della immagine del sistema IOS 15**. I router Cisco delle serie 1900, 2900 e 3900 [#]_ supportano servizi richiesta che vengono sbloccati tramite licenze software. Questi sistemi sono consegnati con una immagine Cisco IOS universale. Le licenze permettono all'utente di abilitare gruppi di funzionalità. La tipologia dei gruppi è illustrata qui di seguito: .. image:: ./images/07_ios_packaging.svg I sistemi ISR G2 hanno due tipi di immagini di IOS universali: * quelle con la dicitura **universalk9** nel nome; queste hanno capacità di crittografia forte (IPsec, SSL VPN, Secure Unified Communications); * quelle il cui nome contiene **universalk9_npe**; queste non hanno capacità di crittografia forte. Tutte le funzionalità vanno attivate tramite Cisco *Software Activation licensing key*. Queste chiavi sono diverse per ogni sistema e si ottengono da Cisco indicando * product ID, * serial number; * product activation key (PAK), inviato al momento dell'acquisto. **10.3.2.2 nomi dei file dell'immagine IOS**. Il nome dell'immagine del IOS è caratterizzato da una apposita convenzione. Il nome dell'immagine IOS su flash è visualizzato dal comando che mostra i nomi i tutti i file nella flash:: R# show flash I nomi sono del tipo:: c1900-universalk9-mz.SPA.152-4.M3.bin ovvero: * c1900 - indica il tipo hardware del sistema (platform); * universalk9 - è la designazione dell'immagine; * mz - dove il file gira (memory: m) e se è compresso (compresso: z); * SPA - file firmato digitalmente da CISCO; * 152-4.M3 - ovvero: 15.2(4)M3; major (15) e minor (2) release; new feature (4) extendent maintenance release (M) rebuild number (3); * bin - file extension. 10.3.3 gestione delle immagini IOS ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **10.3.3.1 usare TFTP come locazioni di backup**. Un server TFTP può essere un modo per centralizzare le immagini delle versioni di IOS utilizzate. Così come le varie configurazioni. Il server in questione può essere un router, una workstation o un host. **10.3.3.2 passi per fare il bakup di una immagine IOS su server TFTP**. Si devono avere procedure di backup/restore per minimizzare i tempi di downtime. Ad esempio. Dato un server TFTP in 172.16.1.100. Per il backup:: R# ping 172.16.1.100 # controlla la connessione R# show flash0: # controlla dimensione e nome file R# copy flash0: tftp: # copia il file su tftp Source filename []? c1900-universalk9-mz.SPA.152-4.M3.bin Address or name of remote host []? 172.16.1.100 Destination filename [c1900-universalk9-mz.SPA.152-4.M3.bin]? ... **10.3.3.3 passi per copiare una immagine IOS da server TFTP a un device** Dato un server TFTP IPv6, come segue:: R# ping 2001:DB8:CAFE:100::99 # controlla la connessione R# show flash0: # controlla lo spazio disponibile in flash ... R# copy tftp: flash0: # copia il file su flash Address or name of remote host []? 2001:DB8:CAFE:100::99 Source filename []? c1900-universalk9-mz.SPA.152-4.M3.bin Destination filename []? c1900-universalk9-mz.SPA.152-4.M3.bin ... **10.3.3.4 il comando boot system**. Durante il bootstrap, il codice di avvio controlla se in startup-config vi sono comandi **boot system ...**. Se vi sono, esegue il primo caricando il relativo file; se non vi sono carica il primo file immagine che trova in flash memory. Quindi, per avere una indicazione esplicita di cosa caricare:: R# configure terminal R(config)# boot system flash0://c1900-universalk9-mz.SPA.152-4.M3.bin R(config)# exit R# copy running-config startup-config R# reload ... # reboot del sistema R# show version # controlla la versione di IOS caricata Cisco IOS Software, C1900 Software (C1900-UNIVERSALK9-M), Version 15.2(4)M3, RELEASE SOFTWARE (fc2) ... **10.3.3.5 packet tracer - usare un server TFPT per upgradae una immagine Cisco IOS** **10.3.3.6 dimostrazione video - gestire immagini di Cisco IOS** 10.3.4 Software Licensing ^^^^^^^^^^^^^^^^^^^^^^^^^^ **10.3.4.1 Overview del Licensing**. Come indicato in *10.3.2.1*, a partire dalla versione 15.0, Cisco distribuisce un sistema operativo universale, i cui gruppi di funzionalità sono attivati da chiavi di licenza. Questa politica di rilascio del software si applica ai sistemi ISR G2. I precedenti hardware, anche se compatibili con IOS 15.x, devono installare le diverse versioni di IOS separatamente. I packages che compongono IOS universalK sono: * IP Base; * Data; * Unified Communicaton (UC); * Security (SEC). *Tecnologia di licensing dei package*, si visualizza tramite il comando:: R# show license feature **10.3.4.2 processo di licensing**. Il router è fornito di una licenza di valutazione, temporanea. Se si vuole attivare permanentemente un set di funzionalità è necessario acquistare una licenza software, che è un processo in tr step: * acquisto, invia all'utente un PAK; * ottenere la licenza, usando il PAK e i dati del router si ottiene il file della licenza; * si installa la licenza. **10.3.4.3 step 1 - acquisto del software package da installare**. Ad esempio si può avere necessità di aaggiungere *security* ad *IP base*. All'atto dell'acquisto, Cisco invia un *Software Claim Certificate* che contiene un *Product Activation Key* (PAK), oltre la Cisco *End User License Agreement* (EULA). Se il canale di vendita ha già attivato il software del router, non vi sarà il *Software Claim Certificate*. In ogni caso si otterrà il PAK. Il PAK è una chiave alfanumerica di 11 digit, da utilizzare per avere la licenza. **10.3.4.4 step 2 - ottenere la licenza**. Questo è un file, e si ottiene in due possibili modi: * usando un Cisco License Manager (CLM); ovvvero un programma free di Cisco che aiuta ad acquisire e installare più licenze su diversi device di rete; * usando il portale Cisco License registration Portal, il sito WEB di Cisco per ottenere e registrare singole licenze. Entrambe le modalità predette richiedono il PAK (vedi pagina precedente) e lo *Unique Device Identifier* (UDI). UDI è la combinazione del Product ID (PID) che identifica il tipo di device, e il serial number (SN). Se si vuole è possibile visualizzare lo UDI con il comando:: R# show license udi In ogni caso, alla fine si ottiene il *license file* via email. Questo è un file in formato xml, con estensione *.lic*. **10.3.4.5 step 3 - installare la licenza**. L'installazione del *license file* avviene in due step:: R# license install file # installazione del file di licenza R# reload à riavvio del sistema Usualmente si ottiene, e si installa, una licenza permanente, ovvero non soggetta a termini di scadenza e valida anch in caso di aggiornamento della versione di IOS. Esempio di installazione:: R# license install flash0:securityk9-CISCO1941-FHH12250057.lic R# reload 10.3.5 verifica e gestione della licenza ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **10.3.5.1 verifica della licenza**. Il comando **show version** in coda elenca i package presenti e il relativo tipo di licenza. Mentre il comando **show license** dà maggiori dettagli riguardo tutte le licenze installate nel sistema. Tra l'altro indica: * **feature** - il package; * **license type** - permanent, evaluation, ...; * *license state** - active, in use, ...; * **license count** - n.ro di licenze disponibili e in uso; se vale *non-counted* allora la licenza è senza restrizioni (n.ro utenti illimitato); * **license priority** - high, low. **10.3.5.2 attivare una licenza dirittto-d'uso**. Quando si installa una licenza, si richiede l'accettazione dell'EULA. Il comando:: R(config)# license accept end user agreement assicura l'accettazione dell'EULA per tutte le licenze del sistema Le licenze di valutazione, dopo 60 giorni sono rimpiazzate da licenze *right-to-use* (RTU). Per attivare una licenza di valutazione usare il comando:: R(config)# license boot module module-name technology-package package-name R(config)# end R# reload ... R# show license Ad esempio:: R(config)# license boot module c1900 technology-package datak9 I package per ISR G2 sono: * ipbasek9; * securityk9; * datak9; * uck9 - unified communication (non nei 1900) **10.3.5.3 backup delle licenze**. Le licenze devono essere sottoposte a backup:: R# licence save flash0:all_licenses.lic # salva tutte le licenze nella flash R# show flash0: # controllo **10.3.5.4 disinstallare una licenza**. Una licenza permanente si toglie come segue:: R(config)# license boot module module-name technology-package package-name disable # prepara la disattivazione R(config)# reload # riavvia per disattivare la licenza ..... R# license clear package-name # cancella dalla base dati delle licenze R# configure terminal R(config)# no license boot module module-name technology-package package-name disable # toglie la preparazione alla disattivazione Licenze built-in non possono essere rimosse, ad esempio quelle di valutazione. Possono essere rimosse le licnze installate con il comando *license install*. **10.3.5.5 dimostrazione video - lavorare con le licenze di immagini di IOS 15** 10.4 sommario ------------------- 10.4.1 conclusione ^^^^^^^^^^^^^^^^^^^^ **10.4.1.1 packet tracer - skills integration challenge** **10.4.1.2 prima di concludere** **10.4.1.3 capitolo 10: device discovery, management e maintenance** ------------------------- .. [#] Cisco Integrated Services Routers Generation Two (ISR G2)