Q: Ogni dispositivo ha un indirizzo IP unico?
Ci sono due schemi di indirizzamento IP in uso comune oggi. IPv4 e IPv6.
In breve, gli indirizzi IPv4 sono lunghi 32 bit, e solitamente scritti (per gli umani) come 3.85.158.174, con quattro numeri decimali tra 0 e 255 separati da punti.
Gli indirizzi IPv6 sono lunghi 128 bit, e solitamente scritti (per gli esseri umani) come 2002:4559:1FE2:0:0:0:4559:1FE2 o compressi (senza gli zeri) come 2002:4559:1FE2::4559:1FE2.
Poiché gli indirizzi IPv4 sono quelli a cui la maggior parte delle persone è abituata, questa risposta si concentrerà solo su IPv4 e ignorerà IPv6.
Q: Smettila di girarci intorno! Dimmi solo se ogni dispositivo ha un indirizzo IP unico?
La risposta breve? No. Se lo facessero, avremmo già esaurito da tempo gli indirizzi IPv4, in parte perché nei primi giorni di Internet, enormi blocchi di indirizzi IPv4 unici sono stati dati volenti o nolenti ad aziende che non hanno alcun bisogno di quel numero, ad esempio Prudential, Ford, PSINet, ecc. e in parte perché oggi abbiamo molti più dispositivi su Internet di quanto si potesse prevedere nei primi anni '80.
Fortunatamente, tre intervalli di indirizzi IPv4 sono stati riservati come "non indirizzabili". Questo significa che quegli indirizzi IP non possono essere su internet pubblico, ma possono essere usati su una rete interna dietro un router che fornisce il NAT (network address translation). E grazie a questi tre intervalli non indirizzabili, siamo stati in grado di continuare ad usare IPv4 nella maggior parte dei posti.
Molti computer della gente usano IP in questi intervalli non indirizzabili, per esempio 192.168.1.50. Se hai controllato quello che il tuo computer ti dice essere il suo indirizzo IP in questo momento, probabilmente stai usando uno di questi range non indirizzabili.
Q: Ma, come funziona? Qualcuno mi ha detto che i computer hanno tutti bisogno di un indirizzo unico. Come fanno le pagine web ad arrivare al computer giusto se il mio computer ha lo stesso indirizzo IP di tante altre persone? Una casa o un'azienda - diciamo Quora per esempio - ha i suoi dipendenti su una rete interna. Tutti questi dipendenti usano indirizzi IP in uno degli intervalli non indirizzabili (per esempio 192.168.x.x o 10.x.x.x). Il router di Quora tiene traccia di tutte le persone sulla rete locale (LAN) con indirizzi non indirizzabili. All'esterno del router di Quora, ha un unico indirizzo IP instradabile esposto a Internet.
Quando uno dei dipendenti di Quora digita "google.com" nel suo browser, il browser avvia una richiesta che alla fine viene instradata al server Google più vicino. La richiesta parte dal computer del dipendente di Quora, attraverso uno o più switch (di proprietà di Quora) fino al router NAT di Quora. Il router sposta la richiesta dal suo lato privato interno al lato pubblico esterno, e segna la richiesta come proveniente dal suo indirizzo IP pubblico. La richiesta viene quindi instradata attraverso una serie di router sull'internet pubblica prima di arrivare al server Google più vicino.
Il server Google invia la pagina web richiesta al router NAT di Quora, forse attraverso una serie di router internet simili a quelli attraverso cui è arrivata la richiesta. Raggiunge il router NAT di Quora, che poi consulta una tabella di ricerca interna e invia la pagina web al computer del dipendente che l'ha richiesta.
Quindi, anche se quel dipendente di Quora ha un indirizzo IP identico a quello del computer su cui state leggendo questo, poiché entrambe le interfacce esterne dei vostri router LAN hanno un IP unico, le vostre richieste non saranno confuse con le loro richieste.
Q: È stupido. Sembra un sacco di lavoro extra! Perché non diamo semplicemente ad ogni computer un IP unico e non dobbiamo fare tutta questa roba extra con il NAT?
Beh, il NAT è un po' di protezione contro gli attaccanti, quindi aiuta a mantenere quelli sulle LAN un po' più sicuri.
Ma se vuoi che tutti abbiano un IP unico, puoi scegliere di passare all'IPv6. Ci sono più indirizzi IP IPv6 disponibili che particelle nell'universo. Quindi, questa volta, dovrebbe essere sufficiente un pool di indirizzi disponibili.