Soll ich tap oder tun für openvpn verwenden?

85

Was sind die Unterschiede zwischen der Verwendung von dev tap und dev tun für openvpn? Ich weiß, dass die verschiedenen Modi nicht zusammenarbeiten können. Was ist die technischen Unterschiede, außer nur Schicht 2 vs 3 Betrieb. Gibt es unterschiedliche Leistungsmerkmale oder unterschiedliche Gemeinkosten? Welcher Modus ist besser. Welche Funktionalität ist in jedem Modus exklusiv verfügbar?

Thomaschaaf
quelle
Bitte erklären Sie den Unterschied? Was ist Ethernet Bridging und warum ist es schlecht?
Thomaschaaf

Antworten:

74

Wenn es in Ordnung ist, VPN auf Schicht 3 zu erstellen (ein weiterer Sprung zwischen Subnetzen), wählen Sie tun.

Wenn Sie zwei Ethernet-Segmente an zwei verschiedenen Standorten überbrücken müssen, verwenden Sie tap. In einem solchen Setup können sich Computer an beiden Enden von VPN im selben IP-Subnetz befinden (z. B. 10.0.0.0/24), und sie können direkt miteinander kommunizieren, ohne Änderungen in ihren Routingtabellen vorzunehmen. VPN wird sich wie ein Ethernet-Switch verhalten. Das hört sich vielleicht cool an und ist in manchen Fällen nützlich, aber ich würde raten, es nicht zu versuchen, es sei denn, du brauchst es wirklich. Wenn Sie sich für ein solches Layer-2-Bridging-Setup entscheiden, wird ein bisschen Müll (dh Broadcast-Pakete) über Ihren VPN-Server übertragen.

Wenn Sie Tap verwenden, haben Sie etwas mehr Overhead - neben IP-Headern werden auch 38B oder mehr Ethernet-Header über den Tunnel gesendet (abhängig von der Art Ihres Datenverkehrs - führt dies möglicherweise zu einer stärkeren Fragmentierung).

pQd
quelle
24

Ich habe "tap" gewählt, als ich ein VPN für einen Freund eingerichtet habe, der ein kleines Unternehmen besaß, da sein Büro eine Menge Windows-Computer, kommerzielle Drucker und einen Samba-Dateiserver verwendet. Einige von ihnen verwenden reines TCP / IP, andere scheinen nur NetBIOS zu verwenden (und benötigen daher Ethernet-Broadcast-Pakete), um zu kommunizieren, und andere sind mir nicht einmal sicher.

Wenn ich mich für "tun" entschieden hätte, hätte ich wahrscheinlich viele defekte Dienste in Anspruch genommen - viele Dinge, die funktionierten, während Sie physisch im Büro waren, aber dann kaputtgingen, wenn Sie von der Baustelle abfuhren und Ihr Laptop nicht "sehen" konnte. die Geräte im Ethernet-Subnetz mehr.

Wenn Sie jedoch auf "Tippen" klicken, wird das VPN angewiesen, Remotecomputern das Gefühl zu geben, im LAN zu sein. Dabei stehen Broadcast-Ethernet-Pakete und Raw-Ethernet-Protokolle für die Kommunikation mit Druckern und Dateiservern sowie für die Stromversorgung der Network Neighborhood-Anzeige zur Verfügung. Es funktioniert großartig und ich bekomme nie Berichte über Dinge, die außerhalb des Unternehmens nicht funktionieren!

Brandon Rhodes
quelle
15

Ich habe immer tun eingerichtet. Tap wird von Ethernet Bridging in OpenVPN verwendet und bietet ein beispielloses Maß an Komplexität, mit dem es sich einfach nicht zu beschäftigen lohnt. Normalerweise , wenn ein VPN installiert werden muss, seine erforderlichen jetzt und komplexe Installationen nicht schnell kommen.

Die OpenVPN FAQ und das Ethernet Bridging HOWTO sind hervorragende Ressourcen zu diesem Thema.

