Multiprotocol Label Switching (MPLS) ist ein technischer Ansatz, der versucht, dem Traffic Management und QoS von ATM nahe zu kommen und gleichzeitig das Forwarding von IP-Paketen deutlich zu beschleunigen.
Die Wurzeln von MPLS gehen auf Mitte der 90er Jahre zurück, als versucht wurde ATM und IP miteinander zu kombinieren. Das Resultat waren erste Versuche von Ipsilon mit IP Switching, gefolgt von Cisco’s Tag Switching und IBM’s Aggregate Route-based IP Switching. Und schließlich gesellte sich auch noch Cascade’s IP Navigator dazu. Alle Produkte hatten das gleiche Ziel: Verbesserung des Durchsatzes und Verringerung der Verzögerung des Internet Protokolls (IP). Und alle verfolgten den gleichen Ansatz: Verwende ein Standardroutingprotokoll wie etwa OSPF (Open Shortest Path First) um einen Pfad zwischen zwei Endpunkten zu definieren. Anschließend bräuchte man nur noch Pakete diesen Pfaden zuzuordnen sobald sie in das Netzwerk eintreten. Die ATM-Switches, damals war nur ATM für den Transport vorgesehen, beförderten diese Pakete dann durch das Netz. ATM-Switches waren von Anfang an viel schneller als IP-Switches, so daß ein Primärziel darin bestand, soviel wie möglich auf den ATM-Layer zu bringen.
Grundlagen
Als Antwort auf diese proprietären Ansätze begann die IETF (Internet Engineering Task Force) mit der Standardisierung und etablierte 1997 die MPLS Working Group, um einen einheitlichen Ansatz zu entwickeln. In der Zwischenzeit stand der Markt nicht still, so daß in den späten 90er viele IP-Router mit denen der ATM-Router konkurrieren konnten, mit der Folge, daß bald IP und ATM über die gleiche Infrastruktur abgewickelt werden mußten.
Dennoch kam MPLS recht bald eine wichtige Rolle zu und gerade in der heutigen Zeit ist MPLS zum Kern vieler moderner Anwendungen avanciert. MPLS reduziert den Bearbeitungsaufwand pro Paket im IP-Router erheblich, so daß diese Router noch schneller wurden. Doch die eigentliche Popularität hat MPLS den Eigenschaften zu verdanken, die den damaligen Zeitgeist widerspiegeln, es unterstützt: QoS, Traffic Engineering, Virtual Private Networks (VPN) und mehrere Protokolle. Bevor wir mit der MPLS-Einführung weitermachen, schauen wir uns diese Eigenschaften genauer an.
Verbindungsorientiertes Quality of Service
Netzwerkadministratoren und -designer benötigen immer ausgefeiltere Unterstützung für QoS. Die Gründe dafür sind vielfältig:
- Garantie von Mindestkapazität für bestimmte Anwendungen, wie Audio/Video, und Conferencing.
- Mehr Kontrolle über Verschiebungen (Jitter) und Verzögerungen (Delay), um bessere Sprachdienste realisieren zu können.
- Implementierung von spezifischen Service Level Agreements (SLA).
- Konfiguration mehrerer QoS-Einstellungen für eine Vielzahl von Kunden.
Ein verbindungsloses Netzwerk, wie IP-basierte Internetzwerke, können für wirklich harte QoS-Zusagen genutzt werden und ein differenziertes Service (DS) Framework ist nur allgemein und auf Aggregationen von Traffic implementierbar. Selbst ein integriertes Service (IS) Framework unter Verwendung des Resource Reservation Protocol (RSVP), welches verbindungsorientierten Charakter aufweist, ist in Sachen Skalierbarkeit und Flexibilität unterlegen. Für Anwendungen, die beispielsweise Audio und Video transportieren, sind verlässliche Vorhersagen über die Netzlast unabdingbar. Im Vergleich zu DS und IS ist ein verbindungsorientiertes Netzwerk im Hinblick auf QoS und Traffic Engineering dem verbindungslosen Netzwerk weit überlegen.
Traffic Engineering
MPLS mach es einfach, Netzwerkresourcen für bestimmte Anwendungen zu garantieren und erlaubt die Balancierung der Last im Falle von Lastspitzen. Damit ist der Weg frei für benutzerspezifische SLAs und eine präzise Optimierung von Diensten fast ein Kinderspiel.
Mit den herkömmlichen IP-Mechanismen ist nur eine relativ primitive Form von Traffic Engineering möglich. Routingprotokolle, wie OSPF ändern die Routen zu einem Ziel selbständig auf Basis jedes Pakets, um ein Minimum an Lastverteilung zu realisieren. Doch solch ein dynamisches Routing reagiert recht simpel auf Überlastungen (Congestion), so daß kein QoS implementiert werden kann. Alle Pakete können der gleichen Route zum Ziel folgen, solange keine Überlastung auftritt. MPLS, jedoch, beobachtet nicht einfach nur die Pakete, sondern den Fluß der Pakete zum Ziel. Jeder Fluß hat eine eigene QoS-Anforderungen und damit vorhersagbaren Traffic. Mit MPLS sind wir in der Lage, Routen auf Basis dieser Datenflüsse einzurichten, so daß zwei unterschiedliche Datenflüsse zwischen zwei identischen Endpunkten evtl. über unterschiedliche Router abgewickelt wird. Droht eine Überlastung, can MPLS den Datenfluß intelligent umleiten, was bedeutet, daß nicht einfach nur die Route für jedes Paket geändert wird, sondern der Pfad für den gesamten Datenfluß, wobei desse Anforderungen mit in die Entscheidung einfließen. Die effektive Nutzung von Traffic Engineering kann die nutzbare Netzwerkkapazität ganz erheblich erhöhen.
VPN-Unterstützung
MPLS erlaubt die effektive Unterstützung von VPNs. Innerhalb eines VPNs wird der Verkehr eines Unternehmens oder einer Gruppe transparent durch das Internet geleitet. Dieser Datenverkehr ist vom Rest des Verkehrs, der über diese Netze abgewickelt wird, unabhängig, so daß die Sicherheit und die Leistung erhöht wird.
Unterstützung mehrerer Protokolle
MPLS, das auf mehrere verschiedene Netzwerktechnologien angewendet werden kann, ist eine Erweiterung des IP-basierten Internets, so daß ein Upgrade der Router notwendig ist, die MPLS-Features unterstützen sollen. Allerdings können MPLS-Router mit normalen IP-Routern zusammenarbeiten, was die schrittweise Einführung dieser Technologie im Rahmen von Migrationsbemühungen ermöglicht. Während MPLS in reinen IP-Netzen, ATM- und Frame Relay-Netzen eingesetzt werden kann, können wir MPLS auch in heterogenen Umgebungen etablieren. Dieser universelle Charakter von MPLS ist der Hauptgrund für eine Migration solcher Netzwerke, die gemischt operieren und QoS unterstützen müssen.
Der Rest dieses Artikels wird sich mit MPLS in IP-Netzwerken beschäftigen und geht nur kurz auf ein paar Besonderheiten von ATM und Frame Relay ein.
Arbeitsweise von MPLS
Ein MPLS besteht aus einer Reihe von Knoten (Nodes), die als Label Switched Routers (LSR) bezeichnet werden. Sie sind in der Lage, Pakete auf Basis ihres Labels, das ihnen vorangestellt wurde, zu switchen und zu routen. Labels definieren einen Fluß von Paketen zwischen zwei Endpunkten oder, im Fall von Multicasting, zwischen einer Quelle und mehreren Endpunkten. Jedem Fluß, auch als Forwarding Equivalence Class (FEC) bekannt, ist ein spezifischer Pfad durch das Netzwerk bestehend aus LSRs zugeordnet. Aus diesem Grund ist MPLS eine verbindungsorientierte Technologie. Jedem FEC wiederum ist eine "Charakterisierung des Verkehrs" assoziiert, das die QoS-Anforderungen dieser FEC definiert. Die LSRs müssen nun nicht jeden IP-Header inspizieren, um Entscheidungen über das Forwarding zu machen, sondern untersuchen lediglich das Label. Dadurch wird der Routingprozess im Gegensatz zu IP-Routern deutlich vereinfacht.

