P pubblico, IP privato, port forwarding… ma cosa sarà mai questa robaccia di cui si sente parlare soprattutto quando, in casa, si possiede un router? E perchè, sempre quando si ha un router, non è possibile senza ricorrere a configurazioni speciali eseguire determinati programmi (come applicazioni di file-sharing, streaming servers, shoutcast servers e quant’altro)? Vorrei cercare di spiegarvi i concetti di base per rispondere a domande del genere e, perchè no, aiutarvi a capirci qualcosa in questa giungla di termini apparentemente incomprensibili. Siete pronti a buttarvi con me in questa piccola ma simpatica avventura? Bene, procediamo.
Indirizzo IP – Cosa è
Anni ed anni fa, ma davvero tanti anni fa, un po’ di teste dai cervelli eptadecagonali collaborarono tra loro, dando i natali a quello che è il protocollo TCP/IP: senza dilungarmi in storie e storielle varie, vi dico che la parte TCP (Transfer Control Protocol) si occupa di come i dati vengono trasferiti attraverso la rete, e che la parte IP (Interne Protocol) si occupa di come i vari punti della rete vengono identificati tra loro. Nella fattispecie, l’indirizzo IP è una sequenza di caratteri che identifica univocamente, in relazione alla rete entro cui è analizzato, un qualsiasi tipo di macchina collegata alla rete stessa. In parole povere, diciamo che l’indirizzo IP è l’“indirizzo di residenza, con tanto di civico, del nostro computer/telefono/fotocamera/stampante o chicchessia collegato ad una rete. Al momento esistono due tipologie di indirizzi IP: l’indirizzo IPv4, e l’iindirizzo IPv6. Il primo è formato da quattro terzine di numeri (8 bit a terzina, per un totale di 32 bit), separate da un punto, del tipo 145.21.0.79; il valore numerico di ogni terzina è compreso tra 1 e 255, ossia 245.21.98.114 è un indirizzo IP valido, mentre 187.321.0.4 non lo è; l’indirizzo IPv6, invece, è composto da otto quartine di cifre esagesimali – quindi miste tra numeri da 0 a 9 e lettere da “a” ad “f”, separate da un “:”, per un totale di 128 bit, del tipo 2001:03b8:0000:0400:d4a0:0000:0fc3:7721. Fatta questa differenza, sappiate che nel corso di questo post – se non specificherò diversamente – intenderò come indirizzo IP l’indirizzo in formato IPv4.
La distribuzione degli indirizzi IP
La “distribuzione” degli indirizzi IP è gestita dall’ente IANA (Internet Assigned Numbers Authority), e funziona pressappoco in questa maniera: un blocco di indirizzi IP viene “assegnato” ad uno specifico ente, che può decidere se utilizzarlo “direttamente” o “subaffittarlo” ad un secondo ente, e così via fino all’esaurimento. Detta così può sembrare uno scioglilingua, ma voglio farvi un piccolo esempio – totalmente inventato – che vi chiarirà le idee: la nazione Italia fa richiesta allo IANA per un blocco di IP, e lo IANA assegna all’Italia il blocco di indirizzi IP richiesto. In Italia, però, hanno intenzione di aprire battenti due Internet Service Providers: Telecom Italia Net e Wind Italia. Entrambi i provider fanno richiesta alle autorità della nazione Italia per una parte degli indirizzi IP che la nazione ha fittato dallo IANA: previo pagamento di una somma affittuaria, l’Italia assegna a TIN e a Wind gli indirizzi IP richiesti. A questo punto, io Jessica decido di sottoscrivere un abbonamento dati a TIN, che deve assicurarmi in tutti i casi un indirizzo IP: TIN accetta la mia richiesta e, previa la ricezione di un pagamento mensile, mi permette di collegarmi alla rete assegnandomi un indirizzo IP.
Indirizzo IP “pubblico” vs indirizzo IP “privato”
Capito cosa è un indirizzo IP e capite le modalità di distribuzione, andiamo ora a differenziare gli indirizzi IP pubblici dagli indirizzi IP privati: l’indirizzo IP pubblico è quello che il nostro fornitore di servizi (che sia ADSL, fibra o telefonia mobile) assegna a qualsiasi macchina ogni qual volta questa esegue accesso diretto alla rete Internet; ad esempio, il mio cellulare sarà collegato alla rete Vodafone 3G con indirizzo 24.142.3.41 e, attenzione, tale indirizzo IP è univoco, ovvero all’interno della rete Internet contraddistingue solo e soltanto il mio cellulare.
Storia diversa per l’indirizzo IP privato, che viene assegnato dal router – ad esempio – all’interno di una rete privata. Prendiamo l’esempio di una wireless casalinga: a casa mia c’è un router wireless sul quale ho messo su la mia ReteDiCasa, al quale sono collegati due computer – rispettivamente con indirizzi IP 192.168.0.3 e 192.168.0.4: ebbene, questi due indirizzi IP sono gli IP privati dei miei computer all’interno della mia ReteDiCasa, univoci soltanto all’interno della mia rete (anche la vostra ReteDiCasa2 potrebbe avere due macchine con IP 192.168.0.3 e 192.168.0.4).
IP Statico VS IP Dinamico
Bene, la differenza è semplicissima: una macchina configurata con IP statico (pubblico o privato che sia) è una macchina che, anche se si scollega e si collega successivamente alla rete (che sia rete privata oppure Internet), ottiene sempre lo stesso indirizzo IP; al contrario, una macchina configurata con IP dinamico ottiene ad ogni connessione alla rete un IP diverso. Tranne in specifici contratti aziendali, solitamente gli abbonamenti che sottoscriviamo con i nostri fornitori di servizi per Internet prevedono l’assegnazione di un IP pubblico dinamico.
Modem
Ve li ricordate i modem 56k, quelli che facevano un casino bestiale per connettersi a Internet? Oppure i primi modem ADSL USB? Ebbene, attraverso quegli aggeggini era (ed è tutt’ora) possibile avere un accesso diretto alla rete Internet: in pratica, collegando la macchina ad un modem ed un modem alla rete ed avviato il leasing (la procedura di assegnazione dell’indirizzo IP), la macchina dispone di un indirizzo IP pubblico attraverso il quale navigare in Internet e/o utilizzare programminetwork-based.
La fine degli indirizzi IP
Mi auguro per voi non ci abbiate mai avuto a che fare, ma se conoscete anche un minimo di calcolo probabilistico saprete che, con 32 bit (la lunghezza di un IP privato), è possibile ottenere “soltanto” 2³² combinazioni numeriche diverse; sapete ciò cosa significa? Che, una volta raggiunta quella cifra, non sarà possibile più assegnare indirizzi IP e la rete è satura. Questo era già noto in tempi non sospetti ed è stato uno dei motivi per i quali gli ISP hanno optato per offrire, nella maggior parte dei casi, IP dinamici ai propri utenti. Bene, a Giugno dell’anno scorso lo IANA ha ufficialmente terminato le classi di indirizzi IPv4 a disposizione: fortunatamente, nei casi limite, è possibile utilizzare anche IPv6 per accedere alla rete.
Tempo fa, i fornitori di servizi disponevano di speciali abbonamenti per chi avesse avuto bisogno di più collegamenti ad Internet all’interno della stessa sede: venivano offerti, infatti, più modem ed assegnati a ciascun utente tanti indirizzi pubblici quanti ne prevedeva lo speciale abbonamento. Non era permesso, da contratto, utilizzare un solo indirizzo IP pubblico e “spaccarlo” tra i vari computer della sede.
In vista della fine degli indirizzi IP, però, gli ISP hanno cambiato approccio, eliminando i modems ed introducendo all’interno dei loro contratti un simpatico sconosciuto di nome router: gioia et giubilo, con un solo abbonamento posso collegare ad Internet quante macchine mi pare. Ma aspetta: eMule non funziona. Shoutcast non funziona. Non posso fare da gameserver. FTP non funziona. Cavolo, che succede?
I Router e il NAT (Network Address translation)
Il mio discorso sugli indirizzi IP pubblici e privati non è stato un caso: il router serve proprio a questo! Infatti, all’interno delle vostre reti casalinghe, come la maggior parte di voi avrà capito è soltanto il router a comunicare con Internet attraverso un modem (che a volte si vede, a volte no, per storie che non sto qui a specificarvi), e a disporre di un indirizzo IP pubblico! Per quanto riguarda voi ed i vostri computers (o cellulari, o smartcamera, o chicchessia) collegati “alla rete”… bene, il vostro collegamento fisico è verso il router: voi comunicate con Internet attraverso il router, ed Internet comunica con voi… sempre attraverso il router. La rete Internet riconosce voi attraverso l’ip pubblico del router, ed il vostro router riconosce i vari computer attraverso i loro indirizzi IP privati.
Il router, quindi, ha due indirizzi IP: quello pubblico, che gli permette di comunicare con l’esterno, e quello privato, che gli permette di comunicare con i computer collegati alla rete. In parole spicciole, il router fa da “ponte” tra i vari PC e la rete Internet, effettuando quella che si chiama NAT (network address translation).
Ma… Quando arriva un pacchetto da Internet, come fa il router a capire a quale macchina della rete indirizzarlo? Bene, a questo ci pensano le porte: le porte di comunicazione (numerate da 1 a 65335) permettono di distinguere univocamente un PC all’interno della rete, permettendo contemporaneamente al router di sapere a chi deve andare che cosa. Vi faccio un esempio:
- l’iPhone collegato alla rete apre il browser sulla pagina www.google.it;
- l’iPhone comunica la volontà di ricevere i pacchetti della pagina di Google sulla porta 2310, e manda un pacchetto al router che contiene come destinatario il router stesso (192.168.1.1) e come mittente il suo IP più la porta (192.168.1.5:2310); l’iPhone, quindi, manda un pacchetto del tipo MITT > 192.168.1.5:2310, DEST > 192.168.1.1:80
- il router riceve il pacchetto, e memorizza in una tabella che alla porta 2310 corrisponde una richiesta di 192.168.1.5;
- il router “traduce l’indirizzo” con la tabella e manda la richiesta a Google sulla rete Internet, specificando come mittente il suo indirizzo IP + la porta del PC da cui è arrivata la richiesta, e come destinatario il sever www.google.it sulla porta 80 (quella su cui, di solito, attendono richieste i webserver); il pacchetto spedito dal router sarà quindi fatto così: MITT > 91.3.5.92:2310, DEST www.google.it:80;
- a questo punto Google risponde con le informazioni richieste, i cui mittenti e destinatari saranno fatti in questo modo: MITT > www.google.it:80, DEST > 91.3.5.92:2310;
- le informazioni arrivano al router, che riconosce la porta 2310 all’interno della tabella precedente e sa che deve rispedire l’informazione all’iPhone; il router, quindi, “traduce” (ecco perchè NAT) l’indirizzo ricevuto da Google nell’indirizzo originario dell’iPhone, creando un pacchetto del tipo MITT > 192.168.1.1:80, DEST > 192.168.1.5:2310
Ecco come, più o meno, avviene la comunicazione in una rete attraverso il NAT! Conclusione? Tutte le macchine sono collegate ad internet utilizzando un solo IP pubblico, ed è il router che smista le varie informazioni tra le macchine!
Il Port Forwarding
Ok, abbiamo parlato di cosa succede quando un PC collegato alla rete attraverso il router “si aspetta” di ricevere qualcosa su una determinata porta ed “avvisa” in qualche modo il router… ma cosa succede quando non se lo aspetta? Cosa succede quando vogliamo eseguire un programma come server (ad esempio un server Shoutcast) ma non lo comunichiamo al router? In pratica quando non siamo noi a chiedere, ma aspettiamo che qualcuno chieda a noi? Bene, succede che quando qualcuno tenterà di collegarsi al nostro server dall’esterno… il router non saprà come muoversi e a chi indirizzare i pacchetti in entrata, ed il programma… semplicemente non funzionerà! Ecco perchè si ricorre al cosiddetto “port forwarding” (o, in casi più avanzati, al “port triggering”).
In cosa consiste il port forwarding? Bene, tutto sta nel configurare il router affinchè associ una precisa porta ad un preciso indirizzo IP privato, ed invii tutti i pacchetti in entrata su quella porta all’indirizzo IP specificato.
Esempio: sul mio server (con indirizzo IP privato 192.168.1.2) ho in esecuzione un server Shoutcast sulla porta 54123, ed attendo che qualcuno dall’esterno vi si colleghi utilizzando l’indirizzo IP pubblico del mio router e la porta 54123; chiamo un mio amico, e gli dico «Amico, vuoi ascoltare ciò che ascolto? Apri il programma e inserisci come IP 91.3.5.92 e come porta 54123.»
Il mio (che ha indirizzo 234.21.1.2) amico apre il programma, inserisce i parametri, e dà INVIO: al mio router arriverà, direttamente dal mio amico, un pacchetto del tipo MITT > 234.21.1.2, DEST > 91.3.5.92:54123; il mio router a questo punto andrà a controllare la sua tabella, e cercherà l’indirizzo IP associato alla porta 54123… non troverà nulla, rifiuterà il pacchetto e… il mio amico non potrà ascoltare niente!
Fortunatamente, però, ad oggi tutti i router permettono di impostare il port forwarding: per far si che il mio server diventi funzionante, io cosa dovrò fare?
- apro la pagina di configurazione del mio router;
- faccio click su “port forwarding”;
- inserisco l’indirizzo IP della macchina che ha in esecuzione il server Shoutcast (192.168.1.2) e la porta su cui tale server ascolta (54123); in questo modo, il router memorizzerà nella sua tabella che quando dall’esterno arrivano pacchetti diretti alla porta 54123 questi dovranno essere smistati automaticamente al server.
- autorizzo l’entrata di pacchetti TCP e UDP;
- salvo la configurazione e riavvio il router.
Fatto, dopo il port forwarding il mio amico sarà in grado di collegarsi a me!
Fastweb: lo strano caso di una rete “locale” enorme
E io lo so che voi fastwebnettini ve lo state chiedendo, si che lo so: perchè io che ho Fastweb devo usare AdunanzA, e se voglio fare da server mi tocca comprare una sessione di IP pubblico? Bene, la risposta è semplice: perchè Fastweb è un’enorme rete “locale”! Si, avete capito bene: i furbetti di Fastweb hanno comprato relativamente pochi indirizzi IP pubblici e statici, e costruiscono delle gigantesche reti basandosi su quei “pochi” indirizzi IP! Non ricordo esattamente quanti megarouter Fastweb siano sparsi sul territorio nazionale, fatto sta che nel momento in cui sottoscrivete un abbonamento di base con il gestore, entrate potreste entrare a far parte di una gigantesca rete LAN in cui voi siete un punto di arrivo, sietepotreste essere un computer con ip “privato” poggiato su uno dei routers di Fastweb (col quale comunicate tramite l’hag che vi installano a muro), e non avete possibilità alcuna di utilizzare dovrete impostare manualmente il port forwarding sul router al quale fate capo, anzi, neppure potete accedervi al router.
Infatti, fateci caso, quello che vi arriva con Fastweb non sempre è un router, ma un semplice access point/modem.
Ecco perchè tutti gli molti utenti Fastweb, per poter fare da server, devono (o almeno dovrebbero) acquistare IP pubblici ad ore, che gli vengono provvisoriamente assegnati tramite particolari procedure di reindirizzamento. [edit] Stando a quanto dichiarato da alcuni lettori nei commenti, le clausole contrattuali di Fastweb sono state modificate ed è ora possibile disporre di IP pubblici gratuitamente, e/o di impostare il port forwarding sulle proprie macchine.
Dubbi o problemi? Vi aiutiamo noi
Puoi scoprire contenuti esclusivi ed ottenere supporto seguendo i canali Youtube, TikTok o Instagram del nostro fondatore Gaetano Abatemarco. Se hai Telegram vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.