Multiprotocol Label Switching

Multiprotocol Label Switching (MPLS) är en teknik att transportera IP-paket med hjälp av switching-teknik till rätt destination baserat på IP-paketets destinationsfält. Tekniken, som främst används i operatörers nätverk, möjliggör snabbare beslut i routrar än vid traditionell nivå3-routing. 
MPLS ligger mellan de traditionella definitionerna av OSI-modellen nivå 2 och 3, och kallas ibland för ett lager 2,5-protokoll. Detta innebär att MPLS-noden kallas router, men arbetar till stor del som en switch.

MPLS-tekniken möjliggör Quality-of-Service (QoS), vilket är viktigt till exempel vid IP-TV och IP-telefoni.
Den ger även möjlighet till VPN-tjänster och trafikstyrning för bästa utnyttjande av nätverkets kapacitet.

Historik 
När Internet expanderade i slutet av 1990-talet behövde kapaciteten i operatörernas routrar byggas ut på grund av de kraftigt ökande trafikmängderna. Detta gav krav på snabbare överföringskapacitet till en låg kostnad, något man inte kunde lösa med dåtidens hårdvara.
Operatörerna hade ofta startat som teleoperatörer och expanderat in mot datakommunikationsområdet genom att agera Internetleverantör. Det innebar att man använde sig av ATM i sina stamnät. Kunder som anslöt sina datornätverk använde däremot vanligen Ethernet-teknik. Man behövde där transparens mellan IP-protokollet och de olika underliggande transmissionsteknikerna. 
Olika leverantörer hittade redan 1996 vägar genom proprietära lösningar exempelvis IP switching från Ipsilon och Tag switching från Cisco. 1997 skapades en arbetsgrupp inom IETF för att etablera den standard som skulle bli MPLS.
Denna kom ut 2001 genom RFC3031.

MPLS 

I traditionell routing används routingtabellen till att knyta ihop ett visst destinationsnät med det nätverkskort eller port som en router skall skicka ut paket på. Baserat på innehållet tas ett routingbeslut lokalt i varje router. I ett större nätverk sker beslut i flera routrar för att ett paket skall nå till sin destination.

En grupp av paket som skall till ett visst destinationsnät kommer vanligtvis att skickas samma väg genom nätverket. I MPLS grupperas dessa paket i klasser som kallas Forwarding Equivalence Class, FEC. Klassificering kan även ske baserad på Quality of service eller Traffic Engineering för att kunna prioritera eller styra trafik. Varje FEC tilldelas en etikett, en label, som urskiljer dessa paket från andra. I MPLS används därför istället en tabell kallad Label Forwarding Information Base, LFIB. Denna är baserad på routingtabellens innehåll men kompletterad med labels för varje destinationsnät.

LFIB-tabellen byggs lokalt i varje router men varje router informerar sina närmsta router-grannar vad de har för labels för respektive destinationsnät. Informationen utbyts mellan routrarna genom LDP, Label Distribution Protocol och gör att routrarna kan koppla ihop grannens label mot sin label i sin lokala LFIB. Det innebär att ett paket som kommer in på routern med en viss label direkt kan skickas ut på en annan routerport samtidigt som paketets label byts ut till en som passar vår router-granne. Denna procedur kallas att paketet swappas mellan routrarna. På så vis kan trafiken skickas rätt mellan routrarna utan att ett routingbeslut behöver utföras lokalt i varje router. Hela vägen genom nätet kallas för LSP, Label Switched Path.

Varje router som swappar paket kallas för LSR, Label Switch Router. För att kunna swappa paket måste en första router göra ett routingbeslut, lägga på en MPLS-header och sedan skicka paketet vidare. Gränssnittet mellan traditionell routing och swapping sköts av Edge Label Switch Routers, ELSR.

Klassificeringen görs i början då paketet kommer in i nätverket av den första routern som kallas Ingress ELSR. I bilden ovan är router R2 ELSR. När routern har fått klart för sig vilket destinationsnät paketet skall skickas till och vilken FEC det tillhör kompletteras det med en MPLS-header. Denna är placerad mellan nivå två-headern och nivå tre-headern i varje paket. I headern finns bland annat en label som motsvarar nästa routers etikett för destinationsnätet. Paketet skickas vidare till nästa router enligt LFIB. När paketet anländer i nästa router R3 tittar den i sin LFIB, byter label, skickar ut paketet på nästa routerport för att komma till nästa router och så vidare. Genom att swappa paket sparades mycket tid i kontrast till de dåvarande routingteknikerna.

