Strato rete in Internet Gruppo Reti TLC [email protected] http://www.tlc-netwroks.polito.it/ STRATO RETE IN INTERNET - 1 Internet protocol suite Application Presentation Session Transport Network NFS Telnet FTP SMTP SNMP XDR RPC TCP e/o UDP ICMP Protocolli di routing IP ARP | RARP Data Link Physical OSI Non Specificati Internet Protocol Suite STRATO RETE IN INTERNET - 2 IP: Internet Protocol • Livello rete dell’architettura TCP/IP • Offre un servizio – non connesso – inaffidabile – best-effort – senza garanzie di qualità di servizio STRATO RETE IN INTERNET - 3 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) STRATO RETE IN INTERNET - 4 Protocollo IP • Consegna inaffidabile – 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 STRATO RETE IN INTERNET - 5 Intestazione pacchetto IP 0 4 8 Version HLEN 16 Service Type Identification Time To Live 19 31 Total Length Fragment Offset Flags Protocol 24 Header Checksum Source IP Address Destination IP Address Options PAD STRATO RETE IN INTERNET - 6 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 65535 byte STRATO RETE IN INTERNET - 7 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 STRATO RETE IN INTERNET - 8 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 STRATO RETE IN INTERNET - 9 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) STRATO RETE IN INTERNET - 10 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. STRATO RETE IN INTERNET - 11 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 STRATO RETE IN INTERNET - 12 elaborazione del datagram 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 STRATO RETE IN INTERNET - 13 Formato del messaggio ICMP 0 7 type 15 code 31 checksum data STRATO RETE IN INTERNET - 14 Esempi di messaggi ICMP messaggio type echo reply 0 echo request 8 network unreachable 3 host unreachable 3 port unreachable 3 destn net unknown 3 destn host unknown 3 redirect 5 time exceeded (TTL) 11 time exceeded (fragment reass)11 code 0 0 0 1 3 6 7 1 0 1 query query errore errore errore errore errore controllo errore errore STRATO RETE IN INTERNET - 15 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) STRATO RETE IN INTERNET - 16 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 STRATO RETE IN INTERNET - 17 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 33434 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 erroreSTRATO RETE IN INTERNET - 18 Indirizzi IP Andrea Bianco [email protected] http://www.tlc.polito.it/ STRATO RETE IN INTERNET - 19 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 STRATO RETE IN INTERNET - 20 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 STRATO RETE IN INTERNET - 21 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 STRATO RETE IN INTERNET - 22 Classi di indirizzi 1 2 3 4 Classe A 0 8 16 netid=7 bit 24 32 hostid=24 bit Indirizza 127 reti, ciascuna delle quali può contenere oltre 16 milioni di hosts Classe B 1 0 netid=14 bit hostid=16 bit Indirizza 16384 reti, ciascuna delle quali può contenere 65536 hosts Classe C 1 1 0 netid= 21 bit hostid=8 bit Indirizza oltre 1 milioni di reti, ciascuna delle quali può contenere però ‘solo’ 256 hosts Classe D 1 1 1 0 Indirizzi multicast STRATO RETE IN INTERNET - 23 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 0...127 128...191 192...223 224...239 240...255 STRATO RETE IN INTERNET - 24 Classi di indirizzi IP • A: 105.20.38.165 • B: 130.192.2.158 • C: 193.24.54.110 indirizzo di rete (netid) STRATO RETE IN INTERNET - 25 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 (127.0.0.0 loopback, 192.168.2.0 reti private) STRATO RETE IN INTERNET - 26 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 STRATO RETE IN INTERNET - 27 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 STRATO RETE IN INTERNET - 28 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 STRATO RETE IN INTERNET - 29 La subnet mask • Esempio: indirizzo host 130.192.2.7 130.192.2.7 255.255.255.0 10000100 11000000 00000010 00000111 11111111 11111111 11111111 00000000 AND 130.192.2.0 10000100 11000000 00000010 00000000 STRATO RETE IN INTERNET - 30 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) STRATO RETE IN INTERNET - 31 Supernetting • Esempio: assegno 2048 indirizzi contigui, a partire da indirizzo 202.170.168.0 202.170.168.0 11001010 10101010 10101000 00000000 202.170.175.255 11001010 10101010 10101111 11111111 • Per rappresentare tale intervallo di valori, utilizzo AND tra indirizzo inferiore e la maschera 111111111 11111111 11111000 00000000 STRATO RETE IN INTERNET - 32 Instradamento in reti IP Andrea Bianco [email protected] http://www.tlc.polito.it/~bianco STRATO RETE IN INTERNET - 33 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 STRATO RETE IN INTERNET - 34 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 STRATO RETE IN INTERNET - 35 Risoluzione di indirizzi: • Problema che si presenta per ogni trasmissione di datagram IP (host-host, hostrouter, 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) STRATO RETE IN INTERNET - 36 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 STRATO RETE IN INTERNET - 37 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 STRATO RETE IN INTERNET - 38 ARP a.b.c.d A 1 e.f.g.h B i.j.h.k l.m.n.o p.q.r.s C D E i.j.h.k ? 2 08-00-2b-15-47-2c LAN address di C STRATO RETE IN INTERNET - 39 Tabelle di ARP Corrispondenze tra indirizzi IP e indirizzi LAN IP addr 130.192.2.58 130.192.2.64 . . . . LAN addr age 08-00-2b-15-47-2e 08-00-2b-21-56-64 . . . . 10 12 . . STRATO RETE IN INTERNET - 40 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 STRATO RETE IN INTERNET - 41 Formato del pacchetto ARP 0 8 16 Hardware Type HLEN PLEN 31 Protocol Type 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 STRATO RETE IN INTERNET - 42 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) STRATO RETE IN INTERNET - 43 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 STRATO RETE IN INTERNET - 44 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 STRATO RETE IN INTERNET - 45 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 STRATO RETE IN INTERNET - 46 Next-hop Routing - esempio Tabella del router A rete 20.0.0.0 A 30.0.0.99 rete 30.0.0.0 rete 50.0.0.0 50.0.0.13 30.0.0.13 X B 90.0.0.254 rete 90.0.0.0 INDIR. RETE DESTINAZ. NEXT HOP 20.0.0.0 30.0.0.0 50.0.0.0 90.0.0.0 diretto diretto 30.0.0.13 30.0.0.13 STRATO RETE IN INTERNET - 47 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 STRATO RETE IN INTERNET - 48 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 STRATO RETE IN INTERNET - 49 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 STRATO RETE IN INTERNET - 50 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 STRATO RETE IN INTERNET - 51 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 STRATO RETE IN INTERNET - 52 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 STRATO RETE IN INTERNET - 53 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 STRATO RETE IN INTERNET - 54 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 STRATO RETE IN INTERNET - 55 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 STRATO RETE IN INTERNET - 56 Esempio CIDR 130.192.68.0 01000100 130.192.71.8 S R R2 130.192.71.0 R1 01000111 01110000 R3 130.192.120.0 STRATO RETE IN INTERNET - 57 Esempio CIDR 130.192.68.0 01000100 130.192.71.8 R2 130.192.71.0 S R R3 130.192.120.0 R.T. 130.192.68.0 01000111 R1 255.255.192.0 R1 11000000 01110000 STRATO RETE IN INTERNET - 58 Esempio CIDR 130.192.68.0 01000100 130.192.71.8 S R R.T. 130.192.68.0 R2 130.192.71.0 01000111 R1 R3 130.192.120.0 255.255.192.0 R1 (18) 01110000 STRATO RETE IN INTERNET - 59 Esempio CIDR 130.192.68.0 01000100 130.192.71.8 S R R2 130.192.71.0 01000111 R1 R.T. R3 130.192.120.0 130.192.68.0 255.255.192.0 R2 130.192.120.0 255.255.240.0 R3 01110000 11110000 STRATO RETE IN INTERNET - 60 Esempio CIDR 130.192.68.0 01000100 130.192.71.8 S R R2 130.192.71.0 01000111 01110000 R1 R.T. R3 130.192.120.0 130.192.68.0 255.255.192.0 R2 (18) 130.192.120.0 255.255.240.0 R3 STRATO RETE IN INTERNET - 61 Esempio CIDR 130.192.68.0 01000100 R2 130.192.71.0 S R R1 01000111 130.192.71.8 01110000 R.T. 130.192.68.0 130.192.71.0 R3 130.192.120.0 255.255.255.0 D 255.255.255.0 D STRATO RETE IN INTERNET - 62 Esempio CIDR 130.192.68.0 01000100 R2 130.192.71.0 S R R1 R.T. 130.192.68.0 130.192.71.0 130.192.71.8 R3 130.192.120.0 255.255.255.0 D 255.255.255.0 D (24) STRATO RETE IN INTERNET - 63 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 STRATO RETE IN INTERNET - 64 Come si ottengono indirizzi IP? • Indirizzi di rete (net_id): – si chiede una parzioni di indirizzi IP ad un ISP ISP's block 11001000 00010111 00010000 00000000 200.23.16.0/20 Organization 0 11001000 00010111 00010000 00000000 200.23.16.0/23 Organization 1 11001000 00010111 00010010 00000000 200.23.18.0/23 Organization 2 ... 11001000 00010111 00010100 00000000 ….. …. 200.23.20.0/23 …. Organization 7 11001000 00010111 00011110 00000000 200.23.30.0/23 STRATO RETE IN INTERNET - 65 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 STRATO RETE IN INTERNET - 66 Da sorgente a destinazione: esempio tabella di routing in A • Datagram IP: source misc dest fields IP addr IP addr Dest. Net. next router 223.1.1 223.1.2 223.1.3 data • datagram NON si modifica da sorgente a destinazione • interessano solo campi indirizzo A Nhops 1 2 2 223.1.1.4 223.1.1.4 223.1.1.1 223.1.2.1 B 223.1.1.2 223.1.1.4 223.1.1.3 223.1.3.1 223.1.2.9 223.1.3.27 223.1.2.2 E 223.1.3.2 STRATO RETE IN INTERNET - 67 Da sorgente a destinazione: esempio misc data fields 223.1.1.1 223.1.1.3 • 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 Dest. Net. next router Nhops 223.1.1 223.1.2 223.1.3 A 1 2 2 223.1.1.4 223.1.1.4 223.1.1.1 223.1.2.1 B 223.1.1.2 223.1.1.4 223.1.1.3 223.1.3.1 223.1.2.9 223.1.3.27 223.1.2.2 E 223.1.3.2 STRATO RETE IN INTERNET - 68 Da sorgente a destinazione: esempio misc 223.1.1.1 223.1.2.3 fields data Dest. Net. next router Nhops • In A, noto IP di E: 223.1.1 223.1.2 223.1.3 – confronto net_id – E su rete diversa • A, E non sono collegati direttamente • tabella di routing: next hop 223.1.1.4 • invio datagram al router 223.1.1.4 usando indirizzo MAC del router A 1 2 2 223.1.1.4 223.1.1.4 223.1.1.1 223.1.2.1 B 223.1.1.2 223.1.1.4 223.1.1.3 223.1.3.1 223.1.2.9 223.1.3.27 223.1.2.2 E 223.1.3.2 STRATO RETE IN INTERNET - 69 Da sorgente a destinazione: esempio misc fields 223.1.1.1 223.1.2.3 data • Arrivo a 223.1.1.4, destinato a 223.1.2.2 • confronto net_id di E e verifico che sono sulla stessa rete con interfaccia 223.1.2.9 – router ed E attaccati direttamente • invio datagram a 223.1.2.2 con indirizzo MAC di E Dest. network next router 223.1.1 223.1.2 223.1.3 A Nhops interface - 1 1 1 223.1.1.4 223.1.2.9 223.1.3.27 223.1.1.1 223.1.2.1 B 223.1.1.2 223.1.1.4 223.1.1.3 223.1.3.1 223.1.2.9 223.1.3.27 223.1.2.2 E 223.1.3.2 STRATO RETE IN INTERNET - 70 Instradamento Gruppo Reti TLC [email protected] http://www.tlc.polito.it/ STRATO RETE IN INTERNET - 71 Instradamento • Obiettivo dei protocolli di instradamento: – determinare un “buon” percorso (sequenza di router) nella rete da sorgente a destinazione • Grafo – router sono nodi – link fisici sono archi • Costi su archi 5 2 A B 2 1 D – ritardo, euro, livello di congestione 3 C 5 F 1 3 E 1 2 • “Buon” percorso: – tipicamente percorso a costo minimo STRATO RETE IN INTERNET - 72 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 STRATO RETE IN INTERNET - 73 – algoritmi distance vector 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 STRATO RETE IN INTERNET - 74 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 STRATO RETE IN INTERNET - 75 Algoritmo di Dijkstra 1 Initialization (nodo A): 2 N = {A} 3 per tutti i nodi v 4 if v adiacente ad A 5 then D(v) = c(A,v) 6 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: 12 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 cammin 14 cammino a minimo costo verso w piu` costa da w a v*/ 15 until tutti i nodi in N STRATO RETE IN INTERNET - 76 Dijkstra: esempio Step 0 1 2 3 4 5 start N A AD ADE ADEB ADEBC ADEBCF D(B),p(B) 2,A 2,A 2,A D(D),p(D) 1,A D(C),p(C) 5,A 4,D 3,E 3,E D(E),p(E) infinity 2,D D(F),p(F) infinity infinity 4,E 4,E 4,E 5 2 A B 2 1 D 3 C 3 1 5 F 1 E 2 STRATO RETE IN INTERNET - 77 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 D 1 A 1 0 0 C e 1+e 0 B e 2+e D 0 1 Situazione inziale A 1+e 1 C 0 B 0 … ricalcolo percorsi 0 D 1 A 2+e 0 0 B C 1+e … ricalcolo 2+e D 0 A 1+e 1 C 0 B e …ricalcolo STRATO RETE IN INTERNET - 78 Distance Vector • Algoritmo iterativo: – 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 STRATO RETE IN INTERNET - 79 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 STRATO RETE IN INTERNET - 80 L’algoritmo Distance Vector Destinazione Net 1 Net 2 Net 4 Net 17 Net 24 Net 30 Net 42 Distanza 1 1 8 5 6 2 2 Routing Tables del router K Route Distance Vector spedito dal router J Diretta Diretta Router L Router M Router J Router Q Router J K Destinazione Distanza J Net 1 Net 4 Net 17 Net 21 Net 24 Net 30 Net 42 2 3 6 4 5 10 3 STRATO RETE IN INTERNET - 81 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) STRATO RETE IN INTERNET - 82 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: X D (Y,Z) distanza da X ad Y, = via Z come next hop Z = c(X,Z) + min {D (Y,w)} w STRATO RETE IN INTERNET - 83 Tabella distanze: esempio Costo verso destinazione 7 A B 1 E 2 attraverso nodo E 2 8 1 C D E D () A B D A 1 14 5 B 7 8 5 C 6 9 4 D 4 11 2 D D (C,D) = c(E,D) + min {D (C,w)} = 2+2 = 4 w E D D (A,D) = c(E,D) + min {D (A,w)} E w = 2+3 = 5 anello! B D (A,B) = c(E,B) + min {D (A,w)} = 8+6 = 14 w anello! STRATO RETE IN INTERNET - 84 Tabella di instradamento a partire da tabella distanze Costo verso destinazione atttraverso nodo E Canale di uscita D () A B D A 1 14 5 A A,1 B 7 8 5 B D,5 C 6 9 4 C D,4 D 4 11 2 D D,4 Tabella distanze da usare, costo Tabella di Routing STRATO RETE IN INTERNET - 85 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 STRATO RETE IN INTERNET - 86 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 STRATO RETE IN INTERNET - 87 Algoritmo Distance Vector Ad ogni nodo X: 1 Inizializzazione: 2 per tutti i nodi adiacenti v: 3 D X(*,v) = infinito 4 D X(v,v) = c(X,v) /* l’operatore * significa ”per ogni riga" */ 5 per tutte le destinazioni, y 6 invia min DX(y,w) verso ogni nodo adiacente /* w sono tutti i vicini di X*/ w STRATO RETE IN INTERNET - 88 Algoritmo Distance Vector 8 loop 9 wait (until I see a link cost change to neighbor V 10 or until I receive update from neighbor V) 11 12 if (c(X,V) changes by d) 13 /* change cost to all dest's via neighbor v by d */ 14 /* note: d could be positive or negative */ X = D (y,V) X +d 15 for all destinations y: D (y,V) 16 17 else if (update received from V wrt destination Y) 18 /* shortest path from V to some Y has changed */ 19 /* V has sent a new value for its min DV(Y,w) */ w 20 /* call this received new value is "newval" */ X = c(X,V) + newval 21 for the single destination y: D (Y,V) 22 X 23 if we have a new min D (Y,w)for any destination Y w X to all neighbors 24 send new value of min D (Y,w) w 25 26 forever STRATO RETE IN INTERNET - 89 Distance Vector: esempio X 2 Y 7 1 Z X Z X Y D (Y,Z) = c(X,Z) + min w{D (Y,w)} = 7+1 = 8 D (Z,Y) = c(X,Y) + min w{D (Z,w)} = 2+1 = 3 STRATO RETE IN INTERNET - 90 Distance Vector: esempio X 2 Y 7 1 Z STRATO RETE IN INTERNET - 91 Algoritmo DV: modifica costo canale • Nodo riconosce modifica costo canale 1 Y 4 • Modifica tabella distanze (passo 15) X 50 • Se modifica implica modifica del cammino migliore avvisa nodi adiacenti (passi 23,24) “good news travels fast” 1 Z algoritmo termina STRATO RETE IN INTERNET - 92 Algoritmo DV: modifica costo canale Modifica costo canale: • good news travels fast • bad news travels slow problema del “count to infinity”! 60 X 4 Y 50 1 Z algoritmo prosegue STRATO RETE IN INTERNET - 93 Distance Vector: poisoned reverse Se Z instrada via Y per raggiungere X: 60 • Z comunica ad Y sua distanza verso X e` infinito (Y non instraderà verso X passando da Z) X • non risolve il problema completamente 4 Y 50 1 Z algoritmo termina STRATO RETE IN INTERNET - 94 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 STRATO RETE IN INTERNET - 95 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 STRATO RETE IN INTERNET - 96 Indirizzamento gerarchico: aggregazione dei percorsi • Indirizzamento gerarchico permette annunci (invio info) efficienti delle informazioni di instradamento Organizzazione 0 200.23.16.0/23 Organizzazione 1 200.23.18.0/23 Organizzazione 2 200.23.20.0/23 . . Organizzazione 7. 200.23.30.0/23 “Inviami qualunque pacchetto con indirizzi che iniziano per 200.23.16.0/20” . . . ISP B Internet ISP A “Inviami qualunque pacchetto con indirizzi che iniziano con 199.31.0.0/16” STRATO RETE IN INTERNET - 97 Indirizzamento gerarchico: aggregazione dei percorsi • Se ISP A ha un percorso piu` specifico verso Organizzazione 1 Organizzazione 0 200.23.16.0/23 Organizzazione 2 200.23.20.0/23 . . Organizzazione 7. 200.23.30.0/23 “Inviami pacchetti con indirizzi che iniziano con 200.23.16.0/20” . . . ISP B Internet ISP A Organizzazione 1 200.23.18.0/23 “Inviami pacchetti con indirizzi che iniziano con 199.31.0.0/16 orppure 200.23.18.0/23” STRATO RETE IN INTERNET - 98 Algoritmi di instradamento in reti IP Gruppo Reti TLC [email protected] http://www.tlc.polito.it/ STRATO RETE IN INTERNET - 99 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 STRATO RETE IN INTERNET - 100 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) STRATO RETE IN INTERNET - 101 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) STRATO RETE IN INTERNET - 102 Routing Intra-AS and Inter-AS C.b a C Gateways: B.a A.a b A.c A d a b c a c B b •eseguono instradamento inter-AS tra loro •eseguono instradamento intra-AS con altri router nel loro AS network layer inter-AS, intra-AS routing in gateway A.c link layer physical layer STRATO RETE IN INTERNET - 103 Routing Intra-AS and Inter-AS C.b a Host h1 C A.a b Inter-AS routing tra AS A e B B.a A.c d a c b A Intra-AS routing all’interno dell’AS A a c B Host h2 b Intra-AS routing all’iterno dell’AS B STRATO RETE IN INTERNET - 104 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 STRATO RETE IN INTERNET - 105 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 STRATO RETE IN INTERNET - 106 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 STRATO RETE IN INTERNET - 107 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 STRATO RETE IN INTERNET - 108 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à STRATO RETE IN INTERNET - 109 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) STRATO RETE IN INTERNET - 110 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 STRATO RETE IN INTERNET - 111 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 STRATO RETE IN INTERNET - 112 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) STRATO RETE IN INTERNET - 113 BGP: Border Gateway Protocol • Protocollo di instradamento esterno (or interAS) basato su path vector • Funzione principale: scambiare informazioni di raggiungibilità • Ultimo RFC: 1771 (BGP-4), in corso di aggiornamento STRATO RETE IN INTERNET - 114 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) STRATO RETE IN INTERNET - 115 BGP peering AS 1 external peers AS 2 AS 3 internal peers AS 4 STRATO RETE IN INTERNET - 116 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 STRATO RETE IN INTERNET - 117 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) Total Path Attribute Length (2 bytes) Path attributes (variable, as many as necessary) Network Layer Reachability Information (variable) STRATO RETE IN INTERNET - 118 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 STRATO RETE IN INTERNET - 119 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 STRATO RETE IN INTERNET - 120 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) STRATO RETE IN INTERNET - 121 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 STRATO RETE IN INTERNET - 122 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) STRATO RETE IN INTERNET - 123 RIP: un esempio di problemi Net 1 R1 Net 2 R2 R3 Net 3 R4 R5 Net 4 Net 5 STRATO RETE IN INTERNET - 124 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 STRATO RETE IN INTERNET - 125 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 STRATO RETE IN INTERNET - 126 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 RETE IN INTERNET - 127 – Nessuno usa distanza 16 propagata STRATO da R1 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 STRATO RETE IN INTERNET - 128 ripetuti su LAN 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 STRATO RETE IN INTERNET - 129 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) STRATO RETE IN INTERNET - 130 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 STRATO RETE IN INTERNET - 131 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!) STRATO RETE IN INTERNET - 132