MPLS (**Multiprotocol Label Switching**) ist eine sichere und effiziente [[overlay_networking|Overlay Networking]] Methode, um sicherzustellen, dass Hochleistungs-Telekommunikationsnetzwerke Daten von einem Punkt zum anderen übertragen. Diese Technologie ist auf die Rationalisierung von Datenübertragungen zwischen zwei Knoten spezialisiert, wobei kurze Pfadkennzeichnungen lange Netzwerkadressen ersetzen. Diese skalierbare Netzwerklösung kann Daten über eine Vielzahl von Medien weltweit übertragen und ist eine der beliebtesten Kommunikationslösungen für Unternehmen.
MPLS ermöglicht effizientes und deterministisches Routing im [[WAN]] durch die Verwendung von Labels, unabhängig von der Anzahl der dazwischenliegenden Router. Die Customer Edge Router sind logische Nachbarn und tauschen Routen aus.
Um MPLS zu konfigurieren muss [[CEF]] aktiv sein!
Während es sich bei MPLS um einen "fully managed" Service handelt, erfolgt bei [[VPLS]] das [[router|Routing]] auf [[osi#vermittlungsschicht|Layer 3]] im Eigenbetrieb. VPLS ist außerdem in der Lage, NON-IP Traffic zu transportieren. Und üblicherweise die passendere Lösung zur Anbindung von Standorten mit großen Bandbreiten. Siehe [[https://www.youtube.com/watch?v=aWQEScPv3DA|MPLS vs VPLS]].
=====Funktionsweise=====
MPLS funktioniert, indem es Labels zu jedem Datenpaket hinzufügt, wenn es das Client-Netzwerk verlässt. Diese Labels geben einen Weg vor, den die Datenpakete über das Netzwerk nehmen. Dies macht es einfach, den Datenverkehr im Netzwerk vorherzusagen und weiterzuleiten. Ein Label in diesem Zusammenhang ist ein 32 Bit Header (Shim header) der zwischen [[osi#sicherungsschicht|Layer2]] und [[osi#vermittlungsschicht|Layer3]] des [[osi|OSI Modelles]] injiziert wird - ähnlich wie bei [[vlan|VLANs]]. Deshalb spricht man in diesem Zusammenhang auch von Layer 2.5.
MPLS redistributed keine [[router|Routen]] sondern Labels welche Routen repräsentieren.
Routen können mit Hilfe von [[rsvp|RSVP]] (Resource reservation protocol) vorreserviert werden.
MPLS kann ohne umfangreiche Konfigurationen weitere Standorte hinzufügen. MPLS ist auch IP-agnostisch, da es mit Ihrem aktuellen IP-Schemata funktioniert; MPLS führt einfach eine Optimierung der Implementierung dieser IPs durch.
MPLS über VPN fügt eine zusätzliche Sicherheitsebene hinzu, da MPLS keine eingebauten Sicherheitsfunktionen hat.
=====Labels=====
Grundsätzlich gibt es bei MPLS **zwei verschiedene Möglichkeiten, ein Paket zu labeln**. Die eine, zum Beispiel bei IP (Layer 3), sieht einen sogenannten **MPLS Shim Header vor, der zwischen dem Layer 2 Header und dem Layer 3 Header eingeschoben wird**. Dieser Header wird jedoch meist **MPLS Label Stack (Entry)** genannt. Bei verbindungsorientierten Netzen hingegen, wie ATM oder Frame Relay, kann das **Label in den Layer 2 Header mit eingefügt** werden; es existiert dann kein gesonderter MPLS Label Stack Entry.
Labels können verschachtelt werden
Der (Layer 3) Shim Header besteht aus 32 Bit und wird zwischen [[osi#sicherungsschicht|Layer2]] und [[osi#transportschicht|Layer3]] injiziert.
{{mpls_label_stack.png}}
^Feld^Beschreibung^
|Label|Das Feld enthält den tatsächlichen Wert für das Etikett. Dies gibt Auskunft über das Protokoll in der Vermittlungsschicht und weitere Informationen, die zum Weiterleiten des Pakets benötigt werden.|
|Class of Service (CoS)|Die Einstellung dieses Felds beeinflusst die Planungs- und/oder Verwerfungsalgorithmen, die auf das Paket angewendet werden, wenn es durch das Netzwerk übertragen wird.|
|S|Unten im Stapel. Dieses Bit wird für den letzten Eintrag im Etikettenstapel auf eins und für alle anderen Etikettenstapeleinträge auf null gesetzt.|
|Time to Live (TTL)|Dieses 8-Bit-Feld wird verwendet, um einen Time-to-Live-Wert zu codieren.|
=====Dienste=====
^Dienst^Beschreibung^
|Traffic Engineering|Ist die gezielte Steuerung der Wegwahl für den Datenverkehr eines Netzes. Diese Anwendung ermöglicht zum Beispiel einem Netzbetreiber, seinen Kunden gezielt besonders breitbandige und verzögerungsarme Datenwege anzubieten. Zur Bereitstellung von Ressourcen für optimierte Wege durch ein Netz kann beispielsweise RSVP-TE zum Einsatz kommen.|
|Layer-2-VPN|Virtuelle Private Netze (VPNs) auf der OSI-Schicht 2, mit Punkt-zu-Punkt-Verbindungen. Diese ermöglichen es, ATM-Verbindungen (VPI/VCI), Ethernet-VLANs oder Frame-Relay-Pfade (VCs=Virtual Circuits) unterschiedlicher Netze direkt über ein IP-MPLS-Netz miteinander zu verbinden. Es wird dem Kunden am Übergabepunkt ein Anschluss auf Schicht 2 des OSI-Modells übergeben. Ein Anwendungsbeispiel wäre ein Internetdienstanbieter, der DSL-Zugänge in Deutschland anbietet, aber keine eigene, landesweite, Infrastruktur besitzt, um seine ATM-basierten DSLAMs (Digital Subscriber Line Access Multiplexer) zu einem zentralen BRAS zu verbinden. Hierzu nutzt er dann einen anderen Transport-Provider mit IP-MPLS-Infrastruktur, der die ATM-VPIs/VCIs transparent zum zentralen BRAS-Standort führt. Die DSLAMs und das BRAS-System bekommen vom Transport-Provider eine ATM-Schnittstelle zur Verfügung gestellt, obwohl dessen Infrastruktur rein IP-basiert ist. Man spricht hier auch von Pseudo-Wire-Emulation (PWE3 Circuits). Es werden also Leitungen/Pfade emuliert. Die Ingress-/Egress-Router bezeichnet man in diesem Fall als Label Edge Router (LER), die Router auf dem Pfad des LSPs als Label Switch Router (LSR). Die LSPs werden in der Praxis mit einem separaten Protokoll (z. B. LDP oder L2TPv3) zwischen den LERs automatisch signalisiert. Es besteht aber auch die Möglichkeit die LSPs manuell zu konfigurieren. Ein Layer-2-VPN stellt sich wie ein virtueller ATM-/Frame-Relay-/Ethernet-Switch mit Punkt-zu-Punkt-Verbindungen dar.|
|Virtual Private LAN Service ([[VPLS]])|Dies ist eine Variante der Layer-2-VPNs mit Fokussierung auf Ethernet-basierte Infrastrukturen, also Punkt-zu-Mehrpunkt-Verbindungen, was dem Broadcast-Verhalten von Ethernet Rechnung trägt. Als Signalisierungsprotokolle kommt überwiegend LDP, aber auch BGP zum Einsatz. Am Übergabepunkt bekommt der Kunde einen gebridgten LAN-Port zur Verfügung gestellt. Eine VPLS-Instanz stellt sich wie ein virtueller LAN-Switch dar.|
|Layer-3-VPNs|Virtuelle Private Netze (VPNs) auf der OSI-Schicht 3. Diese ermöglichen es, komplette geroutete Netz-Infrastrukturen von Kunden transparent über ein Provider-MPLS-Transportnetz abzubilden. Es wird dem Kunden am Übergabepunkt ein Anschluss auf Schicht-3 des OSI-Modells übergeben, also ein gerouteter Anschluss mit statischer Route oder einem IGP. Weitere Details hierzu finden sich zum Beispiel im RFC 4364. Die LSPs werden in der Praxis mittels LDP signalisiert. Ein Layer-3-VPN stellt sich wie ein virtueller IP-Router dar (was aber nicht mit den proprietären „Virtuellen-Router“-Konzepten einiger Hersteller zu verwechseln ist).|
|G-MPLS (Generalized MPLS)|Es erweitert den Wirkungsbereich von MPLS hin zur optischen Übertragungs-Infrastruktur. Dieser Ansatz soll die automatische Signalisierung optischer Pfade (also zum Beispiel einzelne Wellenlängen einer WDM/DWDM Schnittstelle, SDH-Pfade oder eine komplette Schnittstelle) beim Aufbau eines LSPs miteinbeziehen. Die Signalisierung der Topologie erweitert also ihren Wirkungskreis weg von der IP-Transportschicht innerhalb eines AS hin zur darunter liegenden Infrastruktur-Transportschicht. Standardisierungsansätze für die Architektur, das funktionale Modell und Anforderungen hierzu finden sich unter den Suchbegriffen ASON/ASTN (Automatic Switched Optical Network /Automatic Switched Transport Network).|
=====Wording=====
* PE - Provider edge
* CE - Customer edge
* LSR - Label switched router (innerhalb der Provider cloud)
* ELSR - Egress Label Switching Router (innerhalb der Provider cloud aber am ende zur CE)
* PHP - Penultimate Hop Popping - **der vorletzte Router auf Provider-Seite** nimmt das Label raus weil er durch IGP die Route zum Edge router sowieso kennt und das Label nicht mehr benötigt wird.
* [[ldp|LDP]] - Label Distribution protocol
* RD - Route distinguisher
* VRF - Virtual routing and forwarding
* MPBGP - Multi protocol [[bgp|BGP]]
=====MPLS Lab=====
{{mpls_lab.png}}
hostname R1
int gi1
ip add 192.1.12.1 255.255.255.0
no shut
int gi2
ip add 192.1.23.1 255.255.255.0
no shut
int lo0
ip addr 1.1.1.1 255.255.255.0
no shut
router eigrp 100
net 192.1.12.0
net 192.1.23.0
net 1.0.0.0
mpls ldp router-id lo0
int gi1
mpls ip
int gi2
mpls ip
hostname R2
int gi1
ip add 192.1.12.2 255.255.255.0
no shut
int gi2
ip add 192.1.13.1 255.255.255.0
no shut
int lo0
ip addr 2.2.2.2 255.255.255.0
no shut
router eigrp 100
net 192.1.12.0
net 192.1.13.0
net 2.0.0.0
mpls ldp router-id lo0
int gi1
mpls ip
int gi2
mpls ip
hostname R3
int gi1
ip add 192.1.13.2 255.255.255.0
no shut
int gi2
ip addr 192.1.23.2 255.255.255.0
no shut
int lo0
ip addr 3.3.3.3 255.255.255.0
no shut
router eigrp 100
net 192.1.23.0
net 192.1.13.0
net 3.0.0.0
mpls ldp router-id lo0
int gi1
mpls ip
int gi2
mpls ip
show mpls interface
show mpls ldp neighbor
show mpls forwarding
show mpls ldp discovery
show mpls ldp bindings
=====MP-BGP Lab=====
{{mp-bgp_lab_gns3.png}}
[[OSPF]] Core
!R1
int lo0
ip address 1.1.1.1 255.255.255.255
ip ospf 1 area 0
no shut
int fa0/0
ip address 10.0.1.1 255.255.255.0
ip ospf 1 area 0
no shut
int fa1/0
ip addr 10.0.3.1 255.255.255.0
ip ospf 1 area 0
no shut
!R2
int lo0
ip address 2.2.2.2 255.255.255.255
ip ospf 1 area 0
no shut
int fa0/0
ip address 10.0.1.2 255.255.255.0
ip ospf 1 area 0
no shut
int fa1/0
ip address 10.0.2.1 255.255.255.0
ip ospf 1 area 0
no shut
!R3
int lo0
ip address 3.3.3.3 255.255.255.255
ip ospf 1 area 0
no shut
int fa0/0
ip address 10.0.3.2 255.255.255.0
ip ospf 1 area 0
no shut
int fa1/0
ip address 10.0.2.2 255.255.255.0
ip ospf 1 area 0
no shut
MPLS aktivieren und LDP auf allen MPLS Interfaces. Es gibt auch Autoconfig.
!R1 - R3
mpls ldp router-id lo0
int fa0/0
mpls ip
int fa1/0
mpls ip
MP-BGP zwischen R1 und R3. Siehe [[BGP]], [[VPNv4]].
!R1
router bgp 1
neighbor 3.3.3.3 remote-as 1
neighbor 3.3.3.3 update-source lo0
no auto-summary
address-family vpnv4
neighbor 3.3.3.3 activate
!R3
router bgp 1
neighbor 1.1.1.1 remote-as 1
neighbor 1.1.1.1 update-source lo0
no auto-summary
address-family vpnv4
neighbor 1.1.1.1 activate
Customer Edges mit OSPF 2 und Provider Edges mit VRF RED und OSPF 2
!R4
int lo0
ip address 4.4.4.4 255.255.255.255
ip ospf 2 area 2
int fa0/0
ip address 192.168.1.4 255.255.255.0
ip ospf 2 area 2
no shut
!R1
ip vrf RED
rd 4:4
route-target both 4:4
int fa1/1
ip vrf forwarding RED
ip addr 192.168.1.1 255.255.255.0
no shut
ip ospf 2 area 2
!R5
int lo0
ip address 5.5.5.5 255.255.255.255
ip ospf 2 area 2
int fa0/0
ip address 192.168.2.6 255.255.255.0
no shut
ip ospf 2 area 2
!R3
ip vrf RED
rd 4:4
route-target both 4:4
int fa1/1
ip vrf forwarding RED
ip address 192.168.2.1 255.255.255.0
no shut
ip ospf 2 area 2
Redistribute OSPF 2 into BGP 1 on R1 and R3
!R1
router bgp 1
address-family ipv4 vrf RED
redistribute ospf 2
!R3
router bgp 1
address-family ipv4 vrf RED
redistribute ospf 2
Redistribute BGP 1 Subnets to OSPF 2 on R1 and R3. Siehe [[route-redistribution|Route Redistribution]].
!R1
router ospf 2
redistribute bgp 1 subnets
!R3
router ospf 2
redistribute bgp 1 subnets
{{mp-bgp_lab_schema_gns3.png}}
=====Links=====
* [[https://www.mpcservice.com/mpls/was-ist-mpls/|Was ist MPLS]]
* [[https://www.youtube.com/watch?v=E5Ud1m9h0yc|CBTNuggets Overview]]
* [[https://www.youtube.com/watch?v=662iDLZDepQ|MPLS L3 and L2 VPNs (Youtube)]]
* [[https://www.rogerperkin.co.uk/ccie/mpls/cisco-mpls-tutorial/|MPLS configuration step by step]]
* [[https://www.youtube.com/watch?v=9WUjfUVBbIA|Kevin Wallace - Configuring an MPLS Network from Scratch]]
* [[https://www.youtube.com/watch?v=ln4pFoAjxx0|INE Live Webinar: L3VPN with PE-CE as BGP]]
* [[https://www.youtube.com/watch?v=s77xYL2ccHU|MPLS Layer 3 VPN Konfiguration]]
* [[https://www.youtube.com/watch?v=MEWIdO40U54|MPLS L3 VPNs in a Nutshell]]
* [[https://www.youtube.com/watch?v=dMJ6TTWdkk0|113 IPExpert MPLS L3VPN Control and Data Planes]]
* [[https://www.youtube.com/watch?v=sM1MwjAUbiY|MPLS Building L3VPN Network]]
* [[https://www.youtube.com/watch?v=pia2WceaevQ|Configure Cisco MPLS L3 VPN]]