Då paketet närmar sig sin slutdestination tas MPLS-headern bort. I exemplet ovan sker det då paketet anländer till router R5. Det kallas att routern är en Egress ELSR.

MPLS-TP
MPLS Transport Profile (MPLS-TP) är en MPLS-variant med förbättrade underhållsfunktioner (OAM) som började definieras gemensamt av IETF och ITU-T runt 2009. Här överförs data i bidirektionella pseudowires. LSPer, reserv-LSPer och pseudowires konfigureras ofta statiskt genom operatörens managementsystem, utan LDP. På detta sätt kan operatören styra överföringsväg och latens. Vid störningar kan dataöverföringen automatiskt flyttas till en reserv-LSP inom 50 millisekunder.

Exempel på användande av MPLS 
Trenden går mer och mer mot att operatörer bygger ut sina IP-nät genom att så att säga lägga sig på en annan operatörs IP-nät. Istället för att köpa en upströms IP-förbindelse för att via denna nå andra nät så köper man en tjänst av en annan IP-nätinnehavande operatör på lager 2-nivå till en plats där de enkelt kan utbyta trafik med de andra önskade näten. Det är dessutom ett alternativ till att köpa SDH för en punkt till punkt-förbindelse.  På detta sätt utbyter man inte trafik med leverantören på nätverkslagret (nivå  3) med hjälp av ett routingprotokoll utan man kommer in i sin leverantörs nät på nivå 2 och har en punkt till punkt-förbindelse över ett större geografiskt område. 
Säg att operatör A har ett etablerat IP-nät i Ryssland och kringliggande länder och till exempel vill utbyta trafik med en massa operatörer på någon av de stora peering-punkterna i Europa, till exempel Amsterdam. Istället för att köpa SDH från Moskva till Amsterdam med routrar i båda ändpunkterna så kopplar operatören upp sig på nivå 2 på operatör B:s IP-nät vilkens i detta fall sträcker sig mellan de två städerna. Operatör B sätter med hjälp av MPLS upp en väg i sitt IP-nät mellan de två städerna för operatör A:s trafik.  Operatör B gör inga routingbeslut på operatör A:s IP-trafik, d.v.s.inga beslut på IP-paketens destinations-IP-adress, utan läser bara av MPLS label:n – all trafik ska ju bara gå till en destination. Det som kommer in i Moskva ska ut i Amsterdam. 
Fördelarna för operatör A blir att den på detta enkla sätt bygger ut sitt IP-nät genom operatör B:s IP-nät och får en betydligt större redundans än de fått av en SDH-förbindelse från Moskva till Amsterdam. Om en länk går ned mellan två routrar på vägen i operatör B:s nät så ändras automatiskt MPLS-vägen från den felande vägen mellan de två routrarna till en fungerande, men kan fortsätta på de länkar mellan andra routrar som fortfarande är uppe och rullar. 
All operatör A:s lager 3-trafik förblir transparent för operatör B och utifrån, till exempel i en traceroute i operatör A nät, ser det ut som A har ett IP-nät mellan de två städerna.

MPLS VPN 

VPN, virtuellt privat nätverk, innebär att ett nätverk kopplas ihop med ett annat genom en tunnel via exempelvis en operatörs nätverk eller Internet. På så vis kan pengar sparas då ett företag inte behöver hyra en egen förbindelse mellan exempelvis två lokalkontor.

Genom att ha MPLS i sitt nätverk kan en operatör erbjuda VPN-tjänster både på nivå två och tre enligt OSI-modellen.
En VPN-anslutning på nivå två innebär att kunden köper en transparent anslutning mellan sina kontor och inte behöver använda routrar för att skicka trafik till rätt plats.
Om kunden däremot vill separera sina kontor kan operatören erbjuda VPN-anslutning på nivå tre. Kunden måste då ha egna routrar som kommunicerar via operatörens routrar alternativt om operatören hanterar detta åt kunden.

Se även 
 GMPLS
 Open shortest path first
 Routing Information Protocol
 Shortest Path Bridging

Referenser

Noter

Övriga källor 
Multiprotocol Label Switching(MPLS) 
MPLS Tutorial RIPE 2001 
Cisco IOS MPLS Technology Support 
Cisco IOS MPLS Introduction 
IETF RFC 2105 
IETF RFC 3031 
Cisco Introduction to IGRP 
Cisco Configuring a Basic MPLS VPN 
MPLS Review 

Internet
Datalänkskiktsprotokoll