Multi-Protocol Label Switching Eine Einführung in MPLS Seminar: Mobile Kommunikationstechnologien Autor: Uwe Seiler Datum: 5.02.2003 Betreuer: Klaus Heck MPLS - Übersicht Einführung in MPLS: Begriffserläuterung Einordnung in das OSI-Referenzmodell Entwicklung von MPLS Allgemeines zu MPLS: Grundkonzept Vergleich mit Hop-by-Hop-Routing MPLS im Detail: Die Forwardingkomponente: Label Forwarding Equivalence Class (FEC) Label Swapping Die Kontrollkomponente: Label Switched Path (LSP) Labelverteilung Label Distribution Protocol (LDP) Traffic Engineering mit MPLS: Allgemeines zum Traffic Engineering Constraint-based Routing LDP Zusammenfassung 2 MPLS - Einführung Was ist MPLS überhaupt? Packet Forwarding Cell/Ciruit Switching ATM IP Frame Relay Flexibility of Hopby-Hop Routing MPLS „Best of both worlds“ Quality of Service + Traffic Engineering Bei MPLS handelt es sich um ein verbindungsorientiertes Switching auf der Basis von IP-Routing und zusätzlichen Kontrollprotokollen. 3 MPLS - Unterstützte Protokolle und Technologien Welche Protokolle und Technologien werden unterstützt? IPv6 IPv4 IPX Apple Talk MPLS Layer 3: Network Layer Protocols Layer 2,5: MPLS Point-topoint Frame Relay ATM FDDI Ethernet Layer 2: Link Layer Protocols Warum dann schon wieder eine neue Technologie? IP ist heutzutage das dominante Protokoll im Internet. Im Internet am weitesten verbreitet: Best Effort Services IP bietet keine Unterstützung von Quality of Service und Traffic Engineering. MPLS verspricht dagegen: Die Unterstützung von Traffic Engineering für die Provider Die Realisierung von end-to-end Quality of Service Die Möglichkeit der Skalierung in großen Netzwerken Die Bereitstellung von höherer Performance bei geringeren Kosten 4 MPLS – Geschichte und Standardisierung Die Entwicklung von MPLS Hervorgegangen aus unterschiedlichen proprietären Ansätzen: Aggregate Route-Based IP Switching Cell Switch Routing Tag Switching IP Navigator IP Switching (Ipsilon) Standardisierung durch die Internet Engineering Task Force. Erstes Framework erschien bereits im März 1997. Mittlerweile sind 12 RFCs und 25 Drafts zu MLPS erschienen. Die Hauptarchitektur von MPLS und die Standards des Signalisierungsprotokolls LDP sind verfügbar, aber die Entwicklung geht natürlich weiter… MPLS ist ein Proposed Standard der IETF 5 MPLS – Das Konzept „Route at the edge, switch in the core.“ Versehe Pakete an den Netzwerkgrenzen mit Labels. Routing Label Edge Router (LER) Analysiert den ankommenden IP-Verkehr und teilt ihn in Klassen (FEC) ein. Erfragt und verteilt Labels an den Netzwerkgrenzen. Führt am Ausgang des Core Networks Routing durch. Ingress Router Datenfluss MPLS Core Network Label Switch Router (LSR) Tauscht Labels mit den benachbarten LSR aus Führt Forwarding im Kern des MPLS-Netzwerkes aus. Routing Switching Egress Router 6 MPLS vs. Routing Ist Hop-by-Hop Routing etwa veraltet? Traditionelle IP Router haben zeitintensive Aufgaben: Alle Informationen stecken im Paket: IP-Paket Header Router Daten Routing Table Auslesen der Zieladresse Durchführung eines Longest Prefix Matchings zur Bestimmung des Next Hops Umgang mit Headern variabler Länge 000111… Port 1, gw 10.2.3.1 001010… Port 4, gw 62.1.7.5 011101… Port 7, gw 10.1.1.1 Bei Beginn der Entwicklung von MPLS waren Layer-3-Router noch langsam und teuer. Mittlerweile ist Layer-3-Switching kostengünstig und schnell in der Hardware verfügbar: Performance ist nicht mehr das Hauptargument für MPLS MPLS bietet aber andere Funktionen: Non destination routing Explicit (source) routing Traffic Engineering Leichte Integration von Virtual Private Networks (VPN) MPLS soll Layer3-Routing nicht ersetzen! 7 Trennung von Kontroll- und Forwardingkomponente bei MPLS MPLS Switching besteht aus zwei Hauptkomponenten, die bei MPLS vollkommen getrennt voneinander sind: Control Component: Dient dem Austausch von Kontrollinformationen mit anderen Routern. Sammelt Informationen über die Netzwerktopologie. Aufbau und Aufrechterhaltung von Forwarding Tables. Notwendigkeit eines Signalisierungsprotokolls Forwarding Component: Führt eine Routingentscheidung anhand der Forwarding Table durch. Leitet die Pakete routerintern vom Input Interface zum Output Interface weiter. 8 MPLS – Definition und Aufbau eines Labels Was ist ein Label? Ein Label ist ein kurzes Feld fester Größe, das keine interne Struktur aufweist. Ein Label assoziiert immer eine Forwarding Equivalence Class (FEC). Ein Label ist zwischen zwei Label Switch Routern immer eindeutig. Aufbau und Integration eines Labels: MPLS Frame Layer-2-Header MPLS Shim Header Layer-3-Header Data Labelstack Label 1 Label 2 Label n Label Bits (20 Bits) Label Bits (20 Bits) Experimental (3Bits) Experimental (3Bits) Stack (1 Bit) Stack (1 Bit) TTL (8 Bit) TTL (8 Bit) Label Bits (20 Bits) Experimental Stack (3Bits) (1 Bit) TTL (8 Bit) 9 MPLS – Forwarding Equivalence Class 1 Forwarding Equivalence Class (FEC) Definition: Eine FEC ist die Menge aller Layer-3 Paketen, die in der gleichen Weise weitergeleitet werden, zum Beispiel über den gleichen Pfad. Eine FEC ist somit eine Menge von Layer-3 Paketen, die auf das gleiche Label gemappt werden können. Destination = 10.x.x.x Lokale Information Bandwidth = 1000 KBit/s des LERs Priorisation = High FEC 1 IP Packet IP Packet FEC 2 IP Packet IP Packet IP Packet IP Packet Signalling Label Edge Router (LER) Lokale Speicherung und Verknüpfung mit dem Wert des Labels Label Switch Router (LSR) Classify traffic at the edge Assign packets to a given FEC 10 MPLS – Forwarding Equivalence Class 2 Forwarding Equivalence Class (Fortsetzung) Silver Service 64 Kbps Gold Service 300 Kbps Normalerweise Bündelung von mehreren Paketen aus verschiedenen Quellen und zu unterschiedlichen Zielen Aber auch ein Splitting des Verkehrs von einer Quelle zu einem Ziel ist aus Gründen des Quality of Service möglich. Aggregation des Verkehrs und Möglichkeit zur Skalierung des Verkehrs 11 MPLS – Forwarding Table und Algorithmus Forwarding im Detail Forwarding Algorithm: Label Swapping Weiterleitung eines Pakets ohne Label: Ermittlung der zugehörigen FEC durch Analyse des Layer-3-Headers, danach Bestimmung des zugehörigen Labels mittels der Tabelle FTN und Weiterleitung gemäß der Tabelle NHLFE. Weiterleitung eines Pakets mit Label: Ermittlung des NHLFE mittels der Tabelle ILM und anschließend Weiterleitung gemäß den entsprechenden Eintragungen in der Tabelle NHLFE. Weiterleitung am Empfänger eines Pakets: Der LSR stellt anhand der Tabelle NHLFE fest, dass er Empfänger des Pakets ist, entfernt das Label daraufhin vom Labelstack und reicht das Paket an Schicht 3 zur Weiterverarbeitung Next Hop Label Forwarding Entry (NHLFE) Label Information Database (LIB) MPLS Router NHLFE Next Hop 100 234 300 LSR B LSR D LSR C Label Outbound Outbound Operation Label Port Push 23 3 Pop Replace 50 1 FEC-to-NHLFE Map (FTN) FEC NHLFE A 100 B 234 C 300 Incoming Label Map (ILM) Label NHLFE 23 100 44 234 50 300 Verwendung eines einzigen Algorithmus! (Herkömmliches Routing: 3) 12 MPLS – Label Switched Path Label Switched Path (LSP) Definition: Ein Label Switched Path ist ein virtueller Pfad, der mehrere Label Switch Router miteinander verbindet und entlang dem ein Paket weitergeleitet wird. Dabei hat jeder Label Switch Router folgende Aufgaben: Verhandlung mit den benachbarten Label Switch Routern über die Label für jede FEC entlang des LSP Aufbau der Label Information Base (LIB) zum Mapping der Label zu den zugehörigen FECs Neuverhandlung der Label, falls sich die Topologie ändert oder ein oder mehrere Label verworfen werden Zur Einrichtung eines LSP müssen die Labelbindings zwischen benachbarten MPLS Routern mit Hilfe eines Signalisierungsprotokolls ausgetauscht werden. 13 MPLS – Möglichkeiten der Labelverteilung Labelverteilung Downstream Label Allocation (Standard): Datenfluss D: 123 Upstream (A) Downstream (B) Upstream Label Allocation: C: 222 Datenfluss Upstream (A) Downstream (B) Downstream-on-Demand: Request D: 123 Upstream (A) Downstream (B) Unsolicited Downstream: Datenfluss D: 123 Upstream (A) Datenfluss D: 123 Downstream (B) 14 MPLS – Allgemeines zu Signalisierungsprotokollen Anforderungen an ein Signalisierungsprotokoll: Robustheit Skalierbarkeit Umsetzung von speziellen Anforderungen des Quality of Service Auf- und Abbau von Label Switched Paths Setzen von Prioritäten für einzelne Label Switched Paths Möglichkeiten zum Setzen von alternative Routen sowie zum Rerouting Signalisierungsprotokolle: Benutzen herkömmliches IP-Routing zur Kommunikation zwischen LSRs und zum Transport von Label Bindings Verfügbare Protokolle und deren Eigenschaften: Protocol Name Routing Traffic Engineering LDP Label Distribution Protocol Implicit NO BGP Border Gateway Protocol Implicit NO IS-IS Intermediate System-to-Intermediate System Implicit NO CR-LDP Constraint-based Routing LDP Explicit YES RSVP-TE Resource Reservation Protocol – Traffic Engineering Explicit YES OSPF-TE Open Shortest Path First – Traffic Engineering Explicit YES 15 MPLS – Überblick über das Label Distribution Protocol Label Distribution Protocol (LDP) Aufbau eines LSP 10.1.x.x Time 10.2.x.x 1.Discovery Messages HELLO HELLO TCP Connection open to 10.2.x.x 2.Session Messages TCP connect Initialization Initialization Label Request 3.Advertisement Messages Label Mapping + 4.Notification Messages 16 MPLS – Charakteristiken des Label Distribution Protokolls Label Distribution Protocol: Hauptmerkmale LSR Neighbor Discovery Der Discovery Mechanismus von LDP läuft über UDP. In periodischen Zeitabständen werden HELLO Messages an alle LSR im gleichen Subnetz geschickt, so dass ein LSR mit der Zeit alle Nachbarn kennt. Danach kann eine LDP Session aufgebaut werden. Reliable Transport Um einen zuverlässigen Transport sicherzustellen, werden LDP Messages über TCP geschickt. Extensible Messages Das LDP ist so designt, dass es einfach erweiterbar ist. Codierung der Messages als eine Sammlung von TLV (type, length, value) Objekten LDP Messages Die am meisten benutzten Messages sind: INITIALIZATION KEEP ALIVE LABEL MAPPING, LABEL WITHDRAWAL, LABEL RELEASE, LABEL REQUEST, LABEL REQUEST ABORT 17 MPLS – Traffic Engineering Traffic Engineering Zielbasiertes Routing tendiert zur Konzentration des Verkehrs: ? Ziele des Traffic Engineerings: Reduktion des Verkehrs auf stark benutzten Pfad und Verteilung dieses Verkehrs auf weniger benutzte Pfade Aufbau eines effizienten und zuverlässigen Netzwerkes Optimierung der Benutzung von Netzwerkressourcen und der Performance des Verkehrs (z.B. Minimierung der Paketverluste und der Verzögerung) Traffic Engineering Anforderungen: Die Netzwerktopologie kann sich ändern. Ressourcen können unterschiedlich zugeteilt werden. Komponenten können ausfallen und somit unerreichbar werden. Diese Fähigkeit wird als Reoptimization bezeichnet. 18 MPLS – CR-LDP Constraint-based Routing LDP (CR-LDP) Arbeitet auf der Ebene von Traffic Trunks: Zusammenfassung von unterschiedlichen TCP- bzw. UDP-Strömen, die den gleichen Pfad sowie dieselbe Class of Service benutzen. Benutzt dasselbe Protokollformat wie LDP Messages mit zusätzlichen (optionalen) TLVs Teilt sich die TCP-Verbindung mit LDP Definition 7 verschiedener Traffic Parameter: Peak Data Rate, Peak Burst Size, Committed Data Rate, Committed Burst Size, Excess Burst Size, Frequency, Weight Erlaubt Traffic Engineering durch die Reservierung von Netzwerkressourcen Explicit Route mit CR-LDP: Berechnung der expliziten Route an der Netzwerkgrenze Jeder LSR muss der Route folgen Ermöglicht durch die Mitgabe einer Liste von Knoten in einer LABEL REQUEST Message Ermöglicht Routing auf der Basis von Quality of Service 19 MPLS - Fazit Zusammenfassung: MPLS bietet viele Chancen: MPLS wird momentan stark von der IETF vorangetrieben MPLS ermöglicht den Providern die Einführung von Quality of Service Traffic Engineering ermöglicht eine bessere Auslastung der Netze Einfache Unterstützung von Virtual Private Networks (VPN) Integration von ATM und IP Lässt sich relativ einfach in bestehende Netze integrieren MPLS birgt aber auch Risiken: MPLS ist im Bereich der Signalisierung noch nicht fertig spezifiziert Interoperabilität zwischen verschiedenen Herstellern kann momentan nicht garantiert werden Anhebung der Komplexität von IP-Netzen um ein Vielfaches MPLS wird vor allem beim Neuaufbau von Netzwerken verwendet (China Telecom), aber auch in bestehende Netze wird MPLS integriert (Arcor). 20 MPLS – Literaturverzeichnis Literaturverzeichnis Wichtige Request for Comments (z.B. unter www.rfc-editor.org): RFC 3031: MPLS Architecture RFC 3032: MPLS Label Stack Encoding RFC 3034: Use of Label Switching on Frame Relay Network Specifications RFC 3035: MPLS using LDP and ATM VC Switching RFC 3036: LDP Specification RFC 3037: LDP Applicability RFC 3038: VCID Notification over ATM Link for LDP RFC 2547: BGP/MPLS VPNs RFC 2702: Requirements for Traffic Engineering over MPLS Bruce Davie, Yakov Rekhter: MPLS – Technology and Applications, Morgan Kaufmann, 2000 MPLS Resource Center: www.mplsrc.com MPLS Charter: www.ietf.org/html.charters/mpls-charter.html Unofficial MPLS List: www.cellstream.com/MPLS_List.htm 21