Documento zippato

Documento PDF

Per maggiori informazioni consulta gli RFC.. 2

Gateway e protocolli di instradamento.. 2

Gateway, Bridge e Routers. 2

Protocolli di gateway. 4

Routing Daemons. 6

Instradamento. 8

Fewest Hops Routing. 9

Instradamento Type of Service. 11

L’aggiornamento delle informazioni di instradamento. 11

I Protocolli IGP ed EGP Gateway. 13

Protocollo Gateway a Gateway (GGP) 14

External Gateway Protocol (EGP) 18

EGP e i vicini 18

Messaggi EGP. 19

Neighbor Acquisition Message. 23

Neighbor Reachability Message. 24

Poll Messages. 24

Update Messages. 24

Error Message. 26

Messaggi EGP to GGP. 26

Variabili e timer di stato EGP. 28

Interior Gateway Protocol (IGP) 29

The Routing Information Protocol (RIP) 29

Il protocollo Hello. 31

The Open Shortest Path First (OSPF) Protocol 32

Risorse internet su OSPF. 32

Pacchetti OSPF. 34

Pacchetti Hello. 37

 

Per maggiori informazioni consulta gli RFC

Gateway e protocolli di instradamento

TCP/IP funziona perfettamente in un network locale, ma il suo sviluppo fu spinto dall’internetworking, così sembra logico che TCP/IP abbia un’architettura che lavora meglio con le operazioni di internetworking. Guardiamo ora al modo in cui i gateway trasferiscono informazioni di instradamento tra di loro.

I metodi di instradamento usati per inviare un messaggio dall’origine alla destinazione sono importanti, ma il metodo mediante il quale le informazioni di instradamento sono trasferite dipende dal ruolo dei gateway della rete. Vi sono protocolli speciali sviluppati specificatamente per differenti tipi di gateway, ciascuno dei quali lavora con TCP.

Gateway, Bridge e Routers

Per trasmettere messaggi attraverso la rete, il software dello strato IP di una macchina confronta l’indirizzo di destinazione del messaggio (contenuto nella Protocol Data unit) all’indirizzo della macchina locale. Se il messaggio non è per la macchina locale, esso viene passato alla prossima macchina. Spostare messaggi lungo una piccola rete locale è piuttosto facile, ma ampie reti e internet aggiungono complessità, richiedendo gateway, bridge e router che tentano di stabilire il miglior metodo per muovere il messaggio verso la sua destinazione,.

Un gateway è un apparato che effettua operazioni di instradamento, usualmente come un apparecchio stand-alone, che inoltre effettua traduzioni di protocollo da una rete all’altra.

Un bridge è un apparecchio che connette due o più reti che usano lo stesso protocollo.

Un router è un nodo che manda in avanti datagrammi lungo la rete.

La capacità di convertire protocolli di gateway è importante (altrimenti il gateway non sarebbe nulla di diverso da un bridge). La conversione di protocolli usualmente ha luogo negli strati più bassi, talvolta includendo il livello di trasporto. La conversione può avvenire in diverse forme, come quando ci si muove dal formato di una LAN a Ethernet (nel qual caso il formato del pacchetto viene  cambiato) o da una convenzione proprietaria dei file ad un’altra (nel qual caso vengono modificate le specificazioni del file).

I bridge agiscono come collegamenti tra reti, che hanno spesso un bridge ad ogni capo di una linea di comunicazione dedicata o attraverso un sistema a pacchetti come Internet. Potrebbe esservi una conversione applicata fra bridge per incrementare la velocità di trasmissione. Ciò richiede che entrambi gli estremi della connessione comprendano un protocollo comune.

I router operano a livello di rete , inviando pacchetti verso la loro destinazione. Talvolta un cambiamento di protocollo può essere realizzato da un router che ha diverse opzioni di consegna disponibili come Ethernet o linee seriali.

Occasionalmente si può incontrare il termine brouter, una contrazione di bridge e router. Un brouter unisce le funzioni di entrambi, sebbene talvolta non tutte le funzioni vengono implementate. Il termine brouter è spesso applicato agli apparecchi che effettuano alcune o tutte le funzioni dei bridge e dei router.

Un termine di uso comune quando si ha a che fare con gli instradamenti è la commutazione  dei pacchetti. Una rete a commutazione  di pacchetti è una rete in cui tutti i trasferimenti sono basati su autonomi pacchetti di dati (come i datagrammi TCP/IP). Vi sono anche sistemi a commutazione di messaggi (completi messaggi autonomi) o a commutazione di linea, ma essi sono raramente utilizzati con TCP/IP. Le reti a commutazione di pacchetto tendono ad essere più veloci rispetto alle reti a commutazione di messaggio, ma sono considerevolmente più complesse.

Protocolli di gateway

I protocolli di gateway sono utilizzati per scambiare informazioni con altri gateway in modo veloce ed affidabile. Utilizzando protocolli di gateway si è manifestato un incremento dei tempi di trasmissione su ampie reti, sebbene vi sia un considerevole sostegno all’idea di avere soltanto un protocollo lungo l’intera Internet (che eliminerebbe i protocolli di gateway in favore di TCP/I).

Internet fornisce due tipi di gateway: core e not-core. Tutti i gateway di tipo core sono amministrati dal Internet Network Operations Center (INOC). I gateway not-core non sono amministrati da questa autorità centrale ma da gruppi esterni alla gerarchia internet (che potrebbero essere connessi ad Internet ma amministrano le loro macchine). Tipicamente corporation ed enti educativi usano gateway non core.

L’origine dei gateway core si ebbe con ARPANET, dove ogni nodo era sotto il controllo dell’agenzia governativa. Lo spostamento verso Internet  e la conseguente proliferazione di gateway richiese l’implementazione del protocollo GGP (Gateway to gateway Protocol), usato fra gateway di tipo core. Il GGP era fondamentalmente utilizzato per diffondere informazioni circa i gateway non core collegati ad ogni gateway di tipo core, permettendo la realizzazione di tabelle di routing.

Con la crescita di Internet, divenne impossibile per ogni gateway tenere una mappa dell’intera rete. Ciò venne risolto facendo in modo che ogni gateway trattasse soltanto una specifica sezione dell’internet, facendo affidamento su gateway vicini per saperne di più sulle reti collegate ad essi. Un problema che si aveva frequentemente era la mancanza di informazioni per decisioni complete di instradamento, così venivano utilizzati instradamenti di default.

Precedentemente abbiamo introdotto il concetto di sistema autonomo. Un sistema autonomo è un sistema in cui la struttura della rete cui esso è collegato è invisibile al resto dell’internet. Usualmente un gateway porta alla rete, cosicché tutto il traffico per quella rete passa attraverso il gateway, che nasconde la struttura interna della rete locale al resto di internet.

Se la rete locale ha più di un gateway ed essi possono dialogare fra di loro, essi sono considerati vicini interni (il termine vicini interni è spesso utilizzato per tutte le macchine della rete locale, non solo per i gateway). Se i gateway appartengono a sistemi autonomi differenti, essi sono detti vicini esterni . così quando sono richiesti instradamenti di default è compito dei gateway esterni di instradare messaggi fra sistemi autonomi. I gateway interni sono utilizzati per trasferire messaggi all’interno di un sistema autonomo.

All’interno di una rete, il metodo di trasferire informazioni di instradamento tra gateway interni è usualmente il Routing Information Protocol (RIP) o il meno comune protocollo Hello, i quali sono entrambi Interior Gateway Protocol (IGP). Questi protocolli sono stati disegnati specificamente per gateway interni. Su Internet, messaggi tra due gateway esterni avvengono attraverso Exterior Gateway Protocol (EGP). I protocolli RIP, HELLO e EGP si fondano su frequenti scambi di informazioni tra gateway per aggiornare tabelle di instradamento.

