Ing. L. A. Grieco DEE – Telematics Lab. 1 Internet Protocol (IP) – Telematica I – - I Facoltà di Ingegneria – CdL in Ingegneria Informatica
2 Internet Protocol (IP) È responsabile dell’instradamento delle informazioni immesse nella rete Offre un servizio a Datagramma inaffidabile Ogni nodo della rete è individuato da almeno un indirizzo IP Ogni PDU 3 (PDU di livello 3) contiene gli indirizzi IP degli host mittente e destinatario Ogni Router (dispositivo di relaying di livello 3) inoltra le PDU ricevute sulla base di un algoritmo di routing I router si basano sul paradigma store & forward I router hanno l’unico ruolo di instradare i datagram IP senza garantire che i datagram giungeranno effettivamente a destinazione (servizio best effort)
3 Rete IP: esempio
4 Indirizzi IP Host-idNet-id 32 bit È composto da 32 bit Si esprime in forma decimale puntata, Es È suddiviso in una porzione dedicata alla rete ed una agli host Esistono 5 classi di indirizzi IP: A,B,C,D,E L’assegnazione degli indirizzi è gestita dall’ Internet Assigned Numbers Authority (IANA) Identifica una rete Identifica un host della rete
5 Net-id Classi di Indirizzi IP Host-idNet-id 0 Classe A: – Host-id 10 Classe B: – Host-idNet-id 110 Classe C: – bit Indirizzo Multicast 1110 Classe D: – riservato 1111 Classe E: –
6 Indirizzi IP: classificazione Pubblici: l’indirizzo può essere utilizzato esclusivamente da una specifica organizzazione e sono usati per instradare pacchetti in Intenet. Privati: possono essere usati solo in una rete privata, ma non si possono instradare pacchetti con tali indirizzi in Internet (utili per motivi di sicurezza e/o per risolvere il problema dello spazio di indirizzamento). Statici: l’IP dell’host non varia nel tempo Dinamici: l’IP dell’host varia nel tempo (Es. connessione non permanente ad Internet tramite ISP)
7 Subnetting Host-idNet-id 32 bit Una parte dei bit adibiti all’identificazione dell’host sono dedicati alla definizione di una sottorete La rete è suddivisa in molteplici sottoreti La suddivisione in sottoreti è “invisibile” all’esterno della rete I bit dedicati alla definizione di rete e sottorete sono identificati dalla SUBNET MASK Rappresentazione: Indirizzo IP/Subnet Mask (Es /24) I subnet-id tutti 0 e tutti 1 non sempre sono riconosciuti dai vecchi router Identifica una rete Identifica un host della rete Identifica una sottorete Subnet-id
8 Subnetting: esempio1 Rete: (Classe B) 4 sottoreti 2 bit per subnet-id Subnet mask: Subnet-id=00 Subnet-id=01 Subnet-id=10 Subnet-id=11
9 Subnetting: esempio2 Rete: (Classe B) 8 sottoreti 3 bit per subnet-id Subnet mask: Subnet-id 000 Subnet-id 001 Subnet-id 010 Subnet-id 111
10 Variable Length Subnet Mask (VLSM): esempio Rete: /24 (Classe C) NetA: 14 host NetE: 28 host NetB: 28 host NetD: 7 host NetC: 2 host 5 Subnet 3 bit =30 host per subnet Divisione classica VLSM Net A: /27 (14 host su 30) Net B: /27 (28 host su 30) Net C: /27 (2 host su 30) Net D: /27 (7 host su 30) Net E: /27 (28 host su 30) /27 (unused) /27 (unused) /27 (unused) Net B: /27 (28 host su 30) Net E: /27 (28 host su 30) Net A: /28 (14 host su 14) Net D: /28 (7 host su 14) Net C: /30 (2 host su 2) unused 5 Subnet n° bit variabile Si parte dalla rete con maggiori esigenze (B e E) –5 bit x host: B e E –4 bit x host: A e D –2 bit x host: C Minore spreco di indirizzi Maggiore disponibilità per espansioni della rete Maggiore difficoltà nel realizzare il piano di indirizzamento
11 Indirizzi IP speciali net IDsubnet IDhost IDSource ?Dest.?Description 00OKNeverThis host on this net 0hostIDOKNeverSpecified host on this net 127anythingOK Loopback address 255 NeverOKLimited broadcast (never forwarded) Netid255NeverOKNet-directed broadcast NetidsubnetID255NeverOKSubnet-directed broadcast Netid255 NeverOKAll-subnets-directed broadcast
12 Multicasting Consiste nel trasmettere verso destinazioni multiple da un’unica sorgente dati Il gruppo di host coinvolti nella comunicazione si definisce host group Un host group è identificato da un indirizzo IP di classe D L’uso di indirizzi multicast consente replicare i datagram in modo “intelligente”
13 Trasferimento di pacchetti tra host in reti differenti
14 Trasferimento di pacchetti tra host posti nella stessa rete A B
15 Address Resolution Protocol (ARP) Protocollo di risoluzione degli indirizzi MAC È utilizzato per conoscere il MAC address corrispondente ad un determinato indirizzo IP Siano A l’host mittente e B l’host di cui non si conosce il MAC address L’host A invia una richiesta in Broadcast indicando l’indirizzo IP di B B risponderà ad A con una reply Unicast Ogni PC ha una cache in cui memorizza le risoluzioni più recenti Ethernet Dest. Add. Type Hw size Sender Eth. Addr. Hw type Ethernet Sour. Add. 662 Prot. type 22 Prot size 11 Sender IP Addr. Target Eth. Addr. Target IP Addr byte ARP request/reply op. 2 Eth. vII header Ethernet Padding FCS 418
16 ARP esempio Eth. DA - FF:FF:FF:FF:FF:FF Eth. SA - aa:bb:cc:00:11:22 Arp type – 0x0806 op – 1 (ARP request) Sender Hw Add - aa:bb:cc:00:11:22 Sender IP Add Target Eth. Add.- 0:0:0:0:0:0 Target IP Add. – Hw - aa:bb:cc:00:11:22 IP Hw - 00:ee:cc:00:11:33 IP Arp Reply Eth. DA – aa:bb:cc:00:11:22 Eth. SA – 00:ee:cc:00:11:33 Arp type – 0x0806 op – 2 (ARP reply) Sender Hw Add – 00:ee:cc:00:11:33 Sender IP Add Target Eth. Add.- aa:bb:cc:00:11:22 Target IP Add. – Arp request
17 Datagram IP Ver. 32 bit HLENTOSTotal Length IdentificationFragment OffsetFlag s TTLProtocolHeader checksum Source address Destination address Options Data
18 Datagram IP Ver. 32 bit HLENTOSTotal Length IdentificationFragment OffsetFlag s TTLProtocolHeader checksum Source address Destination address Options Data Version (4 bit): Definisce la versione del protocollo (IPv4 o IPv6) Es. IPv4 → Ver. = 4
19 Datagram IP Ver. 32 bit HLENTOSTotal Length IdentificationFragment OffsetFlag s TTLProtocolHeader checksum Source address Destination address Options Data Header Length (4 bit): Dimensione dell’header in parole da 32 bit (Es. 20 byte HLEN = 5)
20 Datagram IP Ver. 32 bit HLENTOSTotal Length IdentificationFragment OffsetFlag s TTLProtocolHeader checksum Source address Destination address Options Data Type Of Service (8 bit): Definisce i requisiti in termini di QoS sul datagram
21 QoS Il campo TOS viene utilizzato per definire il forwarding behaviour associato al datagram PrecedenceDTR00 Definizione TOS DSCPCU Definizione secondo lo standard Differentiated Services Differentiated Service Code Point
22 Datagram IP Ver. 32 bit HLENTOSTotal Length IdentificationFragment OffsetFlag s TTLProtocolHeader checksum Source address Destination address Options Data Total Length (16 bit): Lunghezza del datagram espressa in byte
23 Datagram IP Ver. 32 bit HLENTOSTotal Length IdentificationFragment OffsetFlag s TTLProtocolHeader checksum Source address Destination address Options Data Identification (16 bit): Identifica in modo univoco un datagram generato dall’host mittente
24 Datagram IP Ver. 32 bit HLENTOSTotal Length IdentificationFragment OffsetFlag s TTLProtocolHeader checksum Source address Destination address Options Data Flag (3 bit): Informazioni utili alla frammentazione (MF indica se il datagram è l’ultimo dei frammenti, DF indica se il datagram puo’ essere frammentato) DFMF not used DF = Don’t Fragment; MF = More Fragment
25 Datagram IP Ver. 32 bit HLENTOSTotal Length IdentificationFragment OffsetFlag s TTLProtocolHeader checksum Source address Destination address Options Data Fragment Offset (13 bit): Identifica il frammento di un datagram espresso in multipli di 8 byte
26 Frammentazione Maximum Transfer Unit (MTU): massima dimensione di una SDU del livello data-link L’MTU limita la dimensione del datagram IP Id=777 Offset=0 MF= Byte MTU=1500 Id=777 Offset=1480 MF=1 Id=777 Offset=0 MF=1 Id=777 Offset=2960 MF= Byte 1040 Byte
27 Datagram IP Ver. 32 bit HLENTOSTotal Length IdentificationFragment OffsetFlag s TTLProtocolHeader checksum Source address Destination address Options Data Time To Live (8 bit): E’ impostato dal mittente (128), ad ogni hop è decrementato di una unità, quando raggiunge il valore 0 il datagram è scartato
28 Datagram IP Ver. 32 bit HLENTOSTotal Length IdentificationFragment OffsetFlag s TTLProtocolHeader checksum Source address Destination address Options Data Protocol (8 bit): Indica il protocolllo adottato a livello 4 (TCP,6) (UDP,17)
29 Datagram IP Ver. 32 bit HLENTOSTotal Length IdentificationFragment OffsetFlag s TTLProtocolHeader checksum Source address Destination address Options Data Header Checksum (16 bit): Si ottiene sommando 16 bit a 16 bit i 18 byte dell’header e facendo il complemento a 1 del risultato
30 Datagram IP Ver. 32 bit HLENTOSTotal Length IdentificationFragment OffsetFlag s TTLProtocolHeader checksum Source address Destination address Options Data Source address (32 bit): Indirizzo IP dell’host mittente
31 Datagram IP Ver. 32 bit HLENTOSTotal Length IdentificationFragment OffsetFlag s TTLProtocolHeader checksum Source address Destination address Options Data Destination address (32 bit): Indirizzo IP dell’host destinatario
32 Datagram IP Ver. 32 bit HLENTOSTotal Length IdentificationFragment OffsetFlag s TTLProtocolHeader checksum Source address Destination address Options Data Options Opzioni per il routing del datagram
33 Dynamic Host Configuration Protocol (DHCP) Consente ad un host di ottenere da un DHCP server: –indirizzo IP –Indirizzo IP del router di default –Indirizzo IP del server DNS La richiesta è inviata dall’host in broadcast sulla rete locale –Source IP address = (indica che l’host non ha un indirizzo) –Dest IP Address = Se non è disponibile alcun DHCP server nella rete locale, la richiesta può essere inoltrata verso un’altra rete (se il router di frontiera è opportunamente istruito) Se sono presenti più DHCP server nella medesima rete locale, dopo una fase di contesa, l’indirizzo IP è fornito dal server che per primo ha ricevuto la richiesta
34 Zero Configuration Networking Configurazione della rete in assenza di server e amministratori Sviluppato da IETF Ideale solo per piccole reti (dove non ci sono DHCP e DNS) Link-Local Address: /16 (riservato dalla IANA) –estrazione casuale (distr. uniformeI di un indirizzo nel range [ – ] –I primi e gli ultimi 256 indirizzi sono riservati per usi futuri –Il generatore di numeri casuali inizializza il suo seed partendo dall’indirizzo MAC della scheda di rete –Probing dell’indirizzo mediante ARP Probe, cioè un ARP Request con “Sender IP Add.= all 0”; “Target HW Add. = all 0”; “Target IP Add. = IP da provare” –Se un altro host ha lo stesso indirizzo, si sceglie casualmente un nuovo indirizzo –Se nessun host ha l’indirizzo scelto, si annuncia tale indirizzo con un ARP Announcement con “Sender IP Add.= Target IP Add. = IP scelto”. Gli indirizzo Link-local sono di tipo privato e non possono essere usati per il forwarding di dati fuori dalla rete locale
35 Network Address Translation (NAT) Internet Network Address Translation (NAT) è una tecnologia che consente agli host di una rete IP privata di accedere ad Internet utilizzando un pool ristretto di indirizzi IP pubblici LAN
36 NAT: principio di funzionamento Il NAT è un software eseguito presso il router di frontiera Ogni host della LAN ha un indirizzo IP non visibile all’esterno della LAN Il router di bordo della rete privata gestisce un pool di indirizzi IP pubblici per abilitare gli accessi ad Internet da parte degli host della rete privata Il NAT utilizza una Tabella di traduzione per selezionare a quale host della LAN è diretto un datagram che proviene dall’esterno La tabella di traduzione è costruita osservando le coppie indirizzo IP mittente / porta mittente dei datagram in uscita
37 NAT Translated Response Source Destination Request Source Destination NAT Client Server Translated Request Source Destination Response Source Destination Rete Privata Internet
38 Indirizzi Privati di rete Classe A: Classe B: – Classe C:
39 NAT Statico È utilizzato quando all’interno LAN è presente un Server In tal caso si crea un’associazione statica tra indirizzo privato e numero di porta del server e indirizzo pubblico del router di frontiera