A un livello abbastanza fondamentale, una VPN emula una "rete privata" il cui scopo è quello di essere isolato da Internet in generale. La "V" significa che tale isolamento viene eseguito crittograficamente piuttosto che fisicamente; tuttavia, il modello è ancora "cavi separati". Se la tua macchina fa parte di due VPN contemporaneamente, le reti private non sono più isolate. Questo tende a contraddire il vero motivo per cui le reti private sono state istituite in primo luogo.
Un'implementazione VPN è chiamata così perché le applicazioni non devono esserne a conoscenza. Le applicazioni utilizzano protocolli standard di Internet (DNS per la risoluzione dei nomi, socket TCP e UDP ...) e la VPN raccoglie il traffico e fa la sua magia in modo trasparente. Una tipica implementazione VPN si aggancia alle tabelle di routing del sistema, per ricevere pacchetti che sono pensati per una determinata classe di indirizzi. Due VPN possono funzionare in parallelo solo se gli indirizzi utilizzati nelle due reti private non si sovrappongono - e questo non è facile da ottenere, dal momento che le reti private, essendo private, non utilizzano uno schema di assegnazione dell'indirizzo globale. Le reti private di solito cercano le "classi private" come 10. *. *. * E 192.168. *. *.
Il DNS è una buona illustrazione del problema dell'accesso simultaneo a due reti private. Quando un'applicazione vuole accedere a una macchina chiamata "esempio", non sa su quale rete sia. Questo è il punto delle reti private: le applicazioni non devono essere consapevoli dell'esistenza della rete privata. La rete privata ospita il proprio server dei nomi, che può risolvere i nomi delle macchine che ospita. Se si collega a due VPN, quindi, per ciascuna risoluzione del nome, sarà necessario parlare con entrambi i server dei nomi. Quindi, il name server dalla rete privata 1 riceverà anche richieste di risoluzione dei nomi per i nomi che si trovano nella rete privata 2. Questo è fishy. E se lo stesso nome viene usato in entrambe le reti, allora si scatena l'inferno. Questo è lo stesso problema rispetto agli indirizzi IP sovrapposti, tradotti nello spazio dei nomi.
Inoltre, se la tua macchina funge da router, gestirà felicemente i pacchetti da una VPN all'altra. Su un sistema Linux, questo è semplice come:
echo 1 > /proc/sys/net/ipv4/ip_foward
che alcune distribuzioni Linux faranno per te se lo chiedessi al momento dell'installazione. A seconda dell'utente non che fa qualcosa di simile sembra rischioso.
Per riassumere, il modello normale per una VPN è:
- un determinato sistema utente fa parte della VPN, solo la VPN (e quindi solo una VPN);
- se il sistema deve essere in grado di parlare con il "mondo esterno", può farlo solo attraverso un gateway dedicato che, dal punto di vista del sistema dell'utente, è parte della VPN.
In particolare, un sistema collegato a una VPN non deve essere collegato simultaneamente a un'altra rete, che si tratti della VPN o di Internet in generale. Un software VPN appropriato dirotterà il percorso predefinito e si assicurerà che veda tutto il traffico in entrata e in uscita per l'intero sistema. Per sua natura, questo non tollera la presenza simultanea di un'altra VPN.