Perché non usare un protocollo GGP per tutte le comunicazioni di internetwork abbandonando gli EGP? La risposta consiste nel fatto che i core gateway che usano protocolli GGP sono a conoscenza di tutti gli altri core gateway che vi sono nell’internetwork. Ciò semplifica la loro attività e fornisce tabelle di instradamento complete. Comunque, i core gateway usualmente portano in molti network complessi costituiti a più reti autonome. , la maggior parte dei quali non sono note ai core gateway. Comunque un gateway esterno deve conoscere tutto delle reti direttamente collegate ad esso ma non di tutte le reti dell’intero internetwork, cosicché le tabelle di instradamento e gli algoritmi di instradamento per gateway di tipo core e di tipo non core sono differenti. Ciò significa inoltre che i messaggi possono avere formati differenti, poiché le informazioni di routing per un gateway non core hanno alcune connessioni che sono nascoste agli altri gateway.

E’ possibile per un sistema autonomo ampio di essere composto da diverse sottoreti o aree, ciascuna delle quali comunica con le altre attraverso un IGP. Ciascuna sottorete o area ha un gateway designato, chiamato gateway di confine [border gateway] o instradatore di confine [border router] per indicare che esso è interno ad un’area. I gateway border comunicano fra di loro usando protocolli IGP. Un termine comunemente usato è boundary gateway , che è equivalente a gateway esterno o ad un percorso verso un altro network autonomo. Ciò è illustrato nella figura seguente, che mostra tre sottoreti o aree che comunicano fra di loro attraverso boundary gateway o router che usano IGP, e due gateway esterni (anch0essi chiamati boundary gateway ) che comunicano con il resto dell’internet usando EGP.

Routing Daemons

Per gestire le tabelle di instradamento, la maggior parte dei sistemi Unix usa un daemon chiamato router. Alcuni sistemi usano un daemon detto gated. Entrambi possono scambiare messaggi RIP con altre macchine, aggiornando le loro tabelle di instradamento se necessario. I programmi di tipo gated possono anche gestire messaggi di tipo EGP o HELLO, aggiornando le tabelle per l’internetwork. Sia i router che i gated possono essere gestiti dall’amministratore di sistema per selezionare instradamenti favorevoli , o per etichettare un instradamento come non affidabile.

Le informazioni di configurazione per i gate e i router sono normalmente immagazzinate come file chiamati gated.cfg, gated.conf,o gated.cf. Alcuni sistemi specificano i file di informazione gated per ogni protocollo, risultanti nei file gated.egp, gated.hello,e gated.rip. Un file di configurazione di esempio per EGP usato dal processo gated è mostrato qui di seguito.

#     @(#)gated.egp 4.1 Lachman System V STREAMS TCP  source
 
#   sample EGP config file
 
traceoptions general kernel icmp egp protocol ;
 
autonomoussystem 519 ;
 
rip no;
 
egp yes {
 
     group ASin 519 {
 
          neighbor  128.212.64.1 ;
 
     } ;
 
} ;
 
static {
 
     default gateway 128.212.64.1 pref 100 ;
 
} ;
 
propagate proto egp as 519 {
 
     proto rip gateway 128.212.64.1 {
 
          announce 128.212 metric 2 ;
 
     } ;
 
     proto direct {
 
          announce 128.212 metric 2 ;
 
     } ;
 
} ;
 
propagate proto rip {
 
     proto default {
 
          announce 0.0.0.0 metric 1 ;
 
     } ;
 
     proto rip {
 
          noannounce all ;
 
     } ;
 

} ;

il codice precedente mostra un certo numero di dettagli di configurazione. Esso inizia con un certo numero di opzioni e lo switch che attiva l’EGP e setta l’indirizzo IP. Ciò è seguito a codice che definisce il modo in cui si comporta l’EGP. La maggior parte dei dettagli sono di scarso interesse e sono raramente modificati da un utente. Invece le routine di configurazione gestiscono i contenuti di questo file.

L’amministratore di sistema UNIX ha inoltre un programma chiamato route che abilita registrazioni dirette delle informazioni delle tabelle di routing.

E’ diventata pratica comune consentire un indirizzo di default 0.0.0.0 che fa riferimento ad un gateway sulla rete che dovrebbe essere capace di risolvere un indirizzo sconosciuto. (ciò è incluso nel precedente esempio di file di configurazione come proto default). L’instradamento di default è usato quando la macchina locale non può risolvere l’indirizzo in maniera appropriata. Poiché le tabelle di instradamento su un gateway sono usualmente più complete di quelle su una macchina locale , ciò aiuta a mandare pacchetti verso la destinazione prevista. Se il gateway di indirizzamento di default non può risolvere l’indirizzo, un messaggio di errore Internet Message Control Protocol (IMCP) è restituito al mittente.

Instradamento

L’instradamento fa riferimento al trasferimento di pacchetti da una macchina all’altra. Ogni macchina cui giunge il pacchetto analizza il contenuto dell’header del pacchetto e decide la sua azione basata sulle informazioni contenute nell’header. Se l’indirizzo di destinazione del pacchetto coincide con l’indirizzo della macchina, il pacchetto dovrebbe essere trattenuto ed elaborato dai protocolli di livello superiore. Se l’indirizzo di destinazione non coincide con l’indirizzo della macchina , il pacchetto è inviato lungo la rete. Potrebbe essere instradato verso la macchina di destinazione o verso un gateway o un bridge se il pacchetto deve lasciare la rete locale.

L’instradamento da un contributo primario alla complessità delle reti a commutazione di pacchetto. E’ necessario per avere un percorso ottimale fra macchina sorgente e macchina destinazione, così come per gestire problemi come sovraccarichi o la perdita di una connessione. I dettagli di instradamento sono contenuti nelle tabelle di instradamento, e diversi algoritmi di instradamento lavorano con queste tabelle per sviluppare un percorso ottimale.

La creazione di una tabella di instradamento e la sua gestione con registrazioni valide sono aspetti importanti di un protocollo. Di seguito abbiamo alcuni metodi comuni per costruire una tabella di instradamento:

*   Viene creata una tabella fissa con una mappa della rete, che deve essere modificata ogni volta che vi è un cambiamento fisico nella rete

*   Si usa una tabella dinamica che valuta i carichi di traffico e messaggi da altri nodi per raffinare una tabella interna

*   Una tabella centrale di instradamento fissa viene caricata da un deposito centrale dai nodi della rete ad intervalli regolari o quando richiesto.

Ogni metodo ha  vantaggi e svantaggi. L’approccio con tabella fissa , sia localizzato su ogni nodo della rete sia scaricato ad intervalli regolari da una tabella gestita a livello centrale, non è flessibile e non può reagire velocemente a cambiamenti della topologia della rete. La tabella centrale è un’opzione migliore a quella di avere tabelle in ogni nodo poiché rende possibile per un amministratore gestire la singola tabella molto più facilmente.

La tabella dinamica è il meglio per reagire a cambiamenti, sebbene richieda un migliore controllo, sofware più complesso, e maggior traffico sulla rete. Comunque i vantaggi sono superiori agli svantaggi e una tabella dinamica è il metodo più usato su Internet.

Fewest Hops Routing

La maggior parte delle reti e dei gateway lavorano sull’assunto che la via più corta (in termini di macchine attraversate) sia il metodo migliore per instradare messaggi. Ogni macchina che viene attraversata da un messaggio è chiamata hop, cosicché questo metodo viene detto a minor numero di hop. Sebbene esperimenti abbiano dimostrato che questo metodo non sia necessariamente il più veloce (poiché non tiene conto della velocità di trasmissione fra le varie macchine ), è uno dei metodi più semplici da  implementare.

Per fornire questo tipo di instradamento, viene sviluppata una tabella delle distanze fra ogni coppia di macchine, o è disponibile un algoritmo per permettere di calcolare il numero di hop richiesti per raggiungere una macchina. Ciò viene mostrato usando l’esempio di rete di gateway mostrato in figura

e la corrispondente tabella delle distanze fra i vari gateway.

 

A

B

C

D

E

F

G

H

I

A

 

1

2

1

2

3

4

3

4

B

1

 

1

2

3

4

5

4

5

C

2

1

 

1

2

3

4

3

4

D

1

2

1

 

1

2

3

2

3

E

2

3

2

1

 

1

2

1

2

F

3

4

3

2

1

 

1

2

1

G

4

5

4

3

2

1

 

2

1

