Dovrei usare tap o tun per openvpn?


85

Quali sono le differenze tra l'utilizzo di dev tap e dev tun per openvpn? So che le diverse modalità non possono interagire. Quali sono le differenze tecniche, oltre all'operazione layer 2 vs 3. Esistono diverse caratteristiche prestazionali o diversi livelli di sovraccarico. Quale modalità è migliore. Quale funzionalità è disponibile esclusivamente in ciascuna modalità.


Per favore, spiega la differenza? qual è il ponte ethernet e perché è male?
Thomaschaaf,

Risposte:


74

se va bene creare vpn sul layer 3 (un altro salto tra le sottoreti) - vai a tun.

se devi collegare due segmenti Ethernet in due posizioni diverse, quindi tocca. in tale configurazione è possibile avere computer nella stessa sottorete IP (ad es. 10.0.0.0/24) su entrambe le estremità di vpn e saranno in grado di "dialogare" direttamente senza alcuna modifica nelle loro tabelle di routing. vpn funzionerà come switch ethernet. questo potrebbe sembrare interessante ed è utile in alcuni casi, ma consiglierei di non provarlo a meno che tu non ne abbia davvero bisogno. se scegli tale configurazione di bridge di livello 2, ci sarà un po 'di "spazzatura" (ovvero pacchetti di trasmissione) che attraversano la tua VPN.

usando tap avrai un po 'più di sovraccarico - oltre alle intestazioni ip anche 38B o più di intestazioni ethernet verranno inviate attraverso il tunnel (a seconda del tipo di traffico - probabilmente introdurrà più frammentazione).


24

Ho scelto "tap" durante l'impostazione di una VPN per un amico che possedeva una piccola impresa perché il suo ufficio utilizza un groviglio di macchine Windows, stampanti commerciali e un file server Samba. Alcuni usano puro TCP / IP, altri sembrano usare solo NetBIOS (e quindi necessitano di pacchetti di trasmissione Ethernet) per comunicare, e altri non ne sono nemmeno sicuro.

Se avessi scelto "tun", probabilmente avrei dovuto affrontare molti servizi rotti - molte cose che funzionavano mentre eri fisicamente in ufficio, ma poi si rompevano quando eri fuori sede e il tuo laptop non poteva "vedere" i dispositivi sulla sottorete Ethernet più.

Ma scegliendo "tap", dico alla VPN di far sentire le macchine remote esattamente come se fossero sulla LAN, con pacchetti Ethernet broadcast e protocolli Ethernet grezzi disponibili per comunicare con stampanti e file server e per alimentare il loro display Network Neighborhood. Funziona benissimo e non ricevo mai segnalazioni di cose che non funzionano fuori sede!


15

Ho sempre impostato tun. Il tocco viene utilizzato dal bridge Ethernet in OpenVPN e introduce un livello di complessità senza precedenti che non vale la pena preoccuparsi. Di solito, quando è necessario installare una VPN, ora è necessaria e le implementazioni complesse non arrivano velocemente.

Le FAQ di OpenVPN e Ethernet Bridging HOWTO sono risorse eccellenti su questo argomento.


9
Nella mia esperienza, tun è più facile da configurare ma non gestisce altrettante configurazioni di rete, quindi si verificano problemi di rete molto più strani. Al contrario, toccare è un po 'più complicato da configurare, ma una volta fatto, in genere "funziona" per tutti.
Cerin,

8

Se hai intenzione di connettere dispositivi mobili (iOS o Android) usando OpenVPN, allora dovresti usare TUN poiché attualmente TAP non è supportato da OpenVPN su di essi:

Svantaggi TAP: ..... non può essere utilizzato con dispositivi Android o iOS


TAP è supportato su Android tramite un'app di terze parti: OpenVPN Client (Sviluppatore: colucci-web.it)
Boo

5

Ho iniziato a utilizzare tun, ma sono passato a toccare poiché non mi piaceva l'uso di una sottorete / 30 per ciascun PC (ho bisogno di supportare Windows). Ho scoperto che è dispendioso e confuso.

Poi ho scoperto l'opzione "sottorete topologia" sul server. Funziona con i 2.1 RC (non 2.0), ma mi offre tutti i vantaggi di tun (nessun ponte, prestazioni, routing, ecc.) Con la comodità di un indirizzo IP (sequenziale) per macchina (windows).


5

Perché trovo difficile trovare semplici consigli:

