ROUTING SU UNA RETE ATM
Come abbiamo visto le celle ATM devono essere instradate dalla loro sorgente verso la loro destinazione e la parte nobile di questo lavoro è ovviamente fatta nei link tra gli switch per cui il protocollo NNI già descritto sommariamente, viene adesso sviluppato perchè sia chiaro che esso sta ad una rete ATM come OSPF sta ad una "rete" (anche se non sono allo stesso livello di astrazione) come Internet.
La parte più interessante è il routing su reti ATM "private" (di cui si occupa ATMForum) poiché l'uso e quindi l'instradamento di ATM su reti di operatori pubblici (di cui si occupa ITU-T) riveste minor importanza per il fatto che con il sistema E.164 la segnalazione e l'instradamento sono simili a tecniche usate per la fonia classica (es. ISDN).
ATMForum ha proposto un protocollo denominato "Private NNI" (P-NNI). P-NNI e composto di due parti complementari.
La prima consiste di un protocollo di segnalazione "NNI" all'interno della rete a partire dall'interfaccia UNI del chiamante e verso la UNI del ricevente. Poiché anche il protocollo UNI ha la sua segnalazione essa viene mappata da UNI a NNI in partenza e rimappata all'arrivo sull'altra UNI (quella di destinazione).
Il protocollo P-NNI opera tra "switch" ATM che possono essere "reali" o "virtuali" ma operanti ai fini del instradamento come un unica entità (ad esempio se una rete ATM usa al suo interno un protocollo proprietario e solo per comunicare con l'esterno il P-NNI). I collegamenti su cui opera possono essere reali o virtuali (ad esempio se due siti sono connessi attraverso un virtual path, le connessioni inclusa quindi quella P-NNI di segnalazione, viaggiano tra i siti in maniera trasparente per cui e come se i due siti fossero adiacenti dal punto di vista logico)
L'attuale segnalazione P-NNI è un estensione di quella UNI con campi aggiuntivi quali il DTL (Designated Transit List) ovvero l`elenco dei siti che la connessione attraversa.
Ma la parte più importante del P-NNI e ovviamente la sua procedura di routing. Definita come "virtual circuit routing protocol". E` da notare che, pur essendo ATM una rete connection oriented, nella fase di instaurazione della connessione, non essendo questa ancora instaurata, la segnalazione segue un processo di routing essenzialmente "connectionless" per cui molto simile ad altri (usati ad esempio per IP) e di questi sfrutta alcuni concetti. Comunque il P-NNI e molto più complesso per due motivi:
- la necessità di poter scalare questa procedura da reti LAN a WAN
- la presenza del QoS che porta ad un "QoS routing" ovvero instradamenti diversi a seconda della qualità di servizio richiesta
Sviluppiamo di seguito questi due punti
Supporto al QoS
Uno dei grandi vantaggi di una rete ATM rispetto ad un altro tipo di rete risiede nella possibilità di garantire una certa qualità di servizio. Un host che intende instaurare una connessione richiede una certa QoS e se possibile essa gli viene garantita altrimenti, in fase di instaurazione la rete può contrattare la QoS con l'host oppure può nel peggiore dei casi rifiutare la connessione.
Per garantire la QoS, ogni switch ATM implementa il CAC. In base ai parametri che l'host fornisce alla rete, viene stabilito se la connessione richiesta può danneggiare la QoS di connessioni già in atto; viceversa se non si registra alcuna violazione lo switch da il suo consenso alla connessione.
Ma l'aspetto locale di questo problema non é sufficiente alla risoluzione del QoS globale in quanto di solito vi sono più percorsi per arrivare nel medesimo luogo e lungo ciascun percorso tutti gli switch devono accettare la connessione.
Il P-NNI usa una tecnica di "flooding" ovvero tutti i nodi si scambiano continuamente informazione sullo stato della rete e sulle risorse disponibili mediante pacchetti denominati P-NNI Topology State Packet PTSP.
I parametri che viaggiano sui pacchetti PTSP sono di due tipi:
- attributi non-additivi rispetto ai link
- attributi additivi rispetto ai link
Un non additivo é ad esempio l'informazione che un particolare nodo ha fallito la richiesta di QoS mentre un parametro additivo è una grandezza come il delay introdotto nella connessione sino a quel nodo.
Vediamo adesso come questa informazione viene usata.
Per operare un instradamento vi sono fondamentalmente due tecniche (scartiamo la presenza di un instradamento centralizzato perché le dimensioni di una rete ATM ed il notevole numero di connessioni richieste renderebbero impossibile la gestione di un router centralizzato):
- Instradamento passo-passo (Hop-by-Hop routing))
- Instradamento di sorgente (Source routing)
La tecnica Hop-by-Hop é usata per l'instradamento di pacchetti IP ed é buona per reti connectionless come appunto le reti viste dal TCP/IP. Peró in questo modo non si riesce bene a valutare dove instradare per avere una certa QoS ed ogni nodo dovrebbe aver visione del intera rete per valutare il next-hop per cui il P-NNI usa la tecnica di source routing.
Comunque anche in tecniche source routed il primo nodo deve avere una visione globale della rete, peró qui il P-NNI adotta una strategia che facilita il tutto.
Le informazioni ricevute dallo scambio di PTSP sono sufficienti per creare un path nella rete, ma é impensabile che ogni nodo abbia una visione esatta ed istantanea della rete, per due motivi. Innanzitutto la mole di dati é troppo vasta inoltre per il fatto che le informazioni non arrivano con continuità e non istantaneamente, la visione che ogni nodo ha della rete é ovviamente approssimata. l'informazione che il nodo ha é approssimata e ciò genera perdita di informazione preziosa per l instradamento inoltre é bene ricordare che gli algoritmi di CAC non sono standard ma viene lasciata ampia libertà alla manifatturiera. Il P-NNI cerca di ovviare a questi limiti definendo una procedura detta di Generic CAC. Il GCAC é una funzione standard che il nodo di origine opera simulando sia lo stato di un nodo che l'algoritmo di CAC sul nodo del percorso in esame. Quindi esegue un algoritmo di branch & bound per trovare il percorso migliore. Una volta trovato costruisce una DTL (designated transit list) e spedisce un pacchetto di connection setup al primo switch nella DTL.
La connessione peró deve ancora essere messa alla prova per cui mentre il pacchetto con la richiesta viaggia per la rete, ogni nodo opera il vero CAC con il vero stato. Questo controllo può andare a buon fine ma può anche fallire per cui il P-NNI adotta il concetto di crankback
Il concetto di crankback risiede nel far tornare la connessione indietro ad un nodo lungo il path, e che finora aveva passato il controllo del CAC (può essere quello immediatamente precedente ma non é detto) e fargli rieseguire il GCAC sperando che la visione che esso ha della rete sia più corretta in quanto più vicino al luogo dei problemi.
La generazione degli instradamenti nel source routing deve tener conto di molti fattori nella metrica che "pesa" la bontà nella scelta di un link piuttosto che di un altro. Tecniche come Dijkstra non sempre sono applicabili in quanto le metriche non sono sempre additive. Tecniche euristiche possono venir usate egregiamente (ad esempio algoritmi genetici, taboo search o simulated annealing) in congiunzione con tecniche esatte (es. branch & bound).
Scalabilità e raggiungibilità
Un altro obbiettivo del P-NNI é il suo utilizzo sia in piccole rei che nelle WAN. é da notare che questo obbiettivo di scalabilita` é abbastanza innovativo rispetto a protocolli di routing oggi usati ad esempio in Internet dove nella core network si usano tecniche come l'OSPF mentre a livello locale si usano tecniche come il BGP. Non é obbiettivo da poco trovare un protocollo scalabile sino a questo punto.
Il punto fondamentale per raggiungere la scalabilita` é la presenza di una rete gerarchica che scambi informazioni di raggiungibilità tra i livelli diversi della gerarchia. Il P-NNI usando il formato di indirizzi NSAP ha a disposizione un numero elevato di livelli (105 dovuti ad alcuni del HO-DSP) .
Per il supporto a questo concetto il P-NNI definisce un modello della rete valido per ogni livello gerarchico e descrive come più nodi di un livello possano essere mappati in un unico nodo del livello superiore nonché il formato dei dati scambiati tra i livelli.
Ogni livello consiste in un insieme di nodi "logici" interconnessi a sua volta da link "logici". Al livello più basso essi sono i nodi ed link fisici che supportano il P-NNI oppure intere reti che usano il P-NNI solo esternamente. A questo livello ogni "switch" ha un unico indirizzo NSAP.
Nodi di uno stesso livello possono essere raggruppati in insiemi detti peer group. Un peer group é un insieme di nodi che hanno un identica visione della rete nonché conoscono le informazioni esatte l'uno degli altri ovvero sono "vicini" ma non necessariamente dal punto di vista geografico bensì le informazioni di PTSP, tra di loro, non introducono astrazione e quindi perdita di informazione. L'estensione di un peer group non ha limite se non nel fatto che le informazione di PTSP aumentano per cui sono considerazioni sulla politica di amministrazione nonché sulla dimensione dei data base che limitano lo sviluppo di un peer group.
Ogni peer group viene aggregato in un nodo di un livello superiore (Logical Group Node LGN) il quale a sua volta fa parte del peer group "genitore" e si comporta nel suo gruppo nello stesso modo di un nodo del livello inferiore. I peer group di ogni livello sono caratterizzati da un prefisso di un indirizzo ATM (analogamente all'indirizzo di sottorete usato in IP). Gli indirizzi di livello superiore sono più corti ed a partire da questi indirizzi si può risalire agli indirizzi del livello inferiore e poi giù sino al livello fisico ed agli NSAP. Questo incapsulamento produce una facilitazione nel routing e nel interscambio di informazioni sulla rete.
Ogni peer group "elegge" un nodo logico denominato Peer Group Leader (PGL) il quale ha un unico indirizzo ATM per ogni livello a cui appartiene in quanto di solito un PGL di livello superiore é situato in uno switch che fa il PGL anche per il peer group rappresentato dal LGN che fa il PGL nel livello superiore.
I PGL di ogni livello hanno la responsabilità di formulare e scambiare i pacchetti PTSP con i nodi del loro peer group e con i nodi del parent peer group ai fini di scambiarsi informazioni sullo stato della rete dal loro punto di vista ed informazioni di raggiungibilità .Inoltre informazioni provenienti dal parent peer group vengono ridistribuite all'interno del child peer group sempre tramite il PGL.
E importante notare come l'informazione scambiata venga approssimata quando passa ad un peer group superiore mentre ovviamente non può venire ricostruita nel passaggio verso livelli inferiori essendo il processo di approssimazione sullo stato della rete un processo distruttivo.
I link (reali o virtuali) di un peer group si distinguono in "interni" al peer group ed "esterni" i quali connettono dei nodi sul bordo del peer group con nodi di altri peer group dello stesso livello gerarchico. Questi link sono quelli che sono considerati interni al livello superiore.
Una volta che un nodo ha raccolto le informazioni (seppur sommarie) sullo stato della rete, può usare algoritmi come Dijkstra per determinare uno o più percorsi possibili con una determinata QoS, sempre sfruttando la visione gerarchica della rete.
Se la connessione esce da un peer group essa deve passare da un nodo del bordo. Poiché il nodo di origine ha solo una visione aggregata esso non può nella DTL designare l'esatto percorso ma esso si fa aiutare dai nodi del bordo. Il nodo origine specifica solo sommariamente quali peer group (sottoreti) la connessione deve attraversare mentre i campi con gli indirizzi esatti degli switch vengono riempiti dai nodi sul bordo del peer group che, per costruzione del protocollo, hanno una visione più accurata della rete. Per cui non é un vero source routing bensì un "source & border node routing". Adesso possiamo capire meglio il cranckback . Esso viene fatto con lo stesso concetto prima descritto ma adesso si può tornare indietro solo sul nodo originale della connessione oppure su di un border node che la connessione ha attraversato.
Mentre questi concetti favoriscono la scalabilità del P-NNI vanno a discapito della QoS stimabile da parte del nodo di origine di una connessione poiché come abbiamo ripetuto più volte l'aggregazione della informazione distrugge una parte (necessaria) di essa.
Per ovviare in parte a questo problema i nodi logici mano a mano che crescono di livello vengono descritti con un numero crescente é più accurato di parametri quindi divengono nodi "complessi" in quanto simulano il comportamento di un intera rete.
Interconnessione di reti private con reti pubbliche
L'interconnessione di una rete privata con la rete pubblica é qualcosa di non completamente specificato.
Le reti pubbliche non sono, di solito, ATM native poiché sinora c' é stata carenza di standardizzazione da parte di ITU-T che é il referente naturale degli operatori telefonici. Tuttora tecniche come il Frame Relay vengono usate per supportare il traffico ATM. Di conseguenza, tra reti private e pubbliche non si può adottare un interfaccia NNI ma, come abbiamo detto, si usano interfacce denominate Public UNI poiché la rete pubblica vede la rete privata come un unico cliente. Questo porta alla carenza nello scambio di segnalazione tra privato e pubblico e quindi alla impossibilita di instaurare uno Switched Virtual Circuit end-to-end tra due utenti privati attraverso la rete pubblica.
Per risolvere questo problema di comunicazione attraverso la rete pubblica si può ovviare con una semplice tecnica denominata Permanent Virtual Path Tunnelling (PVP) dove un virtual path trasporta le celle attraverso la rete pubblica in maniera trasparente; le due reti private é come se fossero adiacenti per cui si possono instaurare SVC con segnalazione P-NNI che non viene processata dalla rete pubblica.
Ma comunque questa tecnica non può servire per tutti i casi in quanto l'operazione di instaurazione di un PVP é manuale, per cui é necessario far dialogare il P-NNI con il Public UNI.
I problemi da risolvere sono:
- come fanno le reti private ad ottenere informazioni sulla raggiungibilità di un host attraverso la rete pubblica ?
- come si possono trasportare gli indirizzi NSAP della rete da raggiungere attraverso la rete pubblica ?
Per il primo si é pensato ad una variante del border routing di P-NNI in cui tutta la rete pubblica viene vista come un peer group della gerarchia P-NNI. Per il secondo problema si é pensato di istituire un archivio gestito dall'operatore pubblico che effettui il mapping tra indirizzi E.164 ed NSAP attraverso l interfaccia Public UNI.
Comunque il problema dell'interconnessione è ancora da risolvere in tutti i suoi aspetti.
Firewalls
Un problema ostico e tuttora irrisolto é l'introduzione dei firewalls. Come sappiamo un firewalls é costituito sommariamente da due router che filtrano opportunamente i pacchetti più un bastion host (ovvero un computer ben protetto) il quale esegue le connessioni che possono passare. Il problema e che tutto ciò é relativamente semplice da fare in una rete connectionless come IP in quanto i pacchetti viaggiando in maniera indipendente possono essere filtrati molto semplicemente al livello IP.
Non é chiaro invece come si può fare in una rete come ATM che, essendo connection oriented, durante la fase di connection setup non permette il processing delle celle da parte di nessun dispositivo intermedio in quanto non é il terminatore della connessione ATM . Se operassimo un processing intermedio i nodi non sarebbero switch ATM ma normali router (più intelligenti ma anche più costosi e più lenti).
Si stanno valutando numerose soluzioni ma il problema é introdurle senza snaturare il concetto di "connessione" proprio di ATM (ed invece assente in IP).