H

3

4

3

2

1

2

2

 

1

I

4

5

4

3

2

1

1

1

 

 

Quando un messaggio deve essere instradato usando l’approccio a minimo numero di hop, viene consultata la tabella delle distanze, e viene selezionato il percorso con il più basso numero di hop. Il messaggio è poi instradato al gateway più vicino al network di destinazione. Quando gateway intermedi ricevono il messaggio, eseguono lo stesso tipo di lookup è instradano il messaggi verso il prossimo gateway sul percorso.

Vi sono diversi problemi con l’approccio a minor numero di hop. Se le tabelle dei gateway attraverso i quali viaggia verso la sua destinazione il messaggio hanno informazioni di instradamento diverse, è concepibile che un messaggio che abbia lasciato la macchina sorgente possa finire per seguire un percorso più complicato a causa di tabelle differenti sui gateway intermedi. Il metodo a minor numero di hop inoltre non tiene in conto la velocità di trasmissione, avarie sulle linee, o altri fattori che potrebbero influenzare il tempo complessivo del viaggio verso la destinazione; esso è semplicemente legato alla più piccola distanza apparente, assumendo che tutte le connessioni siano identiche. Per tener conto di questi fattori occorre un altro metodo.

Instradamento Type of Service

Il tipo di instradamento dipende dai tipi di servizio di instradamento disponibili da gateway a gateway. Questo è chiamato instradamento type of service (Type of Service Routing o TOS). Esso è anche chiamato più formalmente Qualità of service dal modello OSI. Il TOS include considerazioni sulla velocità ed affidabilità delle connessioni, così come sulla sicurezza e su fattori specifici del percorso di instradamento.

Per effettuare un instradamento di tipo TOS, la maggior parte dei sistemi utilizza l’aggiornamento dinamico di tabelle che riflettono le condizioni di traffico e collegamento. Essi tengono in considerazione la lunghezza delle code ad ogni gateway, poiché il più veloce percorso teorico potrebbe non importare se il messaggio è bloccato in una coda. Questa informazione è ottenuta attraverso il frequente trasferimento di messaggi di stato tra gateway.

L’aggiornamento dinamico delle tabelle può avere uno svantaggio in quanto se esse sono aggiornate troppo frequentemente, un messaggio potrebbe circolare attraverso una sezione dell’internet senza un appropriato instradamento verso la sua destinazione, o procedere attraverso un percorso lungo e convoluto. Per questa ragione l’aggiornamento dinamico avviene ad intervalli regolari ma non troppo frequenti. La natura dinamica del TOS può talvolta fare in modo che frammenti dello stesso messaggio vengano instradati in modi diversi verso la destinazione. Ciò non importa, naturalmente, poiché la macchine ricevente riassembla i messaggi nell’ordine appropriato.

L’aggiornamento delle informazioni di instradamento

Un utile esempio dell’aggiornamento dinamico è utile a questo punto. Assumiamo che due reti autonome siano connesse l’un l’altra a due locazioni, come mostrato nella figura seguente, con connessioni ad altre reti in differenti locazioni.

La connessione A-C e la connessione B-D possono essere usate entrambe per l’instradamento fra le due reti, in dipendenza di quale sia il percorso ottimale. Il gateway C ha una copia delle tabelle del gateway A e viceversa. Anche i  gateway B e D hanno copie delle reciproche tabelle di instradamento. Queste copie son0 trasmesse ad intervalli cosicché i gateway possono mantenere una visione aggiornata delle connessioni disponibili attraverso l’altro gateway.

Supponiamo ora che un collegamento in uno dei network si interrompa per un guasto su una macchina o su una connessione, ad esempio quello fra il gateway C e il gateway X. Il gateway C verrebbe a conoscenza del problema ed aggi0ornerebbe le sue tabelle di instradamento per tener conto della rottura del collegamento, usualmente inserendo il più grande valore possibile per la lunghezza del percorso in corrispondenza di quel collegamento. Il gateway C trasferisce una copia della tabella di instradamento al gateway A.

Instradare un messaggio alla macchina Y sarebbe ora impossibile attraverso la connessione C-X. Comunque, poiché il gateway A riceve le informazioni di instradamento da C, e scambia le sue informazioni di instradamento dal gateway B, il quale effettua inoltre scambi di informazioni con il gateway D, ogni messaggio che passa attraverso sia D che B e diretto verso Y potrebbe essere reinstradato attraverso il gateway A, poi C e finalmente a Y. Un messaggio EGP tra B e D e A e C indicherebbe che il nuovo percorso costa meno del massimo valore assegnato al percorso che va attraverso il collegamento C-X (che è rotto) .

Messaggi EGP tra gateway sono inviati usualmente quando un problema di connessione esiste e l’informazione di instradamento è settata al suo valore massimo , o quando una connessione migliore alternativa è stata scoperta per una qualche ragione. Ciò può accadere per un aggiornamento da una tabella di instradamento di un gateway remoto , o per l’aggiunta di nuove connessioni, macchine o reti al sistema. Qualunque cosa accada, un messaggio EGP informa tutti i gateway connessi dei cambiamenti.

I Protocolli IGP ed EGP Gateway

I gateway hanno bisogno di sapere cosa accade al resto della rete per instradare i datagrammi in maniera appropriata ed efficiente. Ciò include non solo informazioni di instradamento ma anche le caratteristiche d3lle sotto reti. Per esempio se un gateway è particolarmente lento ma è l’unico sistema per accedere ad una sotto rete altri gateway possono adattare il traffico su misura per questa situazione.

Un messaggio GCP è usato per scambiare informazioni di instradamento fra apparecchiature. E’ importante non confondere informazioni di instradamento , che contengono indirizzi , topologia, e dettagli su ritardi nell’instradamento, con gli algoritmi usati per produrre le informazioni di instradamento. Usualmente gli algoritmi di instradamento sono fissati all’interno di un gateway e non vengono modificati. Naturalmente, se le informazioni di instradamento cambiano, l’algoritmo adatta i percorsi scelti per riflettere le nuove informazioni.

I GCP servono principalmente per le reti autonome ed autosufficienti. Un sistema autonomo usa gateway che sono collegati in un’unica ampia rete , come si potrebbe avere in una grande società. Due tipi di gateway debbono essere considerati in una rete autonoma. I gateway tra sottoreti più piccole aiutano a collegare i piccoli sistemi nella più ampia rete aziendale, ma i gateway all’interno di ogni sottorete sono usualmente sotto il controllo di un sistema. Questi gateway sono considerati autonomi perché le connessioni tra gateway sono costanti e raramente cambiano. Questi gateway comunicano attraverso un IGP.

Ampie reti d’interconnessione come Internet non sono statiche come una rete aziendale. I gateway possono cambiare costantemente mentre le sottoreti sussidiarie fanno cambiamenti, e i percorsi di collegamento fra i gateway sono anch’esse più soggette a cambiamenti. Per aziende ad ampia diffusione, potrebbero esservi gateway diffusi in una nazione o nel mondo intero che sono tutti parte della stessa rete aziendale ma comunicano attraverso Internet. Le comunicazioni tra questi gateway sono leggermente differenti rispetto al caso in cui essi sono fisicamente connessi fra loro. Questi gateway comunicano attraverso gli EGP.

Vi sono meno regole che governano gli IGP rispetto agli EGP semplicemente perché l’IGP può gestire applicazioni e protocolli personalizzate all’interno della sua rete locale. Quando l’Internet viene utilizzata per comunicazioni fra gateway, i messaggi devono conformarsi allo standard Internet. Inoltre, quando si connettono due sottoreti, è possibile mandare soltanto un messaggio al gateway della sottorete attraverso l’EGP, che può essere duplicato, modificato e propagato a tutti i gateway del sistema di internetworking utilizzando IGP.

Protocollo Gateway a Gateway (GGP)

IL protocollo GGP è usato per comunicazioni fra gateway di tipo core. Un recente miglioramento del protocollo, chiamato SPREAD, incomincia ad essere utilizzato ma non è ancora comune come il GGP.

