¿Debo usar tap o tun para openvpn?

85

¿Cuáles son las diferencias entre usar dev tap y dev tun para openvpn? Sé que los diferentes modos no pueden interactuar. ¿Cuáles son las diferencias técnicas, aparte de la operación de capa 2 vs 3? ¿Existen diferentes características de rendimiento o diferentes niveles de sobrecarga? Qué modo es mejor. Qué funcionalidad está disponible exclusivamente en cada modo.

Thomaschaaf
fuente
Por favor explique la diferencia? ¿Qué es el puente de Ethernet y por qué es malo?
Thomaschaaf

Respuestas:

74

si está bien crear vpn en la capa 3 (un salto más entre subredes), vaya a tun.

si necesita unir dos segmentos de ethernet en dos ubicaciones diferentes, use tap. en dicha configuración, puede tener computadoras en la misma subred ip (por ejemplo, 10.0.0.0/24) en ambos extremos de vpn, y podrán 'comunicarse' entre sí directamente sin ningún cambio en sus tablas de enrutamiento. vpn actuará como un interruptor de ethernet. Esto puede sonar genial y es útil en algunos casos, pero aconsejaría no hacerlo a menos que realmente lo necesite. si elige dicha configuración de puente de capa 2, habrá un poco de 'basura' (es decir, paquetes de transmisión) que atravesará su VPN.

Con el toque, tendrá un poco más de sobrecarga: además de los encabezados de IP, también se enviarán 38B o más de los encabezados de Ethernet a través del túnel (dependiendo del tipo de tráfico, posiblemente introducirá más fragmentación).

pQd
fuente
24

Elegí "tap" cuando configuré una VPN para un amigo que era dueño de una pequeña empresa porque su oficina usa una maraña de máquinas Windows, impresoras comerciales y un servidor de archivos Samba. Algunos de ellos usan TCP / IP puro, algunos parecen usar solo NetBIOS (y por lo tanto necesitan paquetes de transmisión Ethernet) para comunicarse, y algunos ni siquiera estoy seguro.

Si hubiera elegido "tun", probablemente me habría enfrentado a muchos servicios rotos, muchas cosas que funcionaron mientras estaba físicamente en la oficina, pero luego se romperían cuando saliera del sitio y su computadora portátil no pudiera "ver" los dispositivos en la subred Ethernet más.

Pero al elegir "tap", le digo a la VPN que haga que las máquinas remotas se sientan exactamente como si estuvieran en la LAN, con paquetes de transmisión de Ethernet y protocolos de Ethernet en bruto disponibles para comunicarse con impresoras y servidores de archivos y para alimentar su pantalla Network Neighborhood. ¡Funciona muy bien, y nunca recibo informes de cosas que no funcionan fuera del sitio!

Brandon Rhodes
fuente
15

Siempre configuro tun. Tap es utilizado por el puente de ethernet en OpenVPN e introduce un nivel de complejidad sin precedentes que simplemente no vale la pena molestarse. Por lo general, cuando una VPN necesita ser instalado, sus necesarios ahora , y complejos despliegues no vienen rápido.

Las preguntas frecuentes de OpenVPN y el CÓMO de conexión de Ethernet son excelentes recursos sobre este tema.

jtimberman
fuente
99
En mi experiencia, tun es más fácil de configurar, pero no maneja tantas configuraciones de red, por lo que te encuentras con muchos más problemas de red extraños. En contraste, el tap es un poco más complicado de configurar, pero una vez que lo hace, generalmente "simplemente funciona" para todos.
Cerin
8

Si planea conectar dispositivos móviles (iOS o Android) usando OpenVPN, entonces debe usar TUN ya que actualmente TAP no es compatible con OpenVPN en ellos:

Inconvenientes de TAP: ..... no se puede usar con dispositivos Android o iOS

Siegfried Löffler
fuente
TAP es compatible con Android a través de una aplicación de terceros: OpenVPN Client (Desarrollador: colucci-web.it)
Boo
5

Comencé a usar tun, pero cambié a tap ya que no me gustaba usar una subred / 30 para cada PC (necesito admitir Windows). Encontré que es un desperdicio y confuso.

Luego descubrí la opción "subred de topología" en el servidor. Funciona con los RC 2.1 (no 2.0), pero me da todas las ventajas de tun (sin puente, rendimiento, enrutamiento, etc.) con la comodidad de una dirección IP (secuencial) por máquina (Windows).

