Vous êtes sur la page 1sur 9

LIVELLO NETWORK (A livello network parliamo di pacchetti)

Lo scopo del livello network quello di capire come portare a destinazione un pac
chetto.
I vari router analizzeranno i pacchetti IP, in particolar modo l'header dei pacc
hetti, applicando algoritmi di routing e forwarding. Il livello network presente
in tutti gli host e router della rete. FORWARDING il processo implementato da u
n router di smistamento dei pacchetti. Tale smistamento avviene mediante una tab
ella di forwaring (creata attraverso un protocollo di routing/forwarding).
ROUTING il meccanismo per stabilire il miglior percorso che il pacchetto deve ef
fettuare per arrivare a destinazione.L'algoritmo permette di riempire la tabella
di forwarding. I pc non fanno routing!
Il livello network pu fornire diversi modelli di servizio al livello di trasporto
.
La terza importante funzione fornita dal livello network il connection setup ne
lle reti in cui necessaria l'instaurazione di una connessione. Prima che i pacch
etti possano essere inviati i router devono creare e stabilire un percorso (perc
orso virtuale).
I possibili modelli sono di tipo connection oriented e connection less. Le reti
a datagrammi non prevedono instaurazione di connessione tra i router e i pacchet
ti possono seguire diversi percorsi e ogni router di volta in volta decide il pe
rcorso da seguire. Tale reti non prevedono garanzie di affidabilit. L'alternativ
a sono le reti a circuito virtuale: viene stabilita una connessione a livello ne
twork tra mittente e destinatario. Si crea una cordata di router, e tutti i pacc
hetti seguiranno solo questo circuito. C' una fase di CALL SETUP, in cui si crea
un circuito al quale viene assegnato un numero (vc number). Il vantaggio del cir
cuito virtuale quello di preallocare risorse, dando garanzia al servizio. Come s
i implementa un circuito virtuale? Un circuito virtuale consiste nel path dal mi
ttente al destinatario, nei numeri di circuito virtuale, e nelle entry delle tab
elle di forwarding. Tutti pacchetti devono solo portarsi dietro il numero di cir
cuito virtuale a cui essi appartengono. Ognuno sceglie in maniera autonoma il VC
number.
RETE A DATAGRAMMI (quella di internet): non c' una fase di connection setup a liv
ello network. A differenza dei circuiti virtuali i router non hanno informazioni
di stato circa le connessioni end-to-end. La tabella di forwarding non una tabe
lla di stato. Su internet i pacchetti a livello network vengono chiamati DATAGRA
MMI.
Su internet c' un pacchetto che arriva, ha il suo campo dati e una intestazione,
che conterr l'indirizzo IP, utilizzato dai router per instradare i pacchetti. Nel
la tabella di forwarding non sono presenti tutti gli indirizzi IP ma solo in ran
ge. L'indirizzo IP una sequenza di 32 bit, scritta come 4 ottetti di bit in form
a decimale. Cosa succede se il range non si divide in maniera "pulita"?
concetto di LONGEST PREFIX MATCHING (prefisso che matcha di pi il pacchetto): se
arriva un pacchetto che sulla tabella di forwanding rispetta prefissi di pi entry
, il router sceglier la entry che matcha la destinazione col maggior numero di bi
t.
La rete a datagrammi pi flessibile all'inaffidabilit della rete (se vanno gi i rout
er - non ci sono informazioni di stato), non necessario fare preallocazione di r
isorse, ma non garantisce affidabilit ed soggetta a congestioni.
ARCHITETTURA DI UN ROUTER = il routing pu essere fatto a livello sw(realizzazione
della tabella di forwaring statica, ma non va bene nel core della rete) e hw.
Le funzioni del router sono quelle di : far girare protocolli di routing, che cr
eano le tabelle di forwarding. Abbiamo delle porte di ingresso e delle porte in
uscita (anche se queste porte sono bidirezionali). Dividiamo le porte in porte d
'ingresso (dove entrano i pacchetti) e porte d'uscita. Il routing processor dove
girano i protocolli di routing in cui si cambia la tabella di forwarding.
FUNZIONI DELLA PORTA D'INGRESSO:
- line termination (parte elettronica/fisica)
- parte che gestisce il protocollo di livello 2 e manda al blocco 3 i frame
- blocco che "legge" il pacchetto: su questo blocchettino c' una coda (coda di in
gresso); bisogna bufferizzare il pacchetto prima di switchare (nello switch fabr

ic). Abbiamo 3 tipi di switch fabric: 1)memoria condivisa (toglie dalla coda, sc
rive nella zona di memoria e l'altra legge, ma comporta latenza) 2)via BUS (bus
condiviso che collega tutti i dispositivi, ma potrebbe esserci conflitti) 3)CROS
SBAR (soluzioni pi complesse, c' una matrice di commutazione).
I router di prima generazione erano a memoria condivisa.
FUNZIONI DELLA PORTA D'USCITA:
-c' un buffer o coda d'uscita (ci sono politiche di scheduling per decidere quali
pacchetti consegnare)
-interfaccia di uscita a tutti gli effetti (link layer e parte fisica)
L'accodamento si verifica sia sulla coda d'ingresso (la coda in ingresso pu cong
estionarsi) che sulla coda d'uscita (pu anche verificarsi overflow).
I buffer possono, dunque, riempirsi. Nasce il problema del dimensionameto dei bu
ffer. Aumentare la bufferizzazione non sempre una soluzione: fare code troppo gr
andi consento ai pacchetti di rimanere in coda per molto tempo, aumentando dunqu
e il delay->scade il timer (Se c' un protocollo TCP) e si riinvierebbe il pacchet
to, sovraccaricando la coda (con vecchi e nuovi). Anche avere un buffer troppo p
iccolo un problema. L'RFC 3439 d una regola: il bufferinf medio deve essere = RTT
(250 ms)* C (capacita) / radice di N (numero di pacchetti).
NETWORK LAYER DI INTERNET
Il network layer di Internet ha diversi protocolli (almeno 3):
- il "principe" l'IP (Internet Protocol): si occupa dell'indirizzamento dei pacc
hetti, stabilisce il formato dei datagrammi e di come vanno gestiti.
- ICMP (Internet control message protocol), utilizzato per la segnalazione di er
rori
- IGMP (Internet group message protocol), utilizzato per il routing multicast.
FORMATO DEL DATAGRAMMA IPV4
I primi 4 bit sono la versione del protocollo, il secondo campo (di dimensione v
ariabile) l'header (max 20 byte), terzo campo il tipo di servizio (con una codif
ica tabellare specifica il tipo di servizio-dati, streaming, video..), ma i rout
er non lo trattano completamente. L'altro campo (16 bit) length. Poi ci sono i c
ampi 16-bit identifier, flags (4 bit) e fragment offset, che servono per la fram
mentazione. Poi c' un campo a 8 bit denominato time to live (dovrebbe dare il tem
po massimo di vita del pacchetto in secondi - questo implicherebbe una sincroniz
zazione. In realt il time to live il numero di hop (salti) massimi). Gli altri 8
bit costituiscono l'upper layer (tale campo presenta una codifica che secondo u
na tabella dice cosa c' nel campo dati, fa capire al destinatario che dentro c' un
segmento di tipo TCP o UDP). Gli altri 16 bit rappresentano l'header checksum (
checksum solo dell'intestazione, non necessario fare il checksum di tutto il dat
agramma, il checksum dei dati gi fatto da TCP/UDP). Poi ci sono due campi di 32 b
it che indicano gli IP di sorgente e di destinazione. Poi campi opzionali.
FRAMMENTAZIONE= pu essere TRASPARENTE (se il pacchetto arriva ad un router con un
a tecnologia diversa da quella che fa il router di origine, il pacchetto viene f
rammentato per poi essere ricomposto prima che esce dalla sottorete. E' traspare
nte perch una tecnica di cui mittente e destinatario non si accorgono).
La frammentazione NON TRASPARENTE (utilizzata da IP): i pacchetti vengono subito
frammentati, inserendo in ogni frammento delle indicazioni, tramite cui il dest
inatario potr compattare tutti i frammenti prima che vengano processati. Tale fra
mmentazione viene gestita dai campi 16 bit identifier, flags e fragment offset.
Tutti i frammenti relativi allo stesso pacchetto avranno lo setto identificativo
, ma offset diversi.Per sapere l'ultimo frammento utilizzo il flag MORE FRAGMENT
S (se 0 si tratta dell'ultimo frammento).
La frammentazione, in generale, necessaria ma problematica in quanto ogni framme
nto pu seguire una via diversa; se qualche frammento viene perso necessario butta
re l'intero pacchetto (non ci sono ack di conferma). In IPv6 la frammentazione v
iene abbandonata, se il pacchetto viene buttato il destinatario manda un messagg
io al mittente per avvisarlo e per notificargli la dimensione massima supportata
.
FRAMMENTAZIONE= quando un router riceve un pacchetto che contiene una quantita'
di dati superiore a quella che puo' immettere nel campo dati della frame in usci
ta.

Il riassemblaggio avviene a destinazione. Vengono impiegate risorse di banda, di


calcolo ect.
Una soluzione alla frammentazione quella di convergere ad una stessa tecnologia
a livello 2, impostando la dimensione del campo dati compatibile con l'ethernet.
INDIRIZZAMENTO IP
l'Indirizzo IP identifica l'interfaccia dell'host. E' possibile associare pi indi
rizzi IP alla stessa interfaccia di rete.
Concetto di SOTTORETE (o Subnet)= tutti gli host che condividono la stessa parte
(la pi alta) dell'indirizzo IP. Dato un indirizzo IP, c' una parte che si chiama
ID di rete (uguale su tutte le interfacce della stessa sottorete), un'altra part
e che quella dell'host
Dunque, una sottorete si pu definire in due modi:
- come l'insieme delle interfacce che condividono lo stesso ID di sottorete
- l'insieme di interfacce che possono "raggiungersi" senza l'intervento del route
r, cio connesse fra loro in maniera tale da non interessare il router.
Ogni interfaccia di host e router presenta un indirizzo IP globalmente univoco.
Tuttavia la scelta dell'indirizzo IP non arbitraria , ma una parte dell'indirizz
o IP viene proprio scelta in base alla sottorete cui l'interfaccia inserita.
L'ente che si occupa della gestione degli indirizzi IP l'ICANN. La strategia di
assegnazione degli indirizzi IP detta CIDR -classless interdomain routing. Ma pr
ima di questa strategia se ne utilizzava un'altra: l'ICANN suddivideva per class
i e a blocchi di 8 - per facilitare la programmazione dei router e la tabella di
forwarding (tale strategia era detta classful addressing). Avevamo la classe A
(veniva fissato solo il primo ottetto), classe B (fissati i primi due ottetti) e
classe C (fissati 3 ottetti). Questa gestione si rivel per problematica in quanto
si tratta di una politica di gestione che porta ad uno spreco di indirizzi. Una
sottorete di classe C, ad esempio, poteva ospitare solo 2^8 - 2 = 254 host (due
dei 256 indirizzi (0 e 255) sono riservati ad usi speciali). Per questo motivo
si pass alla politica di gestione CIDR.
L'indirizzo IP viene diviso in due parti, mantenendo la notazione decimale punta
ta a.b.c.d/x dove x indica il numero di bit nella prima parte dell'indirizzo. Ta
le politica pi flessibile della suddivisione in classi. Il router fa routing in b
ase all'indirizzo di destinazione associato alla netmask. Si ha una capacit di su
ddivisione pi "fine".
x la subnet mask, che mi dice il numero di bit che sono ID di rete.
La netmask un indirizzo a 32 bit; tutti i bit 1 individuano nell'indirizzo IP qu
anti bit fanno parte dell'ID di rete.
esempio
indirizzo in forma decimale puntata 200.23.16.0/23
in forma binaria:
11001000 00010111 00010000 00000000 dove i primi 23 b
it individuano l'ID di rete.
Scrivo la NETMASK: 11111111 11111111 11111110 00000000
posso scriverlo in forma decimale puntata: 255.255.254.0
Ha 23 bit fissi ma 9 variabili; quali indirizzi IP posso dare? 2^9 - 2 = 510
da 200.23.16.0 a 200.23.17.255 (ne pu dare 510)
L'indirizzo con tutti 0 un indirizzo speciale, utilizzato per identificare una r
ete, quello con tutti 1 l'indirizzo di broadcast.
Se abbiamo solo l'indirizzo IP e ne vogliamo conoscere l'ID di rete:
es. ho l'indirizzo IP 200.23.17.4/23
->
11001000 00010111 00010001
00000100
La netmask
11111111 1111
1111 11111110 00000000
Per conoscere l'ID di rete faccio l'AND BIT A BIT (processo di mascheramento) tr
a l'indirizzo IP e la netmask:
11001000 00010111 00010000 00000000
->223.23.16.0
Come si assegna un indirizzo IP ad un'interfaccia? Un'organizzazione che ha ott
enuto un blocco di indirizzi pu assegnarli individualmente alle interfacce di hos
t e router nella proprio sottorete. Tale assegnazione pu essere fatta manualmente
dall'amminstratore di sistema ("hard-coded"), ma pi spesso questo compito svolto

dal DHCP (dynamic host configuration protocol). Tramite DHCP possibile ottenere
automaticamente un indirizzo IP (pi apprendere info aggiuntive, quali netmask, l
'indirizzo del gateway router, DNS del server locale ect.)Tale protocollo anche
detto "plug&play" per la sua capacit di automatizzare la connessione degli host a
lla rete. Inoltre, DHCP pu essere configurato in modo tale che un dato host ricev
a un inidirizzo IP PERSISTENTE (ogni volta che l'host entra in rete gli viene as
segnato sempre lo stesso IP), oppure riceva un indirizzo IP TEMPORANEO. Tale pro
tocollo non ha solo lo scopo di facilitare compiti che altrimenti un amministrat
ore dovrebbe fare manualmente, ma utile anche per il riutilizzo degli indirizzi
e per gli utenti "mobili".
Dhcp un protocollo client-server di livello applicazione.
funziona in 4 passi:
* client manda un paccheto udp in broadcast (255.255.255.255) sulla porta 67. Ch
e contiene un messaggio DHCPDISCOVER con un transaction_id scelto casualmente. S
i segna come ip del mittente 0.0.0.0
* il server risponde in broadcast con un "dhcp offer message". Specificando l'in
dirizzo offerto (yaddr), la networkmask, il tempo di validit dell'indirizzo, il p
roprio identificativo e l'identificativo transazione della richiesta a cui sta r
ispondendo.
* il client pu ricevere pi Dhcp Offer (che riconosce come sue grazie al transactio
n_id), tra queste sceglie una e invia al server una Dhcp Request con gli stessi
dati (sempre in broadcast, non ho capito perch).
* Il server termina con un dhcp ack
Quando non si possono o difficile aggiungere altri ip ad una subnet, si pu ricorr
ere alle NAT, per "nascondere" un'intera subnet dietro un unico indirizzo ip. Il
natting anche molto usato per rallentare l'esaurimento degli indirizzi ipv4.
L'indirizzamento dentro una subnet che usa il nat avviene mediante gli ip riserv
ati per uso locale, questi indirizzi per, in uscita ed in entrata dalla subnet de
vono essere convertiti. I pacchetti in uscita dalla subnet sono routati ad un ro
uter speciale: un nat router.
Per i pacchetti in uscita si usa l'indirizzo esterno del nat router. Il problema
per quelli in entrata, si ha una sorta di multiplexing. Il router tiene traccia
delle connessioni in uscita mediante la nat translation table, e usa queste inf
ormazioni per instradare le risposte.
Quando deve inviare pacchetti all'esterno, il nat memorizza l'ip e la porta da c
ui viene la richiesta, insieme ad un numero di porta a sua scelta, 16bit->60kpos
sibilit, che sar usato come identificativo per una data connessione. Il router sa
poi quale computer ha fatto la richiesta
Il nat comodo e funziona bene, crea per parecchi problemi quando si deve fare da
server e ricevere connessioni (oppure partecipare in un'app p2p). Si usano degli
hack come il connection reversal.
Upnp:
permette di scoprire e configurare la nat (insieme ad altre buone cose). Una app
licazione pu chiedere direttamente al nat di abilitare il port forwarding per una
certa porta.
Gli algoritmi di routing si occupano dello scambio di informazioni tra router al
fine di calcolare le routing table.
Quello che ci interessa determinare un buon (spesso subottimo per via di roba co
mmerciale o tecnica) percorso dal router a cui l'host connesso direttamente (fir
st hop) fino al router di destinazione.
Il problema formulato mediante grafi, in cui i nodi sono i router, e ad ogni lin
k tra loro associato un costo. Il costo pu essere la banda di un link, o il suo c
arico (sconsigliabile), o la lunghezza, o quello monetario. Considereremo grafi
indiretti.
Ci interessa trovare una path (serie di link) con costo minimo.

Gli algoritmi si possono suddividere in due classi:


* globali o Link State: la path determinata avendo una conoscenza globale della
rete. Si devono acquisire molte informazioni, ma a parte questo l'algoritmo semp
lice.
* decentralizzati: Nessun nodo ha informazioni su tutta la rete, ha conoscenza s
olo dei suoi vicini diretti. Con un processo iterativo, poi, mediante scambi, ca
lcola gradualmente il miglior path.
Si pu fare poi una classificazione degli algoritmi in statici o dinamici.
* Statici, il path quello e viene ri-calcolato raramente.
* Dinamici adattano il path alle variazioni di traffico o topologia della rete.
Quelli dinamici si adattano meglio alla rete, ma sono pi soggetti a problemi.
(e loadsensitive/insentive) Gli algoritmi usati su internet sono tutti load inse
nsitive. Se si vuole usare un algoritmo load_sensitive si deve per forza fare in
modo che i vari router abbiano informazioni "diversamente aggiornate", in modo
da non spostare tutto il traffico contemporaneamente.
=== Link State ===
Perch ogni nodo abbia informazioni su tutti i link, ogni nodo deve inviare in bro
adcast pacchetti link-state a tutti gli altri nodi. Il risultato che tutti i nod
i hanno _la_stessa_ visione di tutta la rete. Facendo gli stessi calcoli arriver
anno agli stessi risultati, e coopereranno nel modo giusto.
Una volta avute le informazioni, la path si calcola tramite Dijkstra: un algorit
mo iterativo per calcolare path uno-a-tutti.
G: grafo
Q: nodi "scoperti" ma di cui ancora non si conosce la distanza. Ottimo se implem
entato come priority queue
la complessit O(n*log(n))
** Dijkstra(G,s)
# inizializzazione
**
per ogni v in V(G) ripeti:
**
d(v) = infinito
**
padre(v) = nil
**
end
**
d(s) = 0
**
Inserisci s in Q

**
**

# risoluzione
fintanto che Q non vuoto ripeti:
seleziona u l'elemento di Q con d(u) minima
estrai u da Q
per ogni vicino v adiacente a u ripeti:
nuovadistanza = u.distanza + u.linkverso(v).costo
if (d.distanza == infinito):
inserisci v in Q

**
**
**
**
**

if (d(v) > nuovadistanza):


d(v) = nuovadistanza
v.padre = u
end
end

**
**
**
**

una volta fatto questo posso ricavare il path dalla catena di padri

PROBLEMATICA DEL LINK STATE: ogni nodo della rete, per calcolare il percorso mig
liore da se stesso verso tutti gli altri router, deve essere a conoscenza antici
patamente della topologia della rete. Per esplorare la topologia della rete nece
ssario fare flooding ai nodi adiacenti, che a loro volta fanno flooding. Tale te
cnica porta ad una congestione della rete, perch si inviano pacchetti (che non co
ntengono dati), di un numero pari almeno al numero di collegamenti fra i nodi.
Alternativa al link state un algoritmo di tipo DECENTRALIZZATO, che non ha bisog
no di conoscere a priori tutta la tipologia della rete, ma ogni nodo conosce sol
o i propri vicini: l'algoritmo DISTANCE VECTOR. Questo algoritmo fa uso delle eq
uazioni di Bellman-Ford.4
Se si vuole calcolare il costo del percorso di costo minimo fra x e y
dx(y) il percorso di costo minimo. Questo costo si pu scrivere come questa equazi
one:
si prendono tutti i vicini di x(e li chiamo v), se conosco il costo della comuni
cazione da x a v + il costo del cammino di costo minimo da v a y e prendo il min
imo (al variare di v) questo il costo del cammino di costo minimo da x a y.
dx(y) = min {c(x,v) + dv(y)}
Se si conosce il costo del cammino di costo minimo di tutti i vicini di x a y, a
llora possibile conoscere il cammino di costo minimo da x a y.
La formula si applica in maniera iterativa. All'inizio abbiamo infatti una stima
del costo di percorso minimo.
L'algoritmo di distance vector mi serve a calcolare una prima stima della distan
za da un nodo x a un nodo y:
- il nodo x deve conoscere la comunicazione diretta con i propri vicini diretti;
-ogni nodo mantiene lo stato (IL VETTORE DELLE DISTANZE) dei propri vicini, cio u
na stima di come i suoi vicini raggiungano le altre destinazione.
Continuamente ogni nodo trasmette il vettore delle distanze ai propri vicini. I
propri vicini fanno lo stesso. Il distance vector algorithm ITERATIVO e ASINCRON
O (i nodi non sono sincronizzati, ma ci non inficia sul risultato finale).
Ogni nodo se si accorge che cambia uno dei pesi dei suoi link aggiorna il propri
o distance vector e lo invia ai propri vicini; oppure riceve dai propri vicini d
ei distance vector diversi dal proprio distance vector. Questa operazione viene
fatta periodicamente, fin quando il distance vector si "stabilizza" (convergenza
dell'algoritmo). (esempio libro).
Il distance vector finale riempir la tabella di forwarding.
Ci sono per dei casi in cui l'algoritmo non converga.
Il DV sempre in funzione, a differenza del LS.
Se cambia il costo di un link?
1) se il costo di un link si abbassa: x deve aggiornare il proprio DISTANCE VECT
OR e deve informare i vicini del cambiamento. La notizia si propaga velocemente
("good news travels fast") e la convergenza si ottiene rapidamente.
2) se il costo aumenta: la notizia si propaga lentamente, si innesca il problema
del "conteggio all'infinito". Le iterazioni sono moltissime, a causa di una sti
ma errata (instradamento ciclico). Aumentando il peso, aumentano implicitamente
le iterazioni!
Una soluzione a questo problema l'avvelenamento inverso: se le modifiche avvengo
no nei collegamenti di y, se z sa gi di dover passare da y, metter ad infinito nel
distance vectr la parte relativa a y. In definitiva, tale tecnica consiste nel
fatto che ogni nodo, quando comunica il DV ai propri vicini, metter a infinito tu
tte quelle distanze che riferiscono a percorsi di costo minimo che passano per q
uel vicino. Tuttavia questa tecnica non funziona sempre!
Il DV alla base del RIP, ma viene evitato il problema del conteggio all'infinito
(tutti i pesi sono fissati a 1 e anche il diametro fissato ad un valore max).
COMPARAZIONE TRA LS E DV
COMPLESSITA' DEI MESSAGGI: nel LS O(N*E) DOVE E= N LINK DELLA RETE
nel DV lo scambio avviene solo tra i vicini

(al massimo 2 *

numero di link)

VELOCITA' DI CONVERGENZA: nel LS dell'ordine N^2 (al massimo Nlog2N)


nel DV dipende dalle iterazioni (c' anche il p
roblema del
conteggio all'infinito)
ROBUSTEZZA: cosa succede se il router si guasta:
nel LS il danno inferiore (grazie al flooding) rispett
o al DV (propagazione
dell'errore a tutti i nodi della rete)
Finora la rete stata vista come una serie di router interconnessi; questi erano
visti "idealmente" omogenei. Ma questa visione "idealistica" risulta un po' semp
licistica in per due principali motivi. Uno di natura TECNICA (aumentando il num
ero di router, gli algoritmi di link state e distance vector non sono pi appropri
ati e tale soluzione NON SCALA), l'altra AMMINISTRATIVA (Internet una rete di re
te e non si pu pensare ad una rete "flat" con le stesse politiche di routing). E'
necessario introdurre i SISTEMI AUTONOMI (AS)=> insieme di router aggregati che
formano un'area di routing. I router nello stesso AS devono far girare lo stess
o protocollo di routing. Tali protocolli all'interno di questi AS si dicono INTR
A-AS).
Ogni volta che si vuole uscire dall'AS, ci saranno dei router di bordo (o gatewa
y router). Ogni router deve sapere qual il modo migliore per comunicare con gli
altri router dell'AS e come raggiungere il router di bordo. Questo meccanismo si
chiama ROUTING GERARCHICO. Per andare in un altro AS necessario un protocollo I
nterAS (uguale per tutti gli AS), che su internet il BGP. Ogni AS identificato d
a un numero univoco assegnato da ICANN. I router all'interno di un AS presentan
o una tabella di forwarding, riempita da informazioni relative agli algoritmi di
intra-AS e di inter-AS. Quindi su un nodo girano sia interAs che intraAS.
Compito dei protocolli di routing interAS quello di propagare la raggiungibilit d
elle reti attraverso i router di ogni AS. Gli intraAS determinao i costi dei per
corsi a costo minimo verso i router di bordo.
Se ci sono pi router di bordo che raggiungono un altro AS si effettua un algoritm
o di hot potato routing (lo mando al pi vicino).
I protocolli di routing intraAS vengono anche definiti IGP; i pi utilizzati sono:
-RIP (routing infformation protocol)
-OSPF (Open shortest path first che si basa sul LINK STATE)
RIP-> utilizza il distance vector, ma fissa il diametro massimo della rete a 15
hop per limitare il problema del conteggio all'infinito. Il costo del link posto
pari a 1.
Ogni router scambia distance vector con i vicini ogni 30 sec, a patto che ci sia
no aggiornamenti, altrimenti non lo fa. Scambia dei messaggi di advertisement, i
n cui c' una lista di max 25 subnet che lui pu raggiungere. Un router non pubblici
zza dunque come raggiungere gli altri router, bens le SUBNET che esso pu raggiunge
re. Le informazioni propagate dunque destination subnet, next router e numero di
op. Quindi nel distance vector non metto i router, bens le reti "agganciate" al
router. Se dopo 180 secondi non si riceve l'advertisement, quel nodo (vicino) vi
ene dichiarato morto, il distance vector viene aggiornato e rinviato ai vicini r
imanenti. Per evitare il ping pong legato ad un problema di conteggio all'infini
to si usa l'avvelenamento inverso e non si andr oltre i 16 hop). Il RIP implement
ato a livello applicativo ma lavora a livello network e per scambiare messaggi d
i advertisement si usano segmenti UDP.
Alternativa al RIP l'OSPF (Open shortest path first).
OSPF (L. 24) => un protocollo disponibile pubblicamente, e utilizza l'algoritmo
LINK STATE come tecnica per costruire percorsi pi brevi. Ogni nodo costruisce de
i messaggi OSPF incapsulati direttamente in pacchetti IP. Questo protocollo aggi
unge sicurezza. La cosa importante di questo protocollo che si tratta di un prot
ocollo gerarchico, in quanto possibile suddividere ancora una volta l'AS in aree
(c' un'area di backbone che interconnette le varie aree disgiunte). I router di

