BandaAncha

  • 🔍 en 📰 artículos ⏎
  • 🔍 en 💬 foros ⏎
  • 🔍 en 👇 este 💬 foro ⏎
  • 🔍 en 👇 este 💬 tema ⏎
Regístrate Regístrate Identifícate Identifícate
💡

Crea una red VPN de forma sencilla y rápida con Tailscale

Bramante
3
Logo de Tailscale

Os quería hablar de Tailscale, porque estoy seguro de que puede ser de utilidad para muchos que se encuentren en mi situación.

Contexto: Hace unos meses me mudé a una población pequeña donde la única posibilidad de conexión a Internet que no sea inalámbrica es la fibra de un proveedor que presta servicio a la urbanización. Fuera de ese proveedor no hay vida, no existe la posibilidad de contratar con ninguna operadora, sea ADSL, fibra o HFC, nada. La conexión se paga junto a la cuota de comunidad, no se contrata a título personal, una fibra para cada vivienda y el que no quiera, que no la use, pero la paga. La velocidad son 100 Mbps simétricos, pero claro, detrás de un precioso CG-NAT.

Hasta ahora, siempre había contratado con proveedores que no tuvieran CG-NAT porque necesito acceder a un NAS y una VPN que funcionan en el domicilio. Pregunté por la posibilidad de tener IP fuera del NAT y el coste eran 15€+IVA mensuales. Me planteé pagarlo como última opción, pero no sin antes probar alguna alternativa.

Lo primero que pensé es tirar de un VPS, montar un servidor VPN en él y con una Raspberry Pi, conectarme a dicho servidor dando entrada a mi LAN desde el exterior. Pero durante la búsqueda me encontré con opciones como ZeroTier, Ngrok o Tailscale.

Decidí probar con Tailscale ya que detrás de dicha empresa estaba Jason A. Donenfeld, el desarrollador de WireGuard. Y la verdad es que es una solución que a día de hoy solo me ha dado alegrías.

Qué es Tailscale

Así define Tailscale su producto.

Básicamente proveen de una red VPN cercana a "zero config". Tienen clientes para prácticamente todos los sistemas operativos, unos con GUI y otros vía CLI (comandos muy sencillos). La idea es instalar el cliente en cada máquina que quieras añadir a tu Tailnet, que es como ellos denominan a la red en la que incluirás tus máquinas.

Para verlo más claro, os explico cómo lo tengo montado yo:

  • Máquina 1 → Raspberry Pi (Debian 11) → Tailscale con las opciones "Subnets" y "Exit node" (más adelante os explico que son ambas cosas)
  • Máquina 2 → VPS en Alemania → Tailscale con "Exit Node" (me permite la salida de tráfico a través de esa máquina, con IP alemana).
  • Máquina 3 → VPS en EE.UU. → Tailscale con "Exit Node" (me permite la salida de tráfico a través de esa máquina, con IP estadounidense).
  • Máquina 4 → Mi móvil Android → Tailscale
  • Máquinas n → Diferentes clientes, tablets, portátiles, terminales de otros integrantes de la familia, etc.

Explico qué significa "Subnet" y "Exit Node":

La idea primordial de Tailscale es que cada cliente trabaje en la Tailnet de forma individual, moviendo la aplicación él mismo. Pero eso puede ser imposible en determinadas máquinas o nosotros, como administradores, podemos no querer a cada cliente corriendo la aplicación de Tailscale. Aquí entra el concepto "Subnet", con él, podemos hacer que una o varias IP de nuestra LAN se enruten vía un cliente.

Así, en mi caso, la máquina 1, la Raspberry, anuncia una "Subnet" 192.168.100.0/24. Con esto consigo que el resto de clientes puedan acceder, por ejemplo, a un NAS en mi LAN que está en la IP 192.168.100.2 sin necesidad de configuración alguna en dicho NAS.

Vamos a por "Exit Node": Este es sencillo, básicamente da salida al tráfico. En mi caso, la Raspberry utiliza mi conexión a Internet de casa para dar salida a WAN a todos los clientes de mi Tailnet que lo pidan. Cuando en mi móvil Android activo Tailscale, estoy saliendo a Internet desde casa. Del mismo modo, todos los clientes de mi Tailnet, pasan sus consultas DNS a Pi-Hole (corriendo en la Raspberry).

En el tiempo que llevo usando este servicio, han ido añadiendo características bastante útiles como "Funnel". Consiste en proveer de acceso desde Internet a la máquina que deseemos. Por ejemplo, estoy usando esto para permitir el acceso directo al servidor Plex que tengo en casa. Aún detrás del CG-NAT, puedo acceder a Plex directamente, sin usar el relay de Plex, de forma transparente. Aprovecho para comentar que tengo invitaciones disponibles para probar "Funnel", si alguien está interesado, que me la pida.

Un detalle importante a mencionar es que Tailscale apura todas la posibilidades para que la conexión entre clientes sea directa pero, de no lograrlo, encaminará automáticamente el tráfico a través de uno de sus DERP, básicamente relays desplegados por ellos.

¿Precio? Para un uso doméstico normal, gratuito con el plan "Free"

Como véis, es básicamente como montarse una red VPN con WireGuard pero de modo que la parte más técnica de la gestión y el despliegue, lo hagan terceros. Con todo el tocho, puede que me haya columpiado en algún concepto, ante cualquier duda, por aquí ando.

Os dejo un par de capturas de pantalla del panel de control y de las características que aún se encuentran en fase beta y/o alpha.

Panel de control de Tailscale donde se muestran los diferentes clientes añadido a la TailnetServicios que aún se encuentran en fase beta y/o alpha
lhacc
2

Me huele mal dejar partes tan esenciales de la configuración de red e interconexión de mis equipos en manos de un SaaS. Pero si a ti te sirve, adelante.

A mí wireguard me parece razonablemente fácil de instalar y configurar, especialmente si usas un algún script que encuentres por ahí.

🗨️ 1
Bramante

Lógicamente, al principio dudé, pero valoré quién estaba detrás del proyecto y la comodidad que me ofrecía y decidí probar.

Bandarako

La ves mejor que ZeroTier?

🗨️ 1
Bramante

Para mí, y por lo que poquito que probé ZeroTier, sí, me quedo con Tailscale.

Sin desmerecer a ZeroTier, que me parece también una gran solución.

superefren
1

Siempre he querido probar una VPN configurándola desde cero, pero para algunos aspectos soy un negado.

Creo que me animaré con posts como el tuyo. Muchas gracias @Bramante

bancho
1

También, si no os fiáis de Tailscale, hay un servidor OSS que es compatible con la mayoría de los clientes y soporta gran parte de las características. github.com/juanfont/headscale

Con instalarlo en un VPS o máquina que manejéis ya está. Al final si sólo lo tenéis haciendo de servidor de coordinación apenas consume recursos.

Otra cosa guay que tiene es hace no mucho pusieron servidores túnel DERP en Madrid por lo que aún entunelado el tráfico apenas gana latencia extra, eso sí, en velocidad está algo limitado. Pero aún habiendo cosas como CG-NAT a ambos lados es capaz de abrirse túneles perfectamente. Con Headscale te puedes montar tu propio servidor de tunel o usar los del propio Tailscale (aunque te recomiendan no usarlos pero nada te lo impide).

Y el otro tema es que, al menos por ahora, en el SaaS son bastante liberales en cuanto a los límites de los planes. Su target es vender a empresas con usuarios diferentes y reglas de firewall complejas, no tanto al uso doméstico, por lo que aunque te pases de dispositivos en el plan gratis no te cobran nada ni te dan ningún toque - a día de hoy, al menos.