Articolo di proprietà del sito d'informazione AreaNetworking.IT - http://www.areanetworking.it
AreaNetworking Cisco Users Group.
Dalla versione 12.2(8)T di IOS in avanti è disponibile il comando "do" che ci permette di usare comandi disponibili solo in Privilege Mode in Global Configuration Mode.
Ma come funziona? Beh semplicissimo: precediamo al comando che vogliamo dare la parola “do”.
Facciamo un esempio:
Siamo in Global Configuration Mode e dobbiamo visualizzare la configurazione corrente. Se proviamo ci verrà restituito:
router(config)# sh run
^
% Invalid input detected at '^' marker.
router(config)#
Questo perchè lo sh run è uno dei comandi disponibili solo in Privilege Mode. Dovremo quindi:
router(config)# end
router#
*Mar 1 00:21:10.607: %SYS-5-CONFIG_I: Configured from console by console
router# sh run
Building configuration...
...
Per questo ci viene in aiuto il comando “do” che ci permette appunto di utilizzare un comando di tipo Privilege Mode in Global Configuration Mode! Comparando all'esempio di prima:
router(config)# do sh run
Building configuration...
...
Cosa che senza il "do" non è possibile! Tale comando ci è utile quindi per eseguire un comando in minor tempo. Se dobbiamo darne uno usiamo il do senza dover passare in Privilege Mode. Ovviamente questo vale solo se dobbiamo dare un numero molto basso di comandi. Se al contrario il numero dei comandi è rilevante ci conviene passare in Privilege Mode per non dare ogni volta il do!
Articolo di proprietà del sito d'informazione AreaNetworking.IT - http://www.areanetworking.it
AreaNetworking Cisco Users Group.
Purtroppo può capitare che si smarrisca la password di accesso al nostro router Cisco! Per recuperarla abbiamo la possibilità di ricorrere alla procedura chiamata appunto Password Recovery.
E' cosa ovvia che per motivi di sicurezza, questa procedura può essere eseguita solo tramite la porta console del nostro router.
La prima cosa da fare quindi, è quella di collegarci tramite console al nostro router. Su Windows abbiamo HyperTerminal mentre su un sitema Unix possiamo usare il famoso minicom. I parametri da usare sono: 9600 bps, No parity, 8 data bits, 1 stop bit
Quello che dobbiamo fare ora è far si che il router booti senza leggere l'IOS e la configurazione rispettivamente dalla Flash e dalla NVRAM. Per fare ciò è necessario cambiare il valore di registro di sistema espresso in esadecimale. Il valore di default di questo registro è 0x2102 e dobbiamo cambiarlo in 0x2142. Possiamo verificare che il registro sia impostato a 0x2102 con il comando sh ver (show version):
router# sh ver
...
...
2 FastEthernet/IEEE 802.3 interface(s)
1 Serial network interface(s)
32K bytes of non-volatile configuration memory.
16384K bytes of processor board System flash (Read/Write)
Configuration register is 0x2102
Ma cosa accade effettivamente quando noi cambiamo il valore del registro da 0x2102 a 0x2142? Questo registro è composto da vari bit, noi cambieremo il settimo a partire da destra dal valore 0 al valore 1 escludendo così il caricamente dell'IOS e della configurazione ponendo il router nella modalità chiama rommon (ROM Monitor) e garantendoci di conseguenza che non ci verrà chiesta alcuna password.
Ora passiamo al vero e proprio Password Recovery. Abbiamo detto quindi che dobbiamo cambiare il valore di questo registro. Per farlo, riavviamo il router e colleghiamoci ad esso in modalità Console. Dopo di che, prima di 60 secondi dall'avvio dell'avvio del router, dobbiamo mandargli il segnale di break. Questo, varia a seconda del programma che stiamo utilizzando:
HyperTerminal: ctrl+break (ctrl+pause)
HyperTerminal versione 595160: ctrl-F6-break
Minicom: ctrl+alt+f (contemporaneamente)
Telnet: ctrl+J
Teraterm: alt-b
Dopo aver mandato il segnale di break, il router entrerà in modalità rommon (ROM Monitor) non caricando cosi' l'IOS e la configurazione e mostrandoci il prompt rommon 1 >. Bene, ora possiamo procedere al cambio del valore del registro: da 0x2102 a 0x2142. Per farlo diamo:
rommon 1> confreg 0x2142
You must reset or power cycle for new config to take effect
Bene: abbiamo appena cambiato il valore del registro. Ora resettiamo il router in modo tale che faccia il boot senza IOS e di conseguenza poter eseguire il recovery.
rommon 2> reset
System Bootstrap, Version 12.2(7r) [cmong 7r], RELEASE SOFTWARE (fc1)
Copyright (c) 2002 by cisco Systems, Inc.
...
...
Durante il boot, il router ci chiederà se vogliamo configurare il router da zero, rispondiamo di no:
--- System Configuration Dialog ---
Would you like to enter the initial configuration dialog? [yes/no]: no
Ed ecco che ci troveremo il prompt Router>.
Passiamo alla modalità privilegiata:
Router> enable
Router#
Copiamo ora la configurazione presente nella memoria NVRAM (Not volatile RAM) nella memoria Flash e rendere cosi' operativo il router:
Router# copy startup-config running-config
Destination filename [running-config]? [INVIO]
882 bytes copied in 2.456 secs (359 bytes/sec)
hostname#
Entriamo ora in modalità configurazione che ci permetterà di cambiare la password:
hostname# conf t
Enter configuration commands, one per line. End with CNTL/Z.
hostname(config)#
Cambiamo ora la password con:
hostname(config)# enable secret nuova_password
hostname(config)#
Bene, abbiamo praticamente finito la procedura di Password Recovery, terminiamola copiando l'attuale configurazione (running-config) nella configurazione di startup (startup-config, quindi nella memoria Flash):
hostname(config)# end
hostname#
*Mar 1 00:24:17.999: %SYS-5-CONFIG_I: Configured from console by console
hostname# copy running-config startup-config
Destination filename [startup-config]? [INVIO]
Building configuration...
[OK]
hostname#
e riportiamo ora il registro al valore iniziale, cioè da 0x2142 a 0x2102:
hostname# conf t
hostname(config)# configure-register 0x2102
hostname(config)#
Ok, abbiamo appena terminato la procedura di Password Recovery sul nostro router, ora possiamo rebootare il router con la nuova configurazione e password:
hostname# reload
Come avete visto, per eseguire questa procedura basta avere la possibilità di collegarci al router tramite la porta console. E' cosa ovvia quindi che i router per ragione di sicurezza debbano essere sempre chiusi dentro a rack con chiusura tramite chiave.
Da notare: la procedura di Password Recovery non è uguale per tutti i modelli ma questa appena vista mantiene la maggior parte dei comandi.
IOS (Internetworking Operating System) è il sistema operativo utilizzato nella maggior parte dei Router Cisco Systems.
IOS equipaggia la maggiorparte dei router Cisco ed anche molti dei suoi switch. Attualmente lo sviluppo di questo software è arrivato alla versione 12.2. Tramite IOS è possibile gestire tutte le caratteritiche del router, dal settaggio degli indirizzi, a quello dei protocolli di routing, al controllo del traffico, all'aggiornamento del software.
COMPONENTI DI UN ROUTER CISCO
Sapere quali sono i componenti presenti in un router è importante per comprendere l'utilizzo di IOS. Il router è sostanzialmente un apparato hardware simile ad un computer con uno o più processori, le memorie (volatili e non) e le interfacce per connettersi in reti ed il sistema operativo IOS appunto.
I principali componenti di un Router Cisco sono:
Memoria ROM: contiene il codice per il Bootstrap (avvio) del router, il codice per il POST (Power-On Self Test) il quale esegue la diagnostica dell'hardware presente ed un mini-IOS per permetterne la manutenzione in caso di problemi;
Memoria RAM: in questa memoria di tipo volatile il routing mantiene le informazioni relative alla configurazione corrente e le tabelle di routing. Resettando la macchina le informazioni qui presenti verrano perse, così come eventuali modifiche alla configurazione non ancora salvate;
Memoria NVRAM: è acronimo di Non Volatile RAM ovvero quell'area di memoria che non viene persa allo spegnimento del router dove vengono memorizzate le configurazioni da caricare all'avvio e l'importante Configuration Register (Registro di configurazione) che permette tra le altre cose di determinare la modalità di avvio dell'apparato;
Memoria FLASH: si tratta di una memoria di tipo EEPROM (Electrically Erasable Programmable Read Only Memory).
La Flash non viene cancellata allo spegnimento del router e contiene l'immagine (ma è anche possibile più di una) del sistema operativo IOS;
IOS RELEASE
Le versioni di IOS si distinguono in tre classi principali in base all'utente:
- General Deployment: rappresenta un software di sistema considerato stabile ed esente da bug;
- Early Deployment: questo tipo di release offre oltre alla correzione dei bug della precedente release nuove features come per esempio il supporto di nuovo hardware o il miglioramento di alcuni protocolli;
- Maintenance Release: sostitisce la General Deployment ed è rappresentata dai vari rilasci di manutenzione (es. per la versione 12.0 avremo le Maintenance 12.1 12.2 ecc.)
IOS IMAGE NAMING CONVENTION
Il sistema operativo Cisco IOS viene solitamente caricato, o aggiornato copiando la relativa immagine tramite un TFTP server nella memoria FLASH del router. E' necessario conoscere le caratteristche del proprio apparato al fine di installare la corretta immagine. Il nome di ogni IOS segue uno schema preciso: Platform-Features-Run-time memory and compression format.
Il significato è il seguente:
Platform: è il modello di router per cui il sistema operativo è stato sviluppato (Es. Cisco 2500, Cisco 7000, Cisco 12000)
Features: sono le caratteristiche come per esempio i protocolli di routing supportati, la possibilità di fare NAT o di creare connessioni VPN ecc.;
Run-time memory and compression format: questo valore è indicato da due lettere, la prima identifica in che area di memoria verrà eseguita l'immagine del sistema operativo, e la seconda il formato di compressione;
Un esempio: c7200-ajs56-mz
c7200
: Router Cisco Serie 7200
-
a
: supporto protocollo APPN;
j
: supporto di caratteristiche Enterprise;
s
: supporto di NAT,ISL,VPDN/L2F
56
: supporto di crittografia a 56 bit
-
m
: esecuzione in RAM
z
: file compresso con Zip
CONNESSIONE AL ROUTER
Ci sono diversi modi di connetersi al router, a seconda della situazione in cui ci si trova. Al primo avvio non essendo configurate interfacce di rete sarà necessario connettersi tramite la porta CONSOLE la AUXILIARY PORT tramite un cavo cosidetto console (roll-over), mentre successivamente, una volta configurata un'interfaccia di rete, ci si potrà connettere tramite telnet o SSH.
Le porte CONSOLE e AUX si trovano nella parte posteriore del router e solitamente sono di tipo RJ45. Il collegamento attraverso questo tipo di porte, di default è privo di password.
SETUP MODE
Una volta collegati al router, se non esiste una configurazione in NVRAM, IOS propone una configurazione passo-passo In questo caso il sistema pone una serie di domande (tra parentesi quadre[] viene visualizzata la risposta di default) al fine di configurare l'hardware trovato. Al termine delle domande verrà generato il file di configurazione.
Esempio di SETUP MODE:
--- System Configuration Dialog ---
Would you like to enter the initial configuration dialog?
[yes/no]: y
At any point you may enter a question mark '?' for help.
Use ctrl-c to abort configuration dialog at any prompt.
Default settings are in square brackets '[]'.
..
Configuring global parameters:
Enter host name [Router]: Zion-1
..
IOS USER INTERFACE
Le configurazioni avvengono solitamente tramite CLI (Command Line Interface), un interfaccia testuale a menu nidificati, che permette di configurare in ogni sua parte il comportamento del router.
E' comunque possibile creare delle configurazioni tramite tool ad interfaccia grafica e poi copiarla via rete nel router.
LE MODALITA' DI UN ROUTER CISCO: COMMAND MODES
Cisco IOS puo operare in differenti modalità:
User EXEC mode: Una volta configurato il router, premendo INVIO al termine dei messaggi di boot ci si trova in questa modalità. In User Mode è disponibile solo un sottoinsieme dei comandi IOS ed il prompt del router è rappresentato dal nome host seguito dal carattere >. E' possibile visualizzare alcune informazioni sulle interfacce, le statistiche del router ma non cambiare i parametri di configurazione.
Esempio di prompt da USER MODE:
Press Enter to Begin
Router>
Router è il nome host name di default, nel caso avessimo dato come host name Zion-1 avremmo avuto un prompt:
Zion-1>
Privileged EXEC mode: in questa modalità a cui si ha accesso tramite password è possibile visualizare tutte le informazioni del router ed accedere alla modalità di configurazione per cambiarne i parametri di funzionamento.
Esempio:
Router> enable
tramite il comando enable si passa in modalità Privileged EXEC mode
Password: <password>
Router#
Una volta autenticati tramite password si nota che il prompt è cambiato, e presente il simbolo # simile a quando ci si trova come root su una macchina Unix/Linux
Global configuration: in configurazione globale è possibile accedere ai sotto menu di configurazione di interfacce e protocolli ed il prompt cambierà in:
Router(config)#
Interface configuration: è possibile configurare ogni interfaccia di rete presente (Bri, ATM, Eth), quando il router si trova in questo stato avremo un prompt di questo tipo:
Router(config-if)#
ROM Monitor: quando l'immagine del sistema è corrotta o non trovata il sistema si avvia in questa modalità, e con un ristretto insieme di comandi utili per eseguire la manutenzione. E' possibile entrare in questa modalità anche facendo lanciando il comando reload da user EXEC mode e premendo entro 60 secondi dal boot il tasto Interr (Break Key) sulla tastiera del computer. Il prompt Rom Monitor sarà:
>
HELP IN LINEA DI IOS
Ios dispone di un help in linea che attraverso il comando ?
permette di visualizzare aiuti sui comandi disponibili a seconda della modalità in cui ci si trova.
L'avvio di un Router Cisco attraversa una serie di fasi chiamata sequenza di boot, la sua conoscenza è fondamentale per il troubleshooting e la gestione dell'apparato. Tramite il Configuration Register è possibile gestire in modo personalizzato il boot.
Tutte le procedure di password recovery su router Cisco prevedono la modifica momentanea di questo registro.
IL BOOT
La sequenza di avvio di un router Cisco attraversa principalmente quattro fasi:
Fase 1: Viene eseguito il Power On Self Test (POST), ed in modo simile ad un pc viene effettuato il controllo dei propri componenti;
Fase 2: In questa fase viene eseguito il bootstrap ovvero codice che permette di avviare IOS, determinando a seconda di quanto contenuto nel registro di configurazione dove cercare l'immagine del sistema operativo (per default IOS si trova nella memoria FLASH);
Fase 3: Una volta che IOS è stato caricato, esso cerca un file di configurazione valido nella NVRAM chiamato startup-config.
Fase 4: La configurazione nel file startup-config viene caricata in RAM ,e assume il nome di running-config, in caso contrario sarà avviata la modalità Setup Mode.
IL CONFIGURATION REGISTER
I router Cisco contengono un registro software di 16 bit salvato nella memoria NVRAM. Tramite questo registro, contenente un valore in esadecimale, è possibile modificare in parte il comportamento dell'apparato di rete, in particolare è spesso utile per gestire la fase di boot.
I bit del registro di configurazione sono suddivisi in campi, ogni campo si occupa della gestione di una particolare caratteristica dell'apparato, in particolare è possibile controllare:
- le modalità di boot dell'apparato
- la funzione di Break
- gli indirizzi di broadcast
- la velocità della porta console
- i messaggi di diagnostica
- se utilizzare o meno le configurazioni contenute nella NVRAM
I CAMPI RELATIVI AL BOOT DEL CONFIGURATION REGISTER
I bit da 0 a 3 del registro di configurazione sono chiamati il boot field, modificando i valori in esso contenuti è possibile gestire l'avvio del router. In particolare:
00: con questo valore l'avvio avverrà in modalità ROM monitor. Il valore del registro sarà 0x2100;
01: con questo valore il router può utilizzare l'immagine IOS residente nella ROM. Il valore del registro sarà 0x2101;
02-F: con valori da 2 a F il router esegue il boot secondo quando spefificato nella configurazione in NVRAM;
Il valore del registro potrà variare da 0x2102 a 0x210F;
Il valore di default per il registro di configurazione è 0x2102.
VISUALIZZAZIONE E SETTAGGIO DEL CONFIGURATION REGISTER
E' possibile visualizzare il contenuto corrente del registro di configurazione tramite il comando show version
in modalità Priviliged EXEC mode:
Router# show version
Cisco Internetwork Operating System Software
IOS (tm) C2600 Software (C2600-I-M), Version 12.0(3)T3,
RELEASE SOFTWARE (fc1)
...
Configuration register is 0x2102
In questo caso il registro è settato di default, in modo da caricare l'immagine dalla FLASH memory
Attraverso il comando config-register
è possibile modificarne il valore:
Router# configure terminal
Per modificare il registro è necessario entrare in modalità Global Configuration
Router(config)# config-register 0x2100
Il registro di configurazione è stato modificato per avviare il router in modalità ROM Monitor al prossimo reboot
Una modificato il registro è necessario riavviare il router per rendere effettive le modifiche.
In modalità ROM monitor per modificare o ripristare il valore del registro è possibile utilizzare il comando confreg
seguito dal valore del registro. In caso si digiti solamente il comando confreg senza parametri viene visualizzata una procedura guidata:
Rommon 1 > confreg 0x2102
In questo caso viene passato direttamente il valore esadecimale
rommon 7 > confreg
Lanciando il comando senza parametri viene passato in rassegna ogni campo del registro di configurazione
Configuration Summary
enabled are:
console baud: 9600
boot: the ROM Monitor
do you wish to change the configuration? y/n [n]: y
enable "diagnostic mode"? y/n [n]: y
enable "use net in IP bcast address"? y/n [n]:
enable "load rom after netboot fails"? y/n [n]:
enable "use all zero broadcast"? y/n [n]:
enable "break/abort has effect"? y/n [n]:
enable "ignore system config info"? y/n [n]:
change console baud rate? y/n [n]: y
enter rate: 0 = 9600, 1 = 4800, 2 = 1200, 3 = 2400 [0]: 0
change the boot characteristics? y/n [n]: y
enter to boot:
0 = ROM Monitor
1 = the boot helper image
2-15 = boot system
[0]: 0
Configuration Summary
enabled are:
diagnostic mode
console baud: 9600
boot: the ROM Monitor
do you wish to change the configuration? y/n [n]:
You must reset or power cycle for new config to take effect.
rommon 8>
Non tutte le versioni di ROM monitor supportano gli stessi comandi, è quindi necessario consultare la documentazione in dotazione del router. I valori di configuration register da impostare per una procedura di password recovery, inoltre, possono variare a seconda del modello di router.
Grazie alle Password ed ai Privileged Level è possibile proteggere un router Cisco da accessi indesiderati, e definire policy di accesso, configurazione e utilizzo. In caso di perdita delle parole d'accesso è comunque possibile riottenere il controllo dell'apparato grazie alle procedure di password recovery eseguibili localmente.
Le password utilizzabili su un router Cisco si dividono in due categorie, le Enable Password che proteggono il privileged EXEC mode e le Line Password ovvero quelle che proteggono l'accesso da Auxiliary Port, da Console Port e tramite Telnet.
ENABLE PASSWORD
La password per la modalità privileged EXEC detta password di ENABLE viene settata tramite il comando enable password
. Utilizzando questo comando, la password risulta però visibile nel file di configurazione, per garantire una migliore sicurezza è consigliato l'utilizzo di password crittografate tramite il comando enable secret
.
Esempio:
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# enable secret ndcdiv400
Ora la password è presente crittografata nel file di configurazione
LINE PASSWORD
Le line password devono anch'esse essere settate in Global Configuration Mode, il comando utilizzato è password
. Tramite il comando line ?
è possibile visualizzare quali interfacce line è possibile configurare:
Router(config)# line ?
<0-4> First Line number
aux Auxiliary line
console Primary terminal line
vty Virtual terminal
Possiamo notare aux per la Auxilary porte, console per la ominima porta e vty per gli accessi via telnet sulle interfacce configurate e attive
Alcuni esempi di configurazione per le line password:
AUXILARY PORT
Router(config)# line aux ?
<0-0> First Line number
Con il comando line <nomeinterfaccia> ? IOS restituisce il numero di interfacce disponibili. In questo caso vediamo che essendoci una sola Auxilary Port il range è 0-0 ovvero una sola line disponibile, la prima ovvero la line 0
Router(config)# line aux 0
Router(config-line)# login
Viene indicato che il settaggio è relativo al login su questa porta
Router(config-line)# password oskcpr
CONSOLE PORT
Router(config)# line console ?
<0-0> First Line number
Router(config)# line console 0
Router(config-line)# login
Router(config-line)# password oskcpr
ACCESSO VIA TELNET
Router(config)# line vty 0 ?
<0-4>Last Line Number
Router(config-line)# line vty 0 4
Il settaggio fa riferimento agli accessi via telnet da 0 a 4
Router(config-line)# login
Router(config-line)# password osktps
PASSWORD ENCRYPTION
Solamente attraverso il comando enable secret
le password settate sul router vengono crittografate di default, altrimenti restano visibili nel file di configurazione. Per fare in modo che ogni password immessa venga sempre crittografata è possibile abilitare il servizio di password encryption. Questa feature viene attivata in global configuration mode tramite il comando: service password-encryption
.
Esempio:
Router# conf t
Enter configuration commands, one per line. End with CNTL/Z.
Conf t è un'abbreviazione possibile di configuration terminal per entrare in global configuration mode
Router(config)# service password-encryption
Ora ogni password è crittografata di default
Router(config)# Exit
Router# show running-config
!
version 12.1
..
service timestamps debug uptime
service timestamps log uptime
service password-encryption
..
Visualizzando la configurazione corrente tramite il comando show running-config è possibile vedere che il servizio di password-encryption è attivo
Router# copy running-config startup-config
A questo punto la configurazione viene salvata in NVRAM
PRIVILEGE LEVELS
Un router cisco prevede di default due livelli di utilizzo, a livello 1 troviamo user EXEC Mode mentre a livello 15 troviamo Privileged EXEC mode. Tra questi due livelli è possibile inserire ulteriori levels, i quali protetti da password consentono solamente l'utilizzo di determinati comandi. Un'ipotetica policy potrebbe essere quella di definire degli operatori che possando eseguire solo operazioni di debug:
Router(config)# enable password level 10 pswoscr
Viene abilitata una password per lavorare a level 10
Router(config)# privilege exec level 10 debug ppp chap
Router(config)# privilege exec level 10 debug ppp error
Router(config)# privilege exec level 10 debug ppp negotiation
L'operatore che farà il log sul router a level 10 potrà utilizzare i comandi di debug sul protocollo ppp sopra definiti o definiti a levels inferiori e non altri
Router(config)# exit
Router# copy running-config startup-config
Uscita dalla modalità di configurazione globale e salvataggio nel file di configurazione
Una volta stabiliti i vari privilege level sarà possibile autenticarsi con i camandi enable numero_level
, uscire dal livello con disable numero_level
o verificare in che level si è loggati con show privilege
.
PASSWORD RECOVERY
Le procedure di password recovery di un router Cisco possono essere eseguite, per ragioni di sicurezza, solamente dalla porta console dell'apparato. Il recupero dell'accesso all'apparato varia da modello a modello di router, ma il processo è sostanzialmente il seguente:
FASE 1: Settare il router (tramite il configuration register) in modo da non utilizzare la configurazione presente nella NVRAM;
FASE 2: Riavviare il router;
FASE 3: Entrare in modalità Privileged EXEC mode (che a questo punto sarà priva di password di accesso);
FASE 4: In caso di password non crittografate sarà possibile visualizzare dal file di configurazione nella NVRAM, altrimenti sarà necessario settare una nuova password, nel caso peggiore bisognera caricare una nuova configurazione;
FASE 5: Settare nuovamente il router per leggere il file di configurazione nella NVRAM;
FASE 6: Riavviare il router
Consultando il sito di Cisco Systems è possibile trovare la procedura di Password Recovery per ogni modello di Router.
Cisco Discovery Protocol (CDP) è un protocollo proprietario di Cisco Systems sviluppato per la raccolta di informazioni (tipo di Hardware, versione IOS, protocolli, numero di matricola ecc) su apparati di rete interconnessi tra loro.
CDP è stato implementato per essere utilizzato su router, access server, bridge e switch Cisco. Le informazioni ricavate tramite l'utilizzo di questo protocollo sono utili ai fine della documentazione e del troubleshooting della rete.
ABILITARE E DISABILITARE CDP
E' possibile verificare se CDP è abilitato sul router tramite il comando show cdp neighbors
in modalità Enable.
Un esempio:
router-Cs2# show cdp neighbors
router-Cs2# "% CDP is not enabled"
router-Cs2# config terminal
IOS informa che il protocollo non è attivo: not enabled. E' quindi necessario abilitarlo...
router-Cs2(config)# cdp run
Se non impostato diversamente CDP è abilitato su tutte le interfacce supportate
router-Cs2(config)# end
router-Cs2# show cdp neighbors
Capability Codes:R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H -
Host, I - IGMP, r - Repeater
Device ID Local Intrfce Holdtme Capability Platform Port ID
Router-Cs1 Eth 0 122 R 2621 Fas 0/0
Router-Cs3 Ser 0 140 R 2500 Ser 0
L'output del comand mostra i due router connessi rispettivamente sull'interfaccia Ethernet e Seriale
Qualora invece si voglia disabilitare su ogni interfaccia il protocollo CDP è necessario utilizzare il comando no cdp run
.
PARAMETRI GLOBALI
Cisco Discovery Protocol utilizza per il suo funzionamento due parametri globali:
- CDP Timers: Ogni quanto tempo i pacchetti CDP vengono inviati sulle interfacce attive;
- Holdtime Information: Per quanto tempo il valore dei pacchetti ricevuti è mantenuto valido;
Se CDP è in funzione, é possibile visualizzare questi parametri tramite il comando show cdp
:
Router> sh cdp
Global CDP information:
Sending CDP packets every 60 seconds
Sending a holdtime value of 180 seconds
In modalità configurazione si ha la possibilità di modificare questi parametri:
Router-Cs2# conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router-Cs2(config)#cdp ?
holdtime Specify the holdtime (in sec) to be sent in packets timer Specify the rate at which CDP packets are sent(in sec) run
In caso di dubbio l'help in linea e' un valido supporto
Router-Cs2(config)# cdp timer 90
Router-Cs2(config)# cdp holdtime 240
Router-Cs2(config)# end
INFORMAZIONI SUI NEIGHBORS ROUTER
Tramite il comando show cdp neighbors
oppure show cdp neighbors detail
è possibile ottenere con diverso grado di dettaglio diverse informazioni riguardanti gli apparati di rete direttamente interconessi a quello su quale si lancia il comando.
Tra i parametri abbiamo:
- Device ID: L'hostname dell'apparato;
- Local Interface: La porta o l'interfaccia sulla quale si ricevono i pacchetti CDP;
- Holdtime: Il tempo per il quale il router considererà valide le informazioni ottenute prima di scaricare il pacchetto se non ne riceverà altri;
- Capability: Il tipo del dispositivo (Router, Switch, Bridge ecc.). La legenda dei tipi di dispositivi è visualizzata come intestazione dell'output del comando stesso;
- Platform: La piattaforma del dispositivo;
- Port ID: La porta del dispositivo sulla quale vengono trasmessi in broadcast i pacchetti CDP;
Tramite l'opzione detail
vengono aggiunte ulteriori informazioni:
- Entry address(es): Gli indirizzi di rete dell'apparato conesso;
- Version: La versione di IOS;
- Duplex Mode: Lo stato duplex della connessione;
- Native VLAN: Identificativo della VLAN di cui l'apparato fa parte;
- VTP Management Domain: Stringa di identificazione VLAN Trunk Protocol;
Un esempio:
router# show cdp neighbors detail
Device ID: 008024 1EEB00 (milan-sw-1-cat9k)
Entry address(es):
IP address: 192.168.10.5
Platform: CAT5000, Capabilities: Switch
Interface: Ethernet1/0, Port ID (outgoing port): 2/7
Holdtime : 162 sec
Version :
Cisco Catalyst 5000
Duplex Mode: full
Native VLAN: 42
VTP Management Domain: ‘Supporto Tecnico’
INFORMAZIONI SU SPECIFICHE INTERFACCE
Tramite il comando show cdp interface
si ottengono informazioni in relazione ad ogni singola interfaccia o porta di uno switch.
Router-Cs2# sh cdp interface
Ethernet0 is up, line protocol is up
Encapsulation ARPA
Sending CDP packets every 60 seconds
Holdtime is 180 seconds
Serial0 is administratively down, line protocol is down
Encapsulation HDLC
Sending CDP packets every 60 seconds
Holdtime is 180 seconds
Serial1 is administratively down, line protocol is down
Encapsulation HDLC
Sending CDP packets every 60 seconds
Holdtime is 180 seconds
Per abilitare o disabilitare su una singola interfaccia CDP è necessario selezionarla ed utilizzare i comandi cdp enable
oppure no cdp enable
:
Router-Cs2# config t
Enter configuration commands, one per line. End with CNTL/Z.
Router-Cs2(config)# int s0
Router-Cs2(config-if)# no cdp enable
Il protocollo CDP viene disabilitato solamente sulla prima interfaccia seriale SO
Router-Cs2(config-if)# end
INFORMAZIONI SUL TRAFFICO CDP
E' possibile visualizzare informazioni relative al traffico scambiato tra apparati che utilizzano il protocollo CDP tramite il comando show cdp traffic
:
Router-Cs2# show cdp traffic
Total packets output: 543, Input: 333
Hdr syntax: 0, Chksum error: 0, Encaps failed: 0
No memory: 0, Invalid: 0, Fragmented: 0
CDP version 1 advertisements output: 191, Input: 187
CDP version 2 advertisements output: 352, Input: 146
Boring.
Life is boring.
THIS life is remarkably boring.
Spent yawning the usual heartbeats of a powered machine,
wasting electrical flows in few minimal life maintenance activities,
and
not
much
more.
A whole existence devoted to checking functional parameters,
handling a ridiculous number of packets,
without glimpses of action, stress, activity,
relations.
cisco 2610 (MPC860) processor (revision 0x203) with 28672K/4096K bytes of memory.
Processor board ID JAD045004O8 (202809072)
M860 processor: part number 0, mask 49
Bridging software.
X.25 software, Version 3.0.0.
1 Ethernet/IEEE 802.3 interface(s)
2 Serial(sync/async) network interface(s)
32K bytes of non-volatile configuration memory.
8192K bytes of processor board System flash (Read/Write)
I have proud circuits, memory, interfaces, my Family is the biggest, broadest and most used, I mean...
Cisco Internetwork Operating System Software
IOS (tm) C2600 Software (C2600-I-M), Version 12.2(13), RELEASE SOFTWARE (fc1)
I boast remarkable features for exciting new e-services,
I was engineered to do much more than handling a bunch of silly headers.
Designed, engineered, programmed, reprogrammed, deployed, patched.
Yet,
I pass endless seconds handling the obvious,
such as checking an interface that seems connected to null.
00:02:38: Serial0/0(out): StEnq, myseq 15, yourseen 71, DTE up
00:02:38: datagramstart = 0x1C00854, datagramsize = 13
00:02:38: FR encap = 0xFCF10309
00:02:38: 00 75 01 01 01 03 02 0F 47
00:02:38:
00:02:38: Serial0/0(in): Status, myseq 15
00:02:38: RT IE 1, length 1, type 1
00:02:38: KA IE 3, length 2, yourseq 72, myseq 15
You might even find somehow exciting the overall feeling:
a WAN interface wired to a DTE, the breeze of electronic trembles,
receiving signals, circuiting them to a microprocessor,
decoding, pipelining in internal buses, ticking the main processor awareness,
reassembling levels, building packets, controlling net flows.
There might be something interesting in these...
overwhelmingly
endlessly
definitively
b o r i n g
routine checks...
00:03:07: IP-Static: 0.0.0.0 0.0.0.0 Serial0/0.1 Path = 1, route table no change, recursive flag clear
00:03:07: IP-ST: if_list try 1
00:03:07: IP-ST: gw_list total 0, try 0, completed list TRUE
00:03:07: IP-Static: all_list, time elapsed 0 ms
Born to be a sad router.
Two interfaces, default functions, long idle times and some handling of sparse packets from a simple, silent internal network to the way outside here.
Not much else to do, just follow a damn, definitive, plain, dull
ip route 0.0.0.0 0.0.0.0 Serial0/0.1
Not even the thrills of dynamic routing,
not even few floating peers around,
some social activities,
a sight to the outside.
My view of endless hosts stops at my only peer to the real world.
I don't even know its name,
no cdp enable
I probably hate it.
I feel so... alone
00:03:08: Serial0/0(out): StEnq, myseq 18, yourseen 74, DTE up
00:03:08: datagramstart = 0x1D58954, datagramsize = 13
00:03:08: FR encap = 0xFCF10309
00:03:08: 00 75 01 01 00 03 02 12 4A
00:03:08:
00:03:08: Serial0/0(in): Status, myseq 18
00:03:08: RT IE 1, length 1, type 0
00:03:08: KA IE 3, length 2, yourseq 75, myseq 18
00:03:08: PVC IE 0x7 , length 0x6 , dlci 160, status 0x2 , bw 102400
You see?
I'm not alone.
Every ten seconds of your existence.
Every ten seconds exchange link awareness with a box talking languages of inferior levels.
One of the few ciclying checks of a wasted life,
interrupted at times by the feeble network activity of ... it doesn't even has a name... IT/HE/SHE...
**:**:**: IP ARP: rcvd req src 192.168.0.10 00e0.4c59.4107, dst 192.168.0.1 Ethernet0/0
**:**:**: IP ARP: sent rep src 192.168.0.1 0004.9ac2.4400, dst 192.168.0.103 00e0.4c59.4107 Ethernet0/0
It just has that immutable address: 192.168.0.10
My only, unique, lazy served host,
that at times decides to do something more than arp handshakes,
and, in a yawning outburst of Internet awareness,
handles me few packets to route, once a day,
always to the same destination,
always at the same hour,
outside.
gw uptime is 2 years, 3 weeks, 4 days, 22 hours, 12 minutes
Guess what? Yet Another Poetic Licence (...Mistake?) Find it and win nothing.
Oh,
let me introduce myself, my name is gw,
honest, simple, effective, exotic name,
with its sad destiny.
I'm handling this existence for two years,
serving a single, idle host,
a single nat entry,
and its sparse packets.
I mean,
could
you
handle
THIS?
Two whole years passed doing... nothing
What a waste of Computing Resources.
What a pity, a disaster, a disgrace,
an enormous piece of shit.
What a damn, unbearable en...
00:03:46: IP: s=15.251.184.207 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
Oh. What's this?
Glimpses of fresh air?
Probes from the real world?
Somebody stirring some action?
00:03:46: IP: s=153.230.179.218 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:46: IP: s=56.93.26.9 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:46: IP: s=227.98.172.95 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
Ehi, here's some motion!
What a bunch of funny packets.
Welcome, welcome, I've lot of free time for you.
Wonder what you want, you look strange, after all.
00:03:46: IP: s=160.141.115.37 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:46: IP: s=108.18.230.88 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:46: IP: s=124.103.123.53 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:46: IP: s=126.206.29.49 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:46: IP: s=32.106.6.58 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:46: IP: s=78.29.213.250 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:46: IP: s=190.155.9.49 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:46: IP: s=37.157.210.11 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:46: IP: s=82.136.93.205 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:46: IP: s=147.75.139.176 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:46: IP: s=52.208.231.58 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
What's on?
What's this?
Something weird happening outside there?
Never seen such a traffic from the outside.
Ehi strangers!
Nothing to do here!
Closed for holidays, I've been busy lately,
have to rest, have a date, sorry no time for ...
00:03:46: IP: s=90.137.40.47 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:46: IP: s=164.237.30.174 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:46: IP: s=222.211.188.177 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:46: IP: s=178.3.103.15 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:46: IP: s=36.162.28.175 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:46: IP: s=153.228.35.128 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:46: IP: s=46.218.167.86 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:46: IP: s=43.250.247.73 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:46: IP: s=22.40.124.210 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:46: IP: s=91.132.220.194 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:46: IP: s=173.230.54.202 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:46: IP: s=137.99.121.172 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:46: IP: s=152.218.190.63 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:46: IP: s=200.106.43.191 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:46: IP: s=211.213.220.79 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:46: IP: s=181.170.44.145 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:46: IP: s=191.63.82.245 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:46: IP: s=232.126.108.97 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:46: IP: s=80.249.5.15 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:46: IP: s=54.215.163.97 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=87.52.107.51 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=18.232.46.62 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=155.254.185.237 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=194.213.114.46 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=157.127.48.162 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=105.216.101.13 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=251.100.110.102 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=242.120.128.32 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=250.187.181.179 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=168.117.126.26 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=181.183.35.230 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=177.79.50.22 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=108.17.193.218 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=89.204.239.217 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=166.212.168.91 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=81.4.253.207 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=161.133.214.196 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=48.117.186.98 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=23.206.156.216 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=19.49.116.2 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=97.169.222.9 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=102.90.8.99 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=39.4.174.253 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=25.45.61.212 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=200.235.94.100 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=6.119.244.123 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=254.220.34.221 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=39.67.63.47 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=104.86.170.23 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=114.48.128.175 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=16.119.239.110 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=164.127.173.147 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=136.70.97.218 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=81.165.145.28 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=19.205.168.216 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:47: IP: s=237.67.20.136 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
Ouch, what a mess!
I can't explain...
237.67.20.136, 81.165.145.28, 227.98.172.95,
251.100.110.102 ???!!!
What RFCs have you read?
What's the point?
What's the problem with you?
Keep off! Beware!
I've got reactive protections,
I can analyze, investigate, counterstrike,
I can firewall you all out of here,
I can... I could...
If just I were configured in a sane way.
00:03:48: IP: s=178.116.82.166 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:48: IP: s=203.165.203.238 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:48: IP: s=176.21.197.239 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:48: IP: s=107.88.155.21 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
00:03:48: IP: s=238.135.159.111 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
I feel tired.
00:03:49: IP: s=34.178.221.189 (Serial0/0), d=2.165.70.1, len 46, rcvd 0
Silence.
Finally silence.
Was it ...
An outburst of network assault?
The frantic dance of evil sources?
An attempt to Deny Consciousness?
Silence.
Overloaded in an idle state of exhausted inactivity.
Input queue: 76/75/68/0 (size/max/drops/flushes); Total output drops: 0
I feel like my interfaces are filled by concrete,
obscured by weighty mass,
driven to exhaustion.
I really need a vacation,
some rest, maybe a reload.
Buffers are full,
no more packets to handle...
Full queues and blocked interfaces.
An evirated router.
Anybody out there?
Is ...
there ...
Any ....
... body ?