web-dev-qa-db-fra.com

Dois-je utiliser tap ou tun pour openvpn?

Quelles sont les différences entre l'utilisation de dev tap et dev tun pour openvpn? Je sais que les différents modes ne peuvent pas interagir. Quelles sont les différences techniques, à part le fonctionnement des couches 2 et 3 uniquement. Existe-t-il différentes caractéristiques de performances ou différents niveaux de surcharge? Quel mode est le meilleur. Quelles fonctionnalités sont exclusivement disponibles dans chaque mode.

87
Thomaschaaf

si vous pouvez créer vpn sur la couche 3 (un saut de plus entre les sous-réseaux) - optez pour tun.

si vous avez besoin de relier deux segments Ethernet à deux endroits différents, utilisez alors tap. dans une telle configuration, vous pouvez avoir des ordinateurs dans le même sous-réseau ip (par exemple 10.0.0.0/24) aux deux extrémités de vpn, et ils pourront se "parler" directement sans aucun changement dans leurs tables de routage. vpn agira comme un commutateur Ethernet. cela peut sembler cool et est utile dans certains cas, mais je vous conseillerais de ne pas y aller, sauf si vous en avez vraiment besoin. si vous choisissez une telle configuration de pontage de couche 2 - il y aura un peu de "déchets" (c'est-à-dire des paquets de diffusion) traversant votre VPN.

en utilisant tap, vous aurez un peu plus de surcharge - en plus des en-têtes ip également 8B ou plus des en-têtes Ethernet vont être envoyés via le tunnel (selon le type de votre trafic - cela introduira probablement plus fragmentation).

76
pQd

J'ai choisi "tap" lors de la configuration d'un VPN pour un ami qui possédait une petite entreprise parce que son bureau utilise un enchevêtrement de machines Windows, d'imprimantes commerciales et d'un serveur de fichiers Samba. Certains d'entre eux utilisent du TCP/IP pur, certains semblent utiliser uniquement NetBIOS (et ont donc besoin de paquets de diffusion Ethernet) pour communiquer, et certains dont je ne suis même pas sûr.

Si j'avais choisi "tun", j'aurais probablement dû faire face à de nombreux services défectueux - beaucoup de choses qui fonctionnaient pendant que vous étiez physiquement au bureau, mais qui se briseraient lorsque vous vous rendiez hors site et que votre ordinateur portable ne pouvait pas "voir" les périphériques sur le sous-réseau Ethernet plus.

Mais en choisissant "tap", je dis au VPN de faire en sorte que les machines distantes se sentent exactement comme si elles étaient sur le LAN, avec des paquets Ethernet de diffusion et des protocoles Ethernet bruts disponibles pour communiquer avec les imprimantes et les serveurs de fichiers et pour alimenter leur affichage de voisinage réseau. Cela fonctionne très bien, et je n'ai jamais de rapports sur des choses qui ne fonctionnent pas hors site!

24
Brandon Rhodes

J'ai toujours mis en place tun. Tap est utilisé par le pontage Ethernet dans OpenVPN et introduit un niveau de complexité sans précédent qui ne vaut tout simplement pas la peine d'être dérangé. Habituellement, lorsqu'un VPN doit être installé, il est nécessaire maintenant , et les déploiements complexes ne viennent pas rapidement.

OpenVPN FAQ et Ethernet Bridging HOWTO sont d'excellentes ressources sur ce sujet.

16
jtimberman

Si vous prévoyez de connecter des appareils mobiles (iOS ou Android) en utilisant OpenVPN, vous devez utiliser TUN comme TAP actuellement n'est pas pris en charge par OpenVPN sur eux:

Inconvénients TAP: ..... ne peut pas être utilisé avec Android ou appareils iOS

8
Siegfried Löffler

J'ai commencé à utiliser tun, mais je suis passé à tap car je n'aimais pas l'utilisation d'un sous-réseau/30 pour chaque PC (j'ai besoin de prendre en charge Windows). J'ai trouvé cela inutile et déroutant.

J'ai ensuite découvert l'option "sous-réseau de topologie" sur le serveur. Fonctionne avec les 2.1 RC (pas 2.0), mais il me donne tous les avantages de tun (pas de pontage, de performances, de routage, etc.) avec la commodité d'une adresse IP (séquentielle) par machine (Windows).

5
Mikeage

Parce que je trouve difficile de trouver des conseils simples:

Vous pouvez utiliser TUN si vous utilisez simplement le VPN pour vous connecter à Internet.

Vous devez utiliser TAP si vous souhaitez vous connecter à réseau distant réel (imprimantes, bureaux distants, etc.)

5
user541686

Mes "règles d'or"
TUN - si vous avez UNIQUEMENT besoin d'accéder aux ressources connectées directement à la machine serveur OpenVPN à l'autre extrémité, et qu'il n'y a pas de problème Windows. Un peu de créativité ici peut aider, en faisant "apparaître" les ressources comme étant locales au serveur OpenVPN. (des exemples peuvent être une connexion CUPS à une imprimante réseau ou un partage Samba sur une autre machine MONTÉE sur le serveur OpenVPN.)

TAP - si vous avez besoin d'accéder à plusieurs ressources (machines, stockage, imprimantes, périphériques) connectées via le réseau à l'autre extrémité. TAP peut également être requis pour certaines applications Windows.







sont





5
oldbaritone

J'ai eu cette même question il y a des années et j'ai essayé de l'expliquer en termes simples (ce que j'ai personnellement trouvé manquant dans d'autres ressources) sur mon blog: An OpenVPN Primer

J'espère que cela aide quelqu'un

4
Steve

La configuration de TAP ne nécessite presque aucun travail supplémentaire de la part de la personne qui l'a configuré.

Bien sûr, si vous savez comment configurer TUN mais ne comprenez pas ce que vous faites et que vous suivez simplement un tutoriel de tun, vous vous battrez pour configurer TAP mais pas parce que c'est plus difficile mais parce que vous ne savez pas ce que vous êtes Faire. Ce qui peut facilement entraîner des conflits de réseau dans un environnement TAP et il semble que ce soit plus compliqué.

en fait, si vous n'avez pas besoin d'un tutoriel parce que vous savez ce que vous faites, la configuration de tap prend autant de temps que la configuration de tun.

avec robinet, il existe de nombreuses solutions concernant le sous-réseau, je me suis retrouvé le moyen le plus simple est d'utiliser un sous-réseau de classe B. site1 (Network1) en utilisant 172.22.1.0/16 site2 (network2) en utilisant 172.22.2.0/16 site3 en utilisant 172.22.3.0/16 etc.

vous configurez site1 avec le serveur oVPN et donnez aux clients la plage d'adresses IP 172.22.254.2 - 172.22.254.255/16 afin que vous puissiez avoir plus de 200 clients ovpn (sous-réseaux) chaque sous-réseau peut avoir plus de 200 clients en soi. Donne un total de 40 000 clients que vous pouvez gérer (OVPN peut le gérer, mais comme vous le voyez, la mise en place d'un sous-réseau approprié vous donnera plus que suffisant, comme vous en avez probablement besoin)

vous utilisez un robinet et tous les clients sont ensemble comme dans un immense réseau d'entreprise.

SI, cependant, chaque site possède son propre DHCP, et il devrait l'avoir, vous devez vous assurer d'utiliser ebtables ou iptables ou dnsmasq pour bloquer la distribution DHCP pour devenir sauvage. ebtables ralentira cependant les performances. en utilisant dnsmasq dhcp-Host = 20: a9: 9b: 22: 33: 44, ignorer par exemple sera une tâche énorme à configurer sur tous les serveurs dhcp. cependant, sur le matériel moderne, l'impact des ebtables n'est pas si important. seulement 1 ou 2%

la surcharge du robinet, environ 32 pour le tun, n'est pas vraiment un problème non plus (peut être sur des réseaux non cryptés) mais sur des réseaux cryptés, c'est généralement l'AES qui provoquera le ralentissement.

Sur mon wrt3200acm par exemple non crypté, j'obtiens 360Mbps. En utilisant le cryptage, il descend à 54-100 Mbps selon le type de cryptage que je choisis) mais openvpn ne fait pas de cryptage sur 1500 et un 2ème cryptage sur les 32 frais généraux. Au lieu de cela, il effectue un cryptage 1 fois sur 1500 + 32overhead.

L'impact ici est donc minime.

Sur le matériel plus ancien, vous remarquerez peut-être davantage l'impact, mais sur le matériel moderne, c'est vraiment au minimum.

Le chiffrement entre 2 machines virtuelles avec prise en charge AES me permet d'obtenir mon ovpn avec TAP à 120-150Mbps.

Certains signalent des routeurs dédiés AVEC la prise en charge du chiffrement matériel AES atteignant jusqu'à 400 Mbps! 3 fois plus rapide qu'un i5-3570k peut faire (ce qui sur mon système de test ne pouvait pas dépasser 150 Mbps à 100% d'utilisation de 1 cœur) Mon autre extrémité: E3-1231 v3, était alors à environ 7% d'utilisation du processeur, environ 25% du noyau openvpn utilisé a été utilisé. L'E3 pourrait donc probablement augmenter la connexion de 3 à 4 fois.

vous auriez donc quelque chose entre 360 ​​Mbps et 600 Mbps avec une connexion entre le processeur E3-1231 v3 faisant du chiffrement AES265, l'auth SHA256 et ta.key, les certificats tls-cipher J'ai également utilisé le plus haut TLS-DHE-RSA-WITH-AES- 256-SHA256

Pour le signaler, avec tap: wrt3200acm obtient jusqu'à 70-80mbps avec cryptage. i5-3570k passe à 120-150 avec cryptage. E3-1231 v3 obtient au moins 360 Mbps avec cryptage (ceci est interpolé à partir de mes résultats avec les cas 1 et 2 car je n'avais pas 2 E3-1231 v3 avec lesquels tester.)

Ce sont mes conclusions basées sur la copie de fenêtres à fenêtres entre 2 clients dans 2 sous-réseaux différents connectés par openvpn TAP

2
Vincent