Cisco Discovery Protocol (CDP) è un protocollo proprietario progettato da Cisco per aiutare a trovare informazioni sui dispositivi vicini. I dispositivi collegati tra loro si scambiano pacchetti CDP per conoscersi l’un l’altro. Ciò può essere utile nella risoluzione dei problemi e nella documentazione della rete.
CDP è abilitato su tutte le interfacce di tutti i router e switch Cisco. È possibile disabilitare CDP a livello globale utilizzando il comando no cdp run nella modalità di configurazione globale. Può essere nuovamente abilitato utilizzando il comando cdp run . CDP può essere disabilitato su un’interfaccia utilizzando il comando no cdp enable nella modalità di configurazione dell’interfaccia.
Ogni dispositivo che esegue CDP invia un pacchetto ogni 60 secondi ai suoi vicini. I timer associati a CDP su un dispositivo possono essere visualizzati utilizzando il comando show cdp nella modalità privilege exec come mostrato di seguito:
myRouter#show cdp
Global CDP information:
Sending CDP packets every 60 seconds
Sending a holdtime value of 180 seconds
Sending CDPv2 advertisements is enabledÂ
Nell’output sopra puoi vedere che CDP invia pacchetti ogni 60 secondi. Ogni vicino manterrà le informazioni contenute in un pacchetto per 180 secondi. I timer possono essere modificati utilizzando il comando cdp timer e il comando cdp holdtime nella modalità di configurazione globale come mostrato di seguito:
myRouter(config)#cdp ?
advertise-v2 CDP sends version-2 advertisements
holdtime Specify the holdtime (in sec) to be sent in packets
log Log messages generated by CDP
run Enable CDP
source-interface Insert the interface’s IP in all CDP packets
timer Specify rate (in sec) at which CDP packets are sent
myRouter(config)#cdp timer ?
<5-254> Rate at which CDP packets are sent (in sec)
myRouter(config)#cdp timer 120
myRouter(config)#cdp holdtime ?
<10-255> Length of time (in sec) that receiver must keep this packet
myRouter(config)#cdp holdtime 240
myRouter(config)#do show cdp
Global CDP information:
Sending CDP packets every 120 seconds
Sending a holdtime value of 240 seconds
Sending CDPv2 advertisements is enabled
myRouter(config)#
Come accennato, il precedente CDP può essere utilizzato per risolvere i problemi e documentare una rete. Quando hai bisogno di informazioni sui dispositivi collegati direttamente a un dispositivo, puoi controllare i vicini appresi da CDP utilizzando il comando show cdp neighbour . Di seguito è riportato un esempio:
myRouter#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
Switch3Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Fas 0/0Â Â Â Â Â Â Â Â Â Â Â 172Â Â Â Â Â Â Â Â S IÂ Â Â Â Â Â WS-C2960- Â Â Â Â Fas 0/8
L’output mostra che myRouter è connesso direttamente a un dispositivo denominato Switch3 . Ciascuna colonna dell’output fornisce informazioni su Switch3 . Ogni colonna è spiegata di seguito:
- DeviceID : questa colonna fornisce il nome host del dispositivo connesso direttamente. In questo caso, il router è connesso direttamente solo a un singolo dispositivo denominato Switch3.
- Interfaccia locale : questa colonna mostra l’interfaccia locale del dispositivo connesso al dispositivo remoto. In questo caso, l’interfaccia fa0 / 0 di myRouter è collegata a Switch3
- Holdtme – Questa colonna mostra la quantità di tempo in secondi durante il quale il dispositivo locale manterrà le informazioni sul dispositivo remoto, se non vengono ricevuti ulteriori pacchetti da esso. In questo esempio, se Switch3 non invia più pacchetti CDP prima di 172 secondi, verrà rimosso dalla tabella adiacente di myRouter. Il dispositivo remoto annuncia il tempo di attesa.
- Capacità : questa colonna mostra le capacità del dispositivo remoto. Il significato di ciascuna lettera in quella colonna è mostrato all’inizio dell’output. In questo esempio, Switch3 viene mostrato come Switch e ha IGMP abilitato su di esso.
- Piattaforma : questa colonna mostra il modello del dispositivo remoto. In questo output puoi vedere che Switch3 è un dispositivo Cisco 2960.
- ID porta : questa colonna mostra il numero di interfaccia del dispositivo remoto che si connette a questo dispositivo. In questo esempio, myRouter è collegato all’interfaccia fa0 / 8 di Switch3.
I comandi show cdp neighbour forniscono brevi informazioni su tutti i dispositivi collegati direttamente. È possibile visualizzare informazioni più dettagliate su un vicino utilizzando il comando show cdp neighbors detail come mostrato di seguito:
myRouter#show cdp neighbors detail
————————-
Device ID: Switch3
Entry address(es):
IP address: 192.168.1.3
Platform: cisco WS-C2960-48TT-L, Capabilities: Switch IGMP
Interface: FastEthernet0/0, Port ID (outgoing port): FastEthernet0/8
Holdtime : 142 sec\
Version :
Cisco IOS Software, C2960 Software (C2960-LANBASEK9-M), Version 12.2(50)SE4, RELEASE SOFTWARE (fc1)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2010 by Cisco Systems, Inc.
Compiled Fri 26-Mar-10 09:14 by prod_rel_team
advertisement version: 2
Protocol Hello:Â OUI=0x00000C, Protocol ID=0x0112; payload len=27, value=00000000FFFFFFFF010221FF000000000000000AB875A380FF0000
VTP Management Domain: test.com’
Native VLAN: 26
Duplex: full
Nell’output sopra noterai che oltre alle informazioni mostrate dal comando show cdp neighbour , questo output mostra la versione IOS, le informazioni VTP e VLAN, nonché il duplex della connessione al dispositivo remoto. Questo output mostra anche l’indirizzo IP del dispositivo remoto. Questo può essere molto utile se vuoi connetterti al dispositivo remoto per la risoluzione dei problemi. In questa fase non preoccuparti di VLAN e VTP. Sono trattati nel prossimo capitolo.
Lo stesso identico output può essere visualizzato anche utilizzando il comando show cdp entry * . Di seguito è riportato un esempio dell’output:
myRouter#show cdp entry *
————————-
Device ID: Switch3
Entry address(es):
IP address: 192.168.1.3
Platform: cisco WS-C2960-48TT-L, Capabilities: Switch IGMP
Interface: FastEthernet0/0, Port ID (outgoing port): FastEthernet0/8
Holdtime : 135 sec
Version :
Cisco IOS Software, C2960 Software (C2960-LANBASEK9-M), Version 12.2(50)SE4, RELEASE SOFTWARE (fc1)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2010 by Cisco Systems, Inc.
Compiled Fri 26-Mar-10 09:14 by prod_rel_team
advertisement version: 2
Protocol Hello:Â OUI=0x00000C, Protocol ID=0x0112; payload len=27, value=00000000FFFFFFFF010221FF000000000000000AB875A380FF0000
VTP Management Domain: test.com’
Native VLAN: 26
Duplex: full
Mentre l’output di entrambi mostra i dettagli dei vicini cdp e mostra la voce cdp * sono gli stessi, quest’ultimo ti dà la possibilità di vedere solo le informazioni sul protocollo di livello 3 o solo le informazioni sulla versione IOS dal dispositivo remoto come mostrato di seguito:
myRouter#show cdp entry * ?
protocol Protocol information
version Version information
| Output modifiers
<cr>
myRouter#show cdp entry * protocol
Protocol information for 26dot3.cisco.com :
IP address: 192.168.26.3
myRouter#show cdp entry * version
Version information for 26dot3.cisco.com :
Cisco IOS Software, C2960 Software (C2960-LANBASEK9-M), Version 12.2(50)SE4, RELEASE SOFTWARE (fc1)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2010 by Cisco Systems, Inc.
Compiled Fri 26-Mar-10 09:14 by prod_rel_team
Nell’output sopra, si noti che il protocollo show cdp entry * fornisce solo l’indirizzo IP (informazioni di livello 3) mentre show cdp entry * version fornisce solo la versione IOS dei dispositivi collegati direttamente.
CDP è un protocollo semplice che funziona sempre. Difficilmente sarà necessario risolvere i problemi di CDP, ma nel caso in cui sia necessario farlo, è possibile utilizzare i comandi show cdp traffic e show cdp interface . Il comando show cdp traffic visualizza le informazioni relative ai pacchetti CDP inviati e ricevuti. Se il traffico CDP non viene inviato o ricevuto o se ci sono errori, l’output di questo comando lo mostrerà . Di seguito è riportato un esempio dell’output:
myRouter#show cdp traffic
CDP counters :
Total packets output: 64293, Input: 64294
Hdr syntax: 0, Chksum error: 0, Encaps failed: 0
No memory: 0, Invalid packet: 0, Fragmented: 0
CDP version 1 advertisements output: 0, Input: 0
CDP version 2 advertisements output: 64293, Input: 64294
Il comando show cdp interface d’altra parte mostrerà le informazioni CDP relative a ciascuna interfaccia del dispositivo. Questo comando ti mostrerà se CDP è abilitato o meno su un’interfaccia e quali sono i timer associati a ciascuna interfaccia. Mostrerà anche lo stato dell’interfaccia stessa. Di seguito viene fornito un esempio dell’output:
myRouter#show cdp interface
FastEthernet0/0 is up, line protocol is up
Encapsulation ARPA
Sending CDP packets every 120 seconds
Holdtime is 240 seconds
FastEthernet0/1 is administratively down, line protocol is down
Encapsulation ARPA
Sending CDP packets every 120 seconds
Holdtime is 240 seconds
Uno svantaggio di CDP è che si tratta di un protocollo proprietario di Cisco e non funzionerà se si dispone di dispositivi di altri fornitori collegati a un dispositivo Cisco. In questi casi, è possibile utilizzare il Link Layer Discovery Protocol (LLDP). LLDP è un protocollo standard aperto che svolge lo stesso lavoro di CDP ma può essere utilizzato tra dispositivi appartenenti a fornitori diversi.
Non tutti i dispositivi Cisco attualmente supportano LLDP e non è coperto da CCNA, ma dovresti sapere che potrebbe essere utilizzato al posto di CDP.