Cos'è un indirizzo IP?
Un indirizzo IP è un numero che identifica un dispositivo in una rete, in modo che gli altri dispositivi possano inviargli dati. Funziona come un indirizzo postale: i router leggono l'indirizzo di destinazione di ogni pacchetto e lo inoltrano passo dopo passo fino all'arrivo. Oggi sono in uso due versioni: IPv4 (ad esempio 192.0.2.10) e IPv6 (ad esempio 2001:db8::10).
Formati IPv4 e IPv6
Un indirizzo IPv4 è composto da 32 bit. Si scrive con quattro numeri decimali da 0 a 255 separati da punti, ad esempio 203.0.113.25. Ogni numero è un byte, detto ottetto. Gli indirizzi IPv4 possibili sono 232, cioè circa 4,3 miliardi. Sono meno dei dispositivi presenti al mondo, ed è per questo che è diventato necessario condividere gli indirizzi.
Un indirizzo IPv6 è composto da 128 bit. Si scrive con otto gruppi di quattro cifre esadecimali separati da due punti: 2001:0db8:0000:0000:0000:0000:0000:0010. Due regole permettono di abbreviarlo:
- Gli zeri iniziali di un gruppo si possono omettere:
0db8diventadb8. - Una sola sequenza di gruppi composti solo da zeri può essere sostituita da
::, ma una volta sola per indirizzo.
L'indirizzo qui sopra si scrive quindi normalmente 2001:db8::10. IPv6 offre 2128 indirizzi, abbastanza da assegnare un blocco molto ampio a ogni rete.
Indirizzi pubblici e privati
Un indirizzo pubblico è univoco su internet e può essere raggiunto da qualsiasi luogo (se nessun firewall lo blocca). Un indirizzo privato è valido solo all'interno di una rete locale. Molte reti domestiche e aziendali riutilizzano contemporaneamente gli stessi intervalli privati, perché questi indirizzi non vengono mai instradati sulla rete pubblica.
La RFC 1918 definisce tre intervalli IPv4 privati:
| Intervallo | CIDR | Indirizzi |
|---|---|---|
| 10.0.0.0 – 10.255.255.255 | 10.0.0.0/8 | 16,777,216 |
| 172.16.0.0 – 172.31.255.255 | 172.16.0.0/12 | 1,048,576 |
| 192.168.0.0 – 192.168.255.255 | 192.168.0.0/16 | 65,536 |
Altri intervalli IPv4 speciali che incontrerai:
- Loopback, 127.0.0.0/8: il dispositivo comunica con se stesso.
127.0.0.1è detto localhost. In IPv6 l'indirizzo di loopback è::1. - Link-local, 169.254.0.0/16: un dispositivo si assegna questo indirizzo quando richiede un indirizzo via DHCP e non riceve risposta. Se vedi
169.254.x.x, probabilmente il DHCP non funziona. IPv6 usafe80::/10per gli indirizzi link-local, e ogni interfaccia IPv6 ne ha uno. - NAT di livello carrier (CGNAT), 100.64.0.0/10: un intervallo condiviso (RFC 6598) che i provider usano tra i propri clienti e i propri apparati NAT. Se l'indirizzo WAN del tuo router rientra in questo intervallo, non hai un vero indirizzo IPv4 pubblico.
- Intervalli per la documentazione:
192.0.2.0/24,198.51.100.0/24e203.0.113.0/24(e2001:db8::/32per IPv6) sono riservati agli esempi, come quelli di questo articolo.
In IPv6, gli indirizzi unique local in fc00::/7 (in pratica fd00::/8) sono l'equivalente degli intervalli IPv4 privati. Gli indirizzi unicast globali attualmente iniziano con 2000::/3.
Come il NAT condivide un indirizzo pubblico
Il Network Address Translation (NAT) permette a molti dispositivi privati di usare un solo indirizzo IPv4 pubblico. Quando il tuo portatile a 192.168.1.20 apre un sito web, il router sostituisce l'indirizzo di origine con il proprio indirizzo pubblico e registra la connessione in una tabella, usando i numeri di porta per distinguere le connessioni. Quando arriva la risposta, il router la traduce di nuovo e la consegna al portatile.
Il NAT ha un effetto collaterale: gli host esterni non possono avviare una connessione verso un dispositivo che si trova dietro di esso, a meno che tu non configuri il port forwarding. Non è una vera funzione di sicurezza, ma significa che un servizio ospitato in casa non è raggiungibile per impostazione predefinita. Con il CGNAT il provider esegue un secondo NAT, quindi il port forwarding sul tuo router non serve a nulla.
Indirizzi statici e dinamici
Un indirizzo dinamico viene assegnato automaticamente, di solito via DHCP, e può cambiare nel tempo. La maggior parte delle connessioni domestiche e dei dispositivi di una rete locale usa indirizzi dinamici. Un indirizzo statico viene impostato a mano o riservato a un dispositivo, quindi non cambia mai. Server, stampanti e apparati di rete richiedono normalmente indirizzi statici, perché altri sistemi dipendono dal fatto di trovarli sempre nello stesso punto.
Come trovare il tuo indirizzo IP
Gli indirizzi da conoscere sono due: l'indirizzo privato del dispositivo e l'indirizzo pubblico visto dai siti web. Quello pubblico è mostrato dal nostro strumento Il mio IP, che indica anche se ti connetti tramite IPv4 o IPv6.
Per vedere l'indirizzo privato del tuo dispositivo:
- Windows: esegui
ipconfignel Prompt dei comandi. - macOS: esegui
ipconfig getifaddr en0nel Terminale (il Wi-Fi di solito èen0). - Linux: esegui
ip addr.
Se l'indirizzo mostrato nella pagina di stato del router è diverso da quello indicato da uno strumento online, il router è dietro un NAT o un CGNAT, oppure stai usando una VPN o un proxy.
Nozioni sulla diffusione di IPv6
IPv6 è stato progettato per sostituire IPv4 perché lo spazio di indirizzamento precedente è esaurito. In pratica i due protocolli convivono, e questo si chiama dual stack. Molte grandi reti, operatori mobili e fornitori di contenuti supportano IPv6, ma molti siti più piccoli e reti aziendali usano ancora solo IPv4, quindi non si può dare per scontato che IPv6 funzioni ovunque.
Alcuni punti pratici:
- IPv6 di solito non richiede il NAT, perché ogni dispositivo può avere un indirizzo globale. Per questo il firewall è importante.
- Una tipica rete domestica riceve un blocco
/56o/64, e ogni rete locale usa un/64. Per i dettagli consulta la nostra guida al subnetting. - Un dominio pubblica il proprio indirizzo IPv6 in un record AAAA, come spiegato in come funziona il DNS.
Passi successivi
Se vuoi dividere una rete in parti più piccole o verificare quanti host contiene un intervallo, usa il calcolatore di subnet. Per capire cosa significano i numeri dopo la barra, leggi l'articolo su subnet mask e CIDR.