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)
  • 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

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 IOSCDPLLDP
Activé par défautouinon
Compteur de mise à jour (timer)6030
Compteur de retenue (holdtime)180120
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

  1. EDP pour “Extreme Discovery Protocol” ou encore FDP pour “Foundry Discovery Protocol”. 

  2. “SubNetwork Access Protocol” (SNAP) est un mécanisme de multiplexage sur les réseaux utilisant IEEE 802.2 LLC. Le protocole transporté est identifié par les 8 bits du champ “Service Access Point” (SAP).