Zum Hauptinhalt springen

RFC 5036 - LDP-Spezifikation (Label Distribution Protocol)

  • Status: Draft Standard
  • Veröffentlicht: October 2007
  • Stream: IETF
  • Ersetzt: RFC3036
  • Errata: Keine Errata

Zusammenfassung

Die Architektur für Multi-Protocol Label Switching (MPLS) wird in RFC 3031 beschrieben. Ein grundlegendes Konzept in MPLS ist, dass zwei Label Switching Router (LSRs) sich über die Bedeutung der Labels einigen müssen, die zur Weiterleitung des Datenverkehrs zwischen und durch sie verwendet werden. Dieses gemeinsame Verständnis wird durch die Verwendung einer Reihe von Verfahren erreicht, die als Label Distribution Protocol bezeichnet werden, mit denen ein LSR einen anderen über die von ihm vorgenommenen Labelbindungen informiert. Dieses Dokument definiert eine Reihe solcher Verfahren, genannt LDP (für Label Distribution Protocol), mit denen LSRs Labels verteilen, um MPLS-Weiterleitung entlang normal gerouteter Pfade zu unterstützen.

1. LDP-Übersicht

LDP ist ein Protokoll, das für die Verteilung von Labels definiert wurde. Es handelt sich um eine Reihe von Verfahren und Nachrichten, mit denen Label Switching Router (LSRs) Label Switched Paths (LSPs) durch ein Netzwerk aufbauen, indem sie Routing-Informationen der Netzwerkschicht direkt auf geschaltete Pfade der Sicherungsschicht abbilden.

LDP ordnet jedem erstellten LSP eine Forwarding Equivalence Class (FEC) zu. Die einem LSP zugeordnete FEC gibt an, welche Pakete diesem LSP "zugeordnet" werden.

1.1 LDP-Peers

Zwei LSRs, die LDP zum Austausch von Label/FEC-Zuordnungsinformationen verwenden, werden als "LDP-Peers" in Bezug auf diese Informationen bezeichnet, und man spricht von einer "LDP-Sitzung" zwischen ihnen. Eine einzelne LDP-Sitzung ermöglicht es jedem Peer, die Labelzuordnungen des anderen zu lernen; d. h. das Protokoll ist bidirektional.

1.2 LDP-Nachrichtenaustausch

Es gibt vier Kategorien von LDP-Nachrichten:

  1. Entdeckungsnachrichten (Discovery messages): Dienen dazu, die Anwesenheit eines LSR in einem Netzwerk anzukündigen und aufrechtzuerhalten.
  2. Sitzungsnachrichten (Session messages): Dienen zum Aufbau, zur Aufrechterhaltung und zur Beendigung von Sitzungen zwischen LDP-Peers.
  3. Ankündigungsnachrichten (Advertisement messages): Dienen zum Erstellen, Ändern und Löschen von Labelzuordnungen.
  4. Benachrichtigungsnachrichten (Notification messages): Dienen zur Bereitstellung von beratenden Informationen und zur Signalisierung von Fehlerinformationen.

1.3 LDP-Nachrichtenstruktur

Der LDP-Nachrichtenaustausch erfolgt über LDP PDUs (Protocol Data Units). Jede LDP-PDU enthält einen LDP-Header, gefolgt von einer oder mehreren LDP-Nachrichten.

2. LDP-Betrieb

2.2 Labelräume, Identifikatoren, Sitzungen und Transport

  • Labelraum: Jeder LSR verwaltet einen oder mehrere Labelräume.
  • LDP-Identifikator: 6 Byte lang, dient zur eindeutigen Identifizierung des Labelraums eines LSR. Format <LSR Id>:<Label Space Id>.
  • LDP-Sitzungen: Werden zwischen zwei LSRs eingerichtet, um Labelzuordnungen auszutauschen.
  • LDP-Transport: LDP verwendet TCP als zuverlässiges Transportprotokoll für die Sitzungskommunikation (Port 646). Der Entdeckungsmechanismus verwendet UDP (Port 646).

2.4 LDP-Entdeckung

Der LDP-Entdeckungsmechanismus ermöglicht es LSRs, potenzielle LDP-Peers zu identifizieren.

  • Basis-Entdeckungsmechanismus: Dient zur Entdeckung direkt verbundener LSR-Nachbarn. LSRs senden regelmäßig LDP Link Hello-Nachrichten (UDP Multicast) auf jeder Schnittstelle.
  • Erweiterter Entdeckungsmechanismus: Dient zur Entdeckung nicht direkt verbundener LSR-Nachbarn (d. h. gezielte Sitzungen). LSRs senden regelmäßig LDP Targeted Hello-Nachrichten (UDP Unicast) an eine bestimmte Adresse.

2.5 Aufbau und Aufrechterhaltung von LDP-Sitzungen

Der Sitzungsaufbauprozess umfasst:

  1. Aufbau der Transportverbindung (TCP).
  2. Sitzungsinitialisierung (Austausch von Initialisierungsnachrichten, Aushandlung von Parametern wie KeepAlive-Zeit, maximale PDU-Länge usw.).

2.6 Labelverteilung und -verwaltung

LDP unterstützt mehrere Labelverteilungsmodi:

  1. Labelverteilungs-Steuerungsmodus (Label Distribution Control Mode):

    • Unabhängige Steuerung (Independent Control): Ein LSR kann jederzeit Labelzuordnungen an Peers ankündigen, ohne auf eine Zuordnung von Downstream zu warten.
    • Geordnete Steuerung (Ordered Control): Ein LSR kündigt eine Labelzuordnung nur dann an einen Peer an, wenn er eine Labelzuordnung vom Downstream-Next-Hop erhalten hat oder selbst der Ausgangsknoten ist.
  2. Label-Beibehaltungsmodus (Label Retention Mode):

    • Konservative Beibehaltung (Conservative Retention): Behält nur Labelzuordnungen bei, die vom Next-Hop-Nachbarn angekündigt wurden, der für die Datenweiterleitung verwendet wird.
    • Liberale Beibehaltung (Liberal Retention): Behält alle von Nachbarn angekündigten Labelzuordnungen bei, unabhängig davon, ob der Nachbar der Next-Hop ist oder nicht.
  3. Label-Ankündigungsmodus (Label Advertisement Mode):

    • Downstream on Demand: Ein Downstream-LSR kündigt eine Labelzuordnung nur an, wenn er vom Upstream-LSR dazu aufgefordert wird.
    • Downstream Unsolicited: Ein Downstream-LSR kündigt Labelzuordnungen proaktiv an seine Nachbarn an, ohne dass eine Aufforderung erforderlich ist.

3. Protokollspezifikation

3.1 LDP PDU

 0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Version | PDU Length | LDP Identifier
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

3.5 LDP-Nachrichten

Zu den wichtigsten Nachrichtentypen gehören:

  • Hello Message: Dient zur Entdeckung und Aufrechterhaltung von Nachbarschaften.
  • Initialization Message: Dient zur Aushandlung von Sitzungsparametern.
  • KeepAlive Message: Dient zur Überwachung des aktiven Status der Sitzung.
  • Label Mapping Message: Dient zur Ankündigung von Labelbindungen.
  • Label Request Message: Dient zur Anforderung von Labelbindungen.
  • Label Withdraw Message: Dient zum Zurückziehen von Labelbindungen.
  • Label Release Message: Dient zur Freigabe von Labelbindungen.
  • Notification Message: Dient zur Meldung von Fehlern oder Hinweisen.

Hinweis: Diese Übersetzung dient nur als Referenz. Bitte konsultieren Sie das Original-RFC 5036 für offizielle Details.