Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Strato rete in Internet
Gruppo Reti TLC
2
Internet protocol suite
Application Telnet FTP SMTP SNMP NFS Presentation XDR Session RPC Transport TCP e/o UDP Network IP ICMP Protocolli di routing ARP | RARP Data Link Non Specificati Physical OSI Internet Protocol Suite
3
IP: Internet Protocol Livello rete dell’architettura TCP/IP
Offre un servizio non connesso inaffidabile best-effort senza garanzie di qualità di servizio
4
Il protocollo IP È un protocollo di strato rete (strato 3)
Si occupa quindi dell’indirizzamento e instradamento dei pacchetti (detti datagram) La consegna dei pacchetti IP è: connectionless ogni pacchetto trattato in modo indipendente inaffidabile (unreliable) perdita, duplicazioni, ritardi non distingue tra diversi tipi di traffico (no priorità, tratta tutti in modo best-effort)
5
Protocollo IP Consegna inaffidabile Consegna connectionless
In caso di guasti (es. un router fuori servizio, collegamento non disponibile) scarta il datagram cerca di inviare un messaggio di errore al mittente Consegna connectionless Non conserva informazioni di stato sui datagram in corso di trasmissione Ogni datagram instradato in modo indipendente Due pacchetti con stessa sorgente e destinazione possono seguire percorsi diversi
6
Intestazione pacchetto IP
4 8 16 19 24 31 Version HLEN Service Type Total Length Identification Flags Fragment Offset Time To Live Protocol Header Checksum Source IP Address Destination IP Address Options PAD
7
Intestazione pacchetto IP: i campi
VER: versione del protocollo IP HLEN: lunghezza dell’header in parole da 32 bit (se opzioni assenti, vale 5) Type of service (TOS): tipo di servizio richiede il datagram (minimize delay, maximize throughput, maximize reliability, minimize cost ). Ignorato dai router. Total Length: lunghezza del datagram in byte (incluso header). Dimensione massima byte
8
Frammentazione Ogni rete ha massima dimensione ammessa
MTU (Maximum Transfer Unit) Ethernet 1.5 kB Quando devo attraversare rete con MTU più piccola del datagram si deve frammentare Frammenti diventano datagram indipendenti, con intestazione quasi uguale a quella del datagram originario ricostruiti solo alla destinazione, mai nei router Frammentazione trasparente a sorgente e destinazione
9
Frammentazione La frammentazione è dannosa
aumento overhead di intestazione, duplicato su ogni frammento perdita di un frammento comporta la perdita al ricvevitore di tutto il datagram; aumenta la probabilità di errore ricevitore deve attivare timer di attesa arrivo frammenti e riassemblare I router IP però non si devono occupare di riassemblare frammenti
10
Intestazione pacchetto IP: i campi
Identification, Flags, Fragment offset: controllano operazioni di frammentazione Identification: permette di riconoscere a quale datagram il frammento appartiene (frammenti dello stesso datagram hanno stesso valore deciso da chi genera datagram) Fragment offset: specifica offset dati contenuti nel frammento, in multipli di 8 byte Flags (2 bit): don’t fragment e more fragments (identifico ultimo frammento)
11
Intestazione pacchetto IP: i campi
TTL (time to live): tempo di vita (in hop) di un datagram Ogni router decrementa di 1 il valore di TTL Se TTL=0 scarta datagram ed invio messaggio di errore Protocol: formato dei dati specificando un protocollo di livello superiore Header Checksum (16 bit): controllo di errore sulla sola intestazione, non sui dati utente. Somma in complemento a 1 allineando header a 16 bit.
12
Intestazione pacchetto IP
Source e Destination Address (32 bit): indirizzo sorgente e destinazione degli host Formato opzioni: option code (option number, option class, flag di copia nei frammenti) + lunghezza opzione + dati Opzioni record route: registro percorso del datagram source route (loose and strict): sorgente specifica percorso del datagram timestamp: permette di registrare tempo di elaborazione del datagram
13
Il protocollo ICMP ICMP (Internet Control Message Protocol ) è solitamente considerato parte del livello IP Comunica messaggi di errore o di controllo. Può trasportare richieste di informazioni e risposte alle richieste. I messaggi ICMP sono trasmessi all’interno di datagram IP
14
Formato del messaggio ICMP
type code checksum data
15
Esempi di messaggi ICMP
messaggio type code echo reply query echo request query network unreachable errore host unreachable errore port unreachable errore destn net unknown errore destn host unknown errore redirect controllo time exceeded (TTL) errore time exceeded (fragment reass) errore
16
Il comando ping Se un host non risponde al ping, non è raggiungibile.
Spesso usato per rilevare guasti in rete E’ disponibile su macchine Unix e su PC Informazioni visualizzate da ping: numero di sequenza TTL round-trip-time (tempo impiegato a percorrere la tratta sorgente-destinatario-sorgente)
17
Applicazione: il comando ping
Il nome è ispirato al rumore del sonar Esegue un test di raggiungibilità dell’interfaccia di rete di un host remoto Invia un messaggio ICMP echo request ad un host, aspettandosi un echo reply Di default, l’ ICMP viene inviato ogni secondo allo stesso host; è possibile tuttavia modificare la frequenza di invio
18
Il comando traceroute traceroute permette di seguire il percorso dei datagram IP hop-per-hop fino a destinazione Funzionamento: host invia datagram IP vuoti, con TTL crescenti e destinati alla porta dell’host remoto I router intermedi ritornano ICMP “time exceeded” La destinazione ritorna ICMP “port unreachable” Se non torna messaggio ICMP in risposta entro un timeout di 3 sec., si segnala errore
19
Andrea Bianco Andrea.Bianco@polito.it http://www.tlc.polito.it/
Indirizzi IP Andrea Bianco
20
Indirizzamento IP: obiettivi e risultati
Obiettivo originale: rendere efficienti le operazioni di routing (router lenti - anni ‘80) con indirizzi facilmente “classificabili” Spreco dello spazio di indirizzamento (esaurimento degli indirizzi - anni ‘90) Nuovo obiettivo: razionalizzare l’assegnazione degli indirizzi e la loro aggregazione nelle routing tables Riduzione delle dimensioni delle routing tables e riutilizzo di indirizzi già assegnati
21
Indirizzi IP: Principi
Ogni host (interfaccia) è individuato da un indirizzo a 32 bit, assegnatogli univocamente Un indirizzo è caratterizzato da informazioni sulla rete (netid) e sull’host (hostid) L’instradamento si basa sul netid indirizzo non individua la macchina ma la rete se sposto host di rete devo cambiare indirizzo Ogni router ha almeno due indirizzi IP Gli host solitamente uno solo
22
Multi-Homed Hosts Poiché l’indirizzo ha informazioni su rete e host, se ho più di una interfaccia di rete, devo avere due indirizzi Più che un host, un indirizzo individua una connessione ad una rete! Interfaccia #1 H Interfaccia #2
23
Classi di indirizzi 1 2 3 4 8 16 24 32 Classe A netid=7 bit
Classe A netid=7 bit hostid=24 bit Indirizza 127 reti, ciascuna delle quali può contenere oltre 16 milioni di hosts Classe B 1 netid=14 bit hostid=16 bit Indirizza reti, ciascuna delle quali può contenere hosts Classe C 1 1 netid= 21 bit hostid=8 bit Indirizza oltre 1 milioni di reti, ciascuna delle quali può contenere però ‘solo’ 256 hosts 1 1 1 Classe D Indirizzi multicast
24
Rappresentazione decimale
L’indirizzo Internet viene comunemente rappresentato nella forma: xxx.xxx.xxx.xxx con xxx numero decimale tra 0 e 255 Il primo numero permette di riconoscere la classe dell’indirizzo: Classe A Classe B Classe C Classe D Classe E
25
Classi di indirizzi IP A: 105.20.38.165 B: 130.192.2.158
indirizzo di rete (netid)
26
Indirizzi di rete e Broadcast
Indirizzo con hostid di tutti 0, individua la rete Indirizzo con hostid di tutti 1, rappresenta l’indirizzo broadcast della rete stessa (trasmetto in broadcast su quella rete) netid di tutti 1 indica questa rete. Trasmetto senza conoscere IP della rete (boot) Se il netid e` tutti 0, indirizzo all’host sulla rete cui sei collegato Indirizzi riservati ( loopback, reti private)
27
Problemi delle classi Nessuno usa classe A Pochi usano (male) classe B
Classe C identifica reti piccole; indirizzi poco richiesti Fare crescere una rete oltre i limiti di dimensione della classe richiede la modifica degli indirizzi di tutti gli host
28
L’introduzione delle maschere
È necessario superare la divisione rigida in netid e hostid Scompare il concetto di classe Uso maschera per definire quanti bit dei 32 di indirizzo individuano la rete, ovvero per indicare l’estensione del campo netid Inizialmente si utilizzano le maschere per suddividere indirizzi di classe B
29
La subnet mask La subnet mask (o netmask) è un valore di 32 bit contenente: bit messi a 1 per identificare la parte di rete bit messi a 0 per identificare la parte di host Per esigenze di instradamento, un host deve conoscere la parte di rete del proprio indirizzo IP (netid+subnetid): utilizza la subnet mask La subnet mask viene introdotta in fase di configurazione di un host
30
La subnet mask Esempio: indirizzo host 130.192.2.7 AND
AND
31
Maschere per supernetting
In una seconda fase si utilizzano le maschere per accorpare indirizzi di classe C Si assegnano blocchi contigui di indirizzi di classe C Si usano sempre maschere (supernetting) per identificare netid Si parla di CIDR: Classless Interdomain Routing (1992)
32
Supernetting Esempio: assegno 2048 indirizzi contigui, a partire da indirizzo Per rappresentare tale intervallo di valori, utilizzo AND tra indirizzo inferiore e la maschera
33
Instradamento in reti IP
Andrea Bianco
34
Consegna diretta e indiretta
Se due host sono connessi direttamente alla stessa sottorete (intesa come collegamento fisico) si ha consegna diretta Se due host non sono connessi alla stessa sottorete, la consegna è mediata da uno o più router: si ha consegna indiretta
35
Consegna diretta Per decidere se effettuare una consegna diretta, l’host mittente controlla la porzione di rete dell’indirizzo IP destinatario Se tale porzione coincide con il proprio indirizzo di rete, si ha consegna diretta In ogni comunicazione tra host, si ha almeno una consegna diretta Il trasferimento avviene mappando l’indirizzo IP in un indirizzo MAC della LAN cui l’host è collegato
36
Risoluzione di indirizzi:
Problema che si presenta per ogni trasmissione di datagram IP (host-host, host-router, router-router, router-host) Da indirizzo IP ad indirizzo MAC (fisico) Direct mapping: mediante tabella statica Dynamic bynding: protocollo ARP: Address Resolution Protocol ARP e` utilizzato su reti broadcast (LAN) Dato l’indirizzo IP dell’host con cui si vuole comunicare, permette di ricavarne l’indirizzo MAC (es: Ethernet)
37
ARP Viene costruito dall’host che vuole risolvere l’indirizzo un pacchetto broadcast (request) che contiene l’indirizzo IP del destinatario, indirizzo IP ed Ehternet di chi origina la richiesta L’host che riconosce nel campo richiesta il proprio indirizzo IP invia un pacchetto di risposta (reply) direttamente al sender
38
ARP Sia chi origina il pacchetto sia chi lo riceve (e risponde) aggiungono una informazione nella propria tabella ARP Le successive comunicazioni tra i due elaboratori possono avvenire senza ulteriori richieste di ARP Le entry nella tabella di ARP scadono dopo un tempo prefissato
39
ARP a.b.c.d e.f.g.h i.j.h.k l.m.n.o p.q.r.s 1 2 LAN address di C
40
Tabelle di ARP Corrispondenze tra indirizzi IP e indirizzi LAN
IP addr LAN addr age b e 10 b
41
Tabelle di ARP Ogni volta che un elaboratore deve comunicare con un altro sulla stessa LAN conoscendone l’indirizzo IP, viene ricercato l’indirizzo nella tabella di ARP Se non si trova un match viene emessa una richiesta di ARP, altrimenti la comunicazione può avvenire usando direttamente l’indirizzo MAC
42
Formato del pacchetto ARP
8 16 31 Hardware Type Protocol Type HLEN PLEN Operation Sender HW Address Sender HW Address Sender IP Address Sender IP Address Target HW Address Target IP Address Protocol Target HW Address Time To Live Target IP Address
43
ARP: formato pacchetto
Operation: tipo di operazione arp request, arp reply, rarp request, rarp reply Hardware type: tipo di MAC (Ethernet = 1) Protocol type: protocollo che usa ARP (IP=0800H) HLEN e PLEN permettono di utilizzare ARP con rete arbitraria (indirizzi di dimensione variabile)
44
Consegna indiretta Il mittente identifica quale router incaricare della consegna del datagram IP tra quelli raggiungibili con consegna diretta Il router incaricato sceglie il router successivo, da lui raggiungibile direttamente, sul percorso verso la destinazione Il datagram passa da router a router fino a quello che lo consegna direttamente a destinazione
45
Le Routing Tables Ogni host ed ogni router coinvolto nella consegna IP ha tabelle di instradamento (RT, Routing Table) Ovviamente, le tabelle non possono avere informazioni su ogni possibile destinazione Principio: nascondo l’informazione I router remoti instradano usando solo la porzione di rete dell’indirizzo IP
46
Il Next-hop Routing Una tabella di routing contiene almeno due informazioni: D indirizzo destinazione R = next-hop D è normalmente un indirizzo di rete R è detto next-hop, e corrisponde ad un host o un router raggiungibile direttamente Se è possibile mettere in relazione l’indirizzo di destinazione del pacchetto in transito con un indirizzo D delle RT, il pacchetto viene inviato al relativo R
47
Next-hop Routing - esempio
Tabella del router A INDIR. RETE NEXT DESTINAZ HOP rete B rete A diretto rete rete X
48
Instradamenti Default e Specifici
Se il next-hop è unico (es: piccola sottorete con unico router), le tabelle di instradamento degli host possono contenere solo una default route per l’esterno L’instradamento può essere specificato per host (host specific route) e non per sottorete per ragioni di: testing maggior sicurezza
49
Gestione delle Routing Tables
Le tabelle di Routing sono fondamentali per il funzionamento corretto di Internet Problemi da affrontare: come inizializzare le RT? quali informazioni devono contenere? come aggiornarle? consistenza tra RT e assenza di loop
50
Inizializzazione delle RT
Dipende dal sistema operativo: lettura da un file di configurazione, eventualmente scritto dall’operatore esecuzione di “comandi di scoperta” da inviare sulla rete scambio di informazioni con altri host sulla rete locale
51
La propagazione delle Routing Tables
Le RT possono cambiare a causa di: interventi sulle topologie guasti sovraccarichi L’informazione sui cambiamenti deve essere propagata tra router mediante le procedure previste dall’algoritmo di instradamento utilizzato
52
Algoritmo di instradamento IP
Estraggo dal pacchetto la parte netid dell’indirizzo IP di destinazione (facile con classi) Se sono collegato direttamente alla destinazione, uso consegna diretta (ARP) altrimenti, cerco host specific route altrimenti, cerco next-hop memorizzato per quella rete altrimenti, cerco default route altrimenti, dichiaro errore di routing
53
Conseguenze dell’introduzione delle subbnet mask
Gli host ed il router locale (solo quello!) deve utilizzare AND tra indirizzo IP e maschera per individuare il netid correttamente Devo memorizzare nella routing table dell router locale anche le netmask Per gli altri ruoter non sono richieste modifiche. Posso usare routing standard
54
Conseguenze dell’introduzione del CIDR
Introdotto (1992) per ridurre le RT e ovviare all’imminente esaurimento della classe B Ad un sito che richiede più indirizzi IP questi sono allocati in modo “contiguo”, condividendo i bit più significativi Il risultato è l’occupazione di una sola “riga” (per tutti gli indirizzi richiesti) nelle RT, che sono consultate con il criterio del longest match
55
Conseguenze dell’introduzione del CIDR
CIDR ha il vantaggio di permettere una aggregazione degli indirizzi su base topologica e geografica... ...ma lo svantaggio di complicare la funzione di lookup perchè: è necessario fare confronti con prefissi a lunghezza variabile (necessario memorizzare nelle RT, oltre all’indirizzo di rete, anche la relativa netmask) bisogna scorrere tutta la tabella per individuare il prefisso con il longest match
56
CIDR: operazioni di un router
Un router riceve un pacchetto con indirizzo destinazione x.y.z.w Esegue AND bit a bit, per ogni riga delle R.T. tra: l’indirizzo di destinazione nella routing table e la netmask l’indirizzo ricevuto x.y.z.w e la stessa netmask Confronto i risultati degli AND: se sono uguali, ho un matching Instrado secondo la riga delle R.T. che ha avuto il maggior numero di bit di matching
57
Esempio CIDR R2 S R R1 R3
58
Esempio CIDR R2 S R R1 R.T. R3 R1
59
Esempio CIDR R2 S R R1 R3 R.T. R1 (18)
60
Esempio CIDR R2 S R R1 R.T. R3 R2 R3
61
Esempio CIDR R2 S R R1 R.T. R3 R2 (18) R3
62
Esempio CIDR R2 S R R1 R.T. R3 D D
63
Esempio CIDR R2 S R R1 R.T. R3 D D (24)
64
Come si ottengono indirizzi IP?
Indirizzi di host in sottorete (host_id): liberi, configurati da amministratore di rete Wintel: control-panel->network->configuration->tcp/ip->properties UNIX: /etc/rc.config DHCP: Dynamic Host Configuration Protocol: ottengo dinamicamente indirizzi: host inviano in broadcasts msg “DHCP discover” DHCP server risponde con “DHCP offer” msg host richiede indirizzo IP: “DHCP request” msg DHCP server invia indirizzo: “DHCP ack” msg
65
Come si ottengono indirizzi IP?
Indirizzi di rete (net_id): si chiede una parzioni di indirizzi IP ad un ISP ISP's block /20 Organization /23 Organization /23 Organization /23 … … …. Organization /23
66
Come si ottengono indirizzi IP?
Come ottiene indirizzi IP un ISP? ICANN: Internet Corporation for Assigned nomi e numeri alloca indirizzi gestisce DNS assegna nomi di dominio, risolve liti
67
Da sorgente a destinazione: esempio
tabella di routing in A Datagram IP: Dest. Net. next router Nhops misc fields source IP addr dest data A B E datagram NON si modifica da sorgente a destinazione interessano solo campi indirizzo
68
Da sorgente a destinazione: esempio
In A, noto indirizzo IP di B: guardo net_id di B trovo che B appartiene alla stessa sotto rete di A invio datagram direttamente a B usando indirizzo MAC B e A sono collegati direttamente misc fields Dest. Net. next router Nhops data A B E
69
Da sorgente a destinazione: esempio
misc fields data In A, noto IP di E: confronto net_id E su rete diversa A, E non sono collegati direttamente tabella di routing: next hop invio datagram al router usando indirizzo MAC del router Dest. Net. next router Nhops A B E
70
Da sorgente a destinazione: esempio
misc fields data network router Nhops interface Dest next Arrivo a , destinato a confronto net_id di E e verifico che sono sulla stessa rete con interfaccia router ed E attaccati direttamente invio datagram a con indirizzo MAC di E A B E
71
Gruppo Reti TLC nome.cognome@polito.it http://www.tlc.polito.it/
Instradamento Gruppo Reti TLC
72
Instradamento Obiettivo dei protocolli di instradamento: Grafo
determinare un “buon” percorso (sequenza di router) nella rete da sorgente a destinazione Grafo router sono nodi link fisici sono archi Costi su archi ritardo, euro, livello di congestione “Buon” percorso: tipicamente percorso a costo minimo A E D C B F 2 1 3 5
73
Classificazione algoritmi di routing
Informazioni globale o decentralizzata? Globale: tutti i router conoscono la topologia completa, compresi i costi dei canali scambio informazione tra tutti i router algoritmi link state Decentralizzata: i router conoscono i router cui sono fisicamente collegati ed i costi dei canali cui sono collegati scambio di informazione solo con i router adiacenti algoritmi distance vector
74
Algoritmo Link-State Algoritmo di Dijkstra: determina cammini ottimi
Tutti nodi conoscono topologia della rete e costi di tutti i canali si inviano informazioni in broadcast tutti i nodi hanno stessa visione (completa) della rete Ogni nodo calcola i percorsi a minimo corso verso tutti gli altri nodi si ottengono tabelle di routing per questo nodo Algortimo iterativo: dopo k iterazioni si ottengono i cammini a costo minimo per k destinazioni
75
Algoritmo di Dijkstra Notazione:
c(i,j): costo del canale dal nodo i al nodo j. Infinito se nodo non collegato direttamente al canale. D(v): valore corrente del percorso migliore da sorgente alla destinazione v p(v): nodo che precede v nel percorso da sorgente a destinazione v N: insieme di nodi per cui il cammino ottimo e` noto
76
Algoritmo di Dijkstra 1 Initialization (nodo A): 2 N = {A}
3 per tutti i nodi v if v adiacente ad A then D(v) = c(A,v) else D(v) = infty 7 8 repeat 9 trova w not in N tale per cui D(w) e` minimo 10 aggiungi w ad N 11 aggiorna D(v) per tutti i v adiacenti a w e not in N: D(v) = min( D(v), D(w) + c(w,v) ) 13 /* il nuovo costo verso v e` o il vecchi costo verso v o il cammino cammino a minimo costo verso w piu` costa da w a v*/ 15 until tutti i nodi in N
77
Dijkstra: esempio Step 1 2 3 4 5 start N A AD ADE ADEB ADEBC ADEBCF
1 2 3 4 5 start N A AD ADE ADEB ADEBC ADEBCF D(B),p(B) 2,A D(C),p(C) 5,A 4,D 3,E D(D),p(D) 1,A D(E),p(E) infinity 2,D D(F),p(F) infinity 4,E A E D C B F 2 1 3 5
78
Algoritmo di Dijkstra: proprietà
Complessità con n nodi Ogni iterazione: controllo tutti i nodi w not in N n*(n+1)/2 confronti: O(n**2) Esistono implementazioni migliori: O(nlogn) Possibili oscillazioni: Esempio: costo canali legato al carico trasportato A D C B 1 1+e e 2+e Situazione inziale … ricalcolo percorsi … ricalcolo …ricalcolo
79
Distance Vector Algoritmo iterativo: Termina in modo autonomo:
continua fino a quando I nodi non scambiano piu` informazioni Termina in modo autonomo: nessun segnale esplicito di fine algoritmo Asincrono scambio informazioni necessario solo se cambiamento di stato Distribuito: ogni nodo comunica solo con nodi adiacenti
80
L’algoritmo Distance Vector
Ogni router scambia periodicamente con i vicini diretti un vettore contenente: le destinazioni (reti) che può raggiungere la distanza dalle destinazioni misurata in hop (num. router da attraversare compreso se stesso) Il router che riceve il vettore lo confronta con le proprie RT ed effettua modifiche: aggiunge nuove reti cambia instradamenti se nuovi sono più brevi
81
L’algoritmo Distance Vector
Destinazione Distanza Route Net Diretta Net Diretta Net Router L Net Router M Net Router J Net Router Q Net Router J Distance Vector spedito dal router J Destinazione Distanza Net 1 2 Net 4 3 Net 17 6 Net 21 4 Net 24 5 Net Net 42 3 Routing Tables del router K K J J
82
L’algoritmo Distance Vector
Vantaggi facile da implementare Problemi: lento a convergere propaga errori di routing non molto scalabile (le dimensioni dei messaggi scambiati dai router crescono al crescere della rete)
83
Distance Vector Struttura dati: tabella distanze
Ogni nodo possiede la propria Una riga per ogni possibile destinazione Una colonna per ogni router adiacente Esempio: nel nodo X, per la destinazione Y attraverso nodo adiacente Z: D (Y,Z) X distanza da X ad Y, via Z come next hop c(X,Z) + min {D (Y,w)} Z w =
84
Tabella distanze: esempio
Costo verso destinazione attraverso nodo A E D C B 7 8 1 2 E D () A B C D A 1 7 6 4 B 14 8 9 11 D 5 4 2 D (C,D) E c(E,D) + min {D (C,w)} D w = 2+2 = 4 destinazione D (A,D) E c(E,D) + min {D (A,w)} D w = 2+3 = 5 anello! D (A,B) E c(E,B) + min {D (A,w)} B w = 8+6 = 14 anello!
85
Tabella di instradamento a partire da tabella distanze
Costo verso destinazione atttraverso nodo E Canale di uscita da usare, costo D () A B C D A 1 7 6 4 B 14 8 9 11 D 5 4 2 A B C D A,1 D,5 D,4 destinazione destinazione Tabella distanze Tabella di Routing
86
Instradamento Distance Vector
Iterativo, asincrono: una iterazione (locale al nodo) causata da: modifica costo canale a cui nodo collegato messaggio ricevuto da nodo adiacente, che causa modifica del cammino ottimo Distribuito: ogni nodo avvisa i vicini solo quando il suo cammino migliore verso una certa destinazione e` cambiato i vicini avviseranno a loro volta nodi vicini se necessario
87
Instradamento Distance Vector
Ogni nodo esegue un loop infinito aspetta modifica costo canale locale oppure messaggio da nodo adiacente ricalcola tabella distanze se percorso migliore verso qualche destinazione cambiato, avvisa i vicini
88
Algoritmo Distance Vector
Ad ogni nodo X: 1 Inizializzazione: 2 per tutti i nodi adiacenti v: D (*,v) = infinito /* l’operatore * significa ”per ogni riga" */ D (v,v) = c(X,v) 5 per tutte le destinazioni, y invia min D (y,w) verso ogni nodo adiacente /* w sono tutti i vicini di X*/ X X X w
89
Algoritmo Distance Vector
8 loop 9 wait (until I see a link cost change to neighbor V or until I receive update from neighbor V) 11 12 if (c(X,V) changes by d) /* change cost to all dest's via neighbor v by d */ /* note: d could be positive or negative */ for all destinations y: D (y,V) = D (y,V) + d 16 17 else if (update received from V wrt destination Y) /* shortest path from V to some Y has changed */ /* V has sent a new value for its min DV(Y,w) */ /* call this received new value is "newval" */ for the single destination y: D (Y,V) = c(X,V) + newval 22 23 if we have a new min D (Y,w)for any destination Y send new value of min D (Y,w) to all neighbors 25 26 forever X X w X X w X w
90
Distance Vector: esempio
X Z 1 2 7 Y D (Y,Z) X c(X,Z) + min {D (Y,w)} w = 7+1 = 8 Z D (Z,Y) X c(X,Y) + min {D (Z,w)} w = 2+1 = 3 Y
91
Distance Vector: esempio
X Z 1 2 7 Y
92
Algoritmo DV: modifica costo canale
Nodo riconosce modifica costo canale Modifica tabella distanze (passo 15) Se modifica implica modifica del cammino migliore avvisa nodi adiacenti (passi 23,24) X Z 1 4 50 Y algoritmo termina “good news travels fast”
93
Algoritmo DV: modifica costo canale
good news travels fast bad news travels slow - problema del “count to infinity”! X Z 1 4 50 Y 60 algoritmo prosegue
94
Distance Vector: poisoned reverse
Se Z instrada via Y per raggiungere X: Z comunica ad Y sua distanza verso X e` infinito (Y non instraderà verso X passando da Z) non risolve il problema completamente X Z 1 4 50 Y 60 algoritmo termina
95
Confronto tra algoritmi LS e DV
Complessità messaggi LS: con n nodi, E canali, ogni nodo invia O(nE) messaggi DV: scambio messaggio solo tra nodi adicenti tempo di convergenza variabile Velocità di convergenza LS: algoritmo di complessità O(n**2) richiede O(nE) messaggi puo` oscillare DV: tempo di convergenza variabile errori di routing creano anelli problema del count-to-infinity
96
Confronto tra algoritmi LS e DV
Affidabilità: cosa succede se un router funziona non correttamente? LS: i nodi possono annunciare costi dei canali scorretti ogni nodo calcola la propria tabella DV: i nodi possono annunciare costi dei cammini scorretti ogni tabella e` usata da tutti i nodi gli errori si propagano nella rete
97
Indirizzamento gerarchico: aggregazione dei percorsi
Indirizzamento gerarchico permette annunci (invio info) efficienti delle informazioni di instradamento Organizzazione 0 /23 Organizzazione 1 “Inviami qualunque pacchetto con indirizzi che iniziano per /20” /23 Organizzazione 2 /23 . ISP B . Internet Organizzazione 7 /23 “Inviami qualunque pacchetto con indirizzi che iniziano con /16” ISP A
98
Indirizzamento gerarchico: aggregazione dei percorsi
Se ISP A ha un percorso piu` specifico verso Organizzazione 1 Organizzazione 0 /23 “Inviami pacchetti con indirizzi che iniziano con /20” Organizzazione 2 /23 . ISP B . Internet Organizzazione 7 /23 “Inviami pacchetti con indirizzi che iniziano con /16 orppure /23” ISP A Organizzazione 1 /23
99
Algoritmi di instradamento in reti IP
Gruppo Reti TLC
100
Routing gerarchico Per ora caso ideale
tutti router identici rete “piatta”, non gerarchica Approccio non utilizzabile in pratica scalabilità: con 50 milioni di destinazioni: tutte destinazioni in una tabella? Scambio di info di routing occuperebbe troppo canali Autonomia amministrativa internet = rete di reti ogni amministratore di rete puo` volere controllare instradamento sulla propria rete
101
Routing gerarchico Router aggregati in regioni, dette Autonomous System (AS) Insieme di router con struttura complessa (molte sottoreti e router) ma unica identità amministrativa Router nello stesso AS usano stesso protocollo di instradamento Protocolli di instradamento intra-AS (IGP: Interior Gateway Protocol) Router in AS diversi possono usare protocolli IGP diversi (aggiornamento e validazione circoscritti)
102
Routing gerarchico In ogni AS devono esistere router “gateway”
responsabili per instradare verso destinazioni esterne all’AS usano protocolli inter-AS (EGP: Exterior Gateway Protocol) con altri router gateway usano protocolli intra-AS con tutti altri router dell’AS Si parla quindi di routing interno (IGP) ed esterno (EGP)
103
Routing Intra-AS and Inter-AS
C.b Gateways: eseguono instradamento inter-AS tra loro eseguono instradamento intra-AS con altri router nel loro AS B.a A.a b A.c c a a C b a B d c A b network layer inter-AS, intra-AS routing in gateway A.c link layer physical layer
104
Routing Intra-AS and Inter-AS
b C A B d c A.a A.c C.b B.a Inter-AS routing tra AS A e B Host h2 Host h1 Intra-AS routing all’iterno dell’AS B Intra-AS routing all’interno dell’AS A
105
Definizione di un AS I “confini” tra AS devono essere ben definiti per non creare confusione tra gli algoritmi di routing A ciascun AS viene assegnato un numero di ID su 16 bit da una authority centrale (INTERNIC, APNIC, RIPE-NCC) Quando due router si scambiano informazioni di raggiungibilità, i messaggi contengono l’ID dell’AS a cui appartengono
106
Traffico locale e in transito
Definiamo “traffico locale” ad un AS il traffico IP che: ha come sorgente un host dell’AS ha come destinazione un host dell’AS In tutti gli altri casi, si tratta di “traffico in transito” sull’AS
107
Autonomous Systems (AS)
Gli AS sono origine/transito/destinazione del traffico inter-dominio Tre categorie di AS: stub: connesso ad un unico AS, accetta solo traffico locale multihomed: connesso a piu’ AS, accetta solo traffico locale transit: connesso a piu’ AS, accetta anche traffico in transito
108
EGP: Exterior Gateway Protocol
Storicamente, il primo protocollo usato dagli AS per diffondere informazioni di raggiungibilità I router che lo usano sono detti router esterni (exterior routers) Presuppone una rete con topologia ad albero (come la “vecchia” ARPAnet) EGP va in crisi con l’introduzione di dorsali e cammini multipli tra due host e per questo motivo è stato sostituito con BGP
109
Funzioni di EGP Neighbor Acquisition: un router richiede ad un “vicino” di accordarsi per comunicare Neighbor reachability: un router controlla sempre se i suoi “vicini” sono raggiungibili Network reachability: i “vicini” si scambiano sempre informazioni di raggiungibilità
110
EGP: Osservazioni e problemi
Non propaga distanze tra reti, ma solo raggiungibilità Presuppone un core system, non funziona con l’attuale struttura a dorsali multiple Non supporta load sharing né cammini alternativi Non supporta il policy routing Va in crisi con router malfunzionanti (pubblicizzano route inconsistenti)
111
Da EGP a BGP La crescita nella complessità della topologia Internet (backbone multiple) rende inutilizzabile EGP (anelli) alternative? Protocolli link state (non realistico) Path-vector
112
BGP: Border Gateway Protocol
E’ il più diffuso EGP in Internet BGP permette di specificare politiche di instradamento per scegliere il cammino migliore in presenza di scelte multiple Le politiche di instradamento sono espressione di considerazioni economiche e gestionali, e tengono conto di aspetti di sicurezza
113
Path Vectors Ogni routing update trasporta un elenco di AS necessari per raggiungere una certa destinazione Se un AS compare due volte, riconosco anello Vantaggi: non creo anelli non sono obbligato ad usare la stessa metrica per ogni router Svantaggi: overhead (una entry per ogni AS che annucio nel path vector)
114
BGP: Border Gateway Protocol
Protocollo di instradamento esterno (or inter-AS) basato su path vector Funzione principale: scambiare informazioni di raggiungibilità Ultimo RFC: 1771 (BGP-4), in corso di aggiornamento
115
BGP: riassunto Due router che usano BGP aprono una connessione utilizzando TCP Inizialmente scambiano le tabelle di instradamento di BGP In caso di modifiche si inviano aggiornamenti incrementali Non sono necessari aggiornamenti periodici (sono inviati periodicamente solo messaggi di KEEPALIVE)
116
BGP peering external peers AS 1 AS 2 AS 3 internal peers AS 4
117
BGP messages Dimensione variabile tra 19 e 4096 bytes
L’intestazione contiene: autenticazione lunghezza messaggio tipo messaggio OPEN (first msg) UPDATE NOTIFICATION (of error condition) KEEPALIVE
118
Messaggi di UPDATE Usato per:
annunciare una nuovo percorso ammissibile verso un peer router AND/OR annullare percorsi inammissibili BGP Header Unfeasible Routes length (2 bytes) Withdrawn routes (variable) UPDATE Total Path Attribute Length (2 bytes) Path attributes (variable, as many as necessary) Network Layer Reachability Information (variable)
119
Messaggi di UPDATE Percorsi da annullare sono identificati mediante le destinazioni (come neti_d IP) I path attributes descrivone i nuovi percorsi (uno per ogni messaggio di UPDATE) Gli attributi di path si riferiscono alla destinazione specificata (utilizzando il netid dell’indirizzo IP) nel campo Network Layer Reachability Information
120
Routing in un AS I router di un AS sono detti interni
Problema: come fa un router interno a conoscere gli instradamenti dentro l’AS? Aggionamenti manuali? Forse per AS di piccole dimensioni... se cambia una rete, bisogna modificare le tabelle di routing su ogni host (richiede tempo e può dare errori) Aggiornamenti automatici
121
Routing in un AS In un AS, i router interni si scambiano dati di raggiungibilità per le reti dell’AS Un protocollo per router interni si chiama, genericamente, IGP (Interior Gateway Protocol ) A differenza di EGP, non esiste un unico standard per i protocolli interni Algoritmi di routing interno più diffusi: RIP (implementazione di distance vector) OSPF (implementazione di link state)
122
Routing Information Protocol (RIP)
Nato presso l’Univ. di Berkeley per servire la loro (piccola) rete locale, e distribuito nella suite UNIX 4BSD (routed) Adottato prima che ne fosse definito uno standard (il primo RFC è del 1988) Oggi ha vasta diffusione anche in AS di grandi dimensioni
123
RIP: caratteristiche Usa una implementazione di distance vector
Divide gli host in attivi (router) e passivi Gli host attivi pubblicizzano le loro route a tutti gli altri ogni n (di solito 30s) secondi, sotto forma di coppie (indirizzo, n. di hop) Metrica e` numero di hop Se un router rileva un instradamento a costo strettamente inferiore a quello che ha nelle RT, lo sostituisce (e imposta un timeout pari a 180s)
124
RIP: un esempio di problemi
Net 1 R1 Net 2 R2 R3 Net 3 R4 R5 Net 4 Net 5
125
RIP: un esempio di problemi
R1 dichiara Net 1 a distanza 1 R2 ed R3 inseriscono una entry che dichiare Net 1 a distanza 2 R4 ed R5 inseriscono una entry che dichiare Net 1 a distanza 3 R1 perde connettività e dichiara distanza infinita (16) su Net1 Se nel frattempo pero` R2 e/o R3 dichiarano distanza 2 verso Net 1, R1 inserisce entry che dichiara Net 1 a distanza 3
126
RIP: problemi Si converge lentamente crescendo le distanze di 1 ad ogni routing updates Data la lentezza di propagazione, si possono avere problemi di lenta convergenza o non consistenza delle RT (count to infinity) Non riconosce automaticamente eventuali loop (occorrono interventi esterni, o modifiche al protocollo) I problemi nascono dal numero limitato di informazioni scambiate tra i router (solo 2) e dalla mancanza di stretto coordinamento
127
RIP: soluzioni Split horizon con poisoning reverse: non propagare informazioni di raggiungibilità dall’interfaccia con cui si raggiunge la destinazione R2 non propaga distanza 2 e dopo un tempo breve tutti dichiarano distanza 16 Non basta! R2 propaga su Net 3 distanza 2 verso Net 1 R3 propaga su Net 3 distanza 3 verso Net 1 R2 accetta distanza 4 verso Net 1 Nessuno usa distanza 16 propagata da R1
128
RIP: altre soluzioni Il router che vede rete disconnessa mantiene questa informazione per un tempo molto superiore al periodo di peridodico aggiornamento R1 mantiene distanza 16 anche se riceve informazione da R2 di distanza 2 Triggering updates: quando vedo rete non piu` connessa forzo update immediatamente R1 immediatamente informa che Net 1 e` a distanza 16 Rischioso perche` posso creare broadcast ripetuti su LAN
129
L’algoritmo IGRP IGRP (Interior Gateway Routing Protocol) venne proposto da Cisco Systems Inc. a metà degli anni ‘80 per superare le limitazioni di RIP E’ un algoritmo distance vector con metriche più sofisticate: ritardo, banda, affidabilità, carico Permette il multipath routing Limite: è solo disponibile sui router Cisco
130
L’algoritmo OSPF OSPF (Open Shortest Path First ) è una proposta di IETF dell’89 [RFC 1247] E’ un algoritmo link-state: ogni router verifica lo stato delle linee verso i router adiacenti e lo invia a tutti i router conosciuti Ogni router si costruisce una mappa completa della rete su cui calcole le route con algoritmi sofisticati (SPF o alg. di Dijkstra)
131
RIP e OSPF RIP: invia informazioni su tutte le subnet solo ai router adiacenti i router cooperano direttamente per calcolare le tabelle di instradamento OSPF: invia a tutti i router noti informazioni solo sulle subnet a cui sono connessi i router cooperano per aggiornare la mappa della rete, ma poi ciascuno si calcola le RT in modo autonomo
132
OSPF: caratteristiche
Discrimina i percorsi verso una stessa destinazione secondo il campo TOS E’ più veloce a convergere di RIP, ed esegue il bilanciamento del carico sulle linee a costo uguale verso una stessa destinazione Ad ogni interfaccia del router può essere assegnato un costo adimensionale basato su throughput, RTT, affidabilità o altro Connessioni punto-punto tra router OSPF non necessitano di indirizzi IP per l’interfaccia (risparmio!)
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.