Il GGP è un protocollo vettore-distanza, cioè i messaggi tendono a specificare una destinazione (vettore) e la distanza da quella destinazione. I protocolli vettore-distanza sono chiamati inoltre protocolli Bellman- Ford, dal nome dei ricercatori che per primi ne pubblicarono l’idea di fondo. Perché un protocollo vettore-distanza sia efficace un gateway deve avere informazioni complete su tutti i gateway della rete.

Un gateway stabilisce le sue connessioni ad altri gateway inviando messaggi, aspettando risposte, e poi costruendo una tabella. Questo è realizzato inizialmente quando un gateway viene installato e manca del tutto di informazioni di instradamento. Questo aspetto delle comunicazioni non è definito all’interno del GGP ma si appoggia su messaggi specifici della rete. Una volta che è stata definita la tabella iniziale, GGP viene utilizzato per tutti i messaggi.

La connettività con un altro gateway di Internet è determinata con il metodo detto K out of N. In questa procedura, un gateway manda un m3essaggio eco ad un altro gateway e attende una replica. Esso ripete questo messaggio ogni 15 secondi. In accordo con gli standard Internet, se il gateway non riceve tre (K) repliche su quattro (N) richieste, l’altro gateway è considerato in avaria ed i messaggi di instradamento non gli vengono inviati. Questo processo può essere ripetuto ad intervalli regolari.

Se un gateway diviene di nuovo attivo, gli standard internet richiedono che vengano riconosciuti due su quattro messaggi eco. Questo è chiamato metodo J su M, dove J è 2 e M è 4.I valori assegnati per J, K, M ed N possono essere cambiati su reti auton0me, ma lo standard definisce i valori  per l’uso su Internet.

Ogni messaggio tra gateway ha un numero di sequenza che si incrementa con ogni messaggio trasmesso. Ogni gateway traccia il suo proprio numero di sequenza per gli invii ad ogni altro gateway cui è connesso, così come i numeri di sequenza in ingresso provenienti da quel gateway. Essi sono non necessariamente gli stessi, poiché si potrebbero avere più messaggi in una direzione che in un’altra, sebbene ogni messaggio dovrebbe avere un riconoscimento o una replica di un qualche tipo.

I numeri di sequenza hanno un significato importante per i messaggi e non soltanto per il desiderio di mantenere un contatore incrementale del volume di traffico.

Quando un gateway riceve un messaggio da un altro gateway , esso confronta il numero di sequenza in quel messaggio con l’ultimo numero di sequenza ricevuto nella sua tabella interna. Se l’ultimo messaggio ha un numero di sequenza più alto rispetto a quello precedente, il gateway accetta il messaggio e aggiorna il suo numero di sequenza. Se il numero risulta più piccolo , il messaggio è considerato vecchio ed ignorato, e un messaggio di errore contenente il messaggio ricevuto viene rimandato indietro. Il processo è mostrato nella figura seguente.

Il gateway ricevente riscontra il messaggio ricevuto inviando un messaggio di ritorno che contiene il numero di sequenza del messaggio appena ricevuto. L’altro gateway confronta quel numero con il numero dell’ultimo messaggio che ha inviato , e se i numeri coincidono, il gateway riceve conferma che il messaggio è stato ricevuto in maniera corretta. Se i due numeri non coincidono, il gateway sa che vi è stato un errore e trasmette il messaggio di nuovo. Quando un messaggio viene ignorato dal gateway recipiente, il gateway trasmittente riceve un messaggio con il numero di sequenza del messaggio ignorato. Può determinare in tal modo quali messaggi sono stati saltati e rinviare i messaggi che necessitano di essere trasmessi.

Il formato del messaggio GGP è mostrato nella figura seguente.

dopo che esso è stato costruito viene incapsulato n un datagramma IP che include gli indirizzi del trasmettitore e del ricevitore. Il primo campo è il tipo del messaggio, che è settato al valore 12 corrispondente alle informazioni di routing. Il numero di sequenza è stato appena discusso e fornisce un contatore incrementale per ogni messaggio. Il campo Update è settato ad un valore 0 a meno che il gateway trasmittente voglia un aggiornamento dell’instradamento per l’indirizzo di destinazione fornito, nel qual caso il campo è settato al valore 1. il campo Number of Distances contiene il numero di gruppi di indirizzi contenuti nel messaggio corrente.

Per ogni gruppo di distanza nel messaggio , sono forniti un valore di distanza e il numero di reti che possono essere raggiunte a quella distanza, seguiti da tutte le identificazioni dell'indirizzo di rete. In accordo con lo standard GGP, non tutte le distanze necessitano di essere riportate, ma maggiore è il numero di informazioni riportato nel messaggio, e maggiore è l’utilità del messaggio per i gateway.

GGP non tratta con gli indirizzi IP specificatamente, cosicché la porzione dell’indirizzo relativa all’host non deve necessariamente essere inclusa nell’indirizzo, mentre l’indirizzo del network è sempre fornito. Ciò porta ad indirizzi di lunghezza diversa nel campo identificazione (8, 16, o 24 bit a seconda del tipo di indirizzo) .

Sono usati altri tre tipi di formati con i messaggi GGP, come mostra la figura seguente

il messaggio di riscontro usa il campo tipo per indicare se il messaggio è un risconto positivo (il campo tipo è settato a 2) o un riscontro negativo (il campo è settato a 10). Il numero di sequenza è usato per identificare il messaggio cui si riferisce il riscontro.

I formati echo request e echo reply sono scambiati fra gateway per informare di cambiamenti di stato e per assicurare che un gateway sia attivo. Un messaggio echo request ha il campo tipo settato al valore 8, mentre una echo reply ha il campo tipo settato a 0. poiché l’indirizzo del gateway mittente è incastonato nell’header IP, non viene duplicato nel messaggio GGP. I restanti 24 bit del messaggio non vengono utilizzati.

Il messaggio network interface status viene utilizzato da un gateway per assicurare che esso è capace di inviare e ricevere messaggi in maniera appropriata. Questo tipo di messaggi può essere inviato al gateway originante stesso, con il campo tipo settato a 9 e l’indirizzo IP nell’header settato all’indirizzo dell’interfaccia del network.

External Gateway Protocol (EGP)

Un EGP è utilizzato per trasferire informazioni fra gateway vicini di tipo non core . i gateway non core contengono dettagli completi circa i loro vicini immediati e le macchine ad essi collegate., ma mancano di informazioni circa il resto della rete. I gateway di tipo core sanno tutto di tutti gli altri gateway ma mancano informazioni circa le macchine che stanno dietro ad ogni gateway.

L’uso di EGP è normalmente ristretto ad informazioni all’interno del sistema autonomo del gateway. Ciò previene il passaggio di troppe informazioni attraverso la rete, specialmente quando la maggior parte delle informazioni che si riferiscono a sistemi esterni ed autonomi sono inutilizzabili da una altro gateway.

EGP e i vicini

Poiché l’EGP fu sviluppato per permettere a sistemi remoti di scambiare informazioni di instradamento e messaggi di stato , il protocollo è pesantemente basato su richieste e comandi seguiti da risposte. I quattro comandi EGP e le possibili risposte sono mostrati nella tabella seguente

Command Name

Command Description

Response Name

Response Description

Request

Request that a neighbor become a gateway

Confirm/Refuse

Agree or refuse the request

Cease

Request the termination of a neighbor

Cease-Ack

Agree to termination

Hello

Request confirmation of routing to neighbor (neighbor reachability)

IHU

Confirms the routing

Poll

Request that the neighbor provide network information (network reachability)

Update

Provides network information

 

Per comprendere la tabella in maniera appropriata , occorre comprendere il concetto di vicino in una rete di interconnessione. Dei gateway sono vicini se condividono la stessa sottorete. Essi possono essere gateway verso la stessa rete (come Internet)o lavorare con diverse reti esterne. Quando due di essi vogliono scambiarsi informazioni, essi devono prima stabilire comunicazioni tra di loro; i due gateway stano stanzialmente accettando di scambiarsi informazioni di instradamento. Questo processo viene chiamato neighbor acquisition.

