CDP – Cisco Discovery Protocol
Comandistica per sporcarsi le mani!
Abilitare globalmente il CDP
Il CDP è già abilitato globalmente di default sugli apparati.
Tuttavia, se è stato disabilitato, è possibile riabilitarlo con i seguenti comandi:
SW-A>enable
Password:
SW-A#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
SW-A(config)#cdp run
SW-A(config)#end
Disabilitare globalmente il CDP
Una delle principali ragioni per cui si potrebbe voler disabilitare il CDP sta nel fatto che, attraverso questo protocollo, un malintenzionato che si collega alla nostra rete potrebbe scoprire alcune informazioni utili a sfruttare qualche bug software, sferrare un attacco di tipo DoS attraverso il CDP oppure conoscere ad esempio quale sia la VLAN voce… Torneremo sulla sicurezza del CDP dopo ve lo prometto, ora vediamo come si disabilita!
SW-A>enable
Password:
SW-A#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
SW-A(config)#no cdp run
SW-A(config)#end
Verificare lo stato globale del CDP
Per conoscere se il CDP è attivo e con quali parametri opera è sufficiente il comando show cdp
SW-A>show cdp
Global CDP information:
Sending CDP packets every 60 seconds
Sending a holdtime value of 180 seconds
Sending CDPv2 advertisements is enabled
Come è possibile vedere, il comando restituisce il tempo di timer, quello di holdtime e anche la versione del protocollo CDP utilizzata. Nell’esempio è stato utilizzato il comando su uno switch con le impostazioni di default.
Abilitare il CDP sulla singola interfaccia
Nella condizione di default, con il CDP abilitato a livello globale, il protocollo è attivo su ogni singola interfaccia.
Nel caso in cui un’interfaccia non sia abilitata basterà usare il comando cdp enable in modalità interface-config
SW-A>enable
Password:
SW-A#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
SW-A(config)#interface <nome_interfaccia>
SW-A(config-if)#cdp enable
SW-A(config-if)#end
Se invece tentiamo di abilitare la singola interfaccia avendo il CDP disabilitato a livello globale otterremo il seguente errore che ci ricorderà come procedere:
SW-A>enable
Password:
SW-A#configure terminal
SW-A(config)#interface <nome_interfaccia>
SW-A(config-if)#cdp enable
% Cannot enable CDP on this interface, since CDP is not running
Disabilitare il CDP sulla singola interfaccia
Come visto in precedenza, diverse possono essere le motivazioni che spingono a non utilizzare il protocollo.
Per disabilitarlo a livello di singola interfaccia:
SW-A>enable
Password:
SW-A#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
SW-A(config)#interface <nome_interfaccia>
SW-A(config-if)#no cdp enable
SW-A(config-if)#end
Verificare lo stato del CDP sulle singole interfacce
Per verificare lo stato del CDP su tutte le singole interfacce è possibile utilizzare il comando show cdp interface (il comando riporta alla fine anche un riassunto di quante interfacce sono abilitate al CDP, quante quelle in UP e quante in DOWN)
SW-A>show cdp interface
GigabitEthernet0/0 is up, line protocol is up
Encapsulation ARPA
Sending CDP packets every 60 seconds
Holdtime is 180 seconds
GigabitEthernet0/1 is up, line protocol is up
Encapsulation ARPA
Sending CDP packets every 60 seconds
Holdtime is 180 seconds
[...]
GigabitEthernet3/3 is down, line protocol is down
Encapsulation ARPA
Sending CDP packets every 60 seconds
Holdtime is 180 seconds
cdp enabled interfaces : 16
interfaces up : 6
interfaces down : 10
Se invece vogliamo essere più precisi e conoscere lo stato di una singola interfaccia basterà specificarla nel comando che risponderà così nel caso di CDP abilitato:
SW-A>show cdp interface <nome_interfaccia>
<nome_interfaccia> is up, line protocol is up
Encapsulation ARPA
Sending CDP packets every 60 seconds
Holdtime is 180 seconds
e così in caso contrario:
SW-A>show cdp interface <nome_interfaccia>
CDP is not enabled on interface <nome_interfaccia>
Modificare il valore del timer
È possibile modificare l’intervallo di tempo tra due invii consecutivi delle frame CDP attraverso i seguenti comandi:
SW-A#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
SW-A(config)#cdp timer <tempo_timer>
SW-A(config)#end
Dove tempo_timer può variare da 5 a 254 secondi. La modifica avviene a livello globale
Modificare il valore di holdtime
È possibile anche modificare il valore di holdtime:
SW-A#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
SW-A(config)#cdp holdtime <tempo_holdtime>
SW-A(config)#end
Dove tempo_holdtime può variare da 10 a 255 secondi. Anche in questo caso la modifica avviene a livello globale
Impostare il CDP versione 1
Per impostare il protocollo alla versione 1 (quindi con un set più limitato di TLV) bisogna semplicemente disabilitare la versione 2:
SW-A>enable
Password:
SW-A#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
SW-A(config)#no cdp advertise-v2
SW-A(config)#end
SW-A#
Impostare il CDP versione 2
E la versione impostata di default sugli apparati. Nel caso fosse stata disabilitata, è possibile riabilitarla attraverso i seguenti comandi:
SW-A>enable
Password:
SW-A#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
SW-A(config)#cdp advertise-v2
SW-A(config)#end
SW-A#
Mostrare la tabella dei vicini
Sicuramente è il comando del CDP più utilizzato! Permette di stampare a video tutta la tabella dei vicini
SW-A>show cdp neighbors
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,
D - Remote, C - CVTA, M - Two-port Mac Relay
Device ID Local Intrfce Holdtme Capability Platform Port ID
SW-C Gig 0/3 163 R S I Gig 0/0
SW-B Gig 0/2 152 R S I Gig 0/1
Come è possibile verificare, in questa tabella mancano un po’ di dettagli (ad es. gli indirizzi IP, la versione firmware, etc) circa i nostri vicini.
Se abbiamo bisogno che vengano riportate queste informazioni basterà aggiungere la keyword detail!
SW-A>show cdp neighbors detail
-------------------------
Device ID: SW-C
Entry address(es):
IP address: 192.168.0.252
Platform: Cisco , Capabilities: Router Switch IGMP
Interface: GigabitEthernet0/3, Port ID (outgoing port): GigabitEthernet0/0
Holdtime : 133 sec
Version :
Cisco IOS Software, vios_l2 Software (vios_l2-ADVENTERPRISEK9-M), Version 15.2(CML_NIGHTLY_20190423)FLO_DSGS7, EARLY DEPLOYMENT DEVELOPMENT BUILD, synced to V152_6_0_81_E
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2019 by Cisco Systems, Inc.
Compiled Tue 23-Apr-19 04:48 by mmen
advertisement version: 2
Management address(es):
IP address: 192.168.0.252
-------------------------
Device ID: SW-B
Entry address(es):
IP address: 192.168.0.253
Platform: Cisco , Capabilities: Router Switch IGMP
Interface: GigabitEthernet0/2, Port ID (outgoing port): GigabitEthernet0/1
Holdtime : 168 sec
Version :
Cisco IOS Software, vios_l2 Software (vios_l2-ADVENTERPRISEK9-M), Version 15.2(CML_NIGHTLY_20190423)FLO_DSGS7, EARLY DEPLOYMENT DEVELOPMENT BUILD, synced to V152_6_0_81_E
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2019 by Cisco Systems, Inc.
Compiled Tue 23-Apr-19 04:48 by mmen
[...]
Mostrare il dettaglio di un singolo vicino
Ovviamente possiamo filtrare la visualizzazione precedente ad un solo apparato di nostro interesse:
SW-A>show cdp entry <nome_apparato>
-------------------------
Device ID: <nome_apparato>
Entry address(es):
IP address: 192.168.0.252
Platform: Cisco , Capabilities: Router Switch IGMP
Interface: GigabitEthernet0/3, Port ID (outgoing port): GigabitEthernet0/0
Holdtime : 134 sec
Version :
Cisco IOS Software, vios_l2 Software (vios_l2-ADVENTERPRISEK9-M), Version 15.2(CML_NIGHTLY_20190423)FLO_DSGS7, EARLY DEPLOYMENT DEVELOPMENT BUILD, synced to V152_6_0_81_E
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2019 by Cisco Systems, Inc.
Compiled Tue 23-Apr-19 04:48 by mmen
advertisement version: 2
Management address(es):
IP address: 192.168.0.252
Attenzione: se esistono più apparati con lo stesso Device-ID all’interno della nostra tabella, verranno mostrati i dettagli relativi a tutti 😉
Inoltre possiamo ulteriormente filtrare il risultato nel caso in cui ci serva sapere solo gli indirizzi IP o la versione firmware dell’apparato specificando rispettivamente le keywords protocol e version:
SW-A>show cdp entry <nome_apparato> protocol
Protocol information for <nome_apparato> :
IP address: 192.168.0.252
SW-A>show cdp entry <nome_apparato> version
Version information for <nome_apparato> :
Cisco IOS Software, vios_l2 Software (vios_l2-ADVENTERPRISEK9-M), Version 15.2(CML_NIGHTLY_20190423)FLO_DSGS7, EARLY DEPLOYMENT DEVELOPMENT BUILD, synced to V152_6_0_81_E
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2019 by Cisco Systems, Inc.
Compiled Tue 23-Apr-19 04:48 by mmen




