109.1 Lezione 2
Certificazione: |
LPIC-1 |
---|---|
Versione: |
5.0 |
Argomento: |
109 Fondamenti di Networking |
Obiettivo: |
109.1 Fondamenti dei protocolli Internet |
Lezione: |
2 di 2 |
Introduzione
Abbiamo visto che lo stack TCP/IP è composto da una serie di diversi protocolli. Finora abbiamo studiato il protocollo IP, che permette la comunicazione tra macchine attraverso indirizzi IP, maschere, rotte, ecc.
Affinché un host possa accedere a un servizio disponibile su un altro host, oltre al protocollo di indirizzamento IP a livello di rete, è anche necessario utilizzare un protocollo a livello di trasporto come i protocolli TCP e UDP.
Questi protocolli realizzano questa comunicazione attraverso porte di rete. Così, oltre a definire un IP di origine e di destinazione, le porte di origine e di destinazione vengono utilizzate per accedere a un servizio.
La porta è identificata da un campo di 16 bit che fornisce un limite di 65.535 porte possibili. I servizi (destinazione) usano generalmente le porte da 1 a 1023, chiamate anche porte privilegiate. L’origine della connessione usa invece la gamma di porte da 1024 a 65.535, chiamate porte non privilegiate, o porte socket.
Le porte usate da ogni tipo di servizio sono standardizzate e controllate dalla IANA (Internet Assigned Numbers Authority). Questo significa che, di norma, su un sistema la porta 22 è usata dal servizio SSH, la porta 80 dal servizio HTTP e così via.
La tabella seguente contiene i principali servizi e le loro rispettive porte.
Port | Service |
---|---|
20 |
FTP (data) |
21 |
FTP (control) |
22 |
SSH (Secure Socket Shell) |
23 |
Telnet (Remote connection without encryption) |
25 |
SMTP (Simple Mail Transfer Protocol), Sending Mails |
53 |
DNS (Domain Name System) |
80 |
HTTP (Hypertext Transfer Protocol) |
110 |
POP3 (Post Office Protocol), Receiving Mails |
123 |
NTP (Network Time Protocol) |
139 |
Netbios |
143 |
IMAP (Internet Message Access Protocol), Accessing Mails |
161 |
SNMP (Simple Network Management Protocol) |
162 |
SNMPTRAP, SNMP Notifications |
389 |
LDAP (Lightweight Directory Access Protocol) |
443 |
HTTPS (Secure HTTP) |
465 |
SMTPS (Secure SMTP) |
514 |
RSH (Remote Shell) |
636 |
LDAPS (Secure LDAP) |
993 |
IMAPS (Secure IMAP) |
995 |
POP3S (Secure POP3) |
Su un sistema Linux, le porte di servizio standard sono elencate nel file /etc/services
.
L’identificazione della porta di destinazione desiderata in una connessione è eseguita usando il carattere :
(due punti) dopo l’indirizzo IPv4. Così, quando si cerca di accedere al servizio HTTPS che è servito dall’host IP 200.216.10.15
, il client deve inviare la richiesta alla destinazione 200.216.10.15:443
.
I servizi elencati sopra, e tutti gli altri, usano un protocollo di trasporto secondo le caratteristiche richieste dal servizio, dove TCP e UDP sono i principali.
Transmission Control Protocol (TCP)
TCP è un protocollo di trasporto orientato alla connessione. Ciò significa che una connessione viene stabilita tra il client attraverso la porta socket e il servizio attraverso la porta standard del servizio. Il protocollo si assicura che tutti i pacchetti siano consegnati correttamente, verificandone l’integrità e l’ordine di consegna, compresa la ritrasmissione dei pacchetti persi a causa di errori di rete.
Così facendo le applicazioni non hanno bisogno di implementare questo controllo del flusso di dati perché è già garantito dal protocollo TCP.
User Datagram Protocol (UDP)
UDP stabilisce una connessione tra il client e il servizio, ma non controlla la trasmissione dei dati di questa connessione. In altre parole, non controlla se i pacchetti sono stati persi, se l’ordine di consegna sia stato rispettato e così via. In questo caso quindi le applicazioni diventano responsabili dell’eventuale implementazione di questi controlli.
Poiché c’è meno controllo, UDP permette una migliore performance nel flusso di dati: una necessità rilevante per alcuni tipi di servizi.
Internet Control Message Protocol (ICMP)
ICMP è un protocollo di livello di rete nello stack TCP/IP e la sua funzione principale è quella di analizzare e controllare gli elementi della rete, rendendo possibile, per esempio:
-
Controllo del volume di traffico
-
Rilevamento delle destinazioni non raggiungibili
-
Reindirizzamento delle rotte
-
Contro dello stato degli host remoti
È il protocollo usato dal comando ping
, che sarà studiato in un altro capitolo.
IPv6
Finora abbiamo studiato la versione 4 del protocollo IP, cioè IPv4. Questa è stata la versione standard utilizzata in tutti gli ambienti di rete e Internet. Tuttavia ha delle limitazioni soprattutto per quanto riguarda il numero di indirizzi disponibili e in considerazione del sempre crescente numero di dispositivi in qualche modo connessi a Internet (vedi IoT), sta diventando sempre più comune utilizzare la versione 6 del protocollo IP, comunemente scritta come IPv6.
IPv6 porta una serie di cambiamenti, nuove implementazioni e caratteristiche, così come una nuova rappresentazione dell’indirizzo stesso.
Ogni indirizzo IPv6 è formato da 128 bit, divisi in 8 gruppi di 16 bit ciascuno, rappresentati da valori esadecimali.
Per esempio:
2001:0db8:85a3:08d3:1319:8a2e:0370:7344
Abbreviazioni
IPv6 definisce dei modi per accorciare gli indirizzi nella loro rappresentazione scritta. Esaminiamo il seguente indirizzo:
2001:0db8:85a3:0000:0000:0000:0000:7344
La prima possibilità è quella di ridurre le stringhe da 0000
a solo 0
, con il risultato di:
2001:0db8:85a3:0:0:0:0:7344
Inoltre, nel caso di stringhe di gruppo con un valore di 0
, esse possono essere omesse, come segue:
2001:0db8:85a3::7344
Tuttavia, quest’ultima abbreviazione può essere fatta solo una volta nell’indirizzo. Vedi l’esempio:
2001:0db8:85a3:0000:0000:1319:0000:7344 2001:0db8:85a3:0:0:1319:0:7344 2001:0db8:85a3::1319:0:7344
Tipi di Indirizzo IPv6
IPv6 classifica gli indirizzi in 3 tipi:
- Unicast
-
Identifica una singola interfaccia di rete. Per impostazione predefinita, i 64 bit a sinistra identificano la rete e i 64 bit a destra identificano l’interfaccia.
- Multicast
-
Identifica un insieme di interfacce di rete. Un pacchetto inviato a un indirizzo multicast sarà inviato a tutte le interfacce che appartengono a quel gruppo. Anche se simile, non deve essere confuso con broadcast, che non esiste nel protocollo IPv6.
- Anycast
-
Identifica anche un insieme di interfacce sulla rete, ma il pacchetto inoltrato a un indirizzo anycast sarà consegnato solo a un indirizzo in quell’insieme, non a tutti.
Differenze tra IPv4 e IPv6
Oltre all’indirizzo si possono evidenziare altre differenze tra le versioni 4 e 6 del protocollo IP. Eccone alcune:
-
Le porte di servizio seguono gli stessi standard e protocolli (TCP, UDP), la differenza è solo nella rappresentazione dell’IP e del set di porte. In IPv6 l’indirizzo IP deve essere protetto da
[]
(parentesi quadre):- IPv4
-
200.216.10.15:443
- IPv6
-
[2001:0db8:85a3:08d3:1319:8a2e:0370:7344]:443
-
IPv6 non implementa la funzione di broadcast esattamente come esiste in IPv4. Tuttavia lo stesso risultato può essere ottenuto inviando il pacchetto all’indirizzo
ff02::1
, raggiungendo tutti gli host della rete locale. Qualcosa di simile all’uso di224.0.0.1
su IPv4 per il multicasting come destinazione. -
Attraverso la funzione SLAAC (Stateless Address Autoconfiguration), gli host IPv6 sono in grado di autoconfigurarsi.
-
Il campo TTL (Time to Live) di IPv4 è stato sostituito dal "Hop Limit" nell’intestazione IPv6.
-
Tutte le interfacce IPv6 hanno un indirizzo locale, chiamato indirizzo link-local, con prefisso
fe80::/10
. -
IPv6 implementa il Neighbor Discovery Protocol (NDP), che è simile all’ARP usato da IPv4, ma con molte più funzionalità.
Esercizi Guidati
-
Quale porta è quella predefinita per il protocollo SMTP?
-
Quante porte sono disponibili in un sistema?
-
Quale protocollo di trasporto assicura che tutti i pacchetti siano consegnati correttamente, verificando l’integrità e l’ordine dei pacchetti?
-
Quale tipo di indirizzo IPv6 viene usato per inviare un pacchetto a tutte le interfacce che appartengono a un gruppo di host?
Esercizi Esplorativi
-
Cita 4 esempi di servizi che usano il protocollo TCP di default.
-
Qual è il nome del campo sul pacchetto di intestazione IPv6 che ha lo stesso scopo del TTL su IPv4?
-
Che tipo di informazioni è in grado di scoprire il Neighbor Discovery Protocol (NDP)?
Sommario
Questa lezione ha trattato i principali protocolli di trasporto e i servizi utilizzati sullo stack TCP/IP.
Un altro argomento importante ha riguardato la versione 6 del protocollo IP, compresi gli indirizzi IPv6 e le principali differenze con IPv4.
Sono stati affrontati i seguenti argomenti:
-
La correlazione tra numeri di porta e servizi
-
TCP (Transmission Control Protocol)
-
UDP (User Datagram Protocol)
-
ICMP (Internet Control Message Protocol)
-
L’indirizzo IPv6 e come può essere abbreviato
-
Tipi di indirizzi IPv6
-
Principali differenze tra IPv4 e IPv6
Risposte agli Esercizi Guidati
-
Quale porta è quella predefinita per il protocollo SMTP?
25.
-
Quante porte sono disponibili in un sistema?
65535.
-
Quale protocollo di trasporto assicura che tutti i pacchetti siano consegnati correttamente, verificando l’integrità e l’ordine dei pacchetti?
TCP.
-
Quale tipo di indirizzo IPv6 viene usato per inviare un pacchetto a tutte le interfacce che appartengono a un gruppo di host?
Multicast.
Risposte agli Esercizi Esplorativi
-
Cita 4 esempi di servizi che usano il protocollo TCP di default.
FTP, SMTP, HTTP, POP3, IMAP, SSH.
-
Qual è il nome del campo sul pacchetto di intestazione IPv6 che ha lo stesso scopo del TTL su IPv4?
Hop Limit.
-
Che tipo di informazioni è in grado di scoprire il Neighbor Discovery Protocol (NDP)?
NDP è in grado di ottenere varie informazioni dalla rete, compresi altri nodi, indirizzi duplicati, percorsi, server DNS, gateway e così via..