Il concetto di vicino non significa che le due reti debbano essere necessariamente fisicamente prossime l’una all’altra. Esse sono connesse mediante gateway ma possono essere collocate in continenti diversi. Il termine vicino si riferisce alle connessioni esistenti non alla collocazione geografica.

Il processo con cui ridiventa vicini è formale, poiché un gateway potrebbe non volere diventare un vicino in quel particolare momento (per diverse ragioni ma sostanzialmente quando il gateway  occupato). Esso comincia con una Request , che è seguito o da un’accettazione (Confirm) o da un rifiuto (Refuse) dalla seconda macchina. Se i due gateway sono vicini, ciascuno dei due può rompere la relazione mediante il messaggio Cease.

Dopo che due gateway diventano vicini,  essi assicurano l’un l’altro di essere ancora in contatto inviando sporadicamente un messaggio di Hello, al quale il secondo gateway risponde con un messaggio IHU (I Heard You: ti ho sentito) appena possibile. Questi messaggi possono essere inviati in ogni momento. Con diversi gateway impegnati su una rete , il numero di messaggi di Hello può diventare apprezzabile . Questo processo prende il nome di raggiungibilità dei vicini (neighbor reachability).

L’altra coppia di messaggi EGP è la raggiungibilità della rete (network reachability), nel qual caso un gateway invia un messaggio di Poll e aspetta un messaggio Update in risposta. La risposta contiene una lista di reti che possono essere raggiunte attraverso quel gateway, con un numero rappresentante il numero di hop necessari per raggiungere quelle reti. Assemblando i messaggi Update dai differenti vicini, un gateway può decidere il miglior percorso per inviare un datagramma.

Infine, un messaggio di errore è restituito quando il gateway non può comprendere un messaggio EGP in ingresso.

Messaggi EGP

Il layout dei diversi messaggi usati da EGP è mostrato nella figura seguente

I campi hanno il seguente significato

*   Il campo Versione contiene il numero della versione del protocollo EGP della macchina mittente (la versione corrente è la 2)

*   Il campo tipo (Type field) identifica il tipo di messaggio. Vi sono dieci tipi di messaggi nel protocollo EGP.

*   IL campo Code contiene un valore che identifica il sottotipo di messaggio

*   Il campo stato (Status Field) è usato con i campi Type e Code per riflettere lo stato corrente del gateway.

*   Il Checksum è calcolato per il messaggio EGP come negli altri header TCP/IP

*   Il System Number è un’identificazione del sistema autonomo cui appartiene il gateway.

*   Il campo Sequence Number del messaggio è un contatore che si incrementa per ogni messaggio, usato inoltre per identificare la riposta ad un precedente messaggio.

Il campo Reason di un messaggio di errore può contenere uno dei seguenti valori interi

0.      errore non specificato

1.      Header EGP errato

2.      campo dati EGP errato

3.      Informazioni di raggiungibilità non disponibili

4.      Polling eccessivo

5.      nessuna risposta ricevuta per un Poll

attraverso una combinazione dei campi Tipo, Code e Status possono essere determinati in maniera più accurata scopo e significato di un un messaggio EGP: la tabella seguente mostra tutti i valori .

 

Type

Description

Code

Description

Status

Description

1

Update

0

 

0

Indeterminate

 

 

 

 

1

Up

 

 

 

 

2

Down

 

 

 

 

128

Unsolicited

2

Poll

0

 

0

Indeterminate

 

 

 

 

1

Up

 

 

 

 

2

Down

3

Neighbor Acquisition

0

Request

0

Not specified

 

 

1

Confirm

1

Active mode

 

 

2

Refuse

2

Passive mode

 

 

3

Cease

3

Insufficient Resources

 

 

4

Cease-Ack

4

Prohibited

 

 

 

 

5

Shutting Down

 

 

 

 

6

Parameter Problem

 

 

 

 

7

Protocol Violation

5

Neighbor Reachability

0

Hello

0

Indeterminate

 

 

1

I Heard You

1

Up

 

 

 

 

2

Down

8

Error

0

 

0

Indeterminate

 

 

 

 

1

Up

 

 

 

 

2

Down

 

 

 

 

128

Unsolicited

 

Il campo Status può indicare se un gateway è attivo o spento. Nello stato down, il gateway non effettua alcun instradamento. L’indicatore Neighbor Acquisition status può mostrare se la macchina è attiva o passiva. Se passivo il gateway non genera alcun messaggio Hello, ma risponde ad essi. Almeno un vicino deve essere attivo per rilasciare i messaggi di Hello.

Quando una lista di reti e delle loro distanze deve essere aggiunta ad un header EGP, ciò viene fatto nel formato seguente

Il numero di distanze nella lista è specificato, seguito da registrazioni con lo stesso formato che danno la distanza in numerosi hops dal gateway , il numero di reti che possono essere raggiunte attraverso quel gateway , e gli indirizzi di rete. Il numero di gateway interni ed esterni nell’header EGP dice al gateway quante registrazioni vi sono nella lista.

Usando EGP, i gateway possono aggiornarsi l’un l’altro e tenere al passo le loro tabelle di instradamento.       Uno schema simile è usato per IGP , sebbene il messaggio possa essere particolarizzato dal manager del network poiché non viene trasmesso su Internet.

Neighbor Acquisition Message

Un messaggio Neighbor Acquisition (Request, Confirm, Refuse Acquisition) è inviato quando un vicino viene controllato per effettuare l’acquisizione. È usato lo stesso formato qualunque sia il tipo di messaggio.

Il tipo è settato al valore 3 per indicare che si tratta di un’acquisizione di vicino, e il campo Code fornisce i dettagli sul tipo di messaggio di acquisizione , come mostrato nella tabella seguente

Code

Description

0

Request Acquisition

1

Confirm Acquisition

2

Refuse Acquisition

3

Cease

4

Cease Acknowledgment

 

Il campo Status nel header del messaggio di acquisizione è settato ad uno di 8 possibili valori e viene utilizzato per fornire ulteriori informazioni circa la richiesta . i valori validi per il campo sono mostrati nella tabella seguente.

Status

Description

0

Unspecified; used when no other code is applicable

1

Active; indicates an active status mode

2

Passive; indicates a passive status mode

3

Insufficient resources available

4

Administratively prohibited

5

Going down either because of operator intervention or expiration of the t3 timer

6

Parameter error with incoming message

7

Protocol violation in incoming message or response message is incompatible with current machine state

 

IL messaggio EGP Neighbor Acquisition aggiunge due nuovi campi all’header di base del messaggio EGP. Il campo 16 bit Hello Interval specifica l’intervallo minimo tra i polling di comandi Hello, in secondi. Il campo a 16 bit Poll Interval specifica l’intervallo minimo tra interrogazioni del comando Poll, ancora in secondi.

Neighbor Reachability Message.

I messaggi di raggiungibilità del vicino sono usati per assicurare che un vicino che sia stato precedentemente acquisito sia ancora attivo  e stia com’uncinando. Non sono aggiunti altri campi al formato del messaggio EGP visto precedntemen6te.

Il campo Tipo è settato ad un valore 5, ma il campo Code ha un valore = per il messaggio Hello ed 1 per il messaggio YHU (I heard you): il campo Status può avere uno di tre possibili valori , come mostrato nella tabella seguente.

Status

Description

0

Indeterminate; used when no other code is applicable

1

Neighbor is in an up state

2

Neighbor is in a down state

 

Poll Messages

I messaggi d’interrogazione sono usati per richiedere informazioni di raggiungibilità della rete. Due campi aggiuntivi vengono aggiunti al formato di base EGP, e sono un campo a 16 bit riservato ad usi futuri e un campo a 32 bit contenente l’IP della rete sorgente.

I messaggi di Poll hanno il campo Tipo settato al valore 2 e il campo Code settato al valore 0. il campo Status ad uno dei tre valori usati nel messaggio di Raggiungibilità.

Il campo riservato a 16 bit posto alla fine del formato del messaggio EGP è ignorato nella corrente versione del protocollo. Il campo a 32 bit IP Source Network è usato per specificare l’indirizzo IP della rete di cui il gateway sta richiedendo le informazioni di raggiungibilità.

