Indirizzi IP
Transcript
Indirizzi IP
Architettura di TCP/IP I semestre 04/05 L’architettura di Internet è organizzata intorno a tre servizi organizzati gerarchicamente Indirizzi IP Prof. Vincenzo Auletta [email protected] http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica FTP, telnet, ... Servizio di trasporto affidabile TCP Servizio inaffidabile di consegna di pacchetti IP 2 IP: Internet Protocol IP:Internet Protocol È il livello di Network di TCP/IP Il livello Network si occupa di: consente a due entità di protocollo di trasporto, residenti su macchine differenti, di scambiare messaggi in modo trasparente servizi di rete indirizzamento istradamento qualità del servizio dimensione massima dei pacchetti controllo degli errori controllo del flusso Un protocollo datato ... ... ma non obsoleto 3 Servizi Applicativi 4 Delegati al livello di trasporto TCP IP: Internet Protocol IP: Internet Protocol Il protocollo IP provvede a: IP fornisce un servizio non connesso definire il formato delle unità elementari di dati (datagram) trasferiti su una rete TCP/IP fornire un metodo di indirizzamento universale per l’internet scegliere il percorso che un datagram segue nell’internet per giungere a destinazione definire le regole che servono a implementare il concetto di consegna inaffidabile di datagram Ogni datagram (pacchetto IP) è trattato separatamente Pacchetti relativi alla stessa sessione potrebbero seguire percorsi differenti nell’internet inaffidabile La consegna del datagram al destinatario non è garantita al meglio delle possibilità (best try) Il protocollo non decide mai deliberatamente di eliminare un datagram 5 6 Esempio di Architettura di Rete FTP client Interazioni di IP con altri Protocolli User Proc. FTP server TCP TCP IP IP 7 User Proc. User Proc. Application TCP router 802.3 driver User Proc. 802.3 driver UDP Transport IP 802.5 driver ICMP IP IGMP Network ARP HW Intrfc RARP Link 802.5 driver 8 Indirizzi IP Formato degli Indirizzi IP Un indirizzo IP identifica univocamente un utente dei servizi di rete Sono ampi 32 bit (4 byte) Si scrivono come 4 numeri decimali separati dal carattere “.” Ogni numero rappresenta il contenuto di un byte ed è quindi compreso tra 0 e 255 Esempi L’indirizzo è assegnato all’interfaccia di rete un host può avere più indirizzi IP (multihomed), uno per ogni interfaccia di rete il formato dell’indirizzo è indipendente dal tipo di rete fisica a cui l’host è collegato Gli indirizzi sono assegnati da una autorità unica che ne garantisce l’univocità 9 Fino al 98 una persona si occupava di tutto Attualmente la Internet Corporation for Assigned Names and Numbers (ICANN) si occupa di assegnare gli indirizzi ed i nomi 131.190.0.2 (10000011 10111110 00000000 00000010) 1.1.2.17 (00000001 00000001 00000010 00010001) 200.70.27.33 (11001000 01000110 00011011 00100001) 10 Schema di Indirizzamento con le Classi Indirizzi IP Ogni indirizzo è formato da due parti Meccanismo di indirizzamento originario identificativo di rete identificativo di host Pensato per l’internet degli anni 80 Non ha retto alla enorme diffusione di Internet Gli indirizzi a due livelli facilitano la politica di gestione degli indirizzi e l’istradamento dei datagram sull’internet Prevede 5 classi di indirizzi Le classi differiscono per la lunghezza degli identificativi di rete e di host La lunghezza complessiva è sempre 32 bit La classe di un indirizzo è identificata dai primi 4 bit I gateway utilizzano l’identificativo di rete per far arrivare il datagram alla rete fisica del destinatario Il gateway della rete del destinatario utilizza l’identificativo di host per trasferire il datagram al destinatario 11 12 Formato degli Indirizzi di classe A, BeC 0 1 0 7 8 Formato degli Indirizzi di classe D ed E 0 1 2 3 31 Rete 1 1 1 0 Host 0 1 2 15 16 31 Rete 0 1 2 3 Host 1 1 11 Classe B 0 1 2 3 Rete 14 Classe A Classe B Identificativo di rete Identificativo di rete 14 bit max 16K reti valori compresi tra 128.0.0.0 e 191.255.255.255 7 bit max 128 reti valori compresi tra 0.0.0.0 e 127.255.255.255 Identificativo di host Identificativo di host 16 bit max 64K host 24 bit max 16M host 0 15 7 8 Rete Reserved for Future Use Host Classe C 0 1 31 Classe E 31 23 24 1 1 0 13 Multicast Address Classe D Classe A 1 0 31 0 1 2 31 Host 16 1 0 15 16 Rete 31 Host Classe C Classe D Identificativo di rete destinato per un insieme di host che appartengono ad un gruppo multicast 21 bit max 2M reti valori compresi tra 192.0.0.0 e 223.255.255.255 valori compresi tra 224.0.0.0 e 239.255.255.255 ...lo vedremo in dettaglio in seguito Identificativo di host 8 bit max 256 host 0 1 2 3 1 1 0 Rete 0 1 2 3 31 23 24 1 110 Host 17 31 multicast group ID 18 Assegnazione degli Indirizzi Classe E destinato per usi futuri L’autorità centrale assegna gli identificativi di rete valori compresi tra 240.0.0.0 e 255.255.255.255 l’utente fa richiesta per una classe di indirizzi L’amministratore di rete assegna gli identificativi di host 0 1 2 3 1 111 la responsabilità sull’univocità degli indirizzi di host è delegata ad un’autorità locale 31 E’ possibile assegnare arbitrariamente indirizzi a host senza richiederli all’ICANN riservato per usi futuri ...questi indirizzi non possono essere utilizzati sull’Internet 19 20 Indirizzi di Rete e Indirizzi di Host Ordine di Trasmissione network byte order: Un indirizzo IP si può riferire sia ad un singolo host che ad un’intera rete bit bit bit bit l’indirizzo di host 0 è riservato e identifica la rete nel suo complesso utilizzato nelle tabelle di routing Esempio Byte ordering per interi binari: 192.41.218.10 identifica l’host 10 della rete di classe C 192.41.218 192.41.218.0 identifica la rete di classe C 192.41.218 21 0-7 8-15 16-23 24-31 Macchine con Big Endian: o.k. Macchine con Little endian...devono fare la conversione a network byte order 22 IP Routing: Cenni IP Routing: Tavola di Routing Lo strato di IP di un sistema può essere configurato come un host oppure come host+router Lo strato di IP ha una tavola di routing (che usa ogni volta che riceve un datagram) contenente: Se la destinazione è connessa direttamente all’host o su una rete condivisa (e.g. ethernet/token ring): il datagram è mandato direttamente a destinazione Indirizzo IP di destinazione: di rete o completo Indirizzo di next-hop router o di net-id direttamente connessa Flag: specificano il tipo dei due indirizzi precedenti specifiche di quale interfaccia di rete su cui immettere il datagram per la trasmissione Altrimenti l’host manda il datagram ad un router di default che lo spedirà a destinazione è tutto semplice?... /sbin/route (...Unix) – route PRINT (NT) 23 24 Indirizzi Riservati Utilizzo della Tavola di Routing matching con l’indirizzo di host completo tutti 0 manda il pacchetto al next-hop router o all’interf. connessa direttamente (indicati) point-to-point tutti 0 matching con l’indirizzo di rete manda il pacchetto al next-hop router o all’interf. connessa direttamente (indicati) ethernet questo host host tutti gli host della rete tutti 1 broadcast limitato default route rete manda il pacchetto al next-hop router indicato tutti 1 altrimenti... packet undeliverable 25 host unreachable network unreachable 26 Indirizzi di Broadcast any (in genere 0.0.1) tutti gli host di rete broadcast diretto loopback Indirizzo di Loopback Un indirizzo con tutti i bit dell’ identificativo di host uguali ad 1 identifica tutti gli host di una rete: net-id broadcast L’indirizzo 127.0.0.1 è riservato per il loopback l’indirizzo identifica lo stesso host che ha spedito il datagram utile per test e debugging consente di gestire la comunicazione tra processi sulla macchina locale allo stesso modo che tra processi remoti un datagram spedito ad un indirizzo broadcast verrà consegnato a tutti gli host della rete su alcune reti può essere molto costoso Esempio 192.41.218.255 identifica tutti gli host della rete 192.41.218.0 lo standard IP vieta di definire indirizzi con identificativi di rete 127 L’indirizzo 255.255.255.255 identifica tutti gli host della rete a cui è collegato il mittente: 27 127 host su questa rete 28 Reti Logiche e Fisiche: Esempio di classe C Indirizzi Locali Alcuni identificativi di rete sono stati riservati per uso privato 192.41.218.0 Ogni organizzazione è libera di assegnare questi indirizzi ai suoi host I router non istraderanno mai datagram da e verso host con questi indirizzi .254 Router 193.205.162.0 .4 Bridge 10.0.0.0 172.16.0.0 192.168.0.0 193.205.162.0 .1 .2 30 Esaurimento degli Indirizzi di classe B Debolezze dello Schema di Indirizzamento una rete di 256 host richiede un indirizzo di classe B L’indirizzo IP si riferisce alla connessione alla rete se un host cambia rete deve cambiare indirizzo Problematico gestire utenti mobili oltre 65000 indirizzi inutilizzati gli indirizzi di classe B sono quasi esauriti Se un host ha più indirizzi il comportamento del protocollo IP dipende dall’indirizzo utilizzato se una rete di classe C supera i 255 host tutti gli indirizzi devono essere riconvertiti a classe B 31 .254 .3 Indirizzi disponibili 29 .2 .1 Cambia l’identificativo di rete Tutti i router dovrebbero aggiornare le tabelle di routing Nessuno richiede indirizzi di classe C 32 Come migliorare l’utilizzo dello spazio degli indirizzi di IP, mantenendo la compatibilità con il vecchio sistema? Assegnare lo stesso identificativo di rete a più reti fisiche...subnetting Subnetting Uso del Subnetting La dimensione dell’identificativo di rete della parte locale non è fissata L’indirizzo IP è diviso in una parte pubblica (ex rete) ed una parte locale (ex host) parte pubblica parte pubblica consente la massima flessibilità per la gestione dello spazio degli indirizzi una rete di classe B può essere divisa per esempio in parte locale rete 254 sottoreti da 254 host (8 bit net-id + 8 bit host)...-2 6 sottoreti da 8190 host (3 bit net-id + 13 bit host)...-2 8190 sottoreti da 6 host (13 bit net-id + 3 host)...-2 host il routing nell’internet è fatto sulla parte pubblica Compatibile con il vecchio schema dimensione ridotta delle tavole sull’Internet 33 • la parte locale è divisa in un identificativo di rete fisica ed un identificativo di host 34 Netmask Esempio di Netmask Un amministratore che vuole partizionare una rete in sottoreti deve definire una netmask Partizionare la rete di classe B 140.252.0.0 in 14 subnet da 4094 host maschera di 32 bit bit a 1 in corrispondenza dei campi network e subnetwork bit a 0 in corrispondenza del campo host • Netmask 255.255.240.0 o 140.252.0.0/20 • 11111111 11111111 11110000 00000000 Lo standard ammette tutte le sequenze di 32 bit come maschere nella realtà vengono utilizzate solo maschere costituite da una sequenza di 1 seguita da una sequenza di 0 Es. 11111111 11111111 11111000 00000000 (255.255.248.0) 35 Per interpretare correttamente gli indirizzi c'è bisogno di distinguere tra identificativo di rete e host 36 • Notazione alternativa • {network, subnet, host} • La sottorete 2 ha indirizzo (140.252, 2, 0) • L’indirizzo di broadcast della sottorete 2 è (140.252, 2, -1) Subnet Classe C: 192.41.218.0/28 NET ID PRIMO HOST ULTIMO NET ID PRIMO HOST ULTIMO .0 .1 .14 .128 .129 .142 .16 .17 .30 .144 .145 .158 .32 .33 .46 .160 .161 .174 .48 .49 .62 .176 .171 .190 .64 .65 .78 .192 .193 .206 .80 .81 .94 .208 .209 .224 .96 .97 .110 .224 .225 .238 .112 .113 .126 .240 .241 .254 37 Indirizzi di Broadcast per Sottoreti Lo standard stabilisce che con k bit si possono specificare 2k indirizzi di sottoreti anche la sottorete 0 e la sottorete 2k-1 Ogni sottorete ha un proprio indirizzo di rete ed un indirizzo di broadcast indirizzo di host formato da tutti 0 o tutti 1 E’ possibile associare anche un indirizzo di rete ed un indirizzo di broadcast all’insieme delle sottoreti 38 Indirizzi di Subnet di Lunghezza Variabile i router CISCO vietano l’uso di 0 e 2k-1 come indirizzi di sottorete Schema di Indirizzamento senza Classi (CIDR) E’ possibile costruire sottoreti con netmask di lunghezza differente Agli inizi degli anni 90 ci si è resi conto che gli indirizzi disponibili si stavano esaurendo Es. dividere una rete di classe C in una sottorete con 126 host e due sottoreti con 62 host la soluzione del subnetting aveva solo rinviato il problema Soluzioni L’utilizzo di netmask di lunghezza differente rende più difficile la gestione dell’instradamento ed è sconsigliata Allargare lo spazio di indirizzamento a 128 bit (IP6) – a larga scadenza Rendere più flessibile l’utilizzo degli indirizzi a 32 bit (indirizzi senza classi CIDR) – a breve scadenza si possono creare indirizzi ambigui (soprattutto per broadcast) 39 però non si possono usare gli indirizzi di sottorete 0 e 2k-1 la soluzione dipende dal router 40 Supernetting Indirizzi CIDR e Bitmask Lo schema CIDR consente di assegnare blocchi di indirizzi di dimensione 2k, per ogni k Lo schema CIDR consente di assegnare alla stessa rete fisica un blocco di indirizzi di rete consecutivi Utilizza una bitmask (equivalente identificare la dimensione dei blocchi (net, count) count indirizzi di rete a partire da net Tutti gli indirizzi di un blocco hanno un prefisso comune identificato dalla bitmask 42 Filosofia di CIDR Indirizzo base ad ogni ISP è assegnato un blocco di indirizzi contigui distinto 172.50.204.0/21 Ogni ISP subnetta il suo blocco di indirizzi in sottoblocchi contigui da assegnare ai suoi clienti ogni sottoblocco sarà identificato da un prefisso comune ed una bitmask L’istradamento è più facile 43 il prefisso è utilizzato nelle tabelle di routing come indirizzo di rete Esempio Applicazione CIDR L’accesso all’internet è gestita dagli ISP un router conosce le rotte solo agli host del suo blocco tutto il traffico rimanente è inviato al router del superblocco che lo contiene per Servono 11 bit per identificare ogni host Indirizzo CIDR 128.211.168.0/21 Esempio: (192.41.218.0, 2) 41 netmask) Esempio: assegnare un blocco di 2048 indirizzi a partire da 128.211.168.0 Consente anche di ridurre le dimensioni delle tavole di routing identifica le reti di classe C 192.41.218.0 e 192.41.219.0 permette di assegnare ad una rete di 256 host due indirizzi di classe C consecutivi invece che un indirizzo di classe B a 44