Nel web russo c'è ancora sorprendentemente poco materiale su una tecnologia così antica e semplice, ma utile, sicura e particolarmente pertinente con lo sviluppo dell'Internet delle Cose, come il VPN mobile (rete privata virtuale). In questo articolo descriverò come e perché si può configurare l'accesso alla propria rete privata per qualsiasi dispositivo con una SIM senza la necessità di installare software specifico.

Compiti e limitazioni
Per prima cosa risponderò alla domanda «perché?». La tecnologia VPN è utilizzata per affrontare le più diverse sfide di rete, unite da un elemento comune: la trasmissione di dati isolata tra due dispositivi attraverso un gran numero di nodi intermedi. Da questo si costruiscono già soluzioni più complesse e si affrontano quelle stesse varie problematiche. Nel caso più comune, per configurare una VPN si utilizza la rete di un operatore di telecomunicazioni (per chi desidera approfondire ci sono ) o una miriade di diversi protocolli di rete (GRE, IPSec, L2TP e altri - lo stesso autore ) e dei prodotti software correlati (Cisco AnyConnect, OpenVPN, TOR — lo sapete anche voi), ma il loro utilizzo su un dispositivo finale specifico solleva immediatamente una serie di requisiti, il cui mancato rispetto porta a determinate limitazioni.
La prima seria limitazione è che il dispositivo deve essere in grado di lavorare, a livello hardware e software, con almeno uno di questi protocolli. Spesso, questo è determinato dal software, facilmente reperibile per laptop o smartphone, ma ci sono casi in cui il problema si presenta con dispositivi troppo semplici dal punto di vista hardware, o con software che ha delle limitazioni: un contatore dell'acqua desidera utilizzare una VPN per inviare i suoi miseri byte di lettura una volta al mese, mentre tu desideri utilizzare una VPN per modificare il tuo profilo su LinkedIn.
Un altro importante vincolo è la necessità di configurazione. Questo vale sia per i "dispositivi stupidi" menzionati nel primo punto, sia per gli smartphone e computer tradizionali, ai quali il vincolo precedente è sconosciuto. Se per i primi la questione è relativamente semplice e dipende dal tempo necessario per la configurazione, per i secondi ci sono diverse opzioni. Spesso le organizzazioni utilizzano VPN per motivi di sicurezza, per proteggere i dispositivi finali aziendali da connessioni non sicure nella rete pubblica o dalla trasmissione di dati aziendali attraverso canali pubblici. Tuttavia, gli utenti finali possono disattivare o dimenticare di attivare la VPN per motivi personali, il che può esporre molti sistemi di sicurezza aziendale a rischi.
Entrambi questi limiti possono essere facilmente superati se l'accesso VPN è fornito a livello di rete. Nel caso delle connessioni mobili, questo può essere realizzato tramite un 'VPN mobile'. Un dispositivo di qualsiasi complessità in grado di trasmettere dati li invierà alla rete corretta. Non importa quali impostazioni siano state effettuate sul dispositivo, se la rete è configurata correttamente, lo invierà sempre nel luogo corretto e non altrove.
E come piacevole bonus, il dispositivo riceverà un indirizzo dalla rete interna, impostabile da remoto, e l'accesso sarà possibile solo dall'interno di questa rete (o fisicamente). Per una certa classe di dispositivi, questo è molto importante.
Come funziona
PS Core
A prima vista, il VPN è un servizio classico di tutti gli operatori di telecomunicazione per il segmento B2B, quindi perché sottolinearlo? Il punto è come è strutturata la rete di trasmissione dati per i dispositivi connessi tramite GPRS, HSPA, LTE o un'altra tecnologia di telecomunicazione mobile. Qui non esistono vlan familiari a tutti gli amministratori di rete, non ci sono switch, né tantomeno router nel loro significato tradizionale. Ma c'è una rete di accesso radio (RAN) e un core pacchettizzato (PS Core).

Schema semplificata della rete pacchettizzata dell'operatore di telefonia mobile. Essa differisce leggermente per LTE, ma il concetto generale rimane lo stesso.
In generale, ogni dispositivo con una scheda SIM registrato nella rete pacchettizzata (che ha completato la procedura di GPRS attach o simile) deve, prima di iniziare a trasmettere dati, avviare la creazione di una sessione di trasmissione dati (PDP context) sul router centrale della rete pacchettizzata, GGSN. I dettagli e lo scopo di questi processi sono molto ben descritti qui in . Ciò che è importante per noi: quando si avvia una sessione nella richiesta al GGSN sono inclusi, tra gli altri, i parametri che molti hanno visto nei propri telefoni o con cui hanno avuto a che fare durante la configurazione, ad esempio, dei modem USB. Ci sono tre campi: APN, nome utente e password. L'APN (Access Point Name) è un'entità molto importante nella logica di funzionamento del GGSN: a seconda dell'APN con cui viene avviata la sessione, il GGSN agirà in modo diverso. A seguito dell'elaborazione riuscita della richiesta dell'utente, il GGSN deve attivare una sessione di trasmissione dati e comunicare al dispositivo i suoi parametri, in particolare l'indirizzo IP assegnato al dispositivo e gli indirizzi DNS. Ci sono alcune caratteristiche molto importanti qui:
- Nella richiesta di avvio sessione, il dispositivo non richiede mai quale indirizzo IP desidererebbe ricevere;
- Oltre ai campi ‘APN’, ‘login’ e ‘password’ impostati nelle configurazioni del dispositivo, nella richiesta al GGSN viene trasmesso anche il numero di telefono (MSISDN) dell'utente (qui e in seguito ‘utente’ si riferisce all'utente finale, un dispositivo con una scheda SIM, e ‘cliente’ è l'organizzazione committente del servizio, che comprende gli utenti);
- Al momento dell'attivazione della sessione, il GGSN crea nella sua tabella di routing una registrazione del nuovo indirizzo IP. Tutti gli utenti sul GGSN sono contrassegnati da registrazioni nella tabella di routing con il prefisso /32, ovvero 1 utente corrisponde a 1 registrazione nella tabella. Il GGSN è un router molto performante;
- La rete del gestore può modificare il campo APN nella richiesta di avvio sessione in vari stadi (sia SGSN che GGSN) per vari motivi. Questo consente, in alcuni casi, di ridurre e in altri di eliminare del tutto la configurazione dei parametri di rete sui dispositivi con scheda SIM.
Immediate sono le domande sui primi tre punti: quale indirizzo IP viene assegnato all'utente?
Questo è determinato dalle impostazioni dell'APN da cui è stata inviata la richiesta di attivazione della sessione. Circa il 99% degli utenti di dati nelle reti mobili utilizza l'accesso comune a Internet. Si tratta delle note aree di accesso come internet.mts.ru, internet.beeline.ru e così via. Nel caso dell'accesso a Internet, il GGSN assegna indirizzi seguendo il principio del classico DHCP dalle impostazioni delle sottoreti grigie. Quando si accede a una rete pubblica, questi vengono chiusi tramite un classico NAT (o più precisamente, quella versione che è il PAT).
Ma GGSN è capace di fare di più. Per selezionare un indirizzo IP, può effettuare una richiesta AAA a un server di autorizzazione (ad esempio, Radius). Questa logica può essere configurata per singoli APN a seconda della loro destinazione. Il caso più semplice è il servizio di fornitura di un indirizzo IP pubblico permanente. Tali indirizzi sono solitamente assegnati agli abbonati nella fatturazione (BSS) dell'operatore e, a seconda dell'architettura IT, finiscono in un database diverso, a cui il GGSN invia la richiesta. Poiché conosce il MSISDN (numero di telefono) dell'abbonato, che sarà contenuto nella richiesta, tale database sarà piuttosto semplice e potrà contenere solo il collegamento tra il numero e l'indirizzo. Inoltre, nel caso in cui il cliente preveda di utilizzare una sola scheda SIM per collegare più dispositivi (se la scheda SIM si trova in un router WiFi di un ufficio remoto, ad esempio), questa tabella può contenere anche il cosiddetto "framed route" — il prefisso della rete che si trova "dietro" la scheda SIM, che sarà annunciato a tutti i dispositivi nella rete attraverso i protocolli di instradamento dinamico.
Non di solo GGSN vive
Oltre alla fornitura degli indirizzi, è necessario anche instradare il traffico degli abbonati verso le reti dei clienti, ciascuno verso la propria. Qui tutto funziona in modo più tradizionale. Sul GGSN, il traffico specializzato per lavorare con l'APN VPN viene instradato a un router di rete dell'operatore (che può avere nomi diversi, a volte chiamato router VPN), il quale svolge la funzione classica di PE nello schema L3VPN. Aggiunge le etichette, le intestazioni e tutte queste cose, e invia l'intero flusso di traffico attraverso i router della rete di trasporto verso i collegamenti o i tunnel preconfigurati fino alla rete del cliente. Questa parte è decisamente più tradizionale e ampiamente descritta in altri luoghi, quindi non mi soffermerò su di essa in questo materiale.
Tenendo conto di tutti questi dettagli, ci possono essere diversi modi per organizzare un VPN mobile, e questi si differenziano tra loro per la combinazione delle seguenti caratteristiche:
- Gli indirizzi IP, come già descritto, possono essere assegnati in modo dinamico (un indirizzo diverso ogni volta da un dato sottoinsieme) e statico (lo stesso indirizzo ogni volta per un determinato utente), a seconda delle impostazioni dell'APN e/o delle impostazioni del server Radius;
- Gli indirizzi IP possono essere forniti da un server Radius sotto il controllo dell'operatore o sotto il controllo del cliente;
- I dispositivi connessi a un VPN mobile possono interagire solo tra loro, oppure avere accesso a una rete L3VPN normale del cliente attraverso un collegamento diretto (porta VPN) con l'operatore o tramite tunneling sulla rete Internet;
- In alcuni casi, l'uso di un nome utente e di una password per l'attivazione con successo della sessione potrebbe essere obbligatorio, mentre in altri casi potrebbe non essere necessario nemmeno compilare il campo «APN».
Esistono diverse combinazioni con diversi tipi di tunneling, bilanciamento del traffico tra i canali di accesso al «principale» VPN del cliente e il principio di assegnazione degli indirizzi, che ammontano a diverse decine. Nella maggior parte dei casi, lo schema generale appare come segue:

Di conseguenza, dopo un processo di registrazione in rete piuttosto veloce e l'assegnazione di un indirizzo IP, il dispositivo ottiene l'accesso alla rete del cliente, mentre la rete del cliente ha accesso al dispositivo. In questo modo, l'abbonato è isolato da tutti gli altri abbonati dell'operatore che non hanno relazione con il cliente specifico, non è necessaria alcuna configurazione aggiuntiva e tutto il traffico è incondizionatamente diretto verso la rete del cliente, dove viene elaborato secondo le politiche interne del cliente.
Fonte: habr.com
