DiffServ over MPLS - Fondazione Ugo Bordoni

Transcript

DiffServ over MPLS - Fondazione Ugo Bordoni
DiffServ over MPLS
Il DiffServ over MPLS è una tecnica per incanalare il traffico IP in Classi di servizio e gestire
quindi la Qualità del Servizio mediante le creazione di opportune tecniche che garantiscono la
priorità nel trattamento del traffico.
1 DiffServ (Differentiated Services)
La tecnologia DiffServ si fonda sul meccanismo di allocazione preferenziale delle risorse: vengono
introdotti dei livelli di priorità e in base ad essi il traffico viene trattato in un determinato modo. Il
concetto di flusso informativo, introdotto nel IntServ, non ha più significato in questo modello: i
router non devono più gestire una connessione per ogni flusso ma prendono decisioni direttamente
sul singolo datagramma.
L’informazione sul trattamento che un datagramma deve ricevere è trasportata dal datagramma
stesso evitando così la necessità dello scambio delle informazioni di controllo tra i routers e il
mantenimento degli stati nei sistemi attraversati (tramite RSVP).
L’idea del DiffServ è quella di fornire differenti servizi creando delle classi con diverse priorità; per
fare questo viene usato il campo DSCP ( DiffServ Code Point), ottenuto dal campo type-of-service
(TOS) del pacchetto IPv4 o dal campo traffic class di IPv6. Con le classi di servizio tutti i
datagrammi vengono riuniti in pochi flussi aggregati, BA 1 – Behaviour Aggregate, ai quali sono
assegnati diversi trattamenti all’interno della rete.
All’interno della rete non esiste nessuna richiesta fatta da un flusso per ottenere un determinato
trattamento in termini di QoS.
1
Behaviour Aggregate ( BA): un insieme di pacchetti con lo stesso DSCP che attraversano un link in una particolare
direzione
Fondazione Ugo Bordoni © 2007 – Tutti i diritti riservati
http:// www.fub.it
email: [email protected]
Il meccanismo DiffServ può essere riassunto nel modo seguente:
- ai bordi della rete i singoli pacchetti vengono classificati dagli Edge Router 2 che marcano il
campo DSCP presente nella loro intestazione in base ai requisisti prestazionali richiesti;
- ogni valore del campo DSCP corrisponde ad una classe di servizio e tutti i pacchetti aventi lo
stesso campo DSCP riceveranno lo stesso trattamento all’interno della rete;
- i pacchetti, una volta classificati, vengono immessi nella rete;
- all’interno della rete in ogni router vengono definiti i PHB 3 ( Per Hop Behaviour) ovvero i
comportamenti corrispondenti alle classi di servizio con le quali sono classificati i pacchetti;
- quando un pacchetto arriva in un Core Router 4 , quest’ultimo esamina il campo DSCP e tratterà il
pacchetto in base alla classe di servizio corrispondente.
Si osservi inoltre che DiffServ specifica solo il campo DSCP, e dunque le classi di servizio, e i
PHBs dei routers mentre spetta all’operatore decidere quali particolari prestazioni far corrispondere
alla singola coppia DSCP-PHB; inoltre DiffServ non specifica dei servizi: il servizio percepito
dall’utente è semplicemente il risultato dei vari PHB. Come per la tecnologia IntServ, un utente che
vuole ricevere un servizio differenziato si deve accordare con il Service Provider stipulando un
SLA.
2
Edge Router: sono i router ai bordi di un dominio DS. Essi svolgono le funzioni fondamentali che prevede
l’architettura DiffServ quali la classificazione dei pacchetti, la marcatura del campo DSCP e la policing-shaping del
traffico.
3
Per Hop Behaviour ( PHB ): una descrizione del modo di instradare un particolare aggregato da parte di un router DS,
così come lo si vede esternamente; è definito dai parametri dell’algoritmo di scheduling, dalla quota di buffer e dalla
quota di banda che di fatto consentono di ottenere un diverso servizio
4
Core Router: sono router ad altissima capacità all’interno del dominio DS. Essi hanno il solo compito di eseguire i
PHB sui datagrammi già classificati e marcati dagli edge-router
Fondazione Ugo Bordoni © 2007 – Tutti i diritti riservati
http:// www.fub.it
email: [email protected]
1.1 Il campo DSCP
Il campo DSCP è composto di sei bit ed è usato per identificare i flussi appartenenti ad un aggregato
e associarli ad un PHB, deriva dal campo TOS ( Type Of Service ) introdotto già da tempo in IPv4.
Figura 1: Campo DSCP ottenuto dalla ridefinizione del campo TOS
Come si vede dalla figura il campo TOS è stato ridefinito dal IETF appositamente per DiffServ: i
sei bit più significativi sono stati definiti DSCP mentre gli ultimi due rappresentano il campo CU
che per ora non viene utilizzato e che si raccomanda di non utilizzare in nessuna implementazione.
1.2 PHB: Per-Hop Behaviour
Nell’architettura DiffServ abbiamo, oltre al Best Effort, due classi di servizio:
Figura 2: Classi di Servizio nella metodologia DiffServ
Fondazione Ugo Bordoni © 2007 – Tutti i diritti riservati
http:// www.fub.it
email: [email protected]
1- Expedited Forwarding:
Il PHB Expedited Forwarding permette di offrire le
prestazioni di una linea dedicata virtuale, caratterizzata da:
•
•
•
•
basse perdite;
basse latenze;
basso jitter;
garanzia di larghezza di banda.
Il concetto su cui si basa l’implementazione di questo PHB è la seguente: gli eventi che
introducono variabilità nelle caratteristiche dette sopra si collocano nelle code dei router e
sono causati dalla differenza tra la velocità di trasmissione del flusso aggregato in entrata e
quella riservata a quella determinata coda in uscita. Per l’Expedited Forwarding deve essere
sempre garantita l’assenza di congestione della coda associata ad esso e tale garanzia deve
essere salvaguardata indipendentemente dall'intensità del resto del traffico appartenente ad
altri PHB: le varie classi di servizio non si devono influenzare tra loro. Un modo per
implementare questo PHB consiste nel predisporre una coda con priorità superiore: per
evitare interferenze (pre-emptions) non dovrebbero essere tuttavia presenti altre code a
priorità superiore.
2-Assured Forwarding : Il PHB Assured Forwarding rappresenta un servizio end-to-end
con caratteristiche di garanzia sul recapito del pacchetto;viene definita una certa larghezza di
banda "di profilo", ed il traffico che rientra in quella larghezza di banda viene recapitato con
alta probabilità. L’ Assured Forwarding permette di configurare diversi livelli di affidabilità
e di priorità di inoltro del traffico. Sono presenti quattro classi di servizio e per ognuna ci
sono tre differenti livelli relativi di scarto (drop); i pacchetti vengono marcati e inseriti in
una delle classi in base ai servizi sottoscritti dal cliente e in caso di congestione i nodi
scartano in base ai livelli di priorità. Questo PHB si adatta molto bene a tutte quelle
applicazioni che non hanno richieste assolute di banda ma che hanno bisogno di una priorità
maggiore del normale traffico.
Fondazione Ugo Bordoni © 2007 – Tutti i diritti riservati
http:// www.fub.it
email: [email protected]
1.3
SCHEDULING E ALGORITMI
Per implementare il DiffServ si necessita di una gestione ottimale delle code presenti nei routers e
per farlo bisogna ricorrere ad opportune procedure di scheduling. Lo Scheduling è il meccanismo
con il quale si programma in quale sequenza e modo devono essere servite le code, nel caso di
buffer multiplo, o i pacchetti, nel caso di buffer singolo. Nel Test-bed sperimentale che verrà
descritto dettagliatamente nel Capitolo 3 sono presenti due router Juniper provvisti di quattro code
e quindi gli algoritmi che più interessano sono quelli a buffer multiplo.
Figura 3: Struttura di un router a buffer multiplo con queuing e scheduling
La maggior parte degli algoritmi a buffer multiplo sono basati sulla tecnica Round-Robin perchè è
la più adatta quando si vogliono isolare più flussi. Il funzionamento del Round-Robin è il seguente:
lo scheduler scorre tutte le code ciclicamente e se quella che sta analizzando non è vuota spedisce il
primo pacchetto presente, altrimenti passa alla coda successiva. Questo algoritmo dipende dalla
lunghezza media dei pacchetti presenti nelle code e non dalla lunghezza effettiva. Per ovviare
questo problema viene introdotto il cosiddetto quantum che rappresenta numero di byte che lo
scheduler può spedire da ogni coda in un determinato istante.
L’algoritmo che utilizza il quantum viene detto Deficit Round-Robin ( DRR ) e funziona nel modo
seguente: prima di servire la coda lo scheduler confronta la grandezza del pacchetto con il valore
del quantum; se il pacchetto è maggiore del quantum non viene spedito e il quantum incrementa
altrimenti il pacchetto viene spedito e il quantum decrementato al valore della grandezza del
pacchetto spedito.
Fondazione Ugo Bordoni © 2007 – Tutti i diritti riservati
http:// www.fub.it
email: [email protected]
WRR: Weighted Round Robin
Questa tecnica, che poi è quella implementata nei router Juniper utilizzati, prende in considerazione
il peso di ogni classe di servizio: i pesi determinano il numero massimo di ottetti che possono uscire
da una coda nello stesso turno. In questo modo ad ogni coda viene riservata una percentuale di
banda differente e quindi le code a più alta priorità verranno servite più spesso rispetto a quelle con
più bassa priorità: è come se nel DRR ci fossero valori di quantum diversi per ogni coda.
Priority queuing
Il concetto di base di questo algoritmo è di assegnare ad ogni classe di servizio un numero che
rappresenta la sua priorità. La classe con priorità più alta sarà servita ad ogni giro dello scheduler e,
finché questa avrà pacchetti da servire, essi saranno spediti. Non appena la coda si svuota lo
scheduler passa a servire i pacchetti di quella successiva, finché anche questi non terminano e cosi
via. Quando un pacchetto arriva nella coda con priorità minore, questa viene servita non appena lo
scheduler finisce di spedire i pacchetti del servizio corrente. Il difetto di questo algoritmo è che le
classi con priorità minore possono cadere in starvation, e cioè non vengono servite per molto tempo
in presenza di un flusso continuo di pacchetti appartenenti a classi a priorità maggiore. Una
soluzione a tale problema è il quantum, come per il WRR, che limita il numero di ottetti che
possono essere spediti consecutivamente da una stessa coda.
Controllo della Congestione
Il controllo della congestione delle code interne ai router è molto importante per ottimizzare le
prestazioni di rete. Come visto precedentemente il tempo di ritardo dei pacchetti (one-way delay), è
costituito dalla somma di tre fattori di cui solo uno è altamente variabile: il tempo di accodamento.
Inizialmente è stata utilizzata la tecnica F.I.F.O. ( First In First Out): se il ritmo di entrata dei
pacchetti è maggiore di quello di uscita, questi vengono memorizzati e quando la coda si riempie
vengono scartati. Questa tecnica è molto semplice ma ha degli svantaggi che la rendono inefficiente
nelle reti multiservizio:
Fondazione Ugo Bordoni © 2007 – Tutti i diritti riservati
http:// www.fub.it
email: [email protected]
-
se le code sono troppo piene i ritardi dei pacchetti aumentano notevolmente;
-
ci possono essere problemi di sincronizzazione in quanto i pacchetti scartati sono
spesso consecutivi;
-
le sorgenti a ritmo variabile, che in alcuni momenti raggiungono picchi alti di traffico,
sono penalizzate rispetto alle sorgenti a ritmo costante.
Di seguito vengono descritti i principali algoritmi oggi utilizzati nei router per il controllo ottimale
della congestione delle code.
R.E.D. ( Random Early Discard ): I router in cui è implementato questo algoritmo scartano uno o
più pacchetti prima che la coda si sia completamente riempita. Ogni volta che un pacchetto arriva,
l’algoritmo RED calcola la lunghezza media della coda, avg , e il router può assumere tre
comportamenti:
- se tale lunghezza è inferiore ad una soglia minima, la coda viene considerata non congestionata e
il router memorizza i pacchetti;
- se la lunghezza media è maggiore della soglia massima, la coda è considerata congestionata e il
router scarta i pacchetti con probabilità del 100%;
- se la lunghezza media si trova tra la soglia minima e massima, l’algoritmo calcola la probabilità
di scarto dei pacchetti in base alla congestione della coda.
Figura 4: Probabilità di scarto dei pacchetti al variare della lunghezza media della coda.
Fondazione Ugo Bordoni © 2007 – Tutti i diritti riservati
http:// www.fub.it
email: [email protected]
Come si vede in figura, all’aumentare della congestione della coda, indicata dal parametro avg,
viene scartato un numero sempre maggiore di pacchetti fino ad arrivare alla soglia massima thmax
dopo la quale tutti i pacchetti entranti vengono scartati.
Usando lo scarto probabilistico si evita la cancellazione di pacchetti consecutivi e la probabilità di
cancellazione non è casuale ma calcolata sulla base del numero di pacchetti del flusso di
appartenenza presenti nella coda.
Lo svantaggio di questo algoritmo è che funziona male nel caso in cui i flussi che congestionano la
coda siano “non-responsive” : se infatti si è in presenza di multimedia non adattativi, ovvero se le
sorgenti non possono abbassare le velocità di emissione, la coda rimarrà sempre congestionata e i
pacchetti verranno continuamente scartati.
Weighted R.E.D.: Questo algoritmo è una evoluzione del RED appena visto ed è stato proposto
originariamente dal CISCO. Rispetto al precedente vengono usati differenti parametri per i vari
flussi entranti: in questo modo, infatti, è possibile differenziare la distribuzione dei pacchetti persi.
Questa soluzione può non essere però conforme al modello DiffServ, infatti con il WRED i router
devono memorizzare i parametri delle code per ogni singolo flusso e questo comporta problemi di
scalabilità, tipici delle architetture ATM per le quali è stato realizzato questo algoritmo.
Figura 5: Andamento della funzione di probabilità di cancellazione nel WRED
Fondazione Ugo Bordoni © 2007 – Tutti i diritti riservati
http:// www.fub.it
email: [email protected]
RED with IN and OUT ( RIO ): Questo algoritmo è tra i primi che supportano i servizi
differenziati. Inizialmente RIO supportava due livelli di precedenza (In e Out), ma in seguito, è
stato modificato per essere in grado supportarne di più. Le differenza rispetto alle altre metodologie
riguarda soprattutto la grandezza media delle code. A differenza del WRED, RIO calcola questo
valore per ogni livello di precedenza, ovvero il valore avgn viene aggiornato ogni volta che arriva
nella coda un pacchetto con precedenza n. In questo modo è possibile isolare le probabilità di
eliminazione per ogni livello di precedenza. Per esempio per cancellare un pacchetto di bassa
precedenza deve verificarsi un eccesso di pacchetti con lo stesso livello, invece per eliminarne uno
con alta precedenza, basta che si verifichi un eccesso generale di pacchetti.
Per potenziare l’algoritmo RIO è previsto l’uso di differenti parametri (pmax, thmin e thmax) per ogni
livello di precedenza, come per il WRED. In questo modo, potrebbero essere usate soglie meno
rigide, per far sì che la grandezza media delle code per i pacchetti con alta priorità possa aumentare
più rapidamente rispetto al WRED o al RED, rendendo così questo sistema applicabile nella rete.
1.4
Coesistenza IntServ , DiffServ
Il modello DiffServ nasce per far fronte ai problemi di scalabilità di IntServ e si basa su un concetto
completamente diverso dal suo predecessore. Nel IntServ l’applicazione che richiede una certa QoS
deve generare un’informazione di controllo ( tramite protocollo RSVP ) per avvertire tutti i router
coinvolti nel cammino origine-destinazione di trattare il suo flusso informativo in un determinato
modo. Perchè la rete possa garantire le prestazioni richieste, ogni router deve mantenere delle
opportune informazioni di stato ( ad esempio la banda e il buffer da riservare a un certo flusso
informativo) che vengono aggiornate durante la connessione. Nella metodologia IntServ la gestione
della QoS è su base flusso e ogni router deve avere informazioni di stato per tutti i flussi che lo
attraversano, in quella DiffServ invece viene meno la necessità di memorizzare le informazioni di
stato del singolo flusso in quanto non vi è più riservazione delle risorse, infatti vengono definiti dei
PHB. Quindi se per IntServ si hanno garanzie maggiori delle prestazioni ma problemi di scalabilità
legati al numero di flussi da gestire, il DiffServ risulta invece essere una architettura molto meno
complessa ma tuttavia manca della capacità di “isolare” le singole richieste di QoS.
Fondazione Ugo Bordoni © 2007 – Tutti i diritti riservati
http:// www.fub.it
email: [email protected]
Anche se queste tecnologie sono state definite separatamente, non è detto che debbano essere
utilizzate in modo esclusivo. IntServ è efficiente nelle piccole reti, come ad esempio le LAN, dove i
flussi da gestire sono pochi e non si hanno problemi di scalabilità; DiffServ al contrario consente la
gestione della QoS per grossi aggregati di traffico e può quindi essere implementato su reti trasporto
metropolitane o backbone. Uno scenario futuro di rete multiservizio con gestione della QoS
potrebbe essere il seguente:
Figura 6: Architettura di rete con metodogie DiffServ e IntServ
2 DIFFSERV OVER MPLS
Le condizioni da soddisfare per la QoS si possono riassumere come segue:
•
È necessaria l’allocazione garantita di una certa misura di risorse trasmissive in tutto il
percorso effettuato dai dati dell’applicazione di interesse. Questa condizione di tipo end-toend non deve venire meno neanche in situazioni di congestione o malfunzionamento di nodi
della rete.E’ necessaria inoltre la funzione di Admission Control;
•
Il flusso dati dell’applicazione deve sperimentare nei nodi della rete un trattamento
specifico, scelto tra diverse possibili classi di servizio, che rispetti determinati vincoli sulla
perdita di pacchetti e sui ritardi nelle code.
Fondazione Ugo Bordoni © 2007 – Tutti i diritti riservati
http:// www.fub.it
email: [email protected]
La metodologia DiffServ rappresenta un primo reale passo avanti per l’implementazione e gestione
della QoS nelle reti fisse ma è anche da considerarsi incompleta in quanto non offre le garanzie
quantitative end-to-end richieste dal primo dei due requisiti. MPLS (Multiprotocol Label Switching)
è una architettura di rete emersa negli ultimi anni e spesso viene erroneamente citata come
architettura per la qualità del servizio; in realtà essa non fornisce di per sé alcun meccanismo per la
gestione della QoS. Ciò che MPLS offre è la possibilità di lavorare in un ambiente connection
oriented, nel quale è possibile riservare risorse ed utilizzare in modo efficiente la rete mediante
applicazioni di traffic engineering. MPLS è quindi un’architettura che può fornire il supporto per
una completa gestione end-to-end della QoS.
2.1
L’architettura MPLS
Un dominio MPLS è costituito da una serie di nodi contigui che supportano la tecnologia
Multiprotocol Label Switching, detti LSR (Label Switching Router). In questo scenario sono di
particolare importanza i nodi al confine del dominio, che nella terminologia MPLS vengono
chiamati LER (Label Edge Router). Essi rappresentano l’interfaccia del dominio MPLS con il resto
della rete, quindi devono implementare sia l’algoritmo di forwarding label switching sia quello
tradizionale IP. Un altro loro compito è quello di assegnare le label al traffico in ingresso. Un
percorso effettuato dai pacchetti instradati tramite label switching all’interno del dominio MPLS
prende il nome di LSP (Label Switched Path). Da un punto di vista funzionale, l’architettura MPLS
può essere divisa (come del resto anche l’architettura tradizionale IP) in componente di forwarding
e componente di controllo. La componente di forwarding consiste nella procedura mediante la quale
in un nodo si estraggono dai pacchetti le informazioni per identificare l’appropriato next hop nella
forwarding table. Un LER esegue il mapping del traffico in classi di equivalenza per il forwarding
(FEC), ossia in gruppi di pacchetti che devono essere tutti inoltrati nella stessa maniera. Di seguito
associa l’etichetta ai pacchetti in base alla loro FEC di appartenenza. All’interno del dominio
MPLS, ogni LSR ha una tabella di forwarding nella quale ad un determinato label corrisponde un
next hop. L’indirizzo di destinazione finale dei pacchetti non è più preso in considerazione nelle
decisioni riguardo al loro inoltro. Un parametro importante per la componente di forwarding è la
Fondazione Ugo Bordoni © 2007 – Tutti i diritti riservati
http:// www.fub.it
email: [email protected]
granularità con cui i flussi in ingresso al dominio MPLS vengono associati nelle FEC. In linea
teorica sarebbe possibile associare una diversa etichetta ad ogni singolo flusso, ma questo
comporterebbe i medesimi problemi dell’architettura IntServ. Il pregio di MPLS da questo punto di
vista è la possibilità di selezionare arbitrariamente i criteri per l’aggregazione di più flussi in classi
di equivalenza per il forwarding.
Dal momento che solo alcuni protocolli di livello 3 (ATM, Frame Relay) supportano la presenza di
un label, si è deciso di creare in ambito MPLS un header di 32 bit da inserire tra quello di livello 2 e
quello di livello 3, detto shim header. Tutti i protocolli di livello 3 che non prevedono la presenza di
una label (tra i quali rientra IP) possono fare uso dello shim header per trasportare le informazioni
per il label switching.
Figura 7: Shim Header MPLS
Il campo di 20 bit Label è l’etichetta vera e propria. Il campo Exp, di tre bit, è stato riservato ad uso
sperimentale ed è spesso utilizzato per il supporto della QoS in ambito MPLS.
La componente di controllo nell’architettura MPLS consiste nelle procedure utilizzate per
scambiare informazioni di routing tra gli LSR e per convertire tali informazioni in una tabella di
forwarding. Come la componente di controllo dell’architettura tradizionale IP, anche quella di
MPLS include dei protocolli di routing come ad esempio OSPF ( Open Shortest Path First ). Per la
creazione delle tabelle di forwarding sono però necessarie in un LSR ulteriori funzionalità oltre ai
protocolli di routing. Un LSR, infatti, deve essere in grado di creare associazioni (bindings) tra
label e FEC, informare gli altri LSR dei bindings ed aggiornare le tabelle di forwarding in base ai
bindings creati localmente e a quelli di cui viene informato dagli altri LSR. I protocolli di routing
consentono di effettuare il passaggio da FEC a next hop; le procedure di creazione e distribuzione
dei bindings portano alla conversione da FEC a label. Complessivamente si ottiene la relazione tra
label e next hop necessaria per la creazione delle tabelle di forwarding,
Fondazione Ugo Bordoni © 2007 – Tutti i diritti riservati
http:// www.fub.it
email: [email protected]
Figura 8: Procedura per la creazione della Forwarding Table
La distribuzione delle label bindings tra gli LSR viene affidata preferibilmente a protocolli
tradizionali come RSVP ma può anche essere demandata ad un apposito protocollo detto LDP
(Label Distribution Protocol).
2.2
MPLS e ingegneria del traffico
L’architettura MPLS è nata per aumentare le prestazioni dei nodi della rete, introducendo per il
forwarding un campo di dimensione fissa che consentisse un processing più rapido dei pacchetti.
Tuttavia questo tipo di necessità è progressivamente venuto meno in conseguenza delle continue
innovazioni tecnologiche che hanno portato a router sempre più veloci. Il vero vantaggio di MPLS,
che non rientrava tra i suoi scopi originari, è quello di consentire ai Service Provider di
implementare il TE (traffic engineering) nelle reti, aumentandone l’efficienza e le prestazioni. Il TE
permette di bilanciare il traffico in una rete in modo da non avere link congestionati né scarsamente
utilizzati, cosa che porta ad un pieno sfruttamento della rete, con il conseguente guadagno per i
provider che possono servire più utenza a parità di risorse. Inoltre il TE consente l’allocazione delle
risorse trasmissive per un aggregato di flussi, rendendo possibile lo sviluppo di meccanismi di QoS
end-to-end.
Fondazione Ugo Bordoni © 2007 – Tutti i diritti riservati
http:// www.fub.it
email: [email protected]
Figura 9: Rete MPLS
Lo sviluppo del TE ha importanti implicazioni per le procedure di routing. Nell’architettura IP
tradizionale la selezione del percorso per l’instradamento del traffico viene effettuata minimizzando
una determinata metrica, rappresentata ad esempio dal numero di nodi attraversati o dalla somma di
termini di costo assegnati staticamente ai link. La conseguenza di ciò è uno sbilanciamento del
traffico che viene instradato per la maggior parte su percorsi preferenziali risultando spesso soggetti
a congestione. In questo contesto poco flessibile mancano le premesse per poter sviluppare il TE.
MPLS supera i limiti dell’architettura tradizionale supportando un nuovo tipo di routing, detto
Constraint-based Routing (CR). L’idea alla base di questa innovazione sta nel fatto che per avere
un routing efficiente bisogna instradare il traffico lungo percorsi a costo minimo, rispettando
contemporaneamente determinati vincoli (constraints) sullo sfruttamento delle risorse di rete. Per
poter effettuare il CR sono necessarie funzionalità aggiuntive nella rete, tra le quali la presenza di
protocolli di routing opportunamente estesi (come ad esempio OSPF-TE o ISIS-TE) per portare le
informazioni relative al TE. Servono poi algoritmi per il calcolo dei percorsi che rispettino i vincoli,
ed un protocollo per l’allocazione delle risorse esteso per il TE; il più famoso è senz’altro RSVP-TE
(ReSerVation Protocol with Tunneling Extension), che è molto utilizzato per la distribuzione dei
label nelle reti che implementano il traffic engineering e la QoS.
Fondazione Ugo Bordoni © 2007 – Tutti i diritti riservati
http:// www.fub.it
email: [email protected]
2.3
Implementazione della QoS DiffServ su MPLS
L ‘architettura MPLS grazie ai protocolli di routing estesi per fornire TE può offrire un ambiente
connection-oriented, necessario per l’implementazione della QoS, garantendo risorse trasmissive ad
aggregati di traffico ma non discriminando i pacchetti nel trattamento ad essi riservato nei nodi.
L’architettura DiffServ, invece, permette la classificazione dei pacchetti in BA e il loro trattamento
diversificato rappresentato dai PHB. L’integrazione delle due architetture porta quindi allo sviluppo
di una meccanismo per gestire in modo completo la QoS.
Affinché MPLS possa supportare DiffServ, è necessario che gli LSR riescano a distinguere i vari
pacchetti in base al loro DSCP per inoltrarli secondo il PHB corrispondente. Sorge allora un
problema in quanto gli LSR si basano esclusivamente sulla label dello shim header MPLS per il
forwarding dei pacchetti, e non esaminano l’header IP. Le soluzioni che sono state proposte sono
due:
- E-LSP ( Experimental bit inferred LSP ) : Viene utilizzato il campo EXP dello shim header
come sostituto del campo DSCP per portare l’informazione sul DSCP all’interno del dominio
MPLS. L’inconveniente di questo approccio consiste nella dimensione del campo EXP, di soli tre
bit contro i sei del campo DSCP: in questo modo si possono supportare al massimo otto diversi
DSCP e quindi otto diversi PHB. Nel caso di una rete nella quale siano effettivamente implementati
o richiesti al massimo otto PHB, le funzioni DiffServ possono essere esplicate semplicemente
leggendo negli LSR il valore del campo Exp ed assegnando di conseguenza i pacchetti al corretto
BA. Questo metodo ha il pregio di essere semplice e non richiedere alcuna segnalazione di controllo
aggiuntiva.
Figura 10: I bit del campo TOS o i primi 3 bit del campo DSCP sono copiati nel campo Exp ai bordi della rete.
Fondazione Ugo Bordoni © 2007 – Tutti i diritti riservati
http:// www.fub.it
email: [email protected]
- L-LSP ( Label inferred LSP ) : La seconda soluzione proposta è utile qualora si debbano
trattare più di otto PHB. In tal caso il campo Exp non è più sufficiente, e lo shim header necessita di
essere in qualche modo rivisitato per consentire il trasporto dell’informazione sul DSCP. Si è deciso
di incrementare il significato del campo label, che deve indicare sia l’appartenenza ad una certa
FEC che l’appartenenza ad un certo BA; il campo Exp viene in questo caso utilizzato per esprimere
il valore della drop precedence, in modo da trattare i pacchetti secondo l’opportuno PHB. Parlando
ad esempio della categoria di PHB AF, nella label si troverebbe l’informazione sullo scheduling e
quindi riguardo alla coda sulla quale instradare il pacchetto; nel campo Exp si troverebbe il valore
(tra i tre possibili per ogni classe di scheduling di AF) della drop precedence.
Figura 11: Il PHB è indicato dal valore della label mentre la drop precedence dal valore del campo Exp.
E’ necessario far confluire i pacchetti del medesimo BA in un L-LSP comune, poiché sono destinati
tutti alla stessa coda: un L-LSP può trasportare una sola classe di servizio. Questo modo di
procedere consente di avere quanti PHB si vogliano, a spese di una complicazione nella
componente di controllo MPLS. Infatti è necessario estendere i protocolli per la distribuzione dei
binding tra label e FEC, che adesso devono includere anche il binding tra label e PHB. La
distribuzione deve essere effettuata al momento della creazione di un L-LSP.
Le due alternative per gli LSP con supporto di DiffServ non sono mutuamente esclusive e possono
coesistere non solo a livello di dominio MPLS ma anche a livello di un singolo link.
Fondazione Ugo Bordoni © 2007 – Tutti i diritti riservati
http:// www.fub.it
email: [email protected]