Il protocollo IP Internet Protocol RFC 791 N. 1 La famiglia dei protocolli TCP/IP Applicazioni Application Transport Network Strati superiori e-mail,ftp,telnet,www… TCP ICMP UDP IP Strato 4 ARP Strato 3 Data Link Non specificato (ad es. IEEE 802-Ethernet-X25-Aloha ecc.) Strato 2 Phisical Non specificato Collegamento fisico Strato 1 © DEISnet N. 2 1 La famiglia dei protocolli TCP/IP (2) • Nessuna specifica per gli strati sotto IP, in quanto relativi alla singola sottorete • IP svolge funzioni di rete e instradamento dei pacchetti • TCP (o UDP) svolge le funzioni di trasporto e di controllo della connessione end-to-end • Lo strato di applicazione contiene applicativi utilizzati per fornire servizi all’utente © DEISnet N. 3 Standard di Internet: Enti di gestione • Non esistono veri e propri enti che svolgono la funzione di gestione, ma solo enti di coordinamento delle attività di ricerca e di sviluppo che ora convergono nella Internet Society • Da questa ora dipende il cosiddetto Internet Advisory Board (IAB) e si compone di due sottogruppi principali – Internet Engineering Task Force (IETF), con lo scopo di coordinare le attività di ingegnerizzazione ed implementazione – Internet Research Task Force (IRTF), con lo scopo di coordinare le attività di ricerca © DEISnet N. 4 2 RFC • I protocolli sono frutto del lavoro di gruppi di ricerca • I vari protocolli sono definiti in documenti detti Request For Comment (RFC) • RFC sono documenti di pubblico dominio, distribuiti liberamente a chiunque li richieda, consultabili all’indirizzo http://www.ietf.org/rfc.html • Alcuni RFC diventano Internet Standard – Prima Proposed Standards – Poi Draft standards © DEISnet N. 5 Altri Enti importanti • NSF ha fondato un ente chiamato InterNIC (Network Information Center) allo scopo di fornire alcuni servizi specifici relativi ad Internet: – Registrazione di nuove reti e domini – Manutenzione di indici e database degli enti interconnessi – Servizi di tipo informativo sulla rete • IANA = Internet Assigned Number Authority – Mantiene i database dei numeri che hanno significati convenzionali nei protocolli di Internet © DEISnet N. 6 3 Internet Protocol (IP) - RFC 791 • Progettato per sistemi interconnessi a commutazione di pacchetto • Si prende carico della trasmissione di datagrammi da sorgente a destinazione, identificati da indirizzi di lunghezza fissa. • Frammenta i datagrammi e li riassembla quando necessario – I frammenti di datagramma sono detti pacchetti • E’ esplicitamente limitato per fornire le sole funzioni necessarie alla consegna dei pacchetti – non sono previsti meccanismi per aumentare l’affidabilità del collegamento end-to-end, – per il controllo di flusso e della sequenza.. © DEISnet N. 7 Funzioni base dell’ IP • Indirizzamento: tramite indirizzo IP, si stabilisce a quale sottorete è connesso un host e su quale percorso instradare i datagrammi • Frammentazione e riassemblamento: ogni modulo Internet ha la capacità di gestire datagrammi di almeno 68 byte e di riceverne di lunghezza almeno 576 byte, anche in più frammenti La funzione di instradamento all’interno delle singole sottoreti non è di pertinenza dell’IP, ma dei protocolli della sottorete stessa. © DEISnet N. 8 4 Funzioni base dell’ IP (2) • Ogni datagramma viene trattato come entità a se stante, scorrelata da qualunque altro datagramma • Siamo quindi in presenza di una rete di tipo connectionless secondo la terminologia OSI Come già visto parlando della commutazione a datagramma e come anche enunciato nella definizione precedente, l’IP non fornisce un servizio di comunicazione affidabile.. © DEISnet N. 9 Formato del pacchetto IP 1 byte Version 1 byte IHL Type of Service Identification Time to live 1 byte 1 byte Total Lenght Flags Protocol Fragment Offset Header Checksum Source Address Destination Address Options Padding Dati di utente © DEISnet N. 10 5 Formato del pacchetto IP (2) • Version : indica la versione di IP usata per l’intestazione, attualmente la versione in uso è la 4 (IPv4) • IHL (IP Header Length): lunghezza dell’intestazione, espressa in parole di 32 bit; lunghezza minima = 5 • Type of service : indicazione sul tipo di servizio richiesto – Ha cambiato uso rispetto alle prime proposte – Ora è usato per identificare una Classe di servizio secondo il paradigma Differentiated Service • Total length : lunghezza totale del datagramma, misurata in bytes; – lunghezza massima = 65535 bytes, – non è detto che tutte le implementazioni siano in grado di gestire questa dimensione – In futuro le Gbit networks potrebbero richiedere più bytes © DEISnet N. 11 Formato del pacchetto IP (3) • Identification : valore intero che identifica univocamente il datagramma; si usa per risalire a quale datagramma appartengono i fragments • Flag – bit 0 : non usato, sempre a 0 – bit 1 : DF = Dont Fragment • DF = 1 • DF = 0 non si può frammentare si può frammentare – Bit 2 : MF = More Fragment • MF = 1 • MF = 0 frammento intermedio (ce ne sono ancora) ultimo frammento • Fragment offset: indica quale è la distanza di questo frammento dall’inizio del datagramma, misurata in blocchi di 64 bit (8 byte), dimensione del frammento elementare © DEISnet N. 12 6 Formato del pacchetto IP (4) • Time to live : tempo massimo di permanenza del datagramma nella rete, decrementato – ogni secondo – ogni volta che si attraversa un nodo (implementazioni odierne) – il datagramma verrà distrutto dal primo nodo che trova TTL = 0 • Protocol : indica a quale protocollo di livello superiore appartengono i dati del datagramma – tabella è conservata da IANA • Per TCP Protocol = 6 • Per UDP Protocol = 17 • Header checksum : controllo di errore della sola intestazione, viene ricalcolato da ogni nodo attraversato dal datagramma • Source (Destination) Address : indirizzo sorgente (destinazione) © DEISnet N. 13 Formato del pacchetto IP (4) • Options : campo di lunghezza variabile che contiene opzioni relative al trasferimento del datagramma quali – – – – Meccanismi di sicurezza (non usato) Registrazione del percorso Registrazione dell’istante di passaggio Source routing • Padding : bit privi di significato aggiunti per fare in modo che il campo Options sia con certezza multiplo di 32 bit © DEISnet N. 14 7 Checksum • L’algoritmo di checksum è definito come segue: The checksum field is the 16 bit one' s complement of the one' s complement sum (exclusive OR) of all 16 bit words in the header. For purposes of computing the checksum, the value of the checksum field is zero. • Prestazioni un poco inferiori al codice polinomiale con polinomio di grado 16 • L’uso sperimentale ha dimostrato la sostanziale efficacia di questo algoritmo. © DEISnet N. 15 Struttura degli indirizzi IP • Indirizzi di lunghezza fissa pari a 32 bit • Scritti convenzionalmente come sequenza di 4 numeri decimali, con valori da 0 a 255 (8bit), separati da punto (notazione dotted decimal) 137.204.212.1 -> 10001001.11001100.11010100.00000001 • Numero teorico max. di indirizzi 232 = 4.294.967.296 – in realtà si riesce a sfruttare un numero molto inferiore • Per mezzo di una opportuna codifica dei bit più significativi, indirizzi IP suddivisi in classi © DEISnet N. 16 8 Classi di indirizzo Network ID Host ID 0 Classe A 1 0 Classe B 1 1 0 Classe C 1 1 1 0 Classe D (multicast (multicast)) 1 1 1 1 Classe E (sperimentale) • Network ID : identifica la rete (network) • Host ID : identifica i singoli calcolatori della rete © DEISnet N. 17 Classi di indirizzo (2) Classe Classe Max # reti Max # host A 126 16.777.124 B 16.348 65.534 C 2.097.152 254 Spazio degli indirizzi A 1.0.0.0 - 126.0.0.0 B 128.1.0.0 - 191.254.0.0 C 192.0.1.0 - 223.255.254.0 D 224.0.0.0 - 239.255.255.255 E 240.0.0.0 - 254.255.255.255 © DEISnet N. 18 9 Classi di indirizzo (3) • Alcuni indirizzi no sono utilizzabili perché sono riservati per scopi particolari, ad es. – un numero IP di tutti 0 (0.0.0.0) significa “questo host” (local host), per cui un pacchetto con tale indirizzo non viene inviato in rete – Un Net ID di tuuti 0 indica “questa rete” – un Host ID di tutti 1 è l’indirizzo di broadcast per quella rete – Un Host ID di tutti 0 viene usato nelle tabelle di ruoting per indicare la rete – Il Net ID 127 indica in ogni computer la porta verso gli strati superiori (loopback) © DEISnet N. 19 Indirizzi: connessioni di rete • L’indirizzo è riferito ad una delle interfacce di rete dell’host, pertanto non identifica un host individuale, ma una interfaccia di rete • Multi-homed hosts: computers con due o più connessioni di rete • Un router che collega N reti ha N distinti indirizzi IP, uno per ogni interfaccia di rete • Il routing in Internet è basato sulle Network: nelle tabelle di routing ci sono gli indirizzi delle Network di destinazione piuttosto che quelli degli Host • L’attribuzione delle Reti IP agli enti che ne fanno domanda è gestita dal NIC © DEISnet N. 20 10 Subnetting, Netmask • Per motivi di flessibilità una Network IP può essere spezzata in sottoreti (subnetwork) • In tal caso l’indirizzo di host viene frammentato in due sottoparti: – la prima identifica la sottorete – la seconda identifica i singoli host della sottorete Network ID Subnetwork ID Host ID 10 Netmask 11111111 11111111 11111111 00000000 Netmask notazione dotted decimal : 255.255.255.0 © DEISnet N. 21 CIDR = Classless InterDomain Routing • Con il CIDR (RFC 1519) gli indirizzi possono essere assegnati con qualunque suddivisione fra Net ID e Host ID, senza badare alla classe – Le tabelle di routing devono comprendere anche le Netmask • SUPERNETTING – Con il CIDR è possibile anche raggruppare più reti con indirizzi consecutivi (ad esempio 16 Network di classe C) e indicarle nelle tabelle di routing con una sola entry accompagnata dalla opportuna Netmask (nell’esempio 255.255.240.0) © DEISnet N. 22 11 IP: instradamento dei datagrammi • Nella terminologia di Internet si definisce – Rete logica: la rete IP a cui un Host appartiene – Rete fisica: la rete cui è effettivamente connesso (per esempio una LAN) • Direct delivery : host sorgente e destinatario sulla stessa rete fisica; il sorgente associa l’indirizzo IP ad indirizzo fisico e spedisce direttamente al destinatario • Indirect delivery : host sorgente e destinatario non sulla stessa rete, quindi il sorgente invia i pacchetti da consegnare ad un altro router seguendo la Tabella di Instradamento © DEISnet N. 23 Relazione Indirizzi Fisici – Indirizzi IP • Internet suppone che gli Host siano connessi mediante una rete fisica (ad esempio una LAN) e possano scambiarsi pacchetti conoscendo i reciproci indirizzi fisici Come hosts e routers realizzano tale relazione per inviare pacchetti su di una rete fisica ? • SW di basso livello nasconde gli indirizzi fisici e consente ai livelli superiori di lavorare solo con indirizzi IP • Host A per mandare dati a B, di cui conosce solo indirizzo IP, usa un protocollo detto Address Resolution Protocol - ARP © DEISnet N. 24 12 Address Resolution Protocol - ARP 137.204.57.95 137.204.57.210 ARP request 137.204.57.100 per IP = 137.204.57.10 137.204.57.10 137.204.57.34 • Nodo sorgente invia un pacchetto broadcast sulla LAN (“Who is”), contenente l’indirizzo IP del nodo destinazione • Tutte le stazioni della rete locale leggono il pacchetto broadcast © DEISnet N. 25 Address Resolution Protocol - ARP (3) 137.204.57.95 137.204.57.210 ARP replay contenente indirizzo fisico 137.204.57.100 137.204.57.10 137.204.57.34 • L’Host di destinazione risponde (ARP Replay), inviando un messaggio che contiene il proprio indirizzo fisico • Con questo messaggio l’host sorgente è in grado di associare l’appropriato indirizzo fisico all’IP destinazione • Ogni host mantiene una tabella (ARP cache) con le corrispondenze fra indirizzi logici e fisici © DEISnet N. 26 13 Nomi e indirizzi • Per comodità degli utenti gli Host sono individuati da Nomi organizzati in Domini • I Domini sono organizzati in una gerarchia (Domini di 1° livello, di 2° liv., ecc..) • I nomi sono composti da stringhe di caratteri separate da punti – le stringhe individuano i Domini (a partire da quella più a destra) e l’Host all’interno del dominio – il numero livelli e quindi di stringhe è virtualmente illimitato, al contrario del numero IP © DEISnet N. 27 Domain Name Server • Esempio deisnet.deis.unibo.it – – – – it = Dominio di 1° livello associato all’Italia unibo = dominio di 2° livello all’interno di it deis = dominio di 3° livello all’interno di unibo deisnet = particolare Host all’interno di deis • Il Nome risultante deve essere unico in tutta la rete – Servono delle Autorità per gestire dei Domini – Per i domini di 1° livello l’autorità di registrazione à il NIC • Domain Name Server (DNS) esegue la funzione di Directory, associando ad ogni Nome di Host l’indirizzo di rete a cui quel Host è attaccato – I DNS sono organizzati in una gerarchia che segue quella dei domini © DEISnet N. 28 14 Il Routing in Internet N. 29 Aree di routing in Internet • In Internet si usa il routing gerarchico e le aree di routing sono dette Authonomous System (AS) – Gli AS decidono autonomamente i protocolli e le politiche di routing che intendono adottare • I protocolli di routing all’interno di un AS sono detti Interior Gateway Protocol (IGP) • I protocolli di routing fra AS sono detti Exterior Gateway Protocol (EGP) o Border Gateway Protocol (BGP) • Un AS può essere ulteriormente suddiviso in Aree di routing (Routing Area) © DEISnet N. 30 15 Ruolo delle IP Network • Ogni network IP è tutta contenuta in un AS e Routing Area • I router IP sono Multi-homed hosts con varie interfacce di rete, ognuna delle quali ha un proprio indirizzo IP su di una Network • Per semplificare la gestione delle Tabelle di routing, queste contengono le Network (o le Subnetwork o le Supernetwork) di destinazione piuttosto che gli Host • All’interno della network l’Host viene raggiunto con il protocollo ARP © DEISnet N. 31 Esempio di routing: un PC connesso ad una LAN • Caso più semplice: un PC con una singola porta su una rete Ethernet • Deve conoscere innanzitutto – Il proprio indirizzo fisico – Il proprio indirizzo IP, appartenente ad una Network (o Subnetwork) IP che supponiamo tutta contenuta nella LAN – La Netmask – L’indirizzo di un router che connette la LAN al resto di Internet: il Default Gateway • L’Host ha una tabella di routing in cui è indicato come instradare un pacchetto – Se il pacchetto è diretto ad un indirizzo della LAN viene instradato direttamente con il protocollo ARP – Se è diretto fuori viene inviato all’indirizzo del default gateway che lo instraderà ulteriormente © DEISnet N. 32 16 Segue esempio • Se la destinazione è specificata attraverso un Nome occorre consultare il DNS – Occorre conoscere anche l’indirizzo del DNS – Il DNS può essere sulla stessa LAN (consegna diretta) o essere raggiungibile attraverso il Gateway • Un router ha una tabella di instradamento più complicata perché in genere ha più porte di uscita con cui raggiunge diversi altri router – Per sapere a quale porta o router deve associare un indirizzo di destinazione esegue i Protocolli di Routing – Per gli indirizzi che non conosce può fare riferimento ad un Default Gateway © DEISnet N. 33 Relazione fra reti IP e LAN A 100.10.1.7 R 100.10.1.254 Rete 100.10.1.0 X 150.15.5.254 150.15.5.77 Rete 150.15.5.0 • Due reti IP sulla stessa LAN – Ocorre un router che abbia una porta su ambedue le LAN – Il protocollo IP “non si accorge” che le due reti sono sulla stessa LAN – Si potrebbe intervenire manualmente sulla tabella di routing ad es.dell’ Host A, suggerendogli la consegna diretta dei pacchetti per la rete 150.15.5.0 © DEISnet N. 34 17 Una singola rete IP su più segmenti LAN A I X • Interconnessione mediante Repeater o Bridge – Il protocollo IP vede sotto di se un’unica LAN purché I trasmetta i broadcast della LAN • A per trasmettere a X può fare ARP e consegna diretta • Il Bridge ha i seguenti vantaggi sul Repeater – Ammette segmenti LAN di tipo diverso – Separa i domini di collisione e di traffico – In caso di rete complessa con vie alternative cerca gli instradamenti con l’algoritmo spanning tree © DEISnet N. 35 Interconnessione mediante Routers • Per sfruttarne i vantaggi occorre suddividere la Network in Subnetworks – I router instradano i pacchetti servendosi dei normali protocolli di Internet – Con una pianificazione ben fatta è possibile ottimizzare il traffico sfruttando le vie alternative • E la soluzione più flessibile e conveniente, anche se più costosa e più difficile da gestire © DEISnet N. 36 18 Interior Gateway Protocol per Internet • RIP: RIP: Routing Information Protocol (RFC 1058) – Protocollo distance vector, di implementazione vecchia (Giugno 1988), largamente usato agli inizi di Internet • OSPF: OSPF: Open Shortest Path First (RFC 1247) – Protocollo di tipo link state • • • • Invia in flooding pacchetti Link State Update Questi vengono riscontrati con un Link State Ack Un router può chiedere informazioni con Link State Request Il pacchetto Database Description comunica a un altro router tutte le informazioni Link State che un router possiede – È il protocollo attualmente raccomandato • All’interno degli IGP le subnetwork sono indirizzate come reti © DEISnet N. 37 Protocolli fra Authonomous Systems • • EGP utilizzato per comunicare la raggiungibilità delle reti IP fra diversi AS BGP più recente, inteso per rimpiazzare EGP, ora alla versione BGP-4 (RFC 1771), – protocollo Path Vector : i router notificano non solo la loro distanza ma tutto il percorso completo verso una certa destinazione • Sulla base dell’indirizzo di destinazione i protocolli EGP/BGP cercano di raggiungere l’AS che contiene quella particolare network IP – Un AS deve informare gli altri AS sulle network che contiene annunciandole – Ci deve essere una struttura di interconnessione di AS che prevede AS di transito • • Comunica utilizzando TCP, al fine di poter contare su di una comunicazione affidabile Nella sue decisioni sugli instradamenti tiene conto oltre che della distanza anche delle politiche che ogni AS intende adottare © DEISnet N. 38 19 Debolezze dell’indirizzamento IP • Indirizzi riferiti alla rete di appartenenza: se un host viene spostato in un’altra rete, il suo indirizzo IP deve cambiare • Limita la mobilità degli host: – ad esempio i PC portatili devono essere riconfigurati ogni volta che vengono connessi ad una rete diversa, non possono avere indirizzo IP permanente perché questo identifica la rete • Le dimensioni delle reti sono prefissate: – il cambio di classe comporta fermare la rete e sostituire tutti gli indirizzi • Il numero di indirizzi possibili è troppo basso – In seguito alla diffusione dei PC stiamo esaurendo gli idirizzi © DEISnet N. 39 Reti Private o Nascoste. Funzione NAT • Per estendere la gamma di indirizzi utilizzabili si possono usare indirizzi privati o nascosti (hidden). Spazi riservati – Tutta la rete 10 di Classe A – 16 reti di classe B da 172.16.h.h a 172.31.h.h – 256 reti di Classe C da 192.168.0.h a 192.168.255.h • Per comunicare con il resto di Internet gli Host sulla rete nascosta usano un server NAT (Network Address Translation) (RFC 3022) – Il NAT ha un indirizzo pubblico – Su richiesta dei client si collega all’esterno aprendo connessioni (tramite TCP) e ricorda a quale indirizzo privato corrisponde ogni connessione © DEISnet N. 40 20 ICMP (RFC 791) • Per alcune funzioni di gestione e monitoraggio della rete IP è stato introdotto il Protocollo ICMP (Internet Control Message Protocol) • I messaggi ICMP sono trasportati come dati da pacchetti IP – Messaggi di errore, ad esempio • Destinazione irraggiungibile • Tempo di vita scaduto – Messaggi di richiesta di informazioni, ad es. • Echo e Echo replay • Timestamp request © DEISnet N. 41 ICMP • Sulla base di messaggi ICMP i sistemi operativi offrono comandi di rete per ottenere informazioni sullo stato della rete, ad es – Ping – Traceroute • Le informazioni raccolte possono essere usate da malintenzionati, pertanto molti router oggi bloccano tutti i messaggi ICMP che arrivano loro. © DEISnet N. 42 21 IPv6 • Stanti i problemi dell’IPv4 attualmente in uso si è lavorato su una nuova versione con i seguenti obiettivi – – – – – – – Supportare molti miliardi di host Semplificare il routing per avere backbone veloci Offrire meccanismi di sicurezza Offrire qualità di servizio (multimedialità) Gestire bene multicast e broadcast Consentire la mobilità Fare tutto questo consentendo future evoluzioni e garantendo compatibilità col passato © DEISnet N. 43 IPv6: principali caratteristiche • Indirizzi più lunghi: 16 byte (4 righe o 128 bit) • Semplificazione dell’intestazione obbligatoria – Meno campi che nella v4 – Non permessa frammentazione – Lunghezza minima comunque 10 righe • Possibilità di diversi header opzionali – Alcuni router, per esempio quelli di transito possono ignorare le intestazioni che non li riguardano • Meccanismi per la sicurezza e qualità di servizio Non è ancora chiaro se e quando verrà veramente adottato © DEISnet N. 44 22