bordo dell'AS stanno all'interno della backbone.


BGP (Border gateway protocol) un protocollo interAS, utilizzato per scambiare in
formazioni tra diversi AS. Ha due componenti:
- eBGP (external) si occupa di scambiare info tra gli AS e gira sui router di bo
rdo degli AS.
-iBGP (internal) propaga le informazioni all'interno dell'AS.
Nel router di bordo di AS girano entrambe le componenti.
In sostanza pubblicizza quali subnet un AS in grado di raggiungere.
BGP funziona col concetto di "sessioni".
BGP gira su TCP. I messaggi BGP sono a livello applicazione.
Un altro importante compito che svolge BGP quello di modificare le netmask per a
ggregare pi subnet in un unico blocco.
ROTTE= prefisso di rete (IP e netmask) raggiungibile + attributi (di attributi c
e ne sono tanti, ma i due pi importanti sono AS-PATH (contiene i n di AS attravers
o questa pubblicizzazione passata) e NEXT-HOP (IP del router interno all'AS attr
averso cui si pu raggiungere la destinazione).
BGP nasce anche per un motivo amministrativo, che quello di stabilire le politic
he con cui un router di bordo accetta o meno gli advertisement dai nodi vicini.
che si fa quando ci sono pi route disponibili per lo stesso prefisso?
* Le route disponibili si filtrano innanzitutto secondo le policy (ad ogni route
assegnato un valore di preferenza, legato ad accordi commerciali)
* A parit di policy Tra le route con la stessa preferenza si sceglie quella con m
inore as-path
* Se hanno lo stesso as-path si fa hot-potato in base al next-hop
* Altrimenti si sceglie arbitrariamente in base al BGP identifier.
POLITICHE DI INSTRADAMENTO
Non tutti gli AS sono dello stesso tipo in realt; ci sono provider networks (tier
1, si fanno attraversare anche da pacchetti non destinati a loro) e reti di tip
o customer network, che in genere fanno un contratto con i provider networks.
Perch abbiamo routing di tipo IntraAS e InterAS?
-L'interAS un problema di politiche, nell'intra-AS non sono necessarie politiche
.
-problema di scala: Internet non pu essere trattata in maniera flat ed necessario
fare gerarchia affinch il sistema scali.
-problema di performanca: intra-AS si focalizza sulle performance, inter-AS si f
ocalizza non pi sulle prestazioni, bens sulle politiche.
--------------------Il router nelle reti di accesso configurato solitamente in maniera statica.
--------------------IPv6; differenze con IPv4
campo version rimane
type of service -> traffic class
prioriry e flow label
aggiunta una flow label, che permette di trattare in modo particolare i pacchett
i appartenenti ad uno stesso flusso
lunghezza totale pacchetto -> lunghezza del solo carico (la lunghezza header fis
sa a 40byte, il doppio di ipv4)
next hdr. Indica il tipo di pacchetto nel campo dati. Le opzioni ora sono nel ca
rico e indicate come next header.
hop limit
indirizzi 128 bit: quattro volte la grandezza di prima
droppati:

frammentazione: porta solo problemi. Droppare e mandare ICMP("packet too big") a


l mittente
header checksum: il checksum avviene gi link-layer, ed improbabile che il pacchet
to si corrompa dentro il router. Inoltre cos non deve essere ricalcolato.
Per l'IPv6 non si usa la notazione decimale puntata, bens si scrive a blocchi a 4
cifre esadecimale.
transizione (possibilit):
* flag day impossibile
* Dual Stack: fare in modo che i dispositivi che supportano ipv6 supportino anch
e ipv4 (e dargli due indirizzi). A dire se un nodo compatibile ci penser poi il d
ns. Ad ogni passaggio, il nodo decider, in base al successivo, se usare ipv4 o ip
v6 (con conversioni avanti e indietro)
* Tunnelling: fattibile se i due end host supportano ipv6, ma alcuni router in m
ezzo no. In questo caso, quando un router si trova a inviare dati al successivo,
invece di convertire il pacchetto (perdendo campi), si incapsula in un pacchett
o ipv4. Questo verr de-incapsulato quanto prima (cos da tornare ad usare le funzio
ni di ipv6 e non perdere nulla. In genere i router ipv4-only sono contigui... (l
i cambiano in blocco)

Vous aimerez peut-être aussi