Funktionsweise von MPLS (Quelle: Cisco)
In Abbildung 1 sehen wir, wie MPLS innerhalb einer Domäne von MPLS-Routern verarbeitet wird. Folgende Schritte werden dabei durchlaufen:
- Bevor das Paket in einer FEC geroutet und zugestellt wird, muß ein Pfad durch das MPLS-Netzwerk und dessen QoS-Parameter festgelegt werden. Die Parameter legen fest, wie viele Resourcen für diesen Pfad abgestellt werden müssen und welche Queuing- und Discarding-Policy (Zwischenspeichern und Verwerfen) an den LSRs für diesen Pfad gilt. Dazu werden zwei Protokolle für den Austausch solcher Informationen verwendet:
- Ein Interior Routing Protocol, wie OSPF, tauscht Informationen über Erreichbarkeiten und Routen aus.
- Labels werden jedem Paket in einer FEC zugeordnet. Da global gültige Labels das Management erschweren würden und die Anzahl verfügbarer Labels damit verringert würde, haben diese Labels nur lokale Bedeutung. Ein Netzbetreiber kann spezifische Routen manuell konfigurieren und entsprechende Labels vergeben. Alternativ gibt es ein Protokoll das eine Route auswählt und die richtigen Werte für die Labels zwischen benachbarten LSRs vergibt. Dazu dient entweder das Label Distribution Protocol (LDP) oder eine erweiterte Version von RSVP.
- Das Paket tritt in die MPLS-Domäne ein, indem sie einen LSR passiert (Ingress LSR), welcher nun die Anforderungen des Pakets an den Netzwerk-Layer untersucht und dessen QoS bestimmt. Der LSR assoziiert dem Packet nun ein Label mit der entsprechenden FEC und damit auch einen LSP, stellt das Label dem Paket voran und leitet es weiter. Falls für diese FEC noch kein LSP eingerichtet wurde, muß er erst mit Hilfe der anderen LSRs etabliert werden.
- Innerhalb des MPLS-Netzwerks passiert mit jedem gelabelten Paket folgendes:
- Das Eingangs-Label wird entfernt und ein passendes Ausgangs-Label wird vorangestellt.
- Das Paket wird zum nächsten LSR auf dem Pfad weitergeleitet.
- Der ausgehende LSR (Egress LSR) streicht das Label, liest den IP-Header aus und leitet das Paket nach IP-Manier weiter.
Aus der Grafik und dem soeben geschilderten Ablauf, lassen sich mehrere Schlüsselelemente von MPLS ableiten:
- Eine MPLS-Domäne besteht aus miteinander verbundenen MPLS-aktivierten Routern. Der Verkehr kann an einem angrenzenden Netzwerk eintreten oder an diesem austreten, wie im oberen linken und rechten Rand der Grafik gezeigt. Dabei spielt es keine Rolle, ob das angrenzende Netzwerk MPLS-aktiv ist oder nicht. Die Ingress und Egress Router werden als Edge Label Switch Router bezeichnet, da sie Ein- und Austrittspunkte der MPLS-Domäne darstellen.
- Die FEC eines Pakets kann von einem oder mehreren Parametern bestimmt werden. Diese legt normalerweise der Netzverwalter fest. Einige mögliche Parameter wären
- Quell- oder Zieladresse (Netzwerk- oder Hostadresse)
- Quell- oder Zielport
- ID des Internet-Protokolls
- Differenziertes Dienstkennzeichen
- IPv6 Flow Label
- Die Weiterleitung (Forwarding) wird mittels einfachen Nachschlagens in der vordefinierten Tabelle in der die Eingangs- sowie Ausgangs-Label eingetragen sind, getätigt. Es gibt keinen Grund, die IP-Adressen des Pakets zu untersuchen, um Entscheidungen für das Routing zu treffen.
- Ein so genanntes Per-Hop Behaviour (PHB) kann an einem LSR für eine FEC definiert werden. Das PHB bestimmt, welche Queuing-Priorität die Pakete dieser FEC haben und welche Discard Policy gilt.
- Pakete, die zwischen den gleichen Endpunkten ausgetauscht werden, können unterschiedlichen FECs angehören und damit auch unterschiedlich gelabelt werden und folgenden möglicherweise verschiedenen Pfaden.