Update Messages

I messaggi di Update vengono inviati in risposta a messaggi di Poll e forniscono informazioni circa la raggiungibilità delle reti. Il formato di un messaggio di Update è mostrato nella figura seguente ed è simile al formato GGP discusso precedentemente.

il tipo di un messaggio di Update è settato ad 1 ed il campo codice a 0. il campo Status è settato ad uno dei valori mostrati nella tabella seguente

 

Status

Description

0

Indeterminate; used when no other code is applicable

1

Neighbor is in an up state

2

Neighbor is in a down state

128

Unsolicited message

 

Dopo il formato EGP familiare vi sono tre campi nuovi . i campi numero dei gateway interni e numero dei gateway esterni specificano il numero di gateway interni ed esterni che sono riportati nel messaggio. Il campo IP Source Network Address contiene l’indirizzo IP della rete cui sono relazionate le informazioni.

Successivamente, dopo l’header usuale vi sono uno o più set di informazioni su ogni gateway di cui il sistema corrente sta inviando le informazioni. Essi sono chiamat5i blocchi dei gateway poiché ogni set di campi si riferisce ad un gateway. Il primo campo è l’indirizzo IP del gateway. Il campo Number of Distances fornisce il numero di distanze riportate nel blocco e il numero di reti che si trovano a quella distanza. Poi, per ogni distanza specificata, è fornito l’indirizzo IP di ogni rete . possono essere forniti molti blocchi per ogni messaggio di Update.

Error Message

 Il messaggio EGP finale è il messaggio di errore, che ha lo stesso formato del formato base EGP, con l’aggiunta di due campi. Il primo campo a  16 bit è riservato. Segue un campo a 96 bit che contiene i primi 96 bit del messaggio che genera l’errore.

Messaggi EGP to GGP

I gateway di tipo core utilizzano il protocollo GGP mentre i gateway non core utilizzano l’EGP , cosicché vi debbono essere metodi per far comunicare i due tipi di gateway per scoprire informazioni circa macchine e reti nascoste che giacciono dietro le loro tabelle di instradamento. Ciò può essere mostrato dalla figura seguente , dove il gateway A è un gateway di tipo core che porta da un internet ad una rete che ha gateway non core che conducono ad altre due reti.

un’altro gateway della internet non ha informazioni sulle reti e i gateway che si trovano dopo il gateway core A , a meno ché non sia esplicitamente aggiornato su di essi attraverso una richiesta.

Internet utilizza u metodo mediante il quale ogni gateway autonomo (non core) può inviare informazion9i di raggiungibilità ad latri sistemi, che devono andare ad almeno un gateway core. Se vi è una rete autonoma più ampia, un gateway normalmente assume la responsabilità di trattare queste informazioni di raggiungibilità. Nella figura precedente il gateway A è responsabile di inviare informazioni sulle tre reti collegate ad esso, così come sui due gateway non core.

Il protocollo EGP usa un processo di polling per renderli coscienti dei loro vicini mentre essi diventano attivi o si spengono, e per scambiare informazioni di instradamento o di stato con tutti i vicini. EGP è inoltre un protocollo guidato dallo stato , cioè dipende da una tabella di stato che contiene valori che riflettono le condizioni dei gateway ed un set di operazioni che vano compiute quando una registrazione in questa tabella cambia. Vi sono cinque stati come mostra la tabella seguente

State

Description

0

Idle

1

Acquisition

2

Down

3

Up

4

Cease

Il significato di ognuno di questi stati è il seguente

*   uno stato di ozio significa che il gateway non è coinvolto in alcuna attività e non ha risorse allocate. Esso usualmente risponde ad un messaggio per inizializzarsi ma ignora tutti gli altri messaggi a meno che non commuta allo stato di down o di acquisizione

*   uno stato di acquisizione abilita un gateway a trasmettere messaggi ma non agisce come un gateway completo. Esso può ricevere messaggi e commutare nello stato down o di ozio

*   lo stato di down si ha quando il gateway non è operativo. I messaggi non sono né ricevuti ne generati

*   lo stato di up è usato quando un gateway elabora e risponde a tutti i messaggi EGP che riceve e può trasmettere messaggi

*   un gateway è in uno stato di cessazione quando cessa tutte le operazioni di aggi0ornamento ma può ancora ricevere ed inviare i messaggi Cease e Cease Acknowledgment

Tutti i messaggi EGP ricadono in una delle seguenti categorie: comandi, risposte, indicazioni. Un comando usualmente richiede che venga effettuata un’azione, mentre una risposta è una replica ad un comando. Un’indicazione mostra lo stato corrente. I segnali comando-risposta sono mostrati nella tabella seguente

Command

Response

Request

Confirm

Refuse

none

Error

none

Cease

Cease Ack

Error

none

Hello

IHU (I Heard You)

Error

none

Poll

Update

Error

none

 

Variabili e timer di stato EGP

Come accennato, il protocollo EGP è guidato dallo stato, il che significa che lo stato corrente del sistema dipende dall’ultimo messaggio ricevuto o dalla condizione di un timer sofware. EGP gestisce una tabella con diversi parametri cui può far riferimento per determinare le azioni d intraprendere. Questi valori usualmente fanno riferimento a ritardi tra l’invio e la ricezione di messaggi di un tipo specifico.  In aggiunta, viene gestito un set di timer per assicurare che gli intervalli fra gli eventi siano ragionevoli. I parametri EGP ed i timer sono mostrati nella tabella seguente.

Name

Description

M

Hello polling mode.

P1

Minimum interval acceptable between successive received Hello commands. Default is 30 seconds.

P2

Minimum interval acceptable between successive received Poll commands. Default is 120 seconds.

P3

Interval between Request or Cease command retransmissions. Default is 30 seconds.

P4

Interval during which the state variables are maintained without receiving an incoming message when in the up or down state. Default is one hour.

P5

Interval during which the state variables are maintained without receiving an incoming message when in the cease or acquisition state. Default is 2 minutes.

R

Receive sequence number.

S

Send sequence number.

T1

Interval between Hello command retransmissions.

T2

Interval between Poll command retransmissions.

T3

Interval during which reachability attempts are counted.

t1

Retransmission timer for Request, Hello, and Cease messages.

t2

Retransmission timer for Poll messages.

t3

Abort timer.

 

La gran parte dei parametri di stato viene settata mentre si stabilisce inizialmente una connessione tra vicini. Le eccezioni sono i valori da P1 a P5, che sono stabiliti dal sistema host e non sono modificati dai vicini. Il numero di sequenza di invio è determinato solo dopo che un messaggio è stato ricevuto dall’altro gateway.

Interior Gateway Protocol (IGP)

Vi sono diversi protocolli IGP in uso, nessuno dei quali è diventato dominante. Usualmente, la scelta di un IGP è fatta sulla base dell’architettura di rete e sulla possibilità di adattamento ai requisiti software della rete. Sono stati già menzionati i protocolli RIP ed Hello. Entrambi sono un esempio di protocolli IGP:. Insieme ad un terzo protocollo chiamato Open Shortest Path First (OSPF), questi protocolli IGP sono ora esaminati nei dettagli.

Sia il protocollo RIP che il protocollo Hello calcolano la distanza da una destinazione, e i loro messaggi contengono entrambi un identificatore della macchina e la distanza da quella macchina. In generale, i messaggi tendono ad essere lunghi, poiché essi contengono molte registrazioni per una tabella di instradamento. Entrambi i protocolli connettono costantemente i vicini per assicurare che le macchine siano attive e stiano comunicando .

The Routing Information Protocol (RIP)

Il protocollo RIP trovò ampio uso nelle installazioni software delle LAN dell’Università di Berkeley. RIP usa una tecnologia broadcast denunciando la sua origine nelle LAN. Ciò significa che i gateway comunicano in modalità broadcast le proprie tabelle di instradamento agli altri gateway della rete ad intervalli regolari. Questo è uno degli aspetti negativi del protocollo, poiché l’incremento di traffico sulla rete e l’inefficiente sistema di messaggeria può rallentare la rete in termini di paragone con alt5ri protocolli IGP.  RIP tende ad ottenere informazioni circa tutte le destinazioni nel sistema autonomo cui i gateway appartengono. Come il protocollo GGP, il RIP è un protocollo a distanze vettoriali , inviando un indirizzo di rete  e la distanza dall’indirizzo nel suoi messaggi.

