12375 Letture
Port forwarding, cos'è e qual è la differenza con il port triggering

Port forwarding, cos'è e qual è la differenza con il port triggering

Cosa sono e quando usare port forwarding e port triggering: come aprire porte in ingresso sul router e inoltrare i pacchetti dati verso i dispositivi collegati in rete locale.

Sui protocolli TCP/IP basa il suo funzionamento l'intera rete Internet: in particolare il protocollo IP si occupa di gestire l'indirizzamento dei nodi e l'instradamento dei pacchetti dati. A ciascun nodo collegato alla rete Internet viene assegnato un indirizzo IP univoco che lo rende raggiungibile da qualunque altro dispositivo connesso.
Così, tipicamente, a meno di configurazioni che prevedano l'utilizzo della tecnica NAT (Network address translation; ne abbiamo parlato ad esempio nell'articolo Aprire porte sul router e chiuderle quando non più necessario) da parte del singolo fornitore di accesso a Internet, il singolo modem router o addirittura il dispositivo mobile risultano assegnatari di un indirizzo IP pubblico dinamico (di solito cambia a ogni nuova connessione) oppure statico (non cambia a ogni collegamento) nei formati IPv4 oppure IPv6.

La comunicazione tra due dispositivi collegati alla rete Internet è cosa molto semplice perché è lo stesso protocollo IP, noto l'indirizzo pubblico del destinatario, a occuparsi della selezione del percorso migliore per veicolare i dati (instradamento).


Come abbiamo visto nell'articolo Router, le operazioni da fare per renderlo sicuro, le varie comunicazioni possono avvenire sulle porte TCP e UDP: 65.535 per protocollo per un totale complessivo di oltre 131.000 porte potenzialmente utilizzabili.
Alcune porte sono convenzionalmente utilizzate per erogare certi tipi di servizi ma non è strettamente obbligatorio usare sempre le stesse porte: si possono tranquillamente porre componenti software dotati di funzionalità server in ascolto su porte diverse rispetto a quelle di default. Ad esempio, un server web solitamente si pone in ascolto sulla porta 80 (TCP) se utilizza il protocollo HTTP, sulla porta 443 (TCP) se usa HTTPS (i dati trasferiti vengono crittografati per garantirne la sicurezza) ma nulla vieta di usare altri numeri di porte.

C'è un'importante differenza tra i protocolli TCP e UDP: il primo è detto connection oriented, il secondo connection-less. Ciò significa che TCP traccia l'intero flusso di pacchetti dati trasmessi accertandosi, mediante la gestione di appositi pacchetti ACK (acknowledgment), che essi siano interamente ed integralmente ricevuti dal destinatario. Mentre il protocollo TCP viene considerata la soluzione più affidabile per il trasferimento dei dati, UDP viene sfruttato per le applicazioni in cui la perdita di qualche pacchetto o datagramma non è importante (si pensi allo streaming audio/video, al gaming online e così via) mentre invece è bene privilegiare le prestazioni.

Per impostazione predefinita i firewall, disponibili anche a livello di modem router, bloccano tutti i tentativi di connessione dalla rete Internet (WAN) verso le porte TCP/UDP in ingresso: vedere Cos'è il firewall e come funziona quello di Windows e Firewall di Windows, come configurarlo e migliorarne il comportamento.

Port forwarding e port triggering: cosa sono

L'indirizzo IP pubblico col quale ci si presenta sulla rete Internet è "universalmente raggiungibile". Purtuttavia, un router ben configurato non soltanto blocca tutti i tentativi di connessione verso tale IP ma evita di fornire pacchetti di risposta alle eventuali richieste ICMP ricevute (comandi ping e traceroute ad esempio; vedere Ping cos'è, come funziona e a cosa serve).

Il port forwarding o port mapping è l'operazione che permette di inoltrare i pacchetti ricevuti su una certa porta in ingresso di un certo nodo verso un'altra porta di un altro nodo.
La tecnica viene utilizzata in quegli scenari in cui risulta necessario accedere a un servizio fornito da un sistema collegato a valle del router da un dispositivo remoto, collegato a Internet su una rete diversa dalla LAN.

Accedendo al pannello di configurazione del router (di solito digitando http://192.168.1.1 oppure http://192.168.0.1 nella barra degli indirizzi del browser) si può cercare la sezione port forwarding o Inoltro delle porte per configurare l'inoltro del traffico in arrivo su una porta specifica o su un insieme di esse.

Port forwarding, cos'è e qual è la differenza con il port triggering

Nell'esempio il traffico in arrivo sulla porta UDP 1194 viene inoltrato sulla stessa porta del sistema locale con IP privato 192.168.1.250.


Port forwarding, cos'è e qual è la differenza con il port triggering

Sul sistema locale 192.168.1.250 è installato ed è posto in ascolto un server OpenVPN. Qual è la ratio? Permettere la connessione sicura di dispositivi remoti alla rete locale usando proprio il protocollo e un server OpenVPN.
L'indirizzo IP 192.168.1.250 è stato associato al dispositivo locale in maniera statica in modo che non cambia nel tempo (consigliamo di scegliere gli indirizzi IP sui quali si installano componenti server fuori dall'intervallo degli indirizzi privati assegnati dinamicamente dal router via DHCP; fare riferimento alla sezione Impostazione LAN, DHCP o similare).

Port forwarding, cos'è e qual è la differenza con il port triggering

Il port triggering è una forma dinamica del modello sul quale si basa la tecnica del port forwarding. Questo approccio viene solitamente utilizzato quando vi fosse la necessità di attivare l'inoltro delle porte per raggiungere più sistemi.
Con il port triggering non è obbligatorio conoscere l'indirizzo IP del destinatario in quanto è possibile effettuare l'inoltro dei pacchetti dati su tutta la LAN o su un intervallo di indirizzi IP.


Con il port triggering abilitato (viene detto Attivazione delle porte in italiano) il router monitora il traffico all'interno della rete locale: quando rileva del traffico su una specifica porta in uscita, esso provvede a controllare l'indirizzo IP privato del dispositivo che ha generato la richiesta. A questo punto, su indicazione dell'amministratore, il router provvede ad aprire una porta in ingresso prima di inoltrare il traffico alla destinazione richiesta.


Port forwarding, cos'è e qual è la differenza con il port triggering

Il port forwarding si utilizza quando l'indirizzo IP privato del sistema sul quale è installato il software dotato di funzionalità server resta sempre lo stesso (come abbiamo visto in precedenza) mentre il port triggering quando l'IP privato può cambiare.

Nel caso del port forwarding, inoltre, le porte indicate rimangono sempre aperte mentre con il port triggering vengono dinamicamente aperte solo su esplicita richiesta.

Per verificare l'apertura di una porta specifica si può usare l'URL https://www.speedguide.net/portscan.php?tcp=1&udp=1&port=1194 sostituendo nell'indirizzo, ovviamente, il numero di porta da controllare (specificando solo tcp=1 o udp=1 verrà verificata solo la porta TCP o UDP). Suggeriamo comunque di seguire le indicazioni illustrate nell'articolo Router, le operazioni da fare per renderlo sicuro.

Il nostro suggerimento, comunque, è evitare per quanto possibile l'utilizzo massimo di regole per l'inoltro dei pacchetti dati. Molto meglio impostare un server VPN sicuro in locale ed esporre sulla rete Internet solo la porta per la connessione a tale sistema.

Port forwarding, cos'è e qual è la differenza con il port triggering