Protocolli strato rete in Internet
Transcript
Protocolli strato rete in Internet
Protocolli strato rete in Internet Internet protocol suite Application Strato rete in Internet NFS Telnet FTP SMTP SNMP Presentation Session Transport XDR RPC TCP e/o UDP ICMP Network Protocolli di routing IP ARP | RARP Gruppo Reti TLC Data Link Physical [email protected] http://www.tlc-networks.polito.it/ Non Specificati Internet Protocol Suite OSI STRATO RETE IN INTERNET - 1 STRATO RETE IN INTERNET - 2 IP: Internet Protocol Il protocollo IP • Livello rete dell’architettura TCP/IP • Offre un servizio • È un protocollo di strato rete (strato 3) • Si occupa quindi dell’indirizzamento e instradamento dei pacchetti (detti datagram) • La consegna dei pacchetti IP è: – non connesso – inaffidabile – best-effort – senza garanzie di qualità di servizio – connectionless • ogni pacchetto trattato in modo indipendente – inaffidabile (unreliable) • Specificato in RFC 791 • perdita, duplicazioni, ritardi – non distingue tra diversi tipi di traffico (no priorità, tratta tutti in modo best-effort) STRATO RETE IN INTERNET - 3 STRATO RETE IN INTERNET - 4 Protocollo IP Intestazione pacchetto IP • Consegna inaffidabile 0 4 8 Version HLEN – In caso di guasti (es. un router fuori servizio, collegamento non disponibile) 16 Service Type Identification • scarta il datagram • cerca di inviare un messaggio di errore al mittente Time To Live • Consegna connectionless 19 31 Fragment Offset Flags Protocol 24 Total Length Header Checksum Source IP Address – 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 Destination IP Address Options PAD STRATO RETE IN INTERNET - 6 Pag. 1 Protocolli strato rete in Internet Intestazione pacchetto IP: i campi Frammentazione • Ogni rete ha massima dimensione ammessa • 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 ). Generalmente ignorato dai router. RFC 1349 • Total Length: lunghezza del datagram in byte (incluso header). Dimensione massima 65535 byte – MTU (Maximum Transfer Unit): Ethernet 1500 B • 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 intermedi • Frammentazione trasparente a sorgente e destinazione • Specificata in RFC 791, RFC 815 STRATO RETE IN INTERNET - 7 STRATO RETE IN INTERNET - 8 Frammentazione Intestazione pacchetto IP: i campi • Identification, Flags, Fragment offset: controllano operazioni di 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 – Identification: permette di riconoscere a quale datagram il frammento appartiene (frammenti dello stesso datagram hanno stesso valore deciso dallo host che genera il 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) • I router IP però non si devono occupare di riassemblare frammenti STRATO RETE IN INTERNET - 9 STRATO RETE IN INTERNET - 10 Intestazione pacchetto IP: i campi Intestazione pacchetto IP: i campi • TTL (time to live): – Tempo di vita (in hop) di un datagram – La sorgente setta un valore iniziale (a piacere) – Ogni router decrementa di 1 il valore di TTL – Se TTL=0, il router scarta datagram ed invio messaggio di errore (disabilitabile) • Protocol: formato dei dati specificando un protocollo di livello superiore. Un elenco dei protocolli è presente in RFC 1700 • Header Checksum (16 bit): controllo di errore sulla sola intestazione, non sui dati utente. Specificato in RFC 1071,1141,1624,1936. Somma in complemento a 1 allineando header a 16 bit. è possibile calcolare un checksum incrementale (utile perchè ogni router cambia l’intestazione). Protocol Name 1 ICMP 4 IP in IP 6 TCP 17 UDP 89 OSFP STRATO RETE IN INTERNET - 11 STRATO RETE IN INTERNET - 12 Pag. 2 Protocolli strato rete in Internet Intestazione pacchetto IP Il protocollo ICMP • 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 • 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 • Specificato in RFC 792 – 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 32-bit timestamp (millisecondi da mezzanotte Universal Time) – path MTU Discovery (RFC 1191) STRATO RETE IN INTERNET - 13 STRATO RETE IN INTERNET - 14 Esempi di messaggi ICMP Formato del messaggio ICMP messaggio 0 7 type 15 code type echo reply echo request network unreachable host unreachable port unreachable destn net unknown destn host unknown redirect time exceeded (TTL) time exceeded (fragment reass) 31 checksum data 0 8 3 3 3 3 3 5 11 11 code 0 0 0 1 3 6 7 1 0 1 STRATO RETE IN INTERNET - 15 query query errore errore errore errore errore controllo errore errore STRATO RETE IN INTERNET - 16 Applicazione: il comando ping Il comando ping • Se un host non risponde al ping, non è raggiungibile (o ICMP echo-reply è disabilitato). • Può essere usato per rilevare guasti in rete. • è disponibile su macchine Unix e su PC • Informazioni visualizzate da 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 – numero di sequenza – TTL – round-trip-time (tempo impiegato a percorrere la tratta sorgente-destinatario-sorgente) STRATO RETE IN INTERNET - 17 STRATO RETE IN INTERNET - 18 Pag. 3 Protocolli strato rete in Internet Il comando ping Il comando traceroute C:\WINDOWS>ping www.cs.cmu.edu • traceroute permette di seguire il percorso dei datagram IP hop-per-hop fino a destinazione • Funzionamento: Esecuzione di Ping SUPERMAN.WEB.cs.cmu.edu [128.2.203.179] con 32 byte di dati: Risposta da 128.2.203.179: byte=32 Risposta da 128.2.203.179: byte=32 Risposta da 128.2.203.179: byte=32 Risposta da 128.2.203.179: byte=32 – Host invia segmenti UDP 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 errore durata=138ms TTL=243 durata=110ms TTL=243 durata=110ms TTL=243 durata=110ms TTL=243 Statistiche Ping per 128.2.203.179: Pacchetti: Trasmessi = 4, Ricevuti = 4, Persi = 0 (0% persi), Tempo approssimativo percorsi andata/ritorno in millisecondi: Minimo = 110ms, Massimo = 138ms, Medio = 117ms STRATO RETE IN INTERNET - 19 STRATO RETE IN INTERNET - 20 Il comando traceroute Il comando traceroute …. 11 138 ms 123 ms 110 ms 151.99.75.220 12 110 ms 138 ms 151 ms 151.99.101.106 13 165 ms 151 ms 151 ms r-to83-fa11.interbusiness.it [62.86.98.19] 14 192 ms 165 ms 151 ms host130-pool8016128.interbusiness.it [80.16.128.130] 15 138 ms 137 ms 110 ms 163.162.60.99 16 * * * Richiesta scaduta. 17 110 ms 123 ms 124 ms 163.162.60.99 18 * * * Richiesta scaduta. 19 * * * Richiesta scaduta. 20 * * * Richiesta scaduta. 21 82 ms 96 ms 96 ms beatles.cselt.it [163.162.29.125] Rilevazione instradamento verso beatles.tilab.com [163.162.29.125] su un massimo di 30 punti di passaggio: C:\WINDOWS>tracert beatles.tilab.com 1 <10 ms <10 ms <10 ms l3.polito.it [130.192.2.8] 2 <10 ms <10 ms <10 ms c3660-ext.polito.it [130.192.53.65] 3 <10 ms <10 ms <10 ms rc-polito.to.garr.net [193.206.132.145] 4 <10 ms <10 ms 13 ms mi-to.garr.net [193.206.134.61] 5 14 ms 14 ms 13 ms rm-mi.garr.net [193.206.134.18] 6 13 ms 14 ms 28 ms namex-roma-1.garr.net [193.206.134.226] 7 14 ms 41 ms 14 ms intb-nap.inroma.roma.it [194.242.224.10] 8 83 ms 96 ms 96 ms 151.99.101.41 9 164 ms 165 ms 151 ms r-rm198-fa4.interbusiness.it [151.99.29.218] 10 151 ms 137 ms 151 ms r-ts21-rm99.interbusiness.it [151.99.98.110] …. Segue…. STRATO RETE IN INTERNET - 21 STRATO RETE IN INTERNET - 22 Indirizzamento IP: obiettivi e risultati • Obiettivo originale: rendere efficienti le operazioni di routing (router lenti - anni ‘80) con indirizzi facilmente “classificabili” Indirizzi IP – spreco dello spazio di indirizzamento (esaurimento degli indirizzi - anni ‘90) • Nuovo obiettivo: razionalizzare l’assegnazione degli indirizzi e la loro aggregazione nelle routing tables Gruppo Reti TLC [email protected] http://www.tlc.polito.it/ – riduzione delle dimensioni delle routing tables e riutilizzo di indirizzi già assegnati STRATO RETE IN INTERNET - 23 STRATO RETE IN INTERNET - 24 Pag. 4 Protocolli strato rete in Internet Indirizzi IP: Principi Multi-Homed Hosts • 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 • 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! – 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 - 25 Classe A 0 8 16 netid=7 bit 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: hostid=24 bit 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 Classe A Classe B Classe C Classe D Classe E 0...127 128...191 192...223 224...239 240...255 Indirizzi multicast Classe E 1 1 1 1 Interfaccia #2 32 Indirizza 127 reti, ciascuna delle quali può contenere oltre 16 milioni di hosts Classe B 1 0 H STRATO RETE IN INTERNET - 26 Classi di indirizzi (RFC 1466) 1 2 3 4 Interfaccia #1 28 bit riservati Indirizzi riservati per la sperimentazione STRATO RETE IN INTERNET - 27 STRATO RETE IN INTERNET - 28 Classi di indirizzi IP Indirizzi di rete e Broadcast • A: 105.20.38.165 • 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 è tutti 0, indirizzo all’host sulla rete cui sei collegato • Indirizzi riservati (127.0.0.0 loopback, 192.168.2.0 reti private) • B: 130.192.2.158 • C: 193.24.54.110 indirizzo di rete (netid) STRATO RETE IN INTERNET - 29 STRATO RETE IN INTERNET - 30 Pag. 5 Protocolli strato rete in Internet Problemi delle classi Allocazione reti nel 1997 • 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 Puntini mostrano reti raggiungibili • http://www.iana.org/assignments/ipv4-address-space http://www.caida.org/outreach/resources/learn/ipv4space/ STRATO RETE IN INTERNET - 31 STRATO RETE IN INTERNET - 32 L’introduzione delle maschere La subnet mask • È 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 • Definito in RFC 950 • 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 - 33 STRATO RETE IN INTERNET - 34 La subnet mask Maschere per supernetting • In una seconda fase si utilizzano le maschere per accorpare indirizzi di classe C (RFC 1338 - 1992) • Si usano blocchi contigui di indirizzi di classe C • Si utilizzano sempre maschere (supernetting) per identificare netid • Permette di ridurre la dimensione delle routing tables, e ridurre il numero di reti propagate dai nodi • Si passa al CIDR: Classless Interdomain Routing (RFC 1519 - 1993) • 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 - 35 STRATO RETE IN INTERNET - 36 Pag. 6 Protocolli strato rete in Internet Supernetting • Esempio: assegno 2048 indirizzi contigui, a partire da indirizzo 202.170.168.0 Instradamento in reti IP 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 Gruppo Reti TLC [email protected] http://www.tlc.polito.it/~bianco 111111111 11111111 11111000 00000000 STRATO RETE IN INTERNET - 37 STRATO RETE IN INTERNET - 38 Consegna diretta e indiretta Consegna diretta • Sottorete: insieme di host tra cui esiste un collegamento di livello 2. Può essere una LAN, un collegamento punto-punto, etc. • Se due host sono connessi alla stessa sottorete 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 • 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, e utilizzando le primitive di consegna di livello 2 STRATO RETE IN INTERNET - 39 STRATO RETE IN INTERNET - 40 Risoluzione di indirizzi ARP • 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) • Un pacchetto con indirizzo MAC destinazione broadcast (request) viene costruito dall’host che vuole risolvere l’indirizzo. Esso contiene – indirizzo IP del destinatario, – indirizzo IP ed Ethernet di chi origina la richiesta – Direct mapping: mediante tabella statica – Dynamic binding: protocollo ARP: Address Resolution Protocol (RFC 826) • Tutti gli host nella subnet ricevono la richiesta • L’host che riconosce nel campo richiesta il proprio indirizzo IP invia un pacchetto di risposta (reply) direttamente al sender • ARP è 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 - 41 STRATO RETE IN INTERNET - 42 Pag. 7 Protocolli strato rete in Internet ARP 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 a.b.c.d e.f.g.h A 1 B i.j.h.k l.m.n.o p.q.r.s C D E i.j.h.k ? 2 LAN address di C 08-00-2b-15-47-2c STRATO RETE IN INTERNET - 43 STRATO RETE IN INTERNET - 44 Tabelle di ARP Tabelle di ARP • L’indirizzo viene ricercato nella tabella ARP ogni volta che un elaboratore deve comunicare con un altro sulla stessa LAN conoscendone l’indirizzo IP • Se non si trova un match viene emessa una richiesta di ARP, altrimenti la comunicazione può avvenire usando direttamente l’indirizzo MAC Corrispondenze tra indirizzi IP e indirizzi LAN IP addr 130.192.2.58 130.192.2.64 .... LAN addr 08-00-2b-15-47-2e 08-00-2b-21-56-64 .... .. age 10 12 STRATO RETE IN INTERNET - 45 STRATO RETE IN INTERNET - 46 Reverse ARP Formato del pacchetto ARP 0 • Permette di ottenere un indirizzo IP a partire da un indirizzo di livello 2: Reverse ARP (RARP) • Specificato in RFC 903 • Usato dagli host durante il boot per configurare automaticamente il proprio indirizzo IP dato che conoscono solo il proprio indirizzo MAC • Serve un server RARP 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 - 47 STRATO RETE IN INTERNET - 48 Pag. 8 Protocolli strato rete in Internet ARP: formato pacchetto Consegna indiretta • Se host sorgente e destinazione non sono nella stessa subnet, devono usare consegna indiretta • Si distinguono: • 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 (Hardware address length) e PLEN (Protocol address length) permettono di utilizzare ARP con rete arbitraria (indirizzi di dimensione variabile) – Protocollo di routing: definizione delle modalità con cui i nodi della rete si scambiano informazioni sullo stato della rete – Algoritmo di routing: operazioni necessarie per scegliere il percorso verso la destinazione, date le informazioni sullo stato della rete – Procedure di forwarding: operazioni necessarie per instradare i singoli pacchetti verso la corretta porta di uscita, dato che si conosce il percorso STRATO RETE IN INTERNET - 49 STRATO RETE IN INTERNET - 50 Consegna indiretta Le Routing Tables • 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 (forwarding) • Ogni host ed ogni router coinvolto nella consegna IP ha tabelle di instradamento: Routing Tables (RT) – Identificano il percorso migliore per ogni destinazione • 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 (come postino guarda solo porzione dell’indirizzo scritto sulla busta) STRATO RETE IN INTERNET - 51 STRATO RETE IN INTERNET - 52 Il Next-hop Routing Next-hop Routing - esempio • Una tabella di routing contiene almeno due informazioni: – D indirizzo destinazione Tabella del router A 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 20 .0 rete 20.0.0.0 .0.9 9 A 30.0.0.99 rete 30.0.0.0 STRATO RETE IN INTERNET - 53 rete 50.0.0.0 0.254 50.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 - 54 Pag. 9 Protocolli strato rete in Internet Instradamenti Default e Specifici Routing Table - esempio • Se il next-hop è unico (es: piccola sottorete con unico router), le tabelle di instradamento degli host possono contenere solo una route per l’esterno, chiamata default route • L’instradamento può essere specificato per host (host specific route) e non per sottorete per ragioni di: [mellia@verza mellia]$ /sbin/route Kernel IP routing table Destination Gateway 130.192.9.150 * 10.1.1.1 * 192.168.9.0 acegw01.polito. 130.192.9.128 * 130.192.9.0 sigkill.polito. 10.1.1.0 * 127.0.0.0 * default l3.polito.it – testing – maggior sicurezza – Configurazioni particolari Genmask Flags Metric Ref 255.255.255.255 UH 0 0 255.255.255.255 UH 0 0 255.255.255.192 UG 0 0 255.255.255.128 U 0 0 255.255.255.128 UG 0 0 255.255.255.0 U 0 0 255.0.0.0 U 0 0 0.0.0.0 UG 0 0 STRATO RETE IN INTERNET - 55 Gestione delle Routing Tables STRATO RETE IN INTERNET - 56 Inizializzazione delle RT • Le tabelle di Routing sono fondamentali per il funzionamento corretto di Internet • Problemi da affrontare: – – – – Use Iface 0 eth0 0 eth1 0 eth0 0 eth0 0 eth0 0 eth1 0 lo 0 eth0 • 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 come inizializzare le RT? quali informazioni devono contenere? come aggiornarle? consistenza tra RT e assenza di loop STRATO RETE IN INTERNET - 57 Compilazione delle Routing Tables STRATO RETE IN INTERNET - 58 Procedure di forwarding in IP • Gestite dall’algoritmo di routing • Le RT possono cambiare a causa di: • Estraggo dal pacchetto la parte netid dell’indirizzo IP di destinazione (facile con classi) • Se sono collegato direttamente alla destinazione, uso consegna diretta • Altrimenti, cerco host specific route • Altrimenti, cerco next-hop memorizzato per quella rete • Altrimenti, cerco default route • Altrimenti, dichiaro errore di routing – interventi sulle topologie – guasti – sovraccarichi • L’informazione sui cambiamenti deve essere propagata tra router mediante le procedure previste dall’algoritmo di routing utilizzato, secondo le specifiche del protocollo di routing selezionato STRATO RETE IN INTERNET - 59 Pag. 10 STRATO RETE IN INTERNET - 60 Protocolli strato rete in Internet Conseguenze dell’introduzione del subnetting Conseguenze dell’introduzione del supernetting (e CIDR) • 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 del router locale anche le netmask • Per gli altri ruoter non sono richieste modifiche. Posso usare forwarding standard • Ad un sito che richiede molti indirizzi IP sono allocati in modo “contiguo” più subnet di classe C, condividendo i bit più significativi • Risultato: un router non deve più distinguere tutte le singole reti di classe C, ma occupa una sola “riga” nelle RT • La consultazione delle RT avviene con il criterio del longest match STRATO RETE IN INTERNET - 61 STRATO RETE IN INTERNET - 62 Conseguenze dell’introduzione del supernetting (e CIDR) CIDR: operazioni di un forwarding • CIDR ha il vantaggio di permettere una aggregazione degli indirizzi su base topologica e geografica... • ...ma lo svantaggio di complicare la funzione di forwarding perchè: • Un router riceve un pacchetto con indirizzo destinazione x.y.z.w • Esegue AND bit a bit, per ogni riga delle RT tra: – l’indirizzo di destinazione nella routing table e la netmask – l’indirizzo ricevuto x.y.z.w e la stessa netmask – è 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, perchè più entry della tabella possono corrispondere a uno stesso indirizzo destinazione • Confronto i risultati degli AND: se sono uguali, ho un matching • Instrado secondo la riga delle RT che ha avuto il maggior numero di bit di matching STRATO RETE IN INTERNET - 63 STRATO RETE IN INTERNET - 64 Esempio CIDR Esempio CIDR 130.192.68.0 01000100 130.192.71.8 S R 130.192.68.0 01000100 130.192.71.8 R2 130.192.71.0 R1 R2 130.192.71.0 01000111 S R 01111000 R3 130.192.120.0 R3 130.192.120.0 R.T. 130.192.68.0 STRATO RETE IN INTERNET - 65 Pag. 11 01000111 R1 255.255.192.0 R1 11000000 01111000 STRATO RETE IN INTERNET - 66 Protocolli strato rete in Internet Esempio CIDR Esempio CIDR 130.192.68.0 01000100 130.192.68.0 01000100 130.192.71.8 S R 130.192.71.8 R2 130.192.71.0 R2 130.192.71.0 S 01000111 R1 R R.T. R3 130.192.120.0 R.T. 130.192.68.0 255.255.192.0 R1 (18) 01111000 01000111 R1 R3 130.192.120.0 130.192.68.0 255.255.192.0 R2 130.192.120.0 255.255.240.0 R3 01111000 11110000 STRATO RETE IN INTERNET - 67 STRATO RETE IN INTERNET - 68 Esempio CIDR Esempio CIDR 130.192.68.0 01000100 130.192.71.8 S R 130.192.68.0 01000100 R2 130.192.71.0 R2 130.192.71.0 01000111 01111000 R1 S R R3 130.192.120.0 R.T. R1 01000111 130.192.71.8 01111000 R.T. 130.192.68.0 255.255.192.0 R2 (18) 130.192.120.0 255.255.240.0 R3 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 - 69 Esempio CIDR Come si ottengono indirizzi IP? 130.192.68.0 01000100 R2 130.192.71.0 S R R1 STRATO RETE IN INTERNET - 70 • Come ottiene indirizzi IP un ISP? • ICANN: Internet Corporation for Assigned Names and Numbers – alloca indirizzi – gestisce DNS – assegna nomi di dominio, risolve liti 130.192.71.8 • http://www.icann.org/ 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 (24) STRATO RETE IN INTERNET - 71 Pag. 12 STRATO RETE IN INTERNET - 72 Protocolli strato rete in Internet Come si ottengono indirizzi IP? Come si ottengono indirizzi IP? • Indirizzi di host in sottorete (host_id): • Assegnazione libera, configurati da amministratore di rete • Indirizzi di rete (net_id): – si chiede una porzione di indirizzi IP ad un ISP ISP's block 11001000 00010111 00010000 00000000 200.23.16.0/20 Organizzazione 0 11001000 00010111 00010000 00000000 200.23.16.0/23 Organizzazione 1 11001000 00010111 00010010 00000000 200.23.18.0/23 Organizzazione 2 ... 11001000 00010111 00010100 00000000 ….. …. 200.23.20.0/23 …. Organizzazione 7 11001000 00010111 00011110 00000000 200.23.30.0/23 – Statica • Wintel: control-panel->network->configuration->tcp/ip->properties • UNIX: /etc/rc.config – Dinamica • DHCP: Dynamic Host Configuration Protocol (RFC 2131) Ottengo dinamicamente indirizzi: – – – – host inviano in broadcast “DHCP discover” msg 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 - 73 Da sorgente a destinazione: esempio source IP addr dest IP addr Da sorgente a destinazione: esempio tabella di routing in A • Datagram IP: misc fields STRATO RETE IN INTERNET - 74 Dest. Net. next router 223.1.1 223.1.2 223.1.3 Nhops 223.1.1.4 223.1.1.4 A 223.1.1.1 – 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 223.1.2.1 223.1.1.2 223.1.1.4 223.1.2.9 B 223.1.1.3 223.1.2.3 223.1.3.27 E 223.1.3.2 223.1.3.1 223.1.1 223.1.2 223.1.3 • In A, noto indirizzo IP di B: data • Interessano solo campi indirizzo • Gli indirizzi NON si modificano da sorgente a destinazione Dest. Net. next router Nhops misc data fields 223.1.1.1 223.1.1.3 1 2 2 A 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 misc 223.1.1.1 223.1.2.3 fields data 223.1.3.27 223.1.1.3 223.1.1 223.1.2 223.1.3 – confronto net_id – E su rete diversa 223.1.3.1 • 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 223.1.2.1 223.1.2.9 B 223.1.1.3 223.1.3.1 223.1.3.27 223.1.2.3 data • Arrivo a 223.1.1.4, destinato a 223.1.2.3 • confronto net_id di E e verifico che sono sulla stessa rete con interfaccia 223.1.2.9 223.1.1.1 223.1.1.2 223.1.1.4 E STRATO RETE IN INTERNET - 76 misc fields 223.1.1.1 223.1.2.3 1 2 2 223.1.1.4 223.1.1.4 223.1.2.3 223.1.3.2 Da sorgente a destinazione: esempio Dest. Net. next router Nhops • In A, noto IP di E: 223.1.2.9 B STRATO RETE IN INTERNET - 75 Da sorgente a destinazione: esempio 1 2 2 223.1.1.4 223.1.1.4 – router ed E attaccati direttamente E 223.1.3.2 • invio datagram a 223.1.2.3 con indirizzo MAC di E STRATO RETE IN INTERNET - 77 Pag. 13 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 223.1.1.2 223.1.1.4 223.1.2.9 B 223.1.1.3 223.1.3.1 223.1.3.27 223.1.2.3 E 223.1.3.2 STRATO RETE IN INTERNET - 78 Protocolli strato rete in Internet Proxy ARP Proxy ARP • Ogni host in una subnet deve essere configurato per conoscere almeno • Meccanismo alternativo: proxy ARP (RFC 1027) – Si configura ogni host come se tutti gli indirizzi IP fossero raggiungibili per consegna diretta (indicando una subnet 0.0.0.0, oppure indicando il proprio indirizzo IP come default gateway) – Ogni volta che un pacchetto deve essere instradato verso un indirizzo destinazione, l’host effettua una richiesta di ARP – Se l’IP è effettivamente raggiungibile in consegna diretta, l’host destinazione risponde alla ARP-request – Altrimenti il Router che sa come instradare il pacchetto verso la destinazione, risponde alla richiesta indicando il suo indirizzo MAC per la consegna diretta – Il suo indirizzo IP – La netmask della subnet di appartenenza – L’indirizzo del router di default, per fare consegna indiretta • Per reti grandi, è possibile avere – Router diversi che permettono la comunicazione tra subnet diverse – Host specific route per host particolari • Ogni volta che cambia la configurazione di rete, occorre riconfigurare tutti gli host STRATO RETE IN INTERNET - 79 STRATO RETE IN INTERNET - 80 Proxy ARP Network Address Translation • Permette di variare l’instradamento dei pacchetti all’interno di una stessa LAN senza riconfigurare tutti gli host • Solo i router hanno conoscenza delle subnet direttamente raggiungibili • Svantaggi: • Network Address Translation (NAT) è un meccanismo per cui indirizzi IP sono mappati da un indirizzo ad un altro, fornendo instradamento trasparente agli end host • Permette di riutilizzare lo stesso indirizzo in più punti della rete • Ci sono diverse versioni di NAT – Inonda la rete di richieste ARP (broadcast non filtrato dai bridge) – Sovraccarica le CPU dei router che devono rispondere a tutte le richieste ARP – (RFC 1631,2663,2993,3022,3235) STRATO RETE IN INTERNET - 81 NAT • Una organizzazione utilizza indirizzi privati al suo interno • Un router collega la rete privata alla rete internet pubblica – Deve avere almeno due indirizzi: uno interno (privato) e uno esterno (pubblico) STRATO RETE IN INTERNET - 82 NAT • Quando un pacchetto deve essere consegnato ad un host non appartenente alla rete interna Rete privata 10.0.0.0 – Viene instradato verso il router di bordo – Il router di bordo sostituisce l’indirizzo sorgente originale con il suo indirizzo IP esterno – Il pacchetto viene instradato come al solito 10.0.0.255 Router di bordo 201.2.2.1 Rete pubblica STRATO RETE IN INTERNET - 83 Pag. 14 10.0.0.1 130.192.9.131 Rete privata 10.0.0.0 10.0.0.255 Router di bordo 201.2.2.1 130.192.9.131 201.2.2.1 Rete pubblica STRATO RETE IN INTERNET - 84 Protocolli strato rete in Internet NAT • Quanto un pacchetto dall’esterno giunge al router di bordo, questo ricorda a quale host interno deve essere in realtà consegnato – Sostituisce l’indirizzo destinazione (suo) con quello dell’host destinazione – Instrada il pacchetto nella rete interna come al solito NAT • Problema: cosa succede se più di un host interno comunica con lo stesso host esterno? Rete privata 10.0.0.0 – Si usano più porzioni di intestazioni per cercare di avere un mapping uno a uno stringente • Vantaggi: 10.0.0.255 Router di bordo 130.192.9.131 10.0.0.1 – Riduce il numero di indirizzi IP necessari (riuso di indirizzi privati) – Sicurezza: un host interno NON può essere contattato dall’esterno se esso non ha per primo contattato la destinazione 201.2.2.1 Rete pubblica 130.192.9.131 201.2.2.1 STRATO RETE IN INTERNET - 85 Pag. 15 STRATO RETE IN INTERNET - 86