MPLS Paketweiterleitung (Quelle: Cisco)
Abbildung 2 zeigt die Behandlung von MPLS-Labels und wie die Weiterleitung vorgenommen wird. Jeder LSR verwaltet eine Weiterleitungstabelle (Forwarding Table) für jeden LSP den er abwickelt. Wenn ein gelabeltes Paket eintrifft, untersucht der LSR das eingehende Label und ordnet dem Paket einen Port für die Weiterleitung zu. diesem Port ist auch ein ausgehendes Label zugeordnet, das beim Austritt aus dem LSR dem Paket vorangestellt wird. Wie bereits erwähnt haben die Labels, aus Gründen der Skalierung, nur lokale Bedeutung, so daß jedes Paket in jedem LSR vor der Weiterleitung wieder umgelabelt wird. Dieser Vorgang wird für jedes Paket an jedem LSR, außer an den ein- und ausgehenden LSRs, wiederholt.
Label Stacking
Eines der leistungsfähigsten Eigenschaften von MPLS ist Label Stacking. Ein gelabeltes Paket kann nämlich mehrere Labels aufweisen, die in einem Stapel (Stack) nach dem LIFO-Prinzip (last-in first-out) organisiert sind. An jedem LSR kann ein Label auf ein anderes geschoben (Push Operation) und vorhandene Labels wieder entfernt (Pop Operation) werden. Der Vorteil ist, daß mehrere LSP in einem einzigen LSP zusammengefaßt werden können (Aggregation) und einen Teil oder ganze Netzwerke in einem Tunnel durchqueren. Am Anfang des Tunnels ordnet ein LSR das gleiche Label an mehrere Pakete anderer LSPs zu, indem er es einfach den vorhandenen Labels voranstellt. Am Ende des Tunnels wird das Label wieder vom Stapel entfernt und das innere Labele freigelegt. Das entspricht ungefähr der Arbeitsweise von ATM, das allerdings nur eine Ebene stapeln kann (Virtuelle Kanäle innerhalb von Virtuellen Pfaden), MPLS jedoch unterstützt unbegrenztes Stacking.
Dieses Verfahren bringt eine Menge Flexibilität. So könnte ein Unternehmen beispielsweise MPLS-Netzwerke in mehreren Standorten errichten und unzählige LSPs einrichten. Mittels Label Stacking kann das Unternehmen mehrere Datenflüsse seines gesamten Netzwerkverkehrs zusammenfassen, bevor es an einen Access Router eines Netzbetreibers übergeben wird. Die Netzbetreiber können ihrerseits ebenfalls MPLS-Flüsse aggregieren und durch fremde Netze leiten. Somit würde der Verkehr vieler Netzwerke und Anwendungen durch nur wenige LSPs zu den jeweilgen POPs fließen, so daß eine Skalierung des Netzwerkes erheblich erleichtert wird.
Struktur von MPLS-Labels
Ein Label ist ein 32-Bit Feld bestehend aus folgenden Elementen (dargestellt in Abbildung 3):
- Label Value: 20 Bits des Labels mit lokaler Signifikanz
- Exp: 3 Bits reserviert für die Weiterentwicklung der Technologie
- S: 1 für den ältesten Wert im Stack und 0 für alle anderen
- TTL: Time to Live, 8 Bits zur Kodierung eines Hop-Counts oder eines echten TTL-Werts

