MultiProtocol Label Switching Prof. Carla Raffaelli Anno Accademico 2004-2005 MPLS: che cosa e? E una tecnica di trasferimento orientata alla connessione La funzione di routing utilizza l indirizzamento IP e i protocolli di routing IP La funzione di forwarding si basa sulla elaborazione di etichette corte e di lunghezza fissa con significato locale La funzione di switching e tipicamente demandata ad hardware veloce 2 1
MPLS: a cosa serve? Per rendere possibile il trasferimento di pacchetti IP da parte di apparati che non sono in grado di trattare datagrammi IP (destination based routing) Per trasferire pacchetti IP su percorsi prestabiliti diversi da quelli selezionati dai normali protocolli per il routing IP(explicit routing) Per supportare reti private virtuali NON solo per migliorare le prestazioni!!! (idea iniziale) 3 Nomenclatura (1) Un router che supporta MPLS viene denominato Label-switching router (LSR) Un gruppo di LSR forma un dominio MPLS Forwarding Equivalence Class (FEC) descrive un insieme di pacchetti con la stessa destinazione e classe di traffico La Label identifica una FEC Il percorso attraverso uno o piu LSR seguito dai pacchetti appartenenti ad una FEC si chiama Label-swicthed path (LSP) 4 2
Nomenclatura (2) Binding Associazione tra FEC e label Next hop Nodo a valle del nodo corrente Label Swapping Traduzione della label di ingresso nella label di uscita Label Edge Router (LER) Router di interlavoro tra la rete esterna e il dominio MPLS 5 Funzionamento Quando un pacchetto entra in un dominio MPLS il router di ingresso analizza la sua intestazione di livello 3 e identifica la FEC di appartenenza del pacchetto Il pacchetto viene equipaggiato con la label che rappresenta la FEC L intestazione di livello 3 non viene piu analizzata nell ambito del dominio MPLS Ogni router contiene una tabella di corrispondenze per individuare su quale FEC la label di ingresso deve essere trasferita Il valore della label puo essere cambiato all interno del dominio MPLS La label viene rimossa allorche il pacchetto lascia il dominio MPLS 6 3
Destination based forwarding: esempio Con MPLS il router alloca una label per ogni prefisso e notifica la label e il prefisso ai suoi vicini R1 0 1 0 10.1.1/24 Prefix Interface 10.1.1 0 Prefix 10.1.1 Interface 1 R4 10.3.3/24 10.3.3 0 10.3.3 0 7 Label Distribution Protocol (LDP) Il router sceglie la label 15 per il prefisso 10.1.1 e la label 16 per il prefisso 10.3.3 Successivamente avvisa R1 della associazione effettuata 10.1.1/24 Label = 15, Prefix = 10.1.1 1 R1 0 0 10.3.3/24 Prefix Interface Label Prefix Interface R4 10.1.1 0 15 10.1.1 1 10.3.3 0 16 10.3.3 0 (a) 10.1.1/24 1 Prefix R1 0 Remote Interface Label 0 Label Prefix Interface R4 10.3.3/24 10.1.1 0 15 15 10.1.1 1 10.3.3 0 16 16 10.3.3 0 (b) 8 4
Forwarding Equivalence Classes - FEC Pacchetti sono classificati in un numero finito di subset denominati FEC Le FEC sono insiemi disgiunti su cui vengono suddivisi i flussi di pacchetti in base alle destinazioni Pacchetti appartenenti alla stessa FEC sono indistinguibili dal punto di vista dell instradamento i pacchetti sono instradati da sorgente a destinazione su un preciso percorso L elemento caratterizzante è il next hop router In una rete IP classica i datagrammi in ingresso al router: vengono associati ad una FEC instradati nella medesima direzione 9 Label Switch Router - LSR Un router capace di label switching viene detto Label Switch Router o LSR Ciascun LSR mantiene una tabella di instradamento detta Label Forwarding Information Base (LFIB) che contiene: elenco delle label attive la label è di fatto la entry nella LFIB interfaccia sulla quale va inviato un datagramma con una certa label nuova label da associare a quel datagramma 10 5
Edge LSR(LER) : funzionalità Attribuisce la label ai pacchetti entranti nella rete LS Toglie la label ai pacchetti uscenti Quando un LER riceve un pacchetto dall esterno determina la FEC e il next hop. Se il next hop è un LSR viene determinata la label da aggiungere al pacchetto 11 Trasferimento del pacchetto IP Un pacchetto IP con destinazione 10.1.1.5 arriva al router R1 (Label Edge Router : LER) R1 essendo un LER realizza una ricerca completa nella tabella e determina la label da associare al pacchetto IP Poiche il longest prefix match si ha con l indirizzo 10.1.1 il valore della label e 15 esamina solo la label Riscrive la label (label swapping) e asegna il valore 24 come richiesto dal router 12 6
Cosa c e di nuovo e non in label switching Algoritmo di forwarding Cambia da longest prefix match ad exact match Algoritmo di routing Puo essere lo stesso delle reti IP standard Il percorso che il pacchetto segue e lo stesso del caso in cui MPLS non venisse applicato Conseguenza: apparati che non sono in grado di trasferire pacchetti IP possono essere utilizzati per farlo con la tecnica MPLS; es switch ATM Occorre equipaggiare tali apparati con protocolli di routing IP e algoritmi per realizzare il label swapping 13 Chi assegna le label? La label identifica una particolare FEC Deve essere creata l associazione fra label e FEC L associazione viene fatta sempre dal LSR a valle del collegamento Questo garantisce l unicità delle label in ricezione sulle varie interfacce Dipendentemente dall implementazione le label possono essere uniche per interfaccia per LSR 14 7
Allocazione delle label Le label sono una risorsa gestita dai LSR a valle di un link Le label sono allocate con due diverse modalità: Downstream on demand allocation Unsolicited downstream allocation Downstream on demand L allocazione viene richiesta dal LSR a monte L allocazione viene resa nota solamente al LSR richiedente Unsolicited downstream L allocazione avviene senza esplicita richiesta L allocazione viene notificata a tutti i LSR a monte di quello che esegue l allocazione 15 Label Distribution Protocol (LDP) La label di uscita da un LSR a monte deve essere uguale a quella di ingresso per il LSR a valle E necessario uno scambio di informazioni fra i LSR al fine di accordarsi sulla label da utilizzare per una certa FEC E possibile modificare protocolli esistenti per svolgere questo compito: RSVP, BGP, RSVP-TUNNELS Si possono definire nuovi protocolli ad hoc Label Distribution Protocol (LDP) CR-LDP 16 8
LDP: funzionalità Messaggi di notifica di esistenza e di mantenimento di un LSR Apertura, gestione e chiusura di una sessione fra LSR Messaggi per la gestione dell assegnazione delle label Creare Modificare Cancellare Gestione errori Router A Hello (UDP) Hello (UDP) Open (TCP) Inizializza Label Request Label Mapping # Router B 17 Label Distribution Protocol (LDP) Quando un router riceve una informazione di binding di suo interesse (cioe dal suo next hop) la memorizza nella sua tabella Label = 24, Prefix = 10.1.1 10.1.1/24 1 R1 0 0 10.3.3/24 R4 Prefix Interface 10. 1. 1 0 10. 3. 3 0 Remote Label 15 16 Label Prefix Interface 15 10.1.1 1 24 16 10.3.3 0 Remote Label 18 9
Associazione delle label ai pacchetti Ci sono due modi principali (a) Se il link e di tipo Ethernet, token ring o PPP e il pacchetto IP viene trasportato interamente come frame di questi protocolli la label viene inserita tra l intestazione di livello 2 e quella del pacchetto IP (shim header) Shim header (for PPP, Ethernet, etc.) PPP header Label header Layer 3 header Se si opera con link ATM la label viene posta nella intestazione della cella utilizzando i campi VPI e VCI su cui lo switch ATM opera il label swapping (b) ATM cell header GFC VPI VCI PTI CLP HEC DATA Label 19 Gerarchia delle label MPLS prevede un oragnizzazione gerarchica delle label E possibile innestare label su label per creare più livelli di label switching Payload IP Header Livello 1 Livello 2 Livello 3 Livello m Label pushing Label popping Livello m+1 20 10
Interconnessione di router Modello overlay con ATM Ogni router e collegato agli altri con un circuito virtuale R1 per esempio ha 5 adiacenza con cui scambia informazioni di routing Router collegati con LSR (Label Switch Router) I router ATM sono stati trasformati in LSR R1 ha una sola adiacenza Si riducono le informazioni da mantenere e da scambiare Gli edge router hanno informazioni sulla topologia della rete e possono meglio recuperare situazioni di guasto R1 R1 LSR1 (a) LS R4 LS R4 R6 R5 R6 R5 (b) 21 Explicit routing Un operatore intende inviare il traffico da R1 a R7 sul percorso R1--R6-R7 e il traffico da a R7 sul percorso R1--R4-R5-R7 R1 R6 R7 R4 R5 Con MPLS e facile da fare se R1 e associano diverse etichette ai pacchetti Per fare questo non si puo utilizzare la modalita di associazione standard descritta in precedenza ma si deve utilizzare una segnalazione esplicita basata su RSVP 22 11
Fast reroute Utilizzando il routing esplicito e possibile precalcolare un percorso tra due router che evita esplicitamente un prefissato link L In caso di guasto del link L il router A invia il traffico a B sul percorso alternativo Questo consente un rapido ripristino della connettivita in caso di guasto 23 Tunnel Per trasferire celle ATM attraverso una rete IP si puo costruire un tunnel MPLS Le celle entrano a una estremita del tunnel (head) ed escono all altra estremita (tail) ATM cells arrive ATM cells sent Head Tail Cells sent into tunnel at head Tunneled data arrives at tail Il router head deve essere configurato con l interfaccia di ingresso, il VCI di ingresso la label da utilizzare per l emulazione del circuito e l indirizzo del router finale del tunnel Il router tail deve essere configurato con la porta di uscita, il VCI di uscita e la label di emulazione del circuito 24 12
Esempio di trasferimento della cella ATM nel tunnel 1. ATM cells arrive 101 Head 2. Demux label added DL 101 3. Tunnel label added TL DL 101 TL DL 101 4. Packet is forwarded to tail 6. ATM cells sent 202 Tail DL 101 5. Demux label examined Una cella ATM arriva con VCI=101 all ingresso del tunnel Il router head aggiunge la label che identifica il circuito emulato e successivamente la label del tunnel che trasporta il pacchetto al router tail I router tra head e tail trasferiscono il pacchetto utilizzando solo la label del tunnel Il router tail, dopo aver tolto la label del tunnel riconosce il circuito emulato Il router tail traduce la label del circuito nel valore VCI corretto (202) 25 VPN di livello 3 VPN A / Site 2 VPN B / Site 1 VPN B / Site 2 Provider network VPN A / Site 1 VPN A / Site 3 VPN B / Site 3 I pacchetti trasferiti sono di livello 3 (pacchetti IP) Ogni utente vede una rete IP che interconnette i suoi siti L utente A puo utilizzare indirizzi IP utilizzati anche da B 26 13
Esempio LSR B e LSR D utilizzano LSR E come next hop LSR A usa LSR B come next hop LSR C usa LSR D come next hop Ogni LSR ha 3 interfacce if0 if0 A C if2 if1 if1 if2 if2 if1 if0 if2 B D if1 if0 E if0 27 Costruzione della TFIB Quando A determina il next hop B sceglie una tag disponibile dal pool, per esempio 100 LSRA usa 100 come indice per accedere alla LFIB e impone la tag di ingresso a 100, il next hop a B e l interfaccia di uscita a if1 In lab out lab Next hop out int. On LSRA 100? LSRB if1 Quando B determina il next hop E, prende una label dal suo pool, per esempio 6 In lab out lab Next hop out int. On LSRB 6? LSRE if1 28 14
Distribuzione delle informazioni Per definire la outgoing tag LSRA invia a B e C le informazioni di binding locale Quando B riceve le informazioni di binding nota che non provengono dal next hop E. Quindi non utilizza queste informazioni Quando A riceve informazioni da B nota che B è il next hop e usa la tag per aggiornare la sua outgoing label LSRE ha se stesso come next hop e la sua outgoing label rimane identificata da? 29 LFIB dopo la distribuzione In tag out tag Next hop out int. On LSRA 100 6 LSRB if1 On LSRB 6 6 LSRE if1 On LSRC 17 5 LSRD if2 On LSRD 5 6 LSRE if0 On LSRE 6? LSRE if0 30 15
Trasferimento del pacchetto Quando A riceve un pacchetto con label 100, utilizza questa label come un indice per localizzare la rispettiva entry A sostituisce la label trasportata dal pacchetto con la outgoing label 6 (label swapping) ed invia il pacchetto a B via interfaccia 1 Quando E riceve i pacchetti che portano label 6 agisce come un edge LSR and elimina la label associata al pacchetto (label stripping) 31 16