jtimberman
quelle
9
Meiner Erfahrung nach ist tun einfacher einzurichten, behandelt aber nicht so viele Netzwerkkonfigurationen, sodass Sie auf viel seltsamere Netzwerkprobleme stoßen. Im Gegensatz dazu ist Tap etwas komplizierter einzurichten, aber wenn Sie dies tun, funktioniert es normalerweise "nur" für alle.
Cerin
8

Wenn Sie vorhaben, mobile Geräte (iOS oder Android) mit OpenVPN zu verbinden, sollten Sie TUN verwenden, da TAP derzeit von OpenVPN nicht unterstützt wird :

TAP-Nachteile: ..... kann nicht mit Android- oder iOS-Geräten verwendet werden

Siegfried Löffler
quelle
TAP wird auf Android über eine Drittanbieter-App unterstützt: OpenVPN Client (Entwickler: colucci-web.it)
Boo
5

Ich begann mit tun, wechselte aber zu tap, da ich die Verwendung eines / 30-Subnetzes für jeden PC nicht mochte (ich muss Windows unterstützen). Ich fand das verschwenderisch und verwirrend.

Dann entdeckte ich die Option "Topologie-Subnetz" auf dem Server. Funktioniert mit den 2.1-RCs (nicht 2.0), aber es bietet mir alle Vorteile von tun (keine Überbrückung, Leistung, Routing usw.) mit der Bequemlichkeit einer (sequentiellen) IP-Adresse pro (Windows-) Computer.

Mikeage
quelle
5

Weil mir einfache Ratschläge schwer fallen:

Sie können TUN verwenden, wenn Sie nur die VPN-Verbindung zum Internet verwenden .

Sie müssen TAP verwenden, um eine Verbindung zum eigentlichen Remote-Netzwerk (Drucker, Remote-Desktops usw.) herzustellen.

Mehrdad
quelle
4

Ich hatte vor Jahren die gleiche Frage und habe versucht, sie in meinem Blog auf einfache Weise zu erklären (was mir persönlich an anderen Ressourcen mangelt): An OpenVPN Primer

Hoffe es hilft jemandem

Steve
quelle
2
Während dies theoretisch die Frage beantworten mag, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
Mark Henderson
Guter Eintrag! Ich habe selten einen ganzen Beitrag wie diesen gelesen, aber diesen, den ich gemacht habe. Ich stimme jedoch Mark Henderson zu, Sie sollten eine kleine Zusammenfassung schreiben und den Link danach einfügen.
Pierre-Luc Bertrand
4

Meine "Faustregeln"
TUN - wenn Sie NUR Zugriff auf Ressourcen benötigen, die direkt mit dem OpenVPN-Server am anderen Ende verbunden sind, und keine Windows-Probleme vorliegen. Ein wenig Kreativität kann hier Abhilfe schaffen, indem Ressourcen auf dem OpenVPN-Server als lokal "angezeigt" werden. (Beispiele können eine CUPS-Verbindung zu einem Netzwerkdrucker oder eine Samba-Freigabe auf einem anderen Computer sein, der auf dem OpenVPN-Server eingebunden ist.)

TAP - Wenn Sie Zugriff auf mehrere Ressourcen (Computer, Speicher, Drucker, Geräte) benötigen, die über das Netzwerk am verbunden sind anderes Ende. Für bestimmte Windows-Anwendungen ist möglicherweise auch TAP erforderlich.


Vorteile:
TUN beschränkt normalerweise den VPN-Zugriff auf einen einzelnen Computer (IP-Adresse) und bietet daher (vermutlich) eine bessere Sicherheit durch eingeschränkte Konnektivität mit dem entfernten Netzwerk. Durch die TUN-Verbindung wird der VPN-Tunnel und damit das Netzwerk auf der Gegenseite weniger belastet, da nur der Verkehr von / zu der einzelnen IP-Adresse das VPN auf die andere Seite überträgt. IP-Routen zu anderen Stationen im Subnetz sind nicht enthalten, sodass der Datenverkehr nicht über den VPN-Tunnel gesendet wird und über den OpenVPN-Server keine oder nur eine geringe Kommunikation möglich ist.