Struktur von MPLS-Labels (Quelle: Cisco)
TTL-Verwaltung
Das TTL-Feld kennen wir aus dem IP-Header, das ein Hop Count implementiert. In einem einfachen IP-Netzwerk wird das Feld an jedem Router dekrementiert und verworfen, wenn es 0 erreicht. Das wird vor allem zur Vermeidung von Loops und fehlerhaftem Routing getan. Da ein LSR den IP-Header nicht inspiziert ist das TTL-Feld Teil des Labels, so daß die grundlegende TTL-Funktion immernoch zur Verfügung steht. Die Regeln für die Verarbeitung des TTL-Feldes im MPLS-Netzwerk lautet wie folgt:
- Wenn ein IP-Paket an einem LSR in das MPLS-Netzwerk eintritt, wird ein erstes Label dem Stapel hinzugefügt und das TTL-Feld auf den Wert des TTL-Feldes im IP-Header gesetzt. Muß das TTL-Feld dekrementiert werden, geht MPLS davon aus, daß es bereits von IP-Seite geschehen ist. Trifft ein Paket in einem internen LSR ein, so wird das TTL-Feld des jüngsten Stapeleintrags dekrementiert:
- Ist der Wert 0 wird das Paket nicht weitergeleitet. Abhängig vom Wert im Label wird es entweder einfach verworfen oder dem zugrundeliegenden Protokollstapel zur Fehlerbehandlung zugeführt.
- Ist der Wert positiv, wird der Wert erneut in das Label des jüngsten Eintrags des ausgehenden MPLS-Pakets geschrieben und das Paket weitergeleitet. TTL-Werte unterhalb des jüngsten Stackeintrags haben keine Bedeutung für das Routing in diesem LSR.
- Wenn das Feld an einem ausgehenden LSR einer MPLS-Domäne eintrifft, wird der TTL-Eintrag des jüngsten Stackeintrags dekrementiert und das Label vom Stapel genommen, so daß der Label-Stapel keine Elemente mehr enthält:
- Ist der Wert 0 wird das Paket nicht weitergeleitet. Abhängig vom Wert im Label wird es entweder einfach verworfen oder dem zugrundeliegenden Protokollstapel zur Fehlerbehandlung zugeführt.
- Ist der Wert positiv, wird er in das TTL-Feld des IP-Headers übertragen und das IP-Paket wird nach IP-Manier weitergeleitet. Zuvor muß aber die Prüfsumme neu errechnet werden.
Der Label Stack
Der Label Stack wird vor den Data Link Headern aber nach dem Network Layer Headern platziert. Der letzte Eintrag ist aber am nächsten an den darauf folgenden Network Layer Headern und der älteste Eintrag ist nahe den Data Link Headern. Das Label mit dem gesetzten S-Bit sitzt unmittelbar vor dem Network Layer Header. In einem Data Link Frame, beispielsweise dem von PPP, ist der Label Stack genau zwischen dem IP-Header und dem Data Link Header (Abbildung 4a). Bei einem IEEE 802-Frame befindet sich der Label Stack zwischen dem IP Header und dem Logical Link Control Header (Abbildung 4b).