Mikeage
fuente
5

Porque encuentro consejos simples difíciles de conseguir:

Puede usar TUN si solo usa la VPN para conectarse a Internet .

Debe usar TAP si desea conectarse a la red remota real (impresoras, escritorios remotos, etc.)

Mehrdad
fuente
4

Tuve esta misma pregunta hace años e intenté explicarla en términos directos (que personalmente encontré que carecen de otros recursos) en mi blog: un manual de OpenVPN

Espero que ayude a alguien

Steve
fuente
2
Si bien esto puede responder teóricamente la pregunta, sería preferible incluir aquí las partes esenciales de la respuesta y proporcionar el enlace para referencia.
Mark Henderson
¡Buena publicación! Raramente leo una publicación completa como esta, pero esta sí. Sin embargo, estoy de acuerdo con Mark Henderson, debe escribir un pequeño resumen y poner el enlace después.
Pierre-Luc Bertrand
4

Mi "reglas generales"
TUN: si SOLO necesita acceso a recursos conectados directamente a la máquina del servidor OpenVPN en el otro extremo, y no hay problemas de Windows. Un poco de creatividad aquí puede ayudar, al hacer que los recursos "parezcan" ser locales para el servidor OpenVPN. (los ejemplos pueden ser una conexión CUPS a una impresora de red, o un recurso compartido de Samba en otra máquina MONTADA en el servidor OpenVPN).

TAP - si necesita acceso a múltiples recursos (máquinas, almacenamiento, impresoras, dispositivos) conectados a través de la red en el Otro final. TAP también puede ser requerido para ciertas aplicaciones de Windows.


Ventajas:
TUN normalmente limita el acceso VPN a una sola máquina (dirección IP) y, por lo tanto (presumiblemente), una mayor seguridad a través de una conectividad limitada a la red del lado lejano. La conexión TUN creará menos carga en el túnel VPN y, a su vez, en la red del lado lejano porque solo el tráfico hacia / desde la única dirección IP cruzará la VPN hacia el otro lado. Las rutas IP a otras estaciones en la subred no están incluidas, por lo que el tráfico no se envía a través del túnel VPN y es posible que haya poca o ninguna comunicación más allá del servidor OpenVPN.

TAP: generalmente permite que los paquetes fluyan libremente entre los puntos finales. Esto proporciona la flexibilidad de la comunicación con otras estaciones en la red del lado lejano, incluidos algunos métodos utilizados por el software anterior de Microsoft. TAP tiene las exposiciones de seguridad inherentes involucradas con la concesión de acceso externo "detrás del firewall". Permitirá que fluyan más paquetes de tráfico a través del túnel VPN. Esto también abre la posibilidad de conflictos de direcciones entre los puntos finales.

No sondiferencias en la latencia debido a la capa de pila, pero en la mayoría de los escenarios de usuario final, la velocidad de conexión de los puntos finales es probablemente un contribuyente más significativo a la latencia que la capa de pila particular de la transmisión. Si la latencia está en cuestión, podría ser una buena idea considerar otras alternativas. Los multiprocesadores actuales de nivel GHz normalmente superan el cuello de botella de la transmisión a través de Internet.

"Mejor" y "Peor" no son definibles sin un contexto.
(Esta es la respuesta favorita del consultor, "Bueno, eso depende ...")
¿Es un Ferrari "mejor" que un camión volquete? Si está tratando de ir rápido, puede ser; pero si está tratando de transportar cargas pesadas, probablemente no.

Deben definirse restricciones como "necesidad de acceso" y "requisitos de seguridad", así como definir restricciones como el rendimiento de la red y las limitaciones del equipo, antes de que uno pueda decidir si TUN o TAP se adapta mejor a sus necesidades.

barítono antiguo
fuente
2

Configurar TAP casi no requiere trabajo adicional por parte de la persona que lo configura.

Por supuesto, si sabes cómo configurar TUN pero no entiendes lo que estás haciendo y simplemente siguiendo un tutorial de tun, estarás luchando para configurar TAP, pero no porque sea más difícil sino porque no sabes lo que estás haciendo. haciendo. Lo que fácilmente puede conducir a conflictos de red en un entorno TAP y luego parece que es más complicado.

De hecho, si no necesita un tutorial porque sabe lo que está haciendo, configurar tap toma tanto tiempo como configurar tun.