TAP - Ermöglicht normalerweise den freien Fluss von Paketen zwischen den Endpunkten. Dies bietet die Flexibilität der Kommunikation mit anderen Stationen im entfernten Netzwerk, einschließlich einiger Methoden, die von älterer Microsoft-Software verwendet werden. TAP ist mit Sicherheitsrisiken behaftet, die mit der Gewährung von Zugriff von außen "hinter der Firewall" verbunden sind. Dadurch können mehr Verkehrspakete durch den VPN-Tunnel fließen. Dies eröffnet auch die Möglichkeit von Adressenkonflikten zwischen den Endpunkten.

Gibt esUnterschiede in der Latenz aufgrund der Stack-Schicht, aber in den meisten Endbenutzerszenarien trägt die Verbindungsgeschwindigkeit der Endpunkte wahrscheinlich stärker zur Latenz bei als die jeweilige Stack-Schicht der Übertragung. Wenn es um Latenz geht, ist es möglicherweise eine gute Idee, andere Alternativen in Betracht zu ziehen. Derzeitige Multiprozessoren auf GHz-Ebene überwinden normalerweise den Engpass bei der Übertragung über das Internet.

"Besser" und "Schlimmer" sind ohne Kontext nicht definierbar.
(Dies ist die Lieblingsantwort des Beraters: "Nun, das hängt davon ab ...")
Ist ein Ferrari "besser" als ein Muldenkipper? Wenn Sie versuchen, schnell zu gehen, kann es sein; aber wenn Sie versuchen, schwere Lasten zu schleppen, wahrscheinlich nicht.

Einschränkungen wie "Zugangsbedarf" und "Sicherheitsanforderungen" sowie Einschränkungen wie Netzwerkdurchsatz und Gerätebeschränkungen müssen definiert werden, bevor entschieden werden kann, ob TUN oder TAP besser für Ihre Anforderungen geeignet sind.

Altbariton
quelle
2

Das Einrichten von TAP erfordert fast keine zusätzliche Arbeit von der Person, die es eingerichtet hat.

Natürlich, wenn Sie wissen, wie man TUN einrichtet, aber nicht verstehen, was Sie tun, und einfach einem Tun-Tutorial folgen, werden Sie darum kämpfen, TAP einzurichten, aber nicht, weil es schwieriger ist, sondern weil Sie nicht wissen, was Sie sind tun. Was in einer TAP-Umgebung leicht zu Netzwerkkonflikten führen kann und dann komplizierter aussieht.

Tatsache ist, wenn Sie kein Tutorial benötigen, weil Sie wissen, was Sie tun, dauert das Einrichten von tap genauso lange wie das Einrichten von tun.

Mit Tap gibt es viele Lösungen zum Thema Subnetze. Am einfachsten ist es, ein Subnetz der Klasse B zu verwenden. Standort1 (Netzwerk1) mit 172.22.1.0/16 Standort2 (Netzwerk2) mit 172.22.2.0/16 Standort3 mit 172.22.3.0/16 usw.

Sie richten site1 mit dem oVPN-Server ein und geben Clients den IP-Bereich 172.22.254.2 - 172.22.254.255/16, sodass Sie über 200 ovpn-Clients (Subnetze) haben können. Jedes Subnetz kann über 200 Clients für sich haben. Sie können insgesamt 40.000 Clients verwalten (zweifelsohne kann oVPN dies, aber wie Sie sehen, bietet die Einrichtung eines geeigneten Subnetzes mehr als genug, als Sie wahrscheinlich jemals benötigen).

Sie verwenden einen Wasserhahn und alle Kunden sind zusammen wie in einem riesigen Unternehmensnetzwerk.