Una macchina in una rete basata su RIP può essere attiva o passiva. Se essa è attiva, manda la sua tabella di instradamento ad altre macchine. La maggior parte dei gateway sono apparecchi attivi. Una macchina passiva non manda le sue tabelle di instradamento ma può mandare e ricevere messaggi che influenzano il contenuto delle sue tabelle. La maggior parte delle macchine orientate all’utente (come PC e workstation)  sono apparecchiature passive. RIP utilizza lo User Datagram Protocol per i messaggi, impiegando la porta numero 520 per identificare i messaggi come originati mediante RIP.

IL formato di un messaggio RIP è mostrato nella figura seguente

L’header del messaggio è composto di tre campi per il comando (settati ad 1 se è una richiesta e a 2 se è una risposta), il numero di versione del protocollo RIP , ed un campo riservato non utilizzato. Il resto del messaggi contiene informazioni di indirizzo. Ogni set inizia con un identificatore del protocollo della famiglia utilizzato (RIP non è specificatamente limitato ai protocolli per internet, ma se è usato sul Internet questo valore è pari a 2) ed un set di indirizzi di rete. Ci sono 96 bit disponibili per i protocolli di rete, dei quali solo un massimo di 32 è necessario per un dirizzo Internet. L’ultimo campo è un valore metrico che usualmente indica il numero di hop per raggiungere la rete.

Un messaggio di richiesta è usualmente inviato ad un altro gateway quando è necessario un aggiornamento dell’instradamento: quando viene ricevuta una richiesta, il sistema esamina il messaggio per controllare ogni indirizzo di rete fornito. Se la sua tabella di instradamento ha una distanza da quell’indirizzo di rete, esso è posizionato nel corrispondente campo metrico della risposta. Se non vi è una voce corrispondente nella tabella , non viene restituito alcun valore.

Ogni macchina basata sul protocollo RIP gestisce una tabella di instradamento, con una voce per ogni macchina con cui può comunicare. La tabella ha voci per l’indirizzo IP dell’obiettivo , la sua distanza, l’indirizzo IP del prossimo gateway nel percorso verso l’obiettivo, un flag per mostrare se il percorso è stato aggiornato recentemente, ed un set di timer che controllano il percorso. La distanza è espressa come numero di hop richiesti per raggiungere l’obiettivo ed ha un valore fra 1 e 15. se l’obiettivo non è raggiungibile tale valore è posto a 16.

I timer coinvolti con il protocollo RIP sono destinati ad ogni percorso possibile nella tabella di instradamento. Un timer di time-out è settato quando il percorso è inizializzato ed ogni volta che il percorso viene aggiornato. Se il timer espira (il settaggio di default è di 180m secondi) prima di un latro aggiornamento, il percorso è considerato irraggiungibile. Un secondo timer, chiamato timer di raccolta della spazzatura, parte dopo il timer di time-out ed indica quando il percorso viene completamente eliminato dalla tabella di instradamento. Esso ha un valore di default di 120 secondi. Se giunge una richiesta di aggiornamento dopo che è spirato il timer di time-out ma prima che espiri il timer di raccolta della spazzatura , la voce per quel gateway è inviata ma con il massimo valore per il valore dell’instradamento. Dopo che è espirato anche il timer di raccolta della spazzatura , il percorso non viene inviato e basta.

Un timer di risposta fa da trigger per un set di messaggi ogni 30 secondi a tutte le macchine vicine, in un tentativo di aggiornare le tabelle di instradamento. Questi messaggi sono composti dell’indirizzo IP della macchina e della distanza dalla macchina ricevente.

Il protocollo Hello

Il protocollo Hello è usato spesso, specie quando sono coinvolte installazioni TCP/IP. E’ differente dal protocollo RIP in quanto il protocollo Hello usa il tempo e non la distanza come fattore di instradamento. Ciò richiede che il network ha temporizzazione accurate, sincronizzate su ogni macchina. Per questa ragione il protocollo dipende da messaggi di sincronizzazione degli orologi.

Il formato di un messaggio Hello è mostrato nella figura seguente

I campi primari dell’header sono

*   un checksum dell’intero messaggio

*   la data corrente della macchina mittente

*   il tempo corrente della macchina mittente

*   una registrazione del tempo per calcolare ritardi nei viaggi dei pacchetti

*   un offset che punta alla voce seguente

*   il numero di host che segue in lista

Dopo l’header vi sono diverse registrazioni con un ritardo stimato dalla macchina ed un offset, che è una stima della differenza tra i clock ricevente e mittente. Gli offset sono importanti perché il protocollo HELLO è un protocollo condizionato in maniera critica dal tempo, così gli offset abilitano correzioni fra i tempi su macchine differenti.

La registrazione del tempo in un messaggio è usta dalle macchine attraverso le quali passa il messaggio per calcolare ritardi nella rete. In questa maniera può essere creata una tabella di instradamento basata su realistici tempi di consegna dei pacchetti.

The Open Shortest Path First (OSPF) Protocol

Risorse internet su OSPF

In questo protocollo vari criteri sono utilizzati per determinare il miglior percorso verso la destinazione.

Il protocollo OSPF usa l’indirizzo di destinazione e le informazioni sul tipo di servizio (TOS) nel header di un datagramma IP per sviluppare un percorso. Da una tabella di instradamento che contiene informazioni sulla topologia della rete, n gateway OSPF (più formalmente detto router) determina il percorso più corto usando metriche dei costi, che tengono in conto fattori come la velocità del percorso, traffico, affidabilità, sicurezza, e vari altri aspetti della connessione. Quando una comunicazione deve lasciare un sistema autonomo, il protocollo OSPF parla di instradamento esterno. L’informazione richiesta per un percorso esterno può essere derivata sia da OSPF che da EGP.

Vi sono due tipi di instradamento esterno con OSPF. Un percorso di tipo 1 coinvolge gli stessi calcoli per il percorso esterno di quelli necessari per il percorso interno. In altre parole gli algoritmi OSPF sono applicati sia ad un percorso esterno che ad un percorso internoi. Un percorso di tipo 2 usa il sistema OSPF solo per calcolare un percorso verso il gateway del sistema di destinazione, ignorando ogni percorso del sistema atono,mo remoto. Ha il vantaggio nel fatto che può essere indipendente dal protocollo usato nel network di destinazione, il che elimina la necessità di convertire le metriche utilizzate.

OSPF permette ad un sistema autonomo ampio di essere suddiviso in zone più piccole, ognuna con il suo proprio gateway e algoritmi di instradamento. Spostamenti fra aree avvengono attraverso un backbone o attraverso le parti della rete che instradano messaggi attraverso aree. OSPF definisce diversi tipi di router e gateway.

*   Un router interno è un apparecchio per il quale tutte le connessioni appartengono alla stessa area, o uno in cui sono realizzate solo connessioni di backbone

*   Un router di confine è un router che non soddisfa alla definizione di router interno (ha connessioni all’esterno dell’area)

*   Un router backbone ha una interfaccia verso il backbone

*   Un router di tipo boundary è un gateway che ha una connessione verso un altro sistema autonomo

OSPF è disegnato per abilitare gateway a inviare messaggi l’un l’altro relativi alle connessioni di internetwork. Questi messaggi di instradamento sono chiamati annunzi, inserzioni (advertisement) , inviati attraverso messaggi di aggiornamento Hello. Sono usati quattro tipi di advertisement in OSPF:

*   Un router links advertisement fornisce informazioni sulle connessioni ei un router locale in un’area. Questo messaggio è inviato in broadcast attraverso il network

*   Un network links advertisement fornisce una lista di router che sono connessi ad una rete . Anche esso è inviato in broadcast a tutta la rete

*   Un summary links advertisement contiene informazioni su router esterni all’area. Esso è inviato da router di tipo border a tutta l’area

*   Un Autonomous System Extended Links advertisement contiene informazioni in sistemi autonomi esterni. È usato da router di tipo boundary ma copre l’inero sistema

OSPF gestisce diverse tabelle per determinare i percorsi, che includono la protocol data table (il protocollo di alto livello in uso in un sistema autonomo) , l’area data table o backbone data table 8che descrive l’area) , l’interface data table (informazioni sulle connessioni fra router e rete) , la neighbor data table (informazioni sulle connessioni fra router e router) . ogni tabella ha la sua propria struttura.

Pacchetti OSPF

OSPF utilizza Il protocollo IP per lo strato di rete . le specifiche OSPF forniscono due indirizzi multicast riservati: uno per tutti i router che supportano OSPF (224.0.0.5) e uno per un router designato ed un router di backup (224.0.0.6). Il protocollo IP numero 89 è riservato per il protocollo OSPF. quando IP manda un messaggio OSPF, esso utilizza il numero di protocollo e un campo Type of Service (TOS) con valore 0. usualmente il campo precedenza è settato ad un valore più alto che nei normali messaggi IP.

OSPF utilizza due formati per l’header. Il formato primario per l’header è mostrato nella figura seguente.

 

il campo Numero di versione identifica la versione del protocollo OSPF in uso. Il campo tipo identifica il tipo di messaggio e può contenere un valore fra quelli mostrati nella seguente tabella

Type

Description

1

Hello

2

Database description

3

Link state request

4

Link state update

5

Link state acknowledgment

 

Il campo lunghezza del pacchetto contiene la lunghezza del messaggio, incluso l’header. Il campo ID del router è l’identificazione della macchina mittente , e l’AREa ID identifica l’area in cui si trova la macchina mittente. Il campo Checksum usa lo stesso algoritmo del protocollo IP per verificare l’intero ,messaggio.

Il campo Authentication Type contiene il tipo di autenticazione da usare. Vi sono correntemente soltanto due valori per questo campo: 0 per nessuna autenticazione, 1 per l’uso di una password. Il campo Authentication contiene il valore usato per autenticare il messaggio , se applicabile.

Il secondo formato di header utilizzato in OSPF è soltanto per i messaggi Link State advertisements; esso è mostrato nella figura seguente

Tutti i messaggi Link State advertisements usano questo formato, che identifica ogni annuncio per tutti i router. Questo header rispecchia la tabella topologica.

Il campo Link State Age contiene il numero di secondi da quando l’advertisement è stato generato. Il campo Options contiene i Tipi di servizio IP supportati dalla macchina mittente. Il Link State Type identifica il tipo di link advertisement, usando uno dei valori mostrati nella seguente tabella. Il valore nel campo Link State Type definisce ulteriormente il formato dell’advertisement.

 

Value

Description

1

Router links (router to area)

2

Network links (router to network)

3

Summary link (information on the IP network)

4

Summary link (information on autonomous system border router)

5

AS external link (external to autonomous system)

 

Il campo Link State ID identifica quale porzione dell’internetwork è descritta nell’advertisement. Il valore dipende dal campo Link State Type e può contenere indirizzi IP per reti ed ID di router. Il campo Advertising Router identifica il router originante. Il Link State Sequenze Number è un numero che si incrementa usato per prevenire l’elaborazione di pacchetti vecchi o duplicati. Il campo Checksum usa un algoritmo IP per l’intero messaggio, incluso l’header. Infine, il campo Lunghezza contiene l’ampiezza dell’advertisement, incluso l’header.

Pacchetti Hello

Entrambi i tipi di header OSPF sono ulteriormente incapsulati dal protocollo Hello, usato per messaggi fra router vicini. L’informazione nell’header Hello setta i parametri per la connessione. L’intero formato del pacchetto Hello è mostrato nella figura seguente.

dopo l’header OSPF vi è il campo Network Mask, che dipende dall’interfaccia. Il campo Hello Interval è il numero di secondi tra pacchetti Hello seguenti dallo stesso router. Il campo Options serve per i valori del Tipo di Servizio IP supportati. Il campo Router Priority definisce se il router può essere identificato come un backup. Se il campo ha il valore 0   il router non può essere definito come un backup. Il campo Dead Interval è il numero di secondi prima che un router venga dichiarato spento e indisponibile. Il campo Designated and Backup Router contiene gli indirizzi dei router designati e backup, se ve ne sono. Infine, ogni vicino ha un set di campi che contiene l’indirizzo di ogni router che ha recentemente (nel tempo specificato dal Dead Interval) inviato pacchetti di Hello in rete.

Quando questo tipo di messaggio è ricevuto da un altro router ed è stato valicato come non contenente errori , l’informazione del vicino può essere elaborata nella tabella neighbor data.

Un altro messaggio usato per inizializzare il database di un router è il pacchetto descrizione del database . esso contiene informazioni sulla topologia della rete (sia in tutto che in parte) . per fornire servizi di pacchetti di descrizione dei database, un router è settato come master e l’altro è lo slave. Il master manda i pacchetti di descrizione del database, e lo slave li riscontra con le database description responses.

Il formato del pacchetto database description è mostrato nella figura seguente.

dopo l’header OSPF vi è un set di bit non utilizzati, seguito da tre flag da un bit. Quando il bit I (Initial ) è settato a 0, ridica che si tratta del primo pacchetto in una serie di pacchetti. Il bit M (More) quando è settato ad 1, significa che seguono altri pacchetti. Il bit MS (Master/Slave) indica la relazione master-slave. Quando ha il valore 1 significa che il router che ha inviato il pacchetto è il master. Uno 0 indica che il router mittente è lo slave. Il Data Description Sequenze Number è un contatore che si incrementa. Il resto del pacchetto contiene Link State Advertisement.

Pacchetti Link State Request e Update

Il pacchetto Link State rEquest chiede informazioni circa una tabella topologica ad un database mentre il pacchetto Update fornisce informazioni topologiche . il pacchetto di richiesta viene inviato usualmente quando una registrazione nella tabella topologica del router è corrotta , manca o è non aggiornata. L formato del pacchetto Link State Request è mostrato nella figura seguente. 

il pacchetto contiene l’header OSPF ed un blocco di tre campi per il Link State Type, il Link State ID, e il Advertising Router.

Il pacchetto Link State Update ha quattro formati , in dipendenza del tipo di link state: router link, network link, summary link, o autonomous system external link. Il pacchetto Router Link advertisement è inviato periodicamente ai vicini e contiene campi per ogni router link ed il tipo di servizio fornito in ogni link, come mostrato nella figura seguente

dopo l’header OSPF e l’header Link State advertisement vi sono due flag da un bit circondati da campi a 6 e 8 bit non utilizzati . il flag E (External ) , quando è settato ad 1, indica che il router è un boundary router di sistema autonomo . il flag B (Border) , quando settato ad 1, indica che il router è un router di confine di area. Dopo l’area non utilizzata di 8 bit vi è un campo per il numero di link (advertisement ) nel messaggio. Dopo vi sono i link in sequenza.

Ogni blocco di Link State advertisement nel pacchetto Router Link advertisement ha un campo per il Link ID ( il tipo di router sebbene il valore dipenda dal campo Tipo che segue nel blocco ) , il Link Data (il cuoi valore è un indirizzo IP o una maschera di network , in dipendenza del settaggio del campo Tipo ) , il campo Tipo 8 un valore 1 indica una connessione ad un altro router, 2 una connessione ad una rete di transito, e 3 ad una rete stub) e il campo Numero di TOS , che mostra il numero di metriche per il link (almeno uno deve essere fornito , chiamato TOS 0 ) poi vi è un blocco per ogni TOS m che fornisce il tipo e la metrica.

Gli altri tre formati disponibili sono Network Link Advertisement , Summary Link Advertisement, e Autonomous System External Link Advertisement. I formati dei tre advertisement sono mostrati nella figura seguente

l’ultimo pacchetto coinvolto in OSPF è il pacchetto Link State acknowledgment , richiesto quando un Link State advertisement è stato ricevuto correttamente. Il layout del pacchetto è mostrato nella figura seguente .

 

 

 

*   uando un gateway riceve quando unqqu