Tratar tun0 y un protocolo VPN como una sola cosa lleva a la gente al registro equivocado. La interfaz es una frontera local donde un programa del espacio de usuario intercambia paquetes IP con el núcleo. El protocolo es lo que ese programa hace con los paquetes una vez los tiene: transporte, autenticación, cifrado y un par. Crear el dispositivo no elige nada de eso.

Dos componentes, una sola ruta de paquetes

El núcleo escribe un paquete IP en el dispositivo y el programa lo lee de un descriptor de archivo. En la otra dirección el programa escribe un paquete de vuelta y el núcleo lo enruta como si hubiera llegado por una interfaz real. TUN transporta IP, mientras que TAP transporta tramas Ethernet. Leer un paquete en esa frontera muestra el entramado, que es exactamente para lo que sirve el dispositivo.

Todo lo que hay más allá de esa frontera es asunto del programa. Dos programas pueden usar el mismo concepto de interfaz y hacer cosas completamente distintas con los paquetes. El dispositivo en sí no tiene opinión sobre lo que pasa después. El descriptor de archivo es el único asidero que el programa tiene del lado del núcleo.

Cree el dispositivo y luego observe la frontera

Cree un dispositivo a propósito cuando pruebe la frontera. Un dispositivo persistente sobrevive al proceso que lo creó, lo que resulta útil para experimentos y una fuente habitual de confusión después. Revise las banderas y el propietario antes de culpar a la VPN.

sudo ip tuntap add dev tun9 mode tun user alice
ip -d link show tun9

El detalle del enlace muestra el tipo de dispositivo y el propietario asociado. Si ningún proceso lo tiene abierto, los paquetes que se escriben en él no van a ninguna parte. Un dispositivo sin proceso asociado puede parecer sano en un listado de enlaces mientras no pasa nada.

Lo que el nombre de la interfaz no puede prometer

El nombre de la interfaz no dice nada sobre el cifrado ni la autenticación. Un programa puede envolver los paquetes en TLS, en un protocolo propio, en IPsec o en nada. Elegir TUN en lugar de TAP cambia el entramado en la frontera, no el diseño de seguridad. La elección de entramado es real, y es mucho menor que la cuestión de seguridad.

La detección funciona igual: un observador ve el protocolo exterior en el cable, no una etiqueta que diga qué dispositivo local lo produjo. Un túnel que parece otra cosa lo hace por su protocolo exterior, no por el nombre de su interfaz. Un observador no puede ver qué dispositivo local produjo un paquete, solo cómo es el paquete. Mantenga esas dos preguntas separadas cuando compare productos, porque una respuesta nunca implica la otra.

Ajuste la solución a la etapa que falla

Separe las etapas de fallo cuando algo se rompe. Un dispositivo ausente, un error de permisos y un inicio de sesión rechazado producen pruebas y soluciones distintas. Lea primero el estado local, luego el registro del propio programa y luego la visión del par. Lea los tres antes de cambiar nada.

ip -d link show tun0
journalctl -u openvpn-client@corp --since '10 min ago'

Si el dispositivo existe y un proceso lo sostiene, la frontera local funciona y el problema está más allá. Si falta el dispositivo, ninguna cantidad de comprobación de credenciales ayudará. Una etapa que puede nombrar es una etapa que puede probar. La documentación de TUN/TAP describe la frontera y el modelo del dispositivo.

Artículos relacionados