WENN jedoch jeder Standort über ein eigenes DHCP verfügt und dies auch sein sollte, müssen Sie sicherstellen, dass Sie ebtables oder iptables oder dnsmasq verwenden, um die DHCP-Verteilung zu blockieren, damit sie nicht mehr ausgeführt wird. ebtables verlangsamen jedoch die Leistung. Wenn Sie dnsmasq dhcp-host = 20: a9: 9b: 22: 33: 44 verwenden, ist das Ignorieren beispielsweise auf allen DHCP-Servern eine große Aufgabe. Bei moderner Hardware ist die Auswirkung von ebtables jedoch nicht so groß. nur 1 oder 2%

Der Overhead des Tap, ungefähr 32 to the tun, ist ebenfalls kein so großes Problem (möglicherweise in unverschlüsselten Netzwerken), aber in verschlüsselten Netzwerken ist es normalerweise das AES, das die Verlangsamung verursacht.

Auf meinem wrt3200acm zum Beispiel bekomme ich unverschlüsselt 360Mbps. Bei Verwendung der Verschlüsselung werden 54-100 Mbit / s erreicht, je nachdem, welche Art von Verschlüsselung ich wähle. Openvpn verschlüsselt jedoch nicht bei 1500 und eine zweite bei 32 Overhead-Verschlüsselung. Stattdessen wird eine einmalige Verschlüsselung für 1500 + 32 Overhead durchgeführt.

Die Auswirkungen sind hier also minimal.

Bei älterer Hardware werden Sie die Auswirkungen möglicherweise stärker bemerken, aber bei moderner Hardware sind sie wirklich auf das Minimum beschränkt.

Durch die Verschlüsselung zwischen zwei virtuellen Maschinen mit AES-Unterstützung erhalte ich mein Ovpn mit TAP auf 120-150 Mbit / s.

Einige berichten, dass dedizierte Router mit AES-Hardware-Verschlüsselung bis zu 400 Mbit / s unterstützen! 3-mal schneller als ein i5-3570k (was auf meinem Testsystem bei 100% 1 Core-Auslastung nicht höher als 150 Mbit / s werden konnte) 25% des verwendeten OpenVPN-Kerns wurden genutzt. So könnte der E3 die Verbindung höchstwahrscheinlich um das 3 bis 4-fache erhöhen.

Sie hätten also etwas zwischen 360 Mbit / s und 600 Mbit / s mit einer Verbindung zwischen der E3-1231 v3-CPU, die die AES265-Verschlüsselung, die SHA256-Authentifizierung und den ta.key-Code durchführt. 256-SHA256

Um dies zu verdeutlichen: Mit tap: wrt3200acm werden mit Verschlüsselung bis zu 70-80 MBit / s erreicht. i5-3570k erreicht mit Verschlüsselung 120-150. E3-1231 v3 erhält mindestens 360 Mbit / s mit Verschlüsselung (dies wird aus meinen Ergebnissen in Fall 1 und 2 interpoliert, da ich keine 2 E3-1231 v3 zum Testen hatte.)

Dies sind meine Ergebnisse basierend auf Windows-zu-Windows-Kopiervorgängen zwischen 2 Clients in 2 verschiedenen Subnetzen, die über openvpn TAP verbunden sind

Vincent
quelle
-1

Wenn ja, warum, wie viel hast du? Ich würde TAP ausdrücklich aus dem Grund verwenden, dass die Schichtung der Pakete mit viel weniger Latenz und Übertragungsverlust abläuft, was mit dieser Methode verringert wird. Dies wirkt sich jedoch nur bei Schicht 3 auf den Betrieb des VPN aus, insbesondere auf den Tunnelungsaspekt und auf die zulässigen IP-Adressen und zuweisbaren Adressen. Die Verwendung von UDP führt möglicherweise zu einer anderen Situation, in der Sie entscheiden müssen, welcher Weg für Sie der beste ist. Jedes Netzwerk ist anders und erfordert einen eindeutigen Parametersatz. Hoffe das hilft.

Regnald Thorington
quelle
1
Ziemlich verwirrend. Bitte überlegen Sie, ob Sie es aufräumen, die Unterschiede erläutern und sie beseitigen möchten.
Vonbrand