Tecnologie e servizi di rete/MPLS
Multiprotocol Label Switching (MPLS) è la tecnologia di supporto per la nuova rete pubblica (IP) a banda larga. Si può considerare un'architettura di protocolli (o una suite di protocolli) per controllare diversi sotto-protocolli.
MPLS opera ad un livello che generalmente si considera che stia tra le definizioni tradizionali di livello 2 (livello di collegamento dati) e livello 3 (livello di rete).
Vantaggi
[modifica | modifica sorgente]Il protocollo IP è stato sviluppato per scopi di ricerca e non è stato progettato per essere venduto come un servizio. È un cosiddetto "protocollo best-effort", cioè non c'è alcuno scopo esplicito nel dare un servizio affidabile garantito (velocità, ritardi...).
Quando IP cominciò a diventare un bene commerciale, l'International Telecommunication Union (ITU) iniziò a sviluppare protocolli (come ATM, frame relay, ecc.) rivolti all'affidabilità e alla stabilità del servizio, pensando che essi avrebbero permeato il mondo delle telecomunicazioni dei computer. Ciononostante gli utenti finali hanno continuato ad utilizzare IP, e di conseguenza i service provider oggigiorno devono avere a che fare con molti protocolli per portare IP agli utenti finali: questa "grande cipolla" non ha alcun senso per i service provider a causa degli alti costi per la manutenzione, le apparecchiature e lo sviluppo software per garantire l'interoperabilità.
Cisco Systems fu il primo fornitore ad implementare il tag switching nei router, poi IETF adottò il protocollo e lo denominò MPLS.
MPLS combina le migliori caratteristiche dei protocolli connection-less con le migliori dei protocolli orientati alla connessione, rappresentando la soluzione per il problema della "grande cipolla" per due motivi:
- MPLS fornisce una rete basata su IP con una maggiore affidabilità del servizio e un singolo piano di controllo unificato più isolato dal piano dati:
- in IP i piani di controllo e dati sono continuamente aggiornati ad ogni cambiamento nella rete;
- in MPLS l'aggiornamento si verifica solo quando viene creato un nuovo LSP; siccome c'è una separazione tra piano dati e piano di controllo è possibile creare percorsi con vincoli indipendenti;
- MPLS permette di riutilizzare gli apparati ATM tradizionali semplicemente aggiornandone il software.
- Caratteristiche principali
- possibilità di traffic engineering: distribuire il carico di traffico nella rete per evitare congestioni;
- indipendenza dai protocolli (multi-protocollo) → utile nella transizione da IPv4 a IPv6;
- progettato per garantire la qualità del servizio (non ancora supportato);
- piano di controllo unificato: può essere usato per qualsiasi rete oltre a IP (per es. MPλS per le reti ottiche);
- rapido recupero dai guasti: si possono creare due percorsi tra una coppia di nodi, in modo che in caso di guasto nel primo percorso l'LSR può solo notificare il guasto e rapidamente deviare il traffico sul secondo percorso[1] (invece in IP è difficile inserire due percorsi in una tabella di instradamento, e se un canale si guasta i router hanno bisogno di scambiare informazioni di instradamento ed effettuare algoritmi sofisticati per trovare un altro percorso).
Architettura di rete
[modifica | modifica sorgente]Un Label Switch Router (LSR) è l'apparato responsabile per la commutazione delle etichette usate per instradare i pacchetti. Gli LSR sono detti label edge router quando posti ai margini della nuvola MPLS. Gli LSR combinano l'intelligenza dei router e la velocità degli switch: sono capaci di instradare in modo intelligente come i router, evitando strutture dati e algoritmi complicati come gli switch.
Le nuvole MPLS possono essere distribuite gradualmente: possono crescere e possono essere integrate l'una con l'altra.
Piano dati
[modifica | modifica sorgente]Il piano dati è la capacità di commutare pacchetti in base alle loro etichette.
Intestazione MPLS
[modifica | modifica sorgente]I pacchetti IP sono prefissati con un'intestazione MPLS contenente una o più entry nella pila delle etichette. Ogni entry nella pila delle etichette contiene quattro campi:
- etichetta: l'instradamento è basato su questo campo invece che sull'indirizzo IP di destinazione;
- classe di traffico (exp): per la priorità della qualità del servizio (QoS) e l'Explicit Congestion Notification (ECN);
- flag bottom of stack (S): se impostato, l'etichetta corrente è l'ultima nella pila;
- Time to Live (TTL).
Commutazione ad etichetta
[modifica | modifica sorgente]Un Label Switched Path (LSP) è un percorso creato con un protocollo di segnalazione che collega un label edge router sorgente (ingress) ad uno di drain (egress):
- quando l'LSR ingress riceve un pacchetto, vi aggiunge un'etichetta e lo inoltra all'hop successivo dell'LSP creato in precedenza;
- quando l'LSR egress riceve un pacchetto, ne toglie l'etichetta e lo inoltra fuori dalla nuvola MPLS.
Una Forwarding Equivalence Class (FEC) è un insieme di pacchetti che possono essere inoltrati nello stesso modo, cioè possono essere associati alle stesse etichette MPLS. Le etichette non sono univoche nell'intera nuvola MPLS, ma cambiano ad ogni hop (label swapping). Si tenga conto che garantire l'univocità delle etichette in tutta la rete richiederebbe protocolli troppo complessi ed etichette troppo lunghe.
L'utilizzo delle etichette consente ad MPLS di fornire due tipi di servizi:
- ricerca rapida: il routing di IP, basato sull'algoritmo "longest prefix matching", è sofisticato, difficile da ottimizzare e non abbastanza veloce quando ha a che fare con un'ampia quantità di rotte.
- MPLS fornisce una ricerca più veloce rispetto ad IP perché le decisioni per l'inoltro dei pacchetti sono fatte solamente sull'etichetta, posta prima del pacchetto IP, senza la necessità di esaminare il contenuto del pacchetto stesso: ogni etichetta infatti può essere usata come chiave per accedere alla tabella di instradamento come un vettore o una tabella di hash per velocizzare la scoperta delle rotte;
- traffic engineering: IP tende ad aggregare il traffico, ma avere molti pacchetti che attraversano lo stesso percorso non fornisce un servizio efficiente. Ciò non si può evitare facilmente poiché richiederebbe una configurazione di rotte statiche → costosa e non scalabile.
- MPLS è in grado di controllare il traffico come un protocollo orientato alla connessione: l'instradamento di MPLS coinvolge sia l'etichetta sorgente sia quella di destinazione, e i router possono assegnare a un nuovo flusso di pacchetti l'etichetta corrispondente al percorso meno carico per evitare la congestione e consentire la distribuzione del traffico. Inoltre un guasto in un percorso dovuto a un nodo non funzionante non influenzerà gli altri percorsi.
Gerarchia e scalabilità
[modifica | modifica sorgente]MPLS è molto scalabile: all'interno di una grande nuvola MPLS di dominio 1 è possibile definire in modo gerarchico una nuvola MPLS più piccola di dominio 2 e così via, e si possono memorizzare più entry nella pila delle etichette una accanto all'altra in una struttura dati a pila. Le entry nella pila delle etichette siano aggiunte da quella più interna a quella più esterna mentre il pacchetto entra nelle nuvole di dominio più alto e siano rimosse da quella più esterna a quella più interna mentre il pacchetto esce dalle nuvole di dominio più basso, e gli LSR non ai margini delle nuvole elaborano sempre l'entry nella pila delle etichette più esterna. Questa gerarchia di etichette può corrispondere ad una gerarchia di provider, e il numero delle etichette è limitato solo dalla dimensione della trama Ethernet.
Questa tecnica introduce alcuni vantaggi:
- riduce le dimensioni delle tabelle di instradamento e di inoltro, perché non devono essere globali;
- permette di riutilizzare l'hardware per la commutazione esistente (ATM, frame relay, ecc.): le intestazioni MPLS sono messe direttamente nelle intestazioni di livello 2, in modo che possano essere elaborate dall'hardware esistente che ora elabora il livello 2 semplicemente aggiornandone il software.
Piano di controllo
[modifica | modifica sorgente]Il piano di controllo è la capacità di scegliere le etichette da inserire nei pacchetti.
La creazione di una tabella di inoltro (e in senso lato dell'LSP) per una specifica FEC è effettuata in tre passi:
- label binding: è sempre effettuata dal nodo di downstream, che sceglie un'etichetta per la FEC, e questo può essere effettuato in due modi (non mutualmente esclusivi):
- non sollecitato: il nodo di downstream può decidere in qualsiasi momento di assegnare le etichette, anche se non c'è traffico nella rete;
- su richiesta: il nodo di upstream può chiedere al nodo di downstream un'etichetta fissa;
- label distribution: il nodo di downstream comunica l'etichetta scelta al nodo di upstream;
- label mapping: il nodo di upstream crea una nuova entry nella tabella di inoltro associando i pacchetti in entrata, provenienti da una specifica porta con una specifica etichetta, ai pacchetti in uscita, uscenti da una specifica porta con una specifica etichetta.
Le etichette possono essere assegnate in due modi:
- staticamente: il gestore della rete crea gli LSP manualmente, come i circuiti virtuali permanenti (PVC) nelle tecnologie orientate alla connessione come ATM → questa soluzione non scala e limita l'interoperabilità tra i diversi service provider;
- dinamicamente: label binding, distribution e mapping sono effettuati automaticamente dagli LSR senza intervento manuale:
- guidati dai dati: la creazione di un LSP è scatenata dalla ricezione di pacchetti di dati, e ogni LSR sceglie autonomamente le etichette in base al traffico;
- guidati dal controllo: ad un certo punto l'LSR assegna un'etichetta, anche se non c'è traffico;
- guidati dalla topologia (o guidati dal protocollo): ogni volta che si scopre una nuova destinazione, viene creato un LSP verso questa destinazione → no traffic engineering: la rete funziona esattamente come una rete IP;
- espliciti: la creazione degli LSP, di solito inizializzata dai label edge router o guidata dai dati o tramite configurazione manuale, è effettuata attraverso una segnalazione esplicita.
Protocolli
[modifica | modifica sorgente]Protocolli di label distribution
[modifica | modifica sorgente]Tre protocolli, incompatibili tra di loro, possono essere usati dal nodo di downstream per comunicare al nodo di upstream le associazioni delle etichette:
- Label Distribution Protocol (LDP): progettato specificatamente per il label distribution;
- Border Gateway Protocol (BGP) esteso: il nodo di downstream include nei messaggi di instradamento BGP, usati per annunciare le nuove destinazioni, un nuovo campo che dice al nodo di upstream le etichette scelte (solo per il label binding guidato dal protocollo);
- Resource Reservation Protocol (RSVP) esteso: il nodo di downstream include nei messaggi RSVP, usati per notificare i tipi di traffico dei flussi di pacchetti per la qualità del servizio, un nuovo campo che dice al nodo di upstream le etichette scelte: Tecnologie e servizi di rete/Qualità del servizio.
Protocolli di instradamento
[modifica | modifica sorgente]I protocolli di instradamento tradizionali possono essere migliorati per supportare il traffic engineering perché trasportano informazioni sui vincoli di instradamento.
Grazie a protocolli di instradamento come OSPF-TE e IS-IS-TE (basati su OSPF, IS-IS, BGP-4), ogni nodo può raccogliere informazioni sulla topologia della rete per sapere quali nodi sono i suoi nodi di upstream da notificare con le associazioni delle etichette.
Ci sono due possibili strategie di instradamento:
- hop-by-hop (così com'è nell'instradamento di IP): protocollo di instradamento distribuito dove ogni LSR decide da solo secondo il criterio del percorso più breve, così può succedere che tutti i router scelgano lo stesso percorso → rischio di congestione;
- esplicito (possibilità di instradamento basato sui vincoli): protocollo di instradamento centralizzato dove gli LSR egress vengono informati per capire quali canali sono attualmente i più carichi e scegliere i canali meno carichi per la creazione dei nuovi LSP in modo che siano disgiunti il più possibile dagli altri percorsi.
- Per supportare l'instradamento esplicito, è necessario estendere i protocolli di base per il label distribution:
- Constraint-based Routing LDP (CR-LDP) è un'estensione a LDP;
- RSVP for Traffic Engineering (RSVP-TE) è un'estensione a RSVP.
Note
[modifica | modifica sorgente]- ↑ È necessario un overhead per mantenere disponibili due LSP per la stessa FEC.