Link Layer Discovery Protocol

LLDP-Nachbarn

Nachbargeräte sind bei LLDP so definiert, dass sie eine direkte (Layer-1-)Verbindung miteinander haben müssen. Ist der Rechner, auf dem ich mir die Nachbarn anzeigen lasse, mit einem Switch verbunden, mit dem noch 10 weitere LLDP-fähige Rechner verbunden sind, bekomme ich nur den Switch als Nachbarn angezeigt. Lasse ich mir auf dem Switch die LLDP-Nachbarn anzeigen, bekomme ich deren elf angezeigt.

LLDP (Link Layer Discovery Protokoll) ist ein herstellerunabhängiges Layer-2-Protokoll, das in der IEEE-802.1AB-Norm definiert ist. Primär ist es in einem IT-Netzwerk dazu gedacht, Informationen zwischen Nachbargeräten auszutauschen. Auf Geräten, die LLDP unterstützen, arbeitet ein LLDP-Software-Agent. Dieser Agent sendet in periodischen Intervallen (im Standard alle 30 Sekunden) Informationen über sich selbst und/oder empfängt Informationen von Nachbargeräten.

Das Senden und Empfangen dieser Informationen ist unabhängig voneinander. Dementsprechende ist LLDP ein „Ein-Weg-Protokoll“ - es wird keine Kommunikation zu anderen Geräten aufgebaut. LLDP sendet seine Informationen in der Form von LLDP-DUs (Data Units) in einem Osi-Layer-2-Frame an die Multicast-MAC-Adresse „01:80:C2:00:00:0E“ mit dem Ethertype „88-CC“.

In einer LLDPDU werden (Nutz-)Daten transportiert, die in TLVs angeordnet sind. Eine TLV (Type-Length-Value) hat einen Typ (type) und je nach Daten (value) die entsprechende Länge (length).

Jede LLDP-DU besteht aus mindestens drei TLVs, kann aber optional mehr TLVs enthalten:

  • Eine Chassis ID TLV
  • Eine Port ID TLV
  • Eine Time to Live TLV
Mit der Chassis-ID und der Port-ID kann der Empfänger den Sender einer LLDPDU eindeutig identifizieren, die Time to Live-TLV gibt an, wann die Informationen aus der LLDPDU verworfen werden, wenn der Sender keine weiteren LLDPDUs sendet.

  • hh:mm:ss.xxxxxx LLDP, length 227
  • Chassis ID TLV (1), length 7
    • Subtype MAC address (4): d0:50:99:ff:a3:d6
    • 0x0000: 04d0 5099 ffa3 d6
  • Port ID TLV (2), length 7
    • Subtype MAC address (3): fe:ff:ff:ff:ff:ff
    • 0x0000: 03fe ffff ffff ff
  • Time to Live TLV (3), length 2: TTL 4s
    • 0x0000: 0004
  • System Name TLV (5), length 25: musterrechner.msdnet.de
    • 0x0000: hhhh hhhh hhhh hhhh hhhh hhhh hhhh hhhh
    • 0x0010: hhhh hhhh hhhh hhhh hh
  • System Description TLV (6), length 97
    • Debian GNU/Linux 11 (bullseye) Linux 5.10.0-21-amd64 #1 SMP Debian 5.10.162-1 (yyyy-mm-dd) x86_64
    • 0x0000: 4465 6269 616e 2047 4e55 2f4c 696e 7578
    • 0x0010: 2031 3120 2862 756c 6c73 6579 6529 204c
    • 0x0020: 696e 7578 2035 2e31 302e 302d 3231 2d61
    • 0x0030: 6d64 3634 2023 3120 534d 5020 4465 6269
    • 0x0040: 616e 2035 2e31 302e 3136 322d 3120 2832
    • 0x0050: 3032 332d 3031 2d32 3129 2078 3836 5f36
    • 0x0060: 34
  • System Capabilities TLV (7), length 4
    • System Capabilities [Bridge, WLAN AP, Router, Station Only] (0x009c)
    • Enabled Capabilities [Bridge, Router] (0x0014)
    • 0x0000: 009c 0014
  • Management Address TLV (8), length 12
    • Management Address length 5, AFI IPv4 (1): 1.2.3.4
    • Interface Index Interface Numbering (2): 2
    • 0x0000: hhhh hhhh hhhh hhhh hhhh hhhh
  • Management Address TLV (8), length 24
    • Management Address length 17, AFI IPv6 (2): hhhh:hhhh:hhh:hhhh::
    • Interface Index Interface Numbering (2): 2
    • 0x0000: hhhh hhhh hhhh hhhh hhhh hhhh hhhh hhhh
    • 0x0010: hhhh hhhh hhhh hhhh
  • Port Description TLV (4), length 7: vif25.0
    • 0x0000: 7669 6632 352e 30
  • Organization specific TLV (127), length 9: OUI IEEE 802.3 Private (0x00120f)
    • Link aggregation Subtype (3)
      • aggregation status [supported], aggregation port ID 0
    • 0x0000: 0012 0f03 0100 0000 00
  • Organization specific TLV (127), length 9: OUI IEEE 802.3 Private (0x00120f)
    • MAC/PHY configuration/status Subtype (1)
      • autonegotiation [none] (0x00)
      • PMD autoneg capability [unknown] (0x0000)
      • MAU type Unknown (0x0000)
    • 0x0000: 0012 0f01 0000 0000 00
  • End TLV (0), length 0

Beispiel einer LLDPDU (aufgezeichnet mit tcpdump)

LLDP speichert die von anderen Netzwerkteilnehmern über LLDP erhalten Daten im Allgemeinen ist seiner Management Information Base (MIB) für Remotegeräte. Dort sind die Informationen z.B. mit SNMP abrufbar.

Wird der NMC-Client aus dem Deb-Paket unter Debian/GNU-Linux installiert, ist der lldpd-Daemon eine Abhängigkeit, wird mit installiert und gestartet. Der NMC-Daemon wertet die LLDP-Informationen von Nachbarn zyklisch aus und sendet sie an die NMC-Cloud, wo sie dem Benutzer angezeigt werden.

CSS & HTML by MLP Design
Licensed under Creative Commons Attribution-NonCommercial 3.0.