En voilà un protocole super utile ! Et on peut dire chapeau à Cisco de l’avoir créé !
Certains diront que j’en fais un peu trop sur Cisco mais il faut avouer que ce protocole est d’une utilité grandiose quand on débarque sur un réseau inconnu. Et pour preuve, une norme découle de ce protocole pour l’interopérabilité, le LLDP – Link Layer Discovery Protocol.
Imaginez: vous êtes en console ou en telnet sur un routeur et vous vous demandez quel est le port connecté au switch voisin et même vous aimeriez bien savoir quel est le port du switch en question. Comment faire? à part connaitre l’architecture par coeur ou avoir un schéma réseau sous la main, il n’y a pas de solution. Sauf si vous êtes en présence de routeur et switch Cisco !
Définition
Le CDP – Cisco Discovery Protocol, permet de découvrir ses voisins directs en envoyant régulièrement des messages sur tous les ports de l’équipement. Si le voisin est du Cisco, il vous répondra, sinon vous saurez que ce n’est pas du Cisco en face 🙂
Ce protocole fonctionne sur la plupart des équipements Cisco, que ce soit un routeur, switch, borne WiFi, téléphone IP… et j’en passe.
Faire attention, c’est un protocole de niveau 2 point à point –> On découvre ses voisins directs, pas les voisins de mon voisin.
Par défaut, le protocole est actif sur tous les ports, pour le désactiver, il y a 2 possibilités:
- désactivation totale
Switch_A(config)# no cdp run
Switch_A(config)# end
- désactivation par port
Switch_A(config)# interface FastEthernet 0/1
Switch_A(config-if)# no cdp enable
Switch_A(config-if)# end
Fonctionnement
Pas grand chose à savoir si ce n’est la commande suivante pour visualiser ses voisins:
Switch# 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
SW_B Fa0/1 129 S 2900 Fa0/8
SW_C Fa0/2 144 S 2900 Fa0/8
Switch#
Que nous dit cette commande? et bien que:
- notre Switch est connecté via le port Fa0/1 à un équipement nommé SW_B sur son port Fa0/8;
- notre Switch est connecté via le port Fa0/2 à un équipement nommé SW_C sur son port Fa0/8;
- que la Capability de ces 2 équipements est “S“, en regardant la légende, on sait que ce sont 2 switchs.
Remarque pour le CCNA: la question typique est “qui est connecté à qui et comment?“
Il faut faire attention à la seconde colonne “Local Intrfce” qui identifie l’interface de votre switch et pas celle de votre voisin (erreur classique car juste à côté du nom). Celle du voisin est précisée dans la dernière colonne “Port ID“.
Maintenant, j’aimerais en savoir un peu plus sur ces switchs voisins, je tape la même commande mais avec la variable detail à la fin:
Switch# show cdp neighbors detail
-------------------------
Device ID: SW_B
Entry address(es):
IP address: 192.168.1.2
Platform: cisco 2950,
Capabilities: Switch
Interface: FastEthernet0/8, Port ID (outgoing port): FastEthernet0/1
Holdtime : 123 sec
Version :
Cisco Internetwork Operating System Software IOS (tm) 2900 Software (C2950), Version 12.2(3) Copyright (c) 1986-2002 by Cisco Systems, Inc.
advertisement version: 2 Duplex: full
-------------------------
. . .
Switch#
Et là, c’est le miracle! On connait quasiment tout sur notre voisin:
- son nom: SW_B
- l’adresse IP de management (pratique pour faire un telnet): 192.168.1.2
- le type d’équipement: switch Catalyst 2950
- la version de l’IOS installé dessus (ça c’est fort!): 12.2(3)
- …
Je n’ai pas mis la suite mais on a les mêmes informations pour SW_C, c’est à dire nom, adresse IP…
Donc pour le CCNA, soyez à l’aise avec ce protocole car vous aurez des impressions d’écrans vous demandant de détailler le contenu (qui est connecté à qui et comment) ou vous aurez un TP avec une console à disposition où il faudra utiliser le CDP pour identifier vos voisins.
trop cool
super ! merci bien cyril
Comme d’hab, article limpide. ton site m’aide beaucoup à avancer.
je trouve cdp utile par le fait qu’il permet (si on est en tout cisco 🙁 ) de dresser aisément une topologie detaillée de son réseau.
Y a t il une commande cdp (en 1 ligne) pouvant permettre de lister les port non activés pour ce protocole ?
Bonjour Steve,
Merci pour le compliment 🙂
Pour savoir sur quel port le protocole CDP est activé, il y a une astuce. Avec la commande “show cdp interface“, on voit toutes les interfaces pour lesquelles le CDP est activé. On peut en deduire que les interfaces absentes de la liste n’ont pas le CDP activé.
Comme cette commande affiche trop d’informations, on peut filtrer en ne demandant de n’afficher que les lignes qui contiennent “Ethernet”, comme ca l’affichage sera plus simple a lire. Je te laisse taper les commandes “show cdp interface” puis après la commande “show cdp interface | include Ethernet“, tu verras la différence.
Attention, la variable “Ethernet” est avec un “E” majuscule.
Je suis entrain de préparer mon CCNA pour le mois d’octobre prochain. Merci, beaucoup pour cet article car il m’a ouvert les yeux.
Mais avec plaisir 🙂 Bonne révision pendant cet été!
Très très utile comme protocole. C’est obligé qu’il y est une question sur le sujet pendant l’examen de la CCNA donc à ne pas faire l’impasse dessus 🙂
Bonjour Morgan,
En effet, ce protocole tombera lors de l’examen.
Je pense faire prochainement une vidéo sur son fonctionnement afin que tout le monde puisse visualiser le fonctionnement du CDP.
A bientôt !