Con Tap hay muchas soluciones sobre subredes, descubrí que la forma más fácil es usar una subred de clase B. sitio1 (red1) usando 172.22.1.0/16 sitio2 (red2) usando 172.22.2.0/16 sitio3 usando 172.22.3.0/16 etc.

configura el sitio1 con el servidor oVPN y le da a los clientes el rango de IP 172.22.254.2 - 172.22.254.255/16 para que pueda tener más de 200 clientes ovpn (subredes) cada subred puede tener más de 200 clientes en sí mismo. Tiene un total de 40,000 clientes que puede manejar (dudo que oVPN pueda manejar eso, pero como puede ver, configurar una subred adecuada le dará más de lo suficiente como probablemente necesite)

usa un toque y todos los clientes están juntos como en una gran red corporativa.

SI, sin embargo, cada sitio tiene su propio DHCP, y debería tenerlo, debe asegurarse de usar ebtables o iptables o dnsmasq para bloquear la distribución de dhcp para volverse loco. Sin embargo, ebtables ralentizará el rendimiento. usando dnsmasq dhcp-host = 20: a9: 9b: 22: 33: 44, ignorar, por ejemplo, será una tarea enorme de configurar en todos los servidores dhcp. sin embargo, en el hardware moderno, el impacto de los ebtables no es tan grande. solo 1 o 2%

la sobrecarga del grifo, aproximadamente 32 para el tun, tampoco es un gran problema (podría estar en redes no encriptadas) pero en redes encriptadas es generalmente el AES el que causará la desaceleración.

En mi wrt3200acm, por ejemplo, sin cifrar, obtengo 360Mbps. El uso de cifrado se reduce a 54-100 Mbps dependiendo del tipo de cifrado que elija), pero openvpn no hace cifrado en 1500 y un segundo cifrado en la sobrecarga de 32. En su lugar, realiza un cifrado de 1 vez en 1500 + 32 por encima.

Entonces el impacto aquí es mínimo.

En el hardware más antiguo, es posible que note más el impacto, pero en el hardware moderno realmente se reduce al mínimo.

El cifrado entre 2 máquinas virtuales con soporte AES me lleva a mi ovpn con TAP a 120-150Mbps.

¡Algunos informan que los enrutadores dedicados CON soporte de cifrado de hardware AES alcanzan hasta 400Mbps! 3 veces más rápido de lo que puede hacer un i5-3570k (que en mi sistema de prueba no podía superar 150Mbps al 100% de la utilización de 1 núcleo) Mi otro extremo: E3-1231 v3, luego fue aproximadamente al 7% de utilización de la CPU, alrededor Se utilizó el 25% del núcleo que usaba openvpn. Por lo tanto, el E3 probablemente podría aumentar la conexión de 3 a 4 veces.

entonces tendría algo entre 360Mbps y 600Mbps con una conexión entre la CPU E3-1231 v3 haciendo clic en el cifrado AES265, auth SHA256 y ta.key, certificados tls-cipher También utilicé el TLS-DHE-RSA-WITH-AES- más alto 256-SHA256

Para señalar esto, con tap: wrt3200acm obtiene hasta 70-80mbps con cifrado. i5-3570k llega a 120-150 con cifrado. E3-1231 v3 obtiene al menos 360Mbps con cifrado (esto se interpola a partir de mis hallazgos con los casos 1 y 2 porque no tenía 2 E3-1231 v3 para probar).

Estos son mis hallazgos basados ​​en la copia de Windows a Windows entre 2 clientes en 2 subredes diferentes conectadas por openvpn TAP

Vincent
fuente
-1

Si entonces, ¿por qué qué, cuánto tienes? Utilizaría TAP, explícitamente porque las capas de los paquetes continúan con mucha menos latencia y pérdida de transmisión, lo que disminuye con este método. Sin embargo, solo con la capa 3, esto afecta cualquier efecto aparente en el funcionamiento de la VPN, especialmente el aspecto de túnel y qué IP se permiten a través de direcciones asignables. El uso de UDP posiblemente introduce otra situación en la que necesitaría decidir cuál es la mejor ruta para usted. Cada red es diferente y requiere un conjunto único de parámetros. Espero que esto ayude.

Regnald Thorington
fuente
1
Bastante confuso. Considere limpiarlo, explicar las diferencias que importan y eliminarlas.
vonbrand