Position von MPLS-Labels in Frames und Zellen (Quelle: Cisco)
Wenn MPLS über einen verbindungsorientierten Netzwerkdienst verwendet wird, ändert sich das Verfahren leicht, wie in Abbildungen 4c und 4d dargestellt. Bei ATM-Zellen, wird der Wert des obersten Labels im Virtual Path/Channel Identifier (VPI/VCI) Feld des Zellenkopfs abgelegt. Das Label selbst bleibt aber an oberster Stelle im Label Stack, der zwischen dem Zellenkopf und dem IP-Header platziert wird. In dem der Labelwert im ATM-Zellenkopf platziert wird, muß auch der ATM-Switch lediglich seinen Header untersuchen und muß nicht mehr zusätzlich die Zelle inspizieren. Auf die gleiche Weise kann der Wert auch im Data Link Connection Identifier (DLCI) Feld eines Frame Relay-Rahmens untergebracht werden. In beiden Fällen ist das TTL-Feld für den Switch nicht sichtbar und wird nicht dekrementiert.
Von FECs, LSPs und Labels
Um ein Verständnis für MPLS zu bekommen, müssen wir die operativen Zusammenhänge zwischen FECs, LSPs und Labels begreifen. Die Spezifikationen zu diesen Themen sind lang und z.T. schwer lesbar. Am Schluß dieses Abschnitts gibt es eine kleine Zusammenfassung.
Mit MPLS wird der gesamte Datenverkehr in FECs eingeteilt. Der Verkehr einer FEC durchläuft eine MPLS-Domäne entlang eines LSPs. Einzelne Pakete in einer FEC werden eindeutig durch das Label mit lokaler Bedeutung identifiziert und dadurch genau dieser FEC zugeordnet. An jedem LSR wird jedes gelabeltes Paket auf Basis seines Labelwertes weitergeleitet, wobei der LSR den eingehenden Labelwert durch einen ausgehenden Labelwert ersetzt.
Das soeben beschriebene Schema setzt einige Annahmen voraus:
- Datenverkehr muß einer FEC zugeordnet sein.
- Ein Routing-Protokoll wird für die Ermittlung der Topologie und der aktuellen Situation in der MPLS-Domäne. Nur so kann eine FEC einem LSP zugeordnet werden. Außerdem muß das Routing-Protokoll in der Lage sein, diese Informationen zusammenzutragen und auszuwerten, um die QoS-Anforderungen der FEC zu genügen.
- Einzelne LSRs müssen den LSP für eine FEC kennen, ein eingehendes Label dem LSP zuweisen und müssen dieses Label an alle LSRs weiterleiten, damit ihm Pakete für eine bestimmte FEC zugestellt werden können.
Die erste Anforderung ist nicht Teil der MPLS-Spezifikationen. Die Zuweisung muß manuell oder über ein spezielles Signalisierungprotokoll vorgenommen werden. Die Anforderungen 2 und 3 sind LSP- und Topologie-spezifisch. Es gibt vier LSP-Topologien:
- Ein Eingangs- (Ingress) und ein Ausgangs-LSR: In diesem Fall wird ein einziger Pfad durch die MPLS-Domäne benötigt.
- Mehrere Eingangs- und ein Ausgangs-LSRs: Wenn Verkehr, der einer einzigen FEC zugeteilt ist, an verschiedenen Stellen in die MPLS-Domäne eintreten kann, werden mehrere Pfade durch die MPLS-Domäne benötigt.
- Mehrere Eingangs-LSRs für Unicast Traffic: RFC 3031 sagt, daß meist ein Paket einer FEC auf Basis seiner Layer-3-Zieladresse zugeteilt wird. Wenn nicht, ist es möglich, die FEC Pfade zu mehreren einzelnen Egress-LSRs benötigt.
- Multicasting: habe ich momentan keine Informationen.
Auswahl der Routen
Bei der Auswahl der Route geht es vielmehr um die Auswahl eines LSPs für eine bestimmte FEC. Die MPLS-Architektur unterstützt hier zwei Optionen: Hop-by-Hop-Routing und explizites Routing.
Beim Hop-by-Hop-Routing wählt jeder LSR unabhängig von anderen den nächsten Hop für jede FEC aus. In diesem Fall kann Gebrauch von ordinären Routing-Protokollen wie OSPF gemacht werden. Diese Option unterstützt einige Vorteile von MPLS wie beispielsweise schnelles Switching von Paketen auf Basis ihrer Label, die Nutzung von Label Stacks und differenzierte Behandlung von Paketen unterschiedlicher FECs der selben Route. Jedoch aufgrund der geringen Unterstützung von Leistungsmetriken in gewöhnlichen Routing-Protokollen, ist Hop-by-Hop-Routing nicht für Traffic Engineering geeignet oder Policy Routing geeignet.
Beim expliziten Routing definiert ein einziger LSR, meist der Ingress-LSR oder Egress-LSR, einige oder alle LSRs auf dem LSP für eine bestimmte FEC. Das strikte explizite Routing sieht vor, das der jeweilige LSR alle LSRs auf dem LSP definiert. Das lockere explizite Routing dagegen sieht vor, das der jeweilige LSR nur einige LSRs auf dem LSP definiert. Diese Form des Routings unterstützt alle Merkmale von MPLS inklusive Traffice Engineering und Policy Routing.
Explizite Routen können über eine Konfiguration ausgewählt werden, was bedeutet, das sie bereits im Vorfeld definiert wurden. Dynamisches explizites Routing würde am besten für Traffice Engineering passen. Dazu muß der LSR, welcher den LSP aufsetzt, die Topologie der MPLS-Domäne und auch QoS-bezogene Informationen über die Domäne kennen.
Ein Routing-Algorighmus, der Traffic Requirements der unterschiedlichen Datenflüsse und die an den Hops verfügbaren Resourcen berücksichtigt wird als Constraint-based Rouring Algorithm bezeichnet. Dieser Algorithmus weiß jederzeit genau über aktuelle Auslastungen, Kapazitäten und Engpässe bescheid. Traditionelle Routing-Protokolle, wie etwa OSPF und das Border Gateway Protocol (BGP), verfügen nicht über ausreichende Metriken in ihren Algorithmen um als Constraint-based qualifiziert zu werden.
Problematisch ist auch, daß immer nur ein Kostenparameter (Cost Metric), wie etwa Anzahl der Hops oder die Verzögerung, einbezogen werden kann. Für MPLS müßten entweder existierende Routing-Protokolle erweitert werden oder ein neues geschaffen werden. Beispiele für Metriken in diesem Zusammenhang wären: Maximale Datenrate, Aktuelle kapazitive Reserven, Paketverlustrate oder die Signalausbreitungsverzögerung (Link Propagation Delay).
Vergabe von MPLS-Labels
Die Auswahl der Route besteht aus der Definition eines LSPs für eine FEC. Eine separate Funktion ist das eigentliche Aufsetzen des Pfades. Dazu muß jeder LSR folgendes tun:
- Weise dem LSP ein Label zu, daß zur Identifikation eingehender Pakete der entsprechenden FEC dient.
- Teile allen potentiellen Upstream-Knoten (jene Knoten, die Pakete dieser FEC dem LSR zustellen) mit, welches Label assoziiert wurde damit diese Knoten die ausgehenden Pakete entsprechend labeln können.
- Lerne den nächsten Hop des LSPs kennen und lerne, welche Label die Downstream-Knoten (jene Knoten am nächsten Hop) der FEC zugeordnet hat, so daß der LSR eingehende Labels einem ausgehenden Label zuordnen kann.
Der erste Teil in der Schrittfolge ist eine lokale Funktion. Schritte zwei und drei sind entweder manuell vorzunehmen oder werden durch eine Form des Label Distribution Protocols erledigt. Das Ziel eines LDPs ist, LSRs zu ermöglichen andere LSRs über die Label/FEC-Bindung informieren. Zusätzlich erlaubt es zwei LSRs, die MPLS-Fähigkeiten voneinander zu lernen. Die MPLS-Architektur ist so konzipiert, daß mehrere Distributionsprotokolle zum Einsatz kommen können, beispielsweise durch Erweiterung von RSVP oder BGP, wie in RFC 3031 beschrieben.
Die Beziehung zwischen Labelvergabe und Routenauswahl ist komplex. Bei Hop-by-Hop-Routing, wird kein besonderer Wert auf Traffic Engineering oder Policy Routing gelegt. In diesem Fall genügt ein ordinäres Routing-Protokoll, wie OSPF, zu Erkennung des nächsten Hops eines LSRs. Hier kann ein relativ einfaches LDP zum Einsatz kommen, das ein Standard-Routing-Protokoll für die Routenermittlung verwendet. Mit expliziter Routenauswahl wird ein ausgefeilterer Routing-Algorithmus benötigt; einer der nicht nur eine Metric für den Entwurf einer Route heranzieht. In diesem Fall könnte ein LDP Gebrauch von einem spezialisierten Routing-Protokoll machen, wie beispielsweise ein erweitertes OSPF. Alternativ kann das LDP auch alle notwendigen Algorithmen selbst aufweisen, so daß kein externes Protokoll benötigt wird.
graegerts