LLDP (Link Layer Discovery Protocol)
LLDP est un protocole standardisé (IEEE 802.1AB) de découverte de réseau ayant pour vocation de supplenter la multitudes de protocoles propriétaires du même type (Cisco Discovery Protocol, Nortel Discovery Protocol, …) et ainsi de permettre aux équipements de différents fabriquants de se découvrir mutuellement.
Introduction
LLDP est défini par le standard IEEE 802.1AB. Il s’agit d’un protocole de la couche liaison de données du modèle OSI (protocole de niveau 2). Ce qui signifie que LLDP est directement véhiculé dans une trame. Il est conçu pour fonctionner sur les réseaux de type IEEE 802 (Ethernet, …). Comme pour CDP il s’agit d’une simple émission de messages à interval régulier (Ce n’est pas une communication bidirectionnelle).
Les messages LLDP portent le doux nom de LLDPDU. Chacun de ces message est composé d’une suite de structures appellées TLV (Type-Length-Value) servant à contenir les informations.
Les LLDPDU sont envoyés à une adresse MAC destination spéciale qui n’est pas forwardée par les switches (0180.c200.000e, 0180.c200,0003 ou 0180.c200.0000), ce qui signifie que, à l’instar de CDP, LLDP sert à communiquer au travers d’un lien uniquement. D’équipement à équipement.
LLDP possède son propre EtherType (0x88CC) qui est donc indiqué dans le champs « Type » de la trame Ethernet.
Structure du LLDPDU
- DMAC: Adresse MAC destination (0180.c200.000e, 0180.c200,0003 ou 0180.c200.0000).
- SMAC: Adresse MAC de la machine émetrice.
- TYPE: 0x88CC.
- TLV1: Chassis ID, identifiant de la machine.
- TLV2: Port ID, identifie le port depuis lequel le LLDPDU est émis.
- TLV3: TTL TLV, Indique la durée de vue du LLDPDU.
- TLVx: TLV supplémentaires optionnels.
- ENDTLV: Indique la fin des TLVs dans le LLDPDU.
Structure d’un TLV
- TLV Type (7 bits): indique la nature du TLV.
- TLV Length (9 bits): indique la longueur de l’information.
- TLV String (0-511 octets): information du TLV.
Principaux TLVs
- Chassis ID (Type 1) : Identifie la machine émetrice (obligatoire).
- Port ID (Type 2) : Identifiant du port duquel est émis le LLDPDU (obligatoire).
- TTL TLV (Type 3) : Indique la durée de vie du LLDPDU (obligatoire).
- Port Description (Type 4) : Description textuelle du port (optionnel).
- System Name (Type 5) : Nom de la machine émetrice (optionnel).
- System Description (Type 6) : Description de la machine émetrice (optionnel).
- System Capabilities (Type 7) : Fonctionnalités de la machine émetrices (optionnel).
- Management Address (Type 8) : Adresse IP de management de la machine (optionnel).
LLDP-MED (LLDP for Media Endpoint Devices)
LLDP-MED est une extension de LLDP servant à communiquer avec les équipements terminaux (les téléphones VoIP par exemple) qui offre des TLVs complémentaires pour supporter des informations relatives au PoE (Power Over Ethernet), à la localisation de l’équipement, aux polices d’accès réseau (informations relatives au VLANs, …), ou encore à la gestion d’inventaire (modèle de l’équipement, version du software, numéro de série, …). Sur les équipements Cisco, LLDP-MED est actif dés qu’on utilise LLDP.
Paramètres par défaut de LLDP (pour les équipements Cisco)
- Etat initial de LLDP: désactivé
- Etat initial de LLDP: désactivé
- LLDP Holdtime (TTL): 120 secondes
- LLDP Timer: 30 secondes (interval entre deux LLDPDU)
- LLDP init delay: 2 secondes (temps d’attente avant premier envoi sur une interface)
- LLDP tlv-select: désactivé (tous les TLVs sont envoyés par défaut)
- LLDP med-tlv-select: désactivé (tous les TLVs spéciaux sont envoyés par défaut)
Disponibilité de LLDP sur les équipements Cisco
LLDP est un protocol assez récent et donc il est implémenté sur les plateformes assez récentes.
Pour les platerofmes de type IOS:
- Côté switch, on le trouve à partir de la game des WS-C2960, WS-C3560, WS-C3750 et ME3400 depuis la version 12.2(37)SE toute licence confondue.
- Côté routeur, il faut un IOS en version 15.2M pour les plateformes courantes et donc uniquement dans les dernières générations comme les séries 1900, 2900, 3900 ou encore dans les plus petits modèles les séries 880 et 890.
C’est un élément à prendre en compte pour la nouvelle CCNP et l’acquisition de matériel dans cette optique. Pour ma part j’ai eu du flair en faisant l’acquisition de trois WS-C3750 pour une bouchée de pain.
Configuration de base de LLDP
Commençons par vérifier l’état initial de LLDP dans une configuration par défaut…
3750-1#show lldp
% LLDP is not enabled
3750-1#
Comme prévu LLDP est désactivé par défaut. Activons le… et voyons ce que ça change.
3750-1#configure terminal 3750-1(config)#lldp run 3750-1(config)#end 3750-1#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 3750-1#
LLDP est maintenant active avec un timer par défaut de 30 secondes, une durée de vie des LLDPDU de 120 secondes et un délai d’initialisation sur les interfaces de 2 secondes.
Qu’en est-il des interfaces ? Sont elles actives ou non ?
3750-1#show lldp interface FastEthernet1/0/1: Tx: enabled Rx: enabled Tx state: INIT Rx state: WAIT PORT OPER FastEthernet1/0/2: Tx: enabled Rx: enabled Tx state: INIT Rx state: WAIT PORT OPER ....
Activer LLDP globalement active également toutes les interfaces possibles!
Mais le switch discute-t-il vraiment ? Pour vérifier, branchons un autre switch à celui-ci (avec LLDP activé de la même manière).
3750-1#debug lldp packets
LLDP packet info debugging is on
3750-1#
*Mar 1 00:44:50.989: %LINK-3-UPDOWN: Interface FastEthernet1/0/1, changed state to up
*Mar 1 00:44:51.996: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet1/0/1, changed state to up
3750-1#
*Mar 1 00:45:20.836: LLDP advertisement packet RX'd on intf FastEthernet1/0/1
*Mar 1 00:45:20.920: LLDP advertisement packet TX'd on intf FastEthernet1/0/1
3750-1#
L’interface passe UP/UP, le temps que Spanning-Tree fasse son job et hop, les premiers LLDPDU sont échangés!
Regardons maintenant à quoi ressemble le résultat…
3750-1#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 3750-2 Fa1/0/1 120 B Fa3/0/1 Total entries displayed: 1 3750-1#
Notez que l’affichage ressemble très fort à celui de CDP et que les informations sont quasi identiques! « show lldp neighbors » affiche donc une liste simplifiée des voisins directements connectés. Comme pour CDP nous pouvons afficher les informations détaillées pour tous les voisins (dans ce cas-ci il n’y en a qu’un 😉 )…
3750-1#show lldp neighbors detail ------------------------------------------------ Chassis id: 001b.d59e.3100<= Adresse MAC principale du switch (TLV Chassis ID) Port id: Fa3/0/1<= Port émetteur, donc celui du voisin (TLV Port ID) Port Description: FastEthernet3/0/1<= Nom complet de l'interface du voisin (TLV Port description) System Name: 3750-2<= Hostname du voisin (TLV System Name) System Description: Cisco IOS Software, C3750 Software (C3750-IPSERVICESK9-M), Version 12.2(55)SE7, RELEASE SOFTWARE (fc1) Technical Support: http://www.cisco.com/techsupport Copyright (c) 1986-2013 by Cisco Systems, Inc. Compiled Mon 28-Jan-13 10:16 by prod_rel_team Time remaining: 97 seconds System Capabilities: B,R Enabled Capabilities: B Management Addresses - not advertised Auto Negotiation - supported, enabled Physical media capabilities: 100base-TX(FD) 100base-TX(HD) 10base-T(FD) 10base-T(HD) Media Attachment Unit type: 16 Vlan ID: 1 Total entries displayed: 1 3750-1#
De nouveau cela ressemble très fort à l’affichage de CDP, toutefois, les informations affichées concernent l’émetteur du LLDPDU … cela vaut aussi pour l’interface affichée. Attention à la confusion!
Il est également possible d’afficher les informations détaillées pour un seul équipement en spécifiant son Hostname.
3750-1#show lldp entry 3750-2
Capability codes:
(R) Router, (B) Bridge, (T) Telephone, (C) DOCSIS Cable Device
(W) WLAN Access Point, (P) Repeater, (S) Station, (O) Other
------------------------------------------------
Chassis id: 001b.d59e.3100
Port id: Fa3/0/1
Port Description: FastEthernet3/0/1
System Name: 3750-2
System Description:
Cisco IOS Software, C3750 Software (C3750-IPSERVICESK9-M), Version 12.2(55)SE7, RELEASE SOFTWARE (fc1)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2013 by Cisco Systems, Inc.
Compiled Mon 28-Jan-13 10:16 by prod_rel_team
Time remaining: 94 seconds
System Capabilities: B,R
Enabled Capabilities: B
Management Addresses - not advertised
Auto Negotiation - supported, enabled
Physical media capabilities:
100base-TX(FD)
100base-TX(HD)
10base-T(FD)
10base-T(HD)
Media Attachment Unit type: 16
Vlan ID: 1
Total entries displayed: 1
3750-1#
Comme pour CDP, il est possible d’avoir les statistiques concernant le nombre de messages envoyés et reçus, le nombre d’erreurs etc…
3750-1#show lldp traffic LLDP traffic statistics: Total frames out: 78 <= LLDPDU envoyés Total entries aged: 0 <= LLDPDU expirés Total frames in: 78 <= LLDPDU reçus Total frames received in error: 0 <= Erreurs à la réception Total frames discarded: 0 <= Trames rejetées Total TLVs discarded: 0 <= TLVs rejetés Total TLVs unrecognized: 0 <= TLVs inconnus 3750-1#
Pour afficher l’état de LLDP sur les interfaces…
3750-1#show lldp interface FastEthernet1/0/1: Tx: enabled Rx: enabled Tx state: IDLE <= En attente d'émission (l'interface est fonctionelle) Rx state: WAIT FOR FRAME <= En attente de réception FastEthernet1/0/2: Tx: enabled Rx: enabled Tx state: INIT <= En attente d'initialisation de l'interface (rien n'est connecté) Rx state: WAIT PORT OPER <= En attente d'initialisation de l'interface (rien n'est connecté) ...
Pour afficher l’état de LLDP d’une interface spécifique…
3750-1#show lldp interface fastEthernet 1/0/1
FastEthernet1/0/1:
Tx: enabled
Rx: enabled
Tx state: IDLE
Rx state: WAIT FOR FRAME
3750-1#
Paramétrage de LLDP
Activation globale de LLDP
3750-1(config)#lldp run
Désactivation globale de LLDP
3750-1(config)#no lldp run
Configurer l’interval entre deux LLDPDU (10 secondes par exemple). Vous pouvez choisir une valeur comprise entre 5 et 65534 secondes.
3750-1(config)#lldp timer 10
Configurer la durée de vie des LLDPDU envoyés (par exemple 60 secondes). Vous pouvez définir une durée de vie de 0 à 65535 secondes.
3750-1(config)#lldp holdtime 60
Configurer le délai d’initialisation de LLDP, (par exemple 4 secondes). Valeur comprise entre 2 et 5 secondes.
3750-1(config)#lldp reinit 4
Par défaut LLDP transmet tous les TLVs disponibles. Mais vous pouvez choisir de restreindre cela en définissant ceux à propager.
Il faut répéter la commande pour chaque TLV. Une fois un TLV choisi, l’équipement ne propagera plus que lui (et ceux qui vous configurerez après).
3750-1(config)#lldp tlv-select ? mac-phy-cfg IEEE 802.3 MAC/Phy Configuration/status TLV management-address Management Address TLV port-description Port Description TLV port-vlan Port VLAN ID TLV power-management IEEE 802.3 DTE Power via MDI TLV system-capabilities System Capabilities TLV system-description System Description TLV system-name System Name TLV 3750-1(config)#
Pour envoyer tous les TLVs, il faut annuler les différentes commandes « lldp tlv select » entrées.
Paramétrage spécifique de LLDP à une interface
Activer l’émission des LLDPDUs
3750-1(config-if)#lldp transmit
Désactiver l’émission des LLDPDUs
3750-1(config-if)#no lldp transmit
Activer la réception des LLDPDUs
3750-1(config-if)#lldp receive
Désactiver l’émission des LLDPDUs
3750-1(config-if)#no lldp receive
Notez que par défaut, les interfaces envoient et reçoivent les LLDPDU une fois que LLDP est activé globalement.
Vous pouvez également défini les TVLs mais aussi les MED-TLV à émettre par l’interface. Par exemple:
3750-1(config-if)#lldp tlv-select ? power-management IEEE 802.3 DTE Power via MDI TLV
Et…
3750-1(config-if)#lldp med-tlv-select ? inventory-management LLDP MED Inventory Management TLV location LLDP MED Location TLV network-policy LLDP MED Network Policy TLV power-management LLDP MED Power Management TLV
Pour conclure
Comme beaucoup de protocoles standardisé, LLDP hérite quasi toutes ses fonctionnalités de ses prédécesseurs propriétaires. A priori, lorsque son implémentation sera plus globale, il remplacera CDP avec aisance.
Là ou Cisco a clairement pensé à nous, c’est dans son implémentation. Vous utilisez CDP ? Alors changez un mot clé dans la commande et vous savez utiliser LLDP ! (« show cdp neighbors » ou « show lldp neighbors » … quelle différence ?).
Voici donc un des sujets ajoutés dans la nouvelle version dde l’examen CCNP Switch … pas de quoi fouetter un chat … si ?
0 Comments on “LLDP (Link Layer Discovery Protocol)”