Objectifs de certification
CCNA 200-301
2.3 Configurer et vérifier les protocoles de découverte Layer 2 (Cisco Discovery Protocol et LLDP)
Voisinage CDP et LLDP
CDP Cisco Discovery Protocol (propriétaire) et LLDP Link Layer Discovery Protocol (standardisé IEEE 802.1ab) sont des protocoles de couche (L2) servant à l’identification, au diagnostic, à la surveillance, à la gestion et à la configuration des périphériques à partir de cette couche.
1. Introduction aux protocoles de voisinage
On peut trouver des protocoles de voisinage L2, au niveau de la couche Liaison de données :
- Utilité : identification, diagnostic, surveillance, gestion et configuration des périphériques.
- Protocoles CDP et LLDP.
- Vulnérable dans l’environnement L2.
- Diagnostic de base : si ces protocoles sont fonctionnels, la couche 2 est donc fonctionnelle.
On peut aussi rencontrer des protocoles de voisinage L3, au niveau de la couche Internet :
- Résolution d’adresses et maintien de relations de voisinage en IPv6 (L3) avec Neighbor Discovery.
- ND (ICMPv6).
- Vulnérable au sein de l’environnement L3 (domaine de Broadcast/Multicast).
1.1. Protocoles de voisinage L2
Deux protocoles de voisinage de couche L2 sont courants1 :
- CDP (propriétaire Cisco, activé par défaut sur les routeurs et commutateurs).
- LLDP (standard interopérable, IEEE 802.1ab).
Leur objectif principal est d’échanger des informations entre périphériques intermédiaires qui peuvent s’identifier finement à travers des messages en format “TLVs” (Type-Length-Value).
1.2. Caractéristiques des protocoles de voisinage L2
Les caractéristiques communes des protocoles de voisinage L2 sont les suivantes :
- Uniquement transmis dans des trames (IEEE 802.3 / IEEE 802.2, par exemple).
- Portée L2.
- Adresses L2 Multicast réservées.
- CDP et LLDP sont disponibles en plusieurs versions.
- Des délais de mise à jour et de durée de vie.
- Informations transportées dans des TLV (Type-Length-Value)
1.3. Voisinage de couche 3
Neighbor Discovery (ND, ICMPv6) est aussi un protocole de voisinage mais de couche 3 :
- Un voisin est un noeud attaché au même lien (L2).
- Objectif : maintenir les informations L2, “Link-Layer”.
- Utilisé en IPv6 par Neighbor Discovery (ICMPv6/ND) pour la résolution d’adresse pour :
- La détection des voisins.
- Le maintien des informations de voisinage.
- La détection du routeur et des paramètres du réseau de manière active.
2. Cisco Discovery Protocol CDP
2.1. Caractéristiques de Cisco Discovery Protocol
Les caractéristiques de Cisco Discovery Protocol (CDP) sont les suivantes :
- Cisco Discovery Protocol, propriétaire Cisco Systems
- Protocole de couche 2 (embarqués dans des trames) :
- Adresse de destination
01:00:0c:cc:cc:cc
- Logical-Link Control
- DSAP: SNAP (
0xaa
)2 - Organization Code: Cisco (
0x00000c
) - PID: CDP (
0x2000
)
- Adresse de destination
- Mises à jour par défaut toutes les 60 secondes.
- Informations retenues (“holdtime”) 3 X 60 secondes = 180 s.
- Activé par défaut sur toutes les interfaces
- A désactiver (globalement ou par interfaces) car très indiscret
2.2. CDP en Cisco IOS
La commande show cdp
affiche les paramètres CDP.
#show cdp
Global CDP information:
Sending CDP packets every 60 seconds
Sending a holdtime value of 180 seconds
Sending CDPv2 advertisements is enabled
2.3. Désactivation de CDP
Alors que CDP est activé par défaut sur toutes les interfaces d’un routeur ou d’un commutateur Cisco, on peut le désactiver interface par interface (no cdp enable
) ou globalement (no cdp run
)
(config)#int G0/1
(config-if)#no cdp enable
(config-if)#exit
(config)#no cdp run
Quand CDP est désactivé, la commande show cdp
donne la sortie % CDP is not enabled
.
2.4. Modification des compteurs CDP
Par exemple pour modifier les compteurs de mis à jour à 30 secondes et de retenue à 120 secondes.
(config)#cdp timer 30
(config)#cdp holdtime 120
Pour vérifier cette modification, on utilisera volontiers la commande show cdp
.
show cdp
Global CDP information:
Sending CDP packets every 30 seconds
Sending a holdtime value of 120 seconds
Sending CDPv2 advertisements is enabled
Les paramètres par défaut des compteurs se rétablissent manuellement :
(config)#cdp timer 60
(config)#cdp holdtime 180
2.5. Voisins CDP
La commande show cdp neighbors
affiche de manière synthétique les voisins vus par le nom d’hôte, l’interface locale d’apprentissage, la durée de vie de l’information, le type de matériel et les port distant qui à envoyé l’information.
#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
SW0 Gig 0/0 156 R S I Gig 0/0
Total cdp entries displayed : 1
2.6. Détails CDP sous Cisco IOS
La commande show cdp neighbors detail
affiche des détails sur les voisins détectés.
#show cdp neighbors detail
-------------------------
Device ID: gateway
Entry address(es):
IP address: 192.168.1.254
IPv6 address: FD00:192:168:1::1 (global unicast)
IPv6 address: FE80::1 (link-local)
Platform: Cisco , Capabilities: Router Source-Route-Bridge
Interface: GigabitEthernet0/0, Port ID (outgoing port): GigabitEthernet0/0
Holdtime : 114 sec
Version :
Cisco IOS Software, IOSv Software (VIOS-ADVENTERPRISEK9-M), Version 15.6(2)T, RELEASE SOFTWARE (fc2)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2016 by Cisco Systems, Inc.
Compiled Tue 22-Mar-16 16:19 by prod_rel_team
advertisement version: 2
Duplex: half (Mismatch)
Management address(es):
IP address: 192.168.1.254
Total cdp entries displayed : 1
2.7. Commandes CDP complémentaires
(config)#cdp ?
advertise-v2 CDP sends version-2 advertisements
filter-tlv-list Apply tlv-list globally
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 the rate at which CDP packets are sent (in sec)
tlv Enable exchange of specific tlv information
tlv-list Configure tlv-list
2.8. Captures CDP
- Capture CDP entre un routeur et un commutateur L2 vIOS : https://www.cloudshark.org/captures/da9f7d521e20
- CDPv1 (Wireshark.org) : https://www.cloudshark.org/captures/17f4dc72849b
- CDPv2 (Wireshark.org) : https://www.cloudshark.org/captures/48965c1920ec
- CDPv2 avec vlan voice (Wireshark.org) : https://www.cloudshark.org/captures/f608957204b7
3. Link Layer Discovery Protocol (LLDP)
3.1. Caractéristiques de Link Layer Discovery Protocol
Link Layer Discovery Protocol (LLDP) est un protocole normé dans la publication IEEE 802.1ab. C’est un protocole destiné à remplacer un bon nombre de protocoles propriétaires (Cisco CDP, Extreme EDP, etc.) utilisés dans la découverte des topologies réseau de proche en proche; il sert aussi à apporter des mécanismes d’échanges d’informations entre équipements réseaux et utilisateurs finaux.
LLDP est un protocole ouvert constitué de deux parties :
- un entête et une fin de message fixe
- un ensemble de conteneurs d’information (TLV, Type-length-value)
3.2. Intérêts de LLDP
L’intérêt de LLDP vient du modèle ouvert de gestion des TLVs :
- Si un équipement de transit reçoit un message LLDP, il le lit dans son intégralité, et interprète tous les TLVs qu’il peut interpréter.
- S’il lit un TLV qu’il ne sait pas interpréter, il le conserve tel quel dans le message et ne le prend pas en compte localement
Il retransmet ensuite le message originel en modifiant les TLV interprétés s’il y a besoin de les modifier, et les TLV non interprétés en les laissant tel quels.
3.3. Media Endpoint Discovery extension
Media Endpoint Discovery (LLDP-MED) est une amélioration de LLDP qui offre les fonctionnalités suivantes :
- Découverte automatique des LAN policies (VLAN, priorités L2, Diffserver) activant le réseau plug-and-play
- Localisation de périphériques par découverte permettant la création de bases de données (avec la VoIP, permettant un service d’urgence)
- Gestion de l’alimentation PoE étendue et automatisée pour les périphériques terminaux
- Gestion d’inventaire permettant de suivre les périphériques et de collecter leurs caractéristiques.
3.4. LLDP sous Cisco IOS
Pour activer LLDP, il est nécessaire d’encoder la commande lldp run
en configuration globale.
(config)#lldp run
La commande show lldp
affiche les paramètres LLDP.
#show lldp
Global LLDP Information:
Status: ACTIVE
LLDP advertisements are sent every 30 seconds
LLDP hold time advertised is 120 seconds
LLDP interface reinitialisation delay is 2 seconds
La commande show lldp neighbors
affiche de manière synthétique les voisins vus par le nom d’hôte, l’interface locale d’apprentissage, la durée de vie de l’information, le type de matériel et les port distant qui à envoyé l’information.
#show lldp neighbors
Capability codes:
(R) Router, (B) Bridge, (T) Telephone, (C) DOCSIS Cable Device
(W) WLAN Access Point, (P) Repeater, (S) Station, (O) Other
Device ID Local Intf Hold-time Capability Port ID
SW0 Gi0/0 120 R Gi0/0
Total entries displayed: 1
3.5. Commandes LLDP complémentaires
Pour information quelques commandes LLDP complémentaires.
(config)#lldp ?
holdtime Specify the holdtime (in sec) to be sent in packets
reinit Delay (in sec) for LLDP initialization on any interface
run Enable LLDP
timer Specify the rate at which LLDP packets are sent (in sec)
tlv-select Selection of LLDP TLVs to send
3.6. Tableau comparatif CDP / LLDP sous Cisco IOS
Cisco IOS | CDP | LLDP |
---|---|---|
Activé par défaut | oui | non |
Compteur de mise à jour (timer ) | 60 | 30 |
Compteur de retenue (holdtime ) | 180 | 120 |
Activation globale | (config)# cdp run | (config)# lldp run |
Activation par interface | (config-if)# cdp enable | (config-if)# lldp enable |
Vérification | # show cdp | # show lldp |
4. Compléments
4.1. Renifleurs CDP / LLDP
Sous Debian, on trouve des logiciels capables d’émettre et d’interpréter des messages CDP / LLDP.
cdpr - Cisco Discovery Protocol Reporter
cdpsnarf - Network sniffer to extract CDP information
ladvd - LLDP/CDP sender
lldpd - implementation of IEEE 802.1ab (LLDP)
yersinia - Network vulnerabilities check software
Sous Red Hat, on trouvera aussi certains logiciels CDP / LLDP.
yum search cdp
yum search lldp
Installation et lancement de CDPR
# yum install cdpr || apt-get install cdpr
# cdpr -help
# cdpr
# cdpr -d eth0 -vvv
4.2. Références
- https://wiki.wireshark.org/CDP
- https://en.wikipedia.org/wiki/Link_Layer_Discovery_Protocol
- https://wiki.wireshark.org/LinkLayerDiscoveryProtocol?action=show&redirect=LLDP
- http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/cdp/configuration/15-mt/cdp-15-mt-book/nm-cdp-discover.html
- https://supportforums.cisco.com/discussion/12285176/voice-vlan-cdp-role
- http://www.cisco.com/c/en/us/support/docs/network-management/discovery-protocol-cdp/118736-technote-cdp-00.html
- http://standards.ieee.org/getieee802/download/802.1AB-2009.pdf