Come funzionano gli indirizzi IP?
Ogni dispositivo collegato a un computer di rete, un tablet, una videocamera e qualsiasi altra cosa ha bisogno di un identificativo univoco in modo che altri dispositivi sappiano come raggiungerlo. Nel mondo del networking TCP / IP, tale identificatore è l'indirizzo IP (Internet Protocol).
Se hai lavorato con i computer per un certo periodo di tempo, probabilmente sei stato esposto agli indirizzi IP, quelle sequenze numeriche che assomigliano a qualcosa di simile a 192.168.0.15. La maggior parte delle volte non abbiamo a che fare direttamente con loro, dal momento che i nostri dispositivi e le nostre reti si occupano di queste cose dietro le quinte. Quando abbiamo a che fare con loro, spesso seguiamo semplicemente le istruzioni su quali numeri mettere dove. Ma se hai mai voluto approfondire un po 'il significato di questi numeri, questo articolo è per te.
Perché dovrebbe interessarti? Bene, capire come funzionano gli indirizzi IP è di vitale importanza se si desidera risolvere il motivo per cui la rete non funziona correttamente o perché un particolare dispositivo non si connette come ci si aspetterebbe. E, se mai hai bisogno di creare qualcosa di un po 'più avanzato, come un server di gioco o un server multimediale a cui gli amici di Internet possono connettersi, devi sapere qualcosa sull'indirizzamento IP. Inoltre, è un po 'affascinante.
Nota: in questo articolo tratteremo i concetti di base dell'indirizzamento IP, il tipo di cose che le persone che usano gli indirizzi IP, ma che non hanno mai pensato molto su di loro, potrebbero voler sapere. Non copriremo alcune delle cose più avanzate o professionali, come le classi IP, l'instradamento senza classi e subnetting personalizzato ... ma punteremo ad alcune fonti per ulteriori letture mentre andiamo avanti.
Cos'è un indirizzo IP?
Un indirizzo IP identifica in modo univoco un dispositivo su una rete. Hai già visto questi indirizzi prima; assomigliano a 192.168.1.34.
Un indirizzo IP è sempre un insieme di quattro numeri come quello. Ogni numero può variare da 0 a 255. Quindi, l'intervallo di indirizzamento IP completo va da 0.0.0.0 a 255.255.255.255.
Il motivo per cui ogni numero può raggiungere solo fino a 255 è che ognuno dei numeri è in realtà un numero binario a otto cifre (a volte chiamato un ottetto). In un ottetto, il numero zero sarebbe 00000000, mentre il numero 255 sarebbe 11111111, il numero massimo che l'ottetto può raggiungere. Quell'indirizzo IP che abbiamo menzionato prima (192.168.1.34) in binario sarebbe simile a questo: 11000000.10101000.00000001.00100010.
I computer funzionano con il formato binario, ma noi umani troviamo molto più facile lavorare con il formato decimale. Tuttavia, sapere che gli indirizzi sono in realtà numeri binari ci aiuterà a capire perché alcune cose che circondano gli indirizzi IP funzionano come loro.
Non preoccuparti, però! In questo articolo non pubblicheremo molti binari o calcoli matematici, quindi tieni un po 'più tempo con noi.
Le due parti di un indirizzo IP
L'indirizzo IP di un dispositivo è in realtà costituito da due parti separate:
- ID di rete: L'ID di rete è una parte dell'indirizzo IP che parte da sinistra e identifica la rete specifica su cui si trova il dispositivo. In una tipica rete domestica, in cui un dispositivo ha l'indirizzo IP 192.168.1.34, la parte 192.168.1 dell'indirizzo sarà l'ID di rete. È abitudine compilare la parte finale mancante con uno zero, quindi potremmo dire che l'ID di rete del dispositivo è 192.168.1.0.
- ID host: L'ID host è la parte dell'indirizzo IP non occupato dall'ID di rete. Identifica un dispositivo specifico (nel mondo TCP / IP, chiamiamo dispositivi "host") su quella rete. Continuando con il nostro esempio dell'indirizzo IP 192.168.1.34, l'ID host sarebbe 34, l'ID univoco dell'host sulla rete 192.168.1.0.
Sulla tua rete domestica, quindi, potresti vedere diversi dispositivi con indirizzo IP come 192.168.1.1, 192.168.1.2, 192.168.1 30 e 192.168.1.34. Tutti questi sono dispositivi univoci (con ID host 1, 2, 30 e 34 in questo caso) sulla stessa rete (con l'ID di rete 192.168.1.0).
Per immaginare tutto questo un po 'meglio, passiamo ad un'analogia. È molto simile a come gli indirizzi stradali funzionano all'interno di una città. Prendi un indirizzo come 2013 Paradise Street. Il nome della via è come l'ID di rete e il numero civico è come l'ID host. All'interno di una città, non ci saranno due strade uguali, proprio come non saranno identificati due ID di rete sulla stessa rete. Su una determinata strada, ogni numero civico è unico, proprio come tutti gli ID host di un particolare ID di rete sono unici.
La maschera di sottorete
Quindi, in che modo il dispositivo determina quale parte dell'indirizzo IP è l'ID di rete e quale parte dell'ID host? Per questo, usano un secondo numero che vedrai sempre in associazione con un indirizzo IP. Quel numero è chiamato subnet mask.
Sulla maggior parte delle reti semplici (come quelle nelle case o nelle piccole imprese), vedrai maschere di sottorete come 255.255.255.0, in cui tutti e quattro i numeri sono 255 o 0. La posizione delle modifiche da 255 a 0 indica la divisione tra rete e ID host. I 255 "mascherano" l'ID di rete dall'equazione.
Nota: le maschere di sottorete di base che stiamo descrivendo qui sono note come maschere di sottorete predefinite. Le cose si complicano più di tanto su reti più grandi. Le persone usano spesso maschere di sottorete personalizzate (dove la posizione dell'interruzione tra zero e uno cambia all'interno di un ottetto) per creare più sottoreti sulla stessa rete. Questo è un po 'oltre lo scopo di questo articolo, ma se sei interessato, Cisco ha una buona guida per il subnetting.
L'indirizzo del gateway predefinito
Oltre all'indirizzo IP stesso e alla subnet mask associata, vedrai anche un indirizzo gateway predefinito elencato insieme alle informazioni di indirizzamento IP. A seconda della piattaforma che stai utilizzando, questo indirizzo potrebbe essere chiamato qualcosa di diverso. A volte viene chiamato "router", "indirizzo router", "percorso predefinito" o semplicemente "gateway". Sono la stessa cosa. È l'indirizzo IP predefinito a cui un dispositivo invia i dati di rete quando i dati sono destinati ad andare su una rete diversa (uno con un ID di rete diverso) rispetto a quello su cui è acceso il dispositivo.
L'esempio più semplice di questo si trova in una tipica rete domestica.
Se si dispone di una rete domestica con più dispositivi, è probabile che un router sia connesso a Internet tramite un modem. Quel router potrebbe essere un dispositivo separato o potrebbe far parte di un'unità combinata modem / router fornita dal tuo provider internet. Il router si trova tra i computer e i dispositivi sulla rete e più dispositivi pubblici su Internet, passando (o instradando) il traffico avanti e indietro.
Supponiamo che accendi il browser e vai su www.howtogeek.com. Il tuo computer invia una richiesta all'indirizzo IP del nostro sito. Poiché i nostri server sono su Internet anziché sulla rete domestica, tale traffico viene inviato dal PC al router (il gateway) e il router inoltra la richiesta al nostro server. Il server invia le informazioni corrette al tuo router, che quindi reindirizza le informazioni al dispositivo che lo ha richiesto, e vedi il nostro sito pop-up nel tuo browser.
In genere, i router sono configurati in modo predefinito per avere il loro indirizzo IP privato (il loro indirizzo sulla rete locale) come primo ID host. Quindi, ad esempio, su una rete domestica che utilizza 192.168.1.0 per un ID di rete, il router sarà in genere 192.168.1.1. Naturalmente, come la maggior parte delle cose, puoi configurarlo come qualcosa di diverso se vuoi.
Server DNS
C'è un'ultima informazione che vedrai assegnata accanto all'indirizzo IP, alla subnet mask e all'indirizzo del gateway predefinito: gli indirizzi di uno o due server DNS (Domain Name System) predefiniti. Noi umani lavoriamo molto meglio con i nomi che con gli indirizzi numerici. Digitare www.howtogeek.com nella barra degli indirizzi del browser è molto più semplice che ricordare e digitare l'indirizzo IP del nostro sito.
Il DNS funziona come una rubrica telefonica, cercando elementi leggibili come i nomi di siti web e convertendoli in indirizzi IP. DNS lo fa memorizzando tutte le informazioni su un sistema di server DNS collegati su Internet. I tuoi dispositivi devono conoscere gli indirizzi dei server DNS a cui inviare le loro domande.
In una tipica rete piccola o domestica, gli indirizzi IP del server DNS sono spesso gli stessi del gateway predefinito. I dispositivi inviano le loro query DNS al router, che quindi inoltra le richieste a qualsiasi server DNS configurato dal router. Per impostazione predefinita, si tratta in genere di qualsiasi server DNS fornito dal provider di servizi Internet, ma è possibile cambiarli per utilizzare server DNS diversi, se lo si desidera. A volte, potresti avere un successo migliore utilizzando server DNS forniti da terze parti, come Google o OpenDNS.
Qual è la differenza tra IPv4 e IPv6?
Potresti aver notato durante la navigazione tra le impostazioni un diverso tipo di indirizzo IP, chiamato indirizzo IPv6. I tipi di indirizzi IP di cui abbiamo parlato finora sono gli indirizzi utilizzati da IP versione 4 (IPv4), un protocollo sviluppato alla fine degli anni '70. Usano i 32 bit binari di cui abbiamo parlato (in quattro ottetti) per fornire un totale di 4,29 miliardi di possibili indirizzi unici. Anche se sembra molto, tutti gli indirizzi disponibili pubblicamente sono stati assegnati per molto tempo alle aziende. Molti di questi sono inutilizzati, ma sono assegnati e non disponibili per uso generale.
A metà degli anni '90, preoccupati per la potenziale carenza di indirizzi IP, Internet Engineering Task Force (IETF) ha progettato IPv6. IPv6 utilizza un indirizzo a 128 bit anziché l'indirizzo a 32 bit di IPv4, quindi il numero totale di indirizzi univoci è misurato in undecillions, un numero abbastanza grande che è improbabile che si esaurisca mai.
A differenza della notazione decimale puntata utilizzata in IPv4, gli indirizzi IPv6 sono espressi come otto gruppi numerici, divisi per due punti. Ogni gruppo ha quattro cifre esadecimali che rappresentano 16 cifre binarie (quindi, si riferisce a come un hextet). Un tipico indirizzo IPv6 potrebbe essere simile a questo:
2601: 7C1: 100: ef69: b5ed: ed57: dbc0: 2c1e
Il problema è che la carenza di indirizzi IPv4 che ha causato tutte le preoccupazioni è stata in gran parte mitigata dal maggiore uso di indirizzi IP privati dietro i router. Sempre più persone hanno creato le proprie reti private, utilizzando quegli indirizzi IP privati che non sono esposti pubblicamente.
Quindi, anche se IPv6 è ancora un giocatore importante e questa transizione avverrà ancora, non è mai avvenuta pienamente come previsto, almeno non ancora. Se sei interessato a saperne di più, dai un'occhiata a questa cronologia e tempistica di IPv6.
Come fa un dispositivo ad ottenere il suo indirizzo IP?
Ora che conosci le basi su come funzionano gli indirizzi IP, parliamo di come i dispositivi ottengono i loro indirizzi IP in primo luogo. Esistono davvero due tipi di assegnazioni IP: dinamiche e statiche.
Un indirizzo IP dinamico viene assegnato automaticamente quando un dispositivo si connette a una rete. La stragrande maggioranza delle reti oggi (compresa la rete domestica) utilizza qualcosa chiamato DHCP (Dynamic Host Configuration Protocol) per far sì che ciò accada. Il DHCP è integrato nel router. Quando un dispositivo si connette alla rete, invia un messaggio broadcast che richiede un indirizzo IP. DHCP intercetta questo messaggio e quindi assegna un indirizzo IP a quel dispositivo da un pool di indirizzi IP disponibili.
Ci sono determinati intervalli di indirizzi IP privati che i router useranno per questo scopo. Che viene utilizzato dipende da chi ha creato il router o da come lo hai impostato tu stesso. Tali intervalli IP privati includono:
- 10.0.0.0 - 10.255.255.255: Se sei un cliente Comcast / Xfinity, il router fornito dal tuo ISP assegna gli indirizzi in questo intervallo. Alcuni altri ISP usano questi indirizzi anche sui loro router, così come Apple sui loro router AirPort.
- 192.168.0.0 - 192.168.255.255: La maggior parte dei router commerciali sono configurati per assegnare indirizzi IP in questo intervallo. Ad esempio, la maggior parte dei router Linksys utilizza la rete 192.168.1.0, mentre D-Link e Netgear utilizzano entrambi la gamma 198.168.0.0
- 172.16.0.0 - 172.16.255.255: Questa gamma è utilizzata raramente da qualsiasi fornitore commerciale per impostazione predefinita.
- 169.254.0.0 - 169.254.255.255: Questo è un intervallo speciale utilizzato da un protocollo denominato Indirizzamento IP privato automatico. Se il tuo computer (o altro dispositivo) è impostato per recuperare automaticamente il suo indirizzo IP, ma non riesce a trovare un server DHCP, assegna a se stesso un indirizzo in questo intervallo. Se vedi uno di questi indirizzi, ti dice che il tuo dispositivo non è riuscito a raggiungere il server DHCP quando è arrivato il momento di ottenere un indirizzo IP, e potresti avere un problema di rete o problemi con il tuo router.
La cosa sugli indirizzi dinamici è che a volte possono cambiare. I server DHCP prendono in affitto gli indirizzi IP per i dispositivi e, quando tali lease sono attivi, i dispositivi devono rinnovare il lease. A volte, i dispositivi ottengono un indirizzo IP diverso dal pool di indirizzi che il server può assegnare.
Il più delle volte, questo non è un grosso problema, e tutto funzionerà "semplicemente". Occasionalmente, tuttavia, potresti voler assegnare a un dispositivo un indirizzo IP che non cambi. Ad esempio, forse hai un dispositivo a cui devi accedere manualmente e trovi più facile ricordare un indirizzo IP di un nome. O forse hai alcune app che possono connettersi solo ai dispositivi di rete usando il loro indirizzo IP.
In questi casi, è possibile assegnare un indirizzo IP statico a tali dispositivi. Ci sono un paio di modi per farlo. È possibile configurare manualmente il dispositivo con un indirizzo IP statico, anche se a volte può essere janky. L'altra soluzione più elegante è configurare il router in modo che assegni gli indirizzi IP statici a determinati dispositivi durante la normale assegnazione dinamica da parte del server DHCP. In questo modo, l'indirizzo IP non cambia mai, ma non si interrompe il processo DHCP che mantiene tutto perfettamente funzionante.