È possibile utilizzare TUN se si utilizza semplicemente la VPN per connettersi a Internet .

È necessario utilizzare TAP se si desidera connettersi alla rete remota effettiva (stampanti, desktop remoti, ecc.)


4

Ho avuto questa stessa domanda anni fa e ho cercato di spiegarla in termini semplici (che ho trovato personalmente carente di altre risorse) sul mio blog: An OpenVPN Primer

Spero che aiuti qualcuno


2
Sebbene ciò possa teoricamente rispondere alla domanda, sarebbe preferibile includere qui le parti essenziali della risposta e fornire il collegamento come riferimento.
Mark Henderson

Ottimo post! Raramente leggo un intero post come questo, ma questo l'ho fatto. Sono d'accordo con Mark Henderson, dovresti scrivere un piccolo riassunto e inserire il link dopo.
Pierre-Luc Bertrand,

4

Le mie "regole empiriche"
TUN - se hai bisogno SOLO dell'accesso alle risorse connesse direttamente alla macchina server OpenVPN all'altra estremità e non ci sono problemi di Windows. Un po 'di creatività qui può essere d'aiuto, facendo apparire le risorse locali sul server OpenVPN. (esempi potrebbero essere una connessione CUPS a una stampante di rete o una condivisione Samba su un altro computer MONTATO sul server OpenVPN.)

TAP - se è necessario accedere a più risorse (macchine, memoria, stampanti, dispositivi) connesse tramite la rete al altra fine. TAP può anche essere richiesto per alcune applicazioni Windows.


Vantaggi:
TUN normalmente limita l'accesso VPN a una singola macchina (indirizzo IP) e quindi (presumibilmente) una migliore sicurezza attraverso una connettività limitata alla rete remota. La connessione TUN creerà meno carico sul tunnel VPN e, a sua volta, la rete del lato remoto perché solo il traffico da / verso il singolo indirizzo IP attraverserà la VPN dall'altro lato. I percorsi IP verso altre stazioni nella sottorete non sono inclusi, quindi il traffico non viene inviato attraverso il tunnel VPN e la comunicazione è scarsa o nulla oltre il server OpenVPN.

TAP: in genere consente ai pacchetti di fluire liberamente tra gli endpoint. Ciò offre la flessibilità di comunicazione con le altre stazioni della rete remota, inclusi alcuni metodi utilizzati dai software Microsoft meno recenti. TAP ha le esposizioni inerenti alla sicurezza inerenti alla concessione dell'accesso esterno "dietro il firewall". Permetterà a più pacchetti di traffico di fluire attraverso il tunnel VPN. Ciò apre anche la possibilità di affrontare i conflitti tra gli endpoint.

Ci sonodifferenze di latenza a causa del livello dello stack, ma nella maggior parte degli scenari dell'utente finale la velocità di connessione degli endpoint è probabilmente un contributo più significativo alla latenza rispetto al particolare livello dello stack della trasmissione. Se è in questione la latenza, potrebbe essere una buona idea considerare altre alternative. Gli attuali multiprocessori di livello GHz normalmente superano il collo di bottiglia della trasmissione via Internet.

"Meglio" e "Peggio" non sono definibili senza un contesto.
(Questa è la risposta preferita del consulente, "Beh, dipende ...")
Una Ferrari è "migliore" di un autocarro con cassone ribaltabile? Se stai cercando di andare veloce, potrebbe essere; ma se stai cercando di trasportare carichi pesanti, probabilmente no.

È necessario definire vincoli come "necessità di accesso" e "requisiti di sicurezza", nonché definire vincoli come la velocità di trasmissione della rete e le limitazioni delle apparecchiature, prima che si possa decidere se TUN o TAP è più adatto alle proprie esigenze.


2

L'impostazione di TAP non richiede quasi alcun lavoro aggiuntivo da parte della persona che lo configura.

Ovviamente se sai come impostare TUN ma non capisci cosa stai facendo e semplicemente seguendo un tutorial di tun, dovrai combattere per configurare TAP ma non perché è più difficile ma perché non sai cosa stai facendo. Il che può facilmente portare a conflitti di rete in un ambiente TAP e quindi sembra più complicato.

il fatto è che se non hai bisogno di un tutorial perché sai cosa stai facendo, la configurazione del tap richiede tanto tempo quanto la configurazione di tun.

con tap ci sono molte soluzioni sulla sottorete, mi sono trovato il modo più semplice è usare una sottorete di classe B. site1 (Network1) utilizzando 172.22.1.0/16 site2 (network2) utilizzando 172.22.2.0/16 site3 utilizzando 172.22.3.0/16 ecc.

si configura site1 con il server oVPN e si fornisce ai client l'intervallo ip 172.22.254.2 - 172.22.254.255/16 in modo da poter avere oltre 200 client ovpn (sottoreti) ogni sottorete può avere oltre 200 client in sé. Compone un totale di 40.000 clienti che puoi gestire (dubbio che oVPN può gestirlo, ma come vedi, impostare una subnet corretta ti darà più di quanto tu abbia bisogno)

usi un tocco e tutti i clienti stanno insieme come in un'enorme rete aziendale.

SE, tuttavia, ogni sito ha il proprio DHCP e dovrebbe esserlo, è necessario assicurarsi di utilizzare ebtables o iptables o dnsmasq per bloccare la distribuzione di dhcp in modo selvaggio. ebtables tuttavia rallenterà le prestazioni. usando dnsmasq dhcp-host = 20: a9: 9b: 22: 33: 44, ignorare per esempio sarà un compito enorme da configurare su tutti i server dhcp. tuttavia, sull'hardware moderno l'impatto di ebtables non è così grande. solo 1 o 2%

il sovraccarico del rubinetto, circa 32 al tun, non è nemmeno un problema (potrebbe essere su reti non crittografate) ma su reti crittografate è di solito l'AES che causerà il rallentamento.

Sul mio wrt3200acm per esempio non crittografato ottengo 360 Mbps. L'uso della crittografia scende a 54-100 Mbps a seconda del tipo di crittografia che scelgo), ma openvpn non esegue la crittografia su 1500 e una seconda crittografia su 32 overhead. Invece esegue una crittografia 1 volta su 1500 + 32 overhead.

Quindi l'impatto qui è minimo.

Sull'hardware più vecchio potresti notare l'impatto maggiore, ma sull'hardware moderno è davvero al minimo.

La crittografia tra 2 macchine virtuali con supporto AES mi porta il mio ovpn con TAP a 120-150 Mbps.

Alcuni riportano router dedicati CON supporto per la crittografia hardware AES che arriva fino a 400 Mbps! 3 volte più veloce di quanto possa fare un i5-3570k (che sul mio sistema di test non potrebbe essere superiore a 150 Mbps al 100% di 1 utilizzo di base) L'altra mia estremità: E3-1231 v3, quindi era all'incirca al 7% di utilizzo della CPU, circa È stato utilizzato il 25% del core openvpn utilizzato. Quindi l'E3 molto probabilmente potrebbe aumentare la connessione da 3 a 4 volte.

quindi avresti qualcosa tra 360 Mbps e 600 Mbps con una connessione tra E3-1231 v3 cpu facendo toccare la cifra AES265, autenticazione SHA256 e ta.key, certificati tls-cipher ho anche usato il più alto TLS-DHE-RSA-WITH-AES- 256-SHA256

Per evidenziarlo, con tap: wrt3200acm arriva fino a 70-80 Mbps con crittografia. i5-3570k arriva a 120-150 con la crittografia. E3-1231 v3 ottiene almeno 360 Mbps con crittografia (questo è interpolato dai miei risultati con i casi 1 e 2 perché non avevo 2 E3-1231 v3 con cui testare.)

Questi sono i miei risultati basati sulla copia da Windows a Windows tra 2 client in 2 sottoreti diverse collegate da TAP openvpn


-1

Se poi, perché cosa, quanto hai? Vorrei utilizzare TAP, esplicitamente per il motivo che la stratificazione dei pacchetti procede con molta meno latenza e perdita di trasmissione, che viene ridotta con questo metodo. Tuttavia, solo con il livello 3 questo influisce su qualsiasi effetto apparente sul funzionamento della VPN, in particolare l'aspetto del tunneling e quali IP sono consentiti attraverso e indirizzi assegnabili. L'uso di UDP probabilmente introduce un'altra situazione in cui dovresti decidere quale sia la strada migliore da prendere per te. Ogni rete è diversa e richiede un set unico di parametri. Spero che sia di aiuto.


1
Abbastanza confuso. Per favore, considera di chiarirlo, spiegando le differenze che contano e eliminandole.
vonbrand,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.