U2_L1 234_Fondamenti di routing

annuncio pubblicitario
Fondamenti di routing
(pag.34)
UdA2L1
Il livello di rete (Network layer) è il livello 3 della pila ISO/OSI. Questo livello riceve datagrammi
(pacchetti) dal livello di trasporto e forma pacchetti che vengono passati al livello Datalink, è
incaricato quindi di muovere i pacchetti dalla sorgente fino alla destinazione finale, attraversando tanti
sistemi intermedi (router) della sottorete di comunicazione quanti è necessario.
Il compito del livello di rete è quindi la trasmissione di pacchetti tra due host arbitrari, che in generale
non sono direttamente connessi (ovvero non hanno un collegamento diretto tra di loro). Nel modello
ISO/OSI, il software del livello di rete è presente in tutti i commutatori della rete, mentre quello dei
livelli superiori è presenti solo nei nodi terminali.
In dettaglio, le funzioni del livello di rete sono:
• inoltro, ovvero ricevere un pacchetto su una porta, immagazzinarlo e ritrasmetterlo su
un'altra. Questa funzione è presente in tutti i nodi della rete, e può comportare l'utilizzo di
protocolli di livello collegamento differenti
• frammentazione: se un pacchetto ricevuto ha una dimensione eccessiva per la rete su cui deve
essere trasmesso, il livello di rete lo divide in frammenti e si occupa di riassemblare i frammenti
ricevuti al momento della consegna.
• instradamento (routing), ovvero determinare il percorso per la trasmissione dei dati attraverso
la rete. Nella maggior parte dei casi, questa funzione viene svolta dinamicamente tramite
appositi algoritmi, che analizzano le condizioni della rete, le tabelle di instradamento, la priorità
del servizio e altri elementi secondari.
• controllo della congestione
Nel modello TCP/IP, il livello 3 viene detto livello internet, in quanto interconnette reti
eterogenee, per realizzare un'unica rete in modo trasparente agli utilizzatori.
ISO/OSI
TCP/IP
Applicazione
Telnet /FTP / HTTP / SMTP
Presentazione
Applicazione
Sessione
UDP / TCP
Trasporto
Trasporto
Rete
Rete (o internet)
Collegamento
Collegamento
+
Fisico
IP / ICMP / ARP / RARP
Fisico
IEEE 802.3 / 802.5 / 802.6 / 802.11
Il routing
Abbiamo visto che le reti geografiche (Wide Area Network, WAN) sono le reti che si estendono a
livello di una nazione, di un continente o dell'intero pianeta. L’instradamento è alla base della
funzionalità delle reti WAN.
1
In una WAN possiamo distinguere dispositivi di due tipologie:
• un insieme di elaboratori (host oppure end system) sui quali girano i programmi usati dagli
utenti;
• elementi di commutazione: elaboratori specializzati utilizzati per connettere fra loro due o più
linee di trasmissione. Quando arrivano dati su una linea, l'elemento di commutazione deve
scegliere una linea in uscita sul quale instradarli. L’elemento in questione è il router. (Altri
termini usati sono sistemi intermedi (Intermediate System)).
I dispositivi sono collegati da linee di trasmissione (dette anche circuiti, canali, trunk) che
spostano i bit e possono essere realizzate in fibra ottica, con collegamenti radio, in rame o altro.
Una tipica WAN è utilizzata per connettere più LAN fra loro:
Figura 1: struttura tipica di una WAN
Ogni router, in generale, deve:
1. ricevere un pacchetto da una linea in ingresso;
2. memorizzarlo per intero in un buffer interno;
3. appena la necessaria linea in uscita è libera, instradare il pacchetto su essa.
Quando si vogliono connettere fra di loro reti progettualmente diverse (spesso incompatibili fra loro)
si ricorre a speciali attrezzature di commutazione, dette gateway (o router multiprotocollo), che oltre
ad instradare i pacchetti da una rete all'altra, effettuano le operazioni necessarie per rendere possibili
tali trasferimenti.
Figura 2: interconnessione di reti
Il gateway opera tra i livelli da 4 a 7 del modello ISO/OSI, generalmente si colloca al livello 7:
Instradamento dei pacchetti
Come abbiamo visto il livello di rete è incaricato di muovere i pacchetti dalla sorgente fino alla
destinazione finale, attraversando tanti sistemi intermedi (router). Ovvero:
•
Acquisito l’indirizzo IP di un pacchetto da inoltrare, il router controlla, attraverso la propria
netmask, se è relativo ad un host della propria rete;
2
•
•
•
Se l’indirizzo appartiene alla stessa rete del router, l’IP del router utilizzerà i servizi dello
strato inferiore (data-link) per spedire il pacchetto direttamente all’host destinatario.
Se l’indirizzo appartiene ad un’altra rete, il router consulterà la propria Routing Table, che
associa ad ogni rete l’indirizzo del router di frontiera delle reti connesse.
Se il router (che è collegato a più reti) ha una connessione diretta col router dove è collegato
l’host destinatario, gli inoltra direttamente il pacchetto, altrimenti lo passa al router più vicino,
fino a raggiungere un router in grado di consegnare il pacchetto.
Ciò è molto diverso dal compito del livello data link, che è di muovere informazioni solo da un capo
all'altro di un singolo canale di comunicazione.
Tipi di instradamento (pag 35 in poi)
Instradamento diretto …..
Instradamento indiretto …..
Tabella di instradamento …
Router di default ….
Tabelle di routing con righe a costo diverso …
Aggregazione di indirizzi…
ESERCIZI…
Una volta ricevuto il pacchetto, il router verifica l’indirizzo di destinazione e inizia il processo di
forwarding, ovvero l’inoltro del pacchetto verso l’host di destinazione finale, per stabilire su
quale linea deve essere instradato il pacchetto.
Algoritmi di routing
(pag.50)
UdA2L2
Dopo avere individuato la topologia della rete, il compito del livello di rete è quello di scegliere di
volta in volta il cammino migliore, oltre a gestire il flusso dei dati e le congestioni (flow control e
congestion control) e le problematiche derivanti dalla presenza di più reti diverse (internetworking).
Per far ciò vengono applicate delle politiche di routing (o algoritmi di routing).
Per poter scegliere la linea giusta, l’algoritmo deve valutare alcuni parametri:
•
•
Il numero degli hop (salti), ovvero dei nodi (router) attraversati prima di giungere a
destinazione;
Il costo, inteso come l’inverso della velocità della linea.
Una prima classificazione degli algoritmi di routing riguarda l’organizzazione delle reti in
Autonomous System (AS), un’entità costituita da un gruppo di router e reti sotto il controllo di una
singola e ben definita autorità amministrativa (esempio di sistema autonomo può essere quello che
contraddistingue gli utenti di un unico provider oppure, più in piccolo, quello che costituisce la rete
interna di un'azienda).
Ogni AS è identificato da un numero univoco a livello internazionale rilasciato dall'autorità che rilascia
gli indirizzi Internet.
Le funzioni dei router, le modalità d'esecuzione e gli algoritmi utilizzati dipendono dalla dislocazione
logica, che può essere internamente ad una rete o sul confine dell'AS.
3
Per questo i protocolli che agiscono su un AS si possono denominare:
•
•
IGP (Interior Gateway Protocol), che identifica i protocolli di routing che agiscono all’interno
di un AS (generalmente chi gestisce un AS utilizza gli stessi protocolli di routing per le reti che
appartengono allo stesso AS, in caso di protocolli diversi si creeranno altri AS);
EGP (Exterior Gateway Protocol), che identifica i protocolli che fanno routing fra diversi AS.
Internet non è altro che un insieme di AS interconnessi.
Gli algoritmi di routing si dividono in due classi principali:
•
•
I grafi
algoritmi statici (o non adattivi): le decisioni di routing sono prese in anticipo, all'avvio della
rete, e sono comunicate ai router che poi si attengono sempre a quelle. Le tabelle di routing
possono essere compilate manualmente da una persona (l’Amministratore di rete) o in modo
automatico all’avvio della rete attraverso un protocollo di routing;
algoritmi dinamici (o adattivi): le tabelle vengono continuamente aggiornate in automatico in
funzione delle informazioni che pervengono al router sui cambiamenti della rete (sulla base del
traffico, della topologia della rete, ecc.).
(pag. 58)
UdA2L3
Un grafo è un insieme di nodi e archi in cui ogni arco connette due nodi.
Effettuare l’instradamento di un pacchetto in una rete significa individuare un percorso tra sorgente e
destinatario il cui cammino sia il più corto possibile, il cosiddetto cammino minimo.
4
La distanza è la lunghezza del cammino più breve tra due nodi.
Il peso di un cammino è la somma dei pesi associati a tutti gli archi che compongono il cammino.
…(Definizioni pag. 58-61)
Rappresentazione dei grafi (pag 63-64)
Matrice delle adiacenze …
Algoritmi di routing statici
(pag.72)
UdA2L4
Questi algoritmi, come abbiamo già accennato, sono eseguiti solamente all'avvio della rete, e le
decisioni di routing a cui essi pervengono sono poi applicate senza più essere modificate.
Alcuni algoritmi statici sono:
•
•
•
shortest path routing (routing basato sul percorso più breve);
flooding
flow-based routing
Shortest path routing
Ogni router della rete ha in memoria un grafo (Sink tree) dove:
• i nodi rappresentano i router;
• gli archi rappresentano le linee punto-punto.
I sink tree sono calcolati all'avvio della rete da un host di gestione che:
•
•
applica al grafo un algoritmo (ad esempio l’algoritmo ideato da Dijkstra nel 1959) per il
calcolo del cammino minimo fra ogni coppia di nodi;
invia tali informazioni a tutti i router.
Quale sia il cammino minimo dipende da qual è la grandezza che si vuole minimizzare (peso).
Tipicamente è:
• il numero di hop, cioè di archi, da attraversare;
• la lunghezza dei collegamenti;
• il tempo medio di trasmissione.
(Come esempio possiamo considerare un automobilista che può scegliere il suo itinerario in funzione
del numero minimo di chilometri da percorrere oppure per arrivare nel minore tempo possibile).
Algoritmo di Dijkstra
Con questo algoritmo ogni nodo è associato a un’etichetta (racchiusa tra parentesi) che riporta la sua
distanza dal nodo d’origine lungo il miglior percorso conosciuto. Inizialmente, ovvero all’avvio della
rete, nessun percorso è noto, perciò tutti i nodi sono etichettati con un simbolo che rappresenta
l’infinito. Mano a mano che l’algoritmo procede e si trovano i percorsi, le etichette cambiano
rispecchiando i percorsi migliori. Inizialmente tutte le etichette sono provvisorie, e quando si scopre
che rappresenta il percorso più breve possibile dall’origine a quel nodo viene resa permanente
smettendo di modificarla.
5
Lo scopo è quindi trovare il percorso minimo (più corto, più veloce, più economico…) tra due punti,
uno di partenza e uno di arrivo. Con questo metodo è possibile ottenere non solo il percorso minimo tra
un punto di partenza e uno di arrivo ma il percorso minimo tra un punto di partenza e tutti gli altri punti
della rete. Una buona schematizzazione per i problemi di percorso minimo deve includere tutti i
possibili collegamenti tra i nodi (ed i relativi costi) e deve essere fissato un nodo di partenza e un peso
(la grandezza che si vuole minimizzare).
Esempio:
Per fare un semplice esempio consideriamo un problema in cui si vuole calcolare il percorso minimo
tra casa e il posto di lavoro. Schematizziamo tutti i possibili percorsi ed il relativo tempo di percorrenza
(supponendo di voler calcolare il percorso più breve in fatto di tempo di percorrenza). I nodi A, B, C,
D, E indicano le città per cui è possibile passare. Ecco una schematizzazione della rete:
Dobbiamo ora assegnare ad ogni nodo un valore (etichetta), seguendo alcune regole:
•
•
•
•
•
•
•
Ogni nodo ha all'inizio etichetta
(che indichiamo con “inf”);
Il nodo di partenza (in questo caso “casa”) ha etichetta 0 (ovvero dista zero da se stesso);
Ogni volta si sceglie il nodo con etichetta minore e lo si rende definitivo si aggiornano i nodi
adiacenti;
L’etichetta di un nodo è dato dalla somma dell’etichetta del nodo precedente + il costo del
collegamento;
Non si aggiornano le etichette dei nodi resi definitivi;
Le etichette definitive indicano la distanza di quel nodo da quello di partenza;
Quando si aggiorna l’etichetta di un nodo si lascia quella minore (essendo un problema di
percorso minimo).
Vediamo in pratica come si risolve questo esercizio. Questa è la rete in cui sono indicate anche le
etichette:
Seguendo le regole appena fissate consideriamo
il nodo con etichetta minore (“casa”) e lo
rendiamo definitivo (colorandolo di rosso) ed
aggiorniamo tutti i nodi adiacenti sommando
l'attuale valore dell’etichetta (ovvero zero) al
costo del percorso. Aggiorniamo le etichette
perché avevamo, nel caso di A, etichetta
infinito mentre ora abbiamo etichetta 2.
Ricordando che l’etichetta minore è sempre
preferibile.
Vediamo come si è aggiornata la rete:
6
Bisogna ora considerare il nodo non definitivo
(ovvero quelli scritti in nero) con etichetta
minore (il nodo A). Lo si rende definitivo e si
aggiornano le etichette dei nodi adiacenti B e C.
Indichiamo con una freccia da dove proviene
l’etichetta dei nodi resi definitivi.
Il nodo con etichetta minore ora è C, lo si rende
definitivo e si aggiornano quelli adiacenti D ed
E senza renderli definitivi:
Va notato come il nodo D abbia ora etichetta 6
in quanto 6 è minore di 8 e quindi lo si
aggiorna. Se avessimo avuto un valore
maggiore di quello che già c’era lo avremmo
lasciato invariato. Rendiamo definitivo il nodo
D e aggiorniamo il grafico (il nodo E diventa
9):
Il nodo con etichetta minore restante è B e lo si
rende definitivo aggiornando di conseguenza il
grafico (Ufficio diventa 13):
7
Resta da considerare il nodo E ed aggiornare
“ufficio”.
Seguendo all'indietro le frecce si ottiene il percorso minimo che dista casa da ufficio, che dista (come
indicato dall’etichetta) “10”.
Bisogna notare come questo algoritmo ci dia non solo la distanza minima tra il punto di partenza
e quello di arrivo ma la distanza minima di tutti i nodi da quello di partenza.
Flooding
La tecnica del flooding consiste nell'inviare ogni pacchetto su tutte le linee eccetto quella da cui è
arrivato. E’ un metodo per collezionare velocemente informazioni sullo stato attuale della rete.
In linea di principio il flooding può essere usato come algoritmo di routing: ogni pacchetto inviato
arriva a tutti i router, sempre nel minimo tempo possibile, ma presenta l'inconveniente di generare un
numero enorme di pacchetti.
Il flooding è utile per l'aggiornamento contemporaneo di informazioni distribuite (database).
Flow-based routing
Tramite questo algoritmo il percorso migliore viene calcolato in base al traffico medio di ogni linea. Si
suppone che il livello di traffico sia abbastanza costante nel tempo. (es: Questo metodo è utilizzato da
un automobilista che evita le strade dove sa già che ci sarà parecchio traffico, ma se tutti evitano le
strade con traffico il problema si sposta).
8
Scarica