Tailscale Subnet Router
Los que nos metemos en esto del HomeLab o tenemos algún servidor en casa sabemos que lidiar con la red a veces es un dolor de cabeza, ¿verdad? Es esa eterna lucha con las operadoras: que si la IP pública dinámica, que si el temido CGNAT que te esconde detrás de otros diez usuarios... ¡Un rollo! Y bueno, ni hablemos de exponer tu red privada de casa al mundo. ¡Eso es como dejar la llave debajo del felpudo!
La Solución es Simple (y Se Llama Tailscale)
Por eso, creo que la jugada más inteligente para no complicarnos la vida es montar una VPN. Opciones hay muchísimas, ¡claro!, pero vamos a elegir una que es un verdadero caramelo: Tailscale.
Tailscale es, de verdad, una pasada. Es una herramienta que te monta una Red Privada Virtual (VPN) usando la tecnología WireGuard. ¿Lo mejor? Es tan fácil de instalar y de gestionar que olvídate de necesitar una IP pública estática o andar configurando servicios de DDNS rarísimos. Simplemente funciona, creando una malla privada entre todos tus dispositivos.
El objetivo aquí es usar un nodo de nuestra red (un PC, una Raspberry Pi, etc.) como Subnet Router (o Enrutador de Subred). ¿Qué significa esto? Pues que usaremos ese equipo como puerta de enlace para que toda tu red local (192.168.0.0/24, por ejemplo) sea accesible desde cualquier sitio.
Pero, ¡ojo!, al configurarlo, la consola te da un par de toques de atención. Vamos a verlos y a quitarlos para siempre.
Las Dos Advertencias de Tailscale (y Por Qué Son Importantes)
Cuando ejecutas el comando mágico para anunciar tu subred, Tailscale es muy claro:
root@Tailscale:~# tailscale up --advertise-routes 192.168.0.0/24 ...
Warning: IP forwarding is disabled, subnet routing/exit nodes will not work.
Warning: UDP GRO forwarding is suboptimally configured on eth0...
Esto es lo que nos está diciendo nuestro sistema:
- IP Forwarding Disabled (¡CRÍTICO!): El corazón de Linux está dormido. No está permitiendo que el tráfico que le llega por un sitio (Tailscale) lo reenvíe a otro (tu red local). Esto es un freno total. Sin esto, no funciona.
- UDP GRO Suboptimally Configured (RENDIMIENTO): Esto es un tema más fino, pero clave para que la cosa vaya fluida. Nos avisa de que hay una configuración de red interna (llamada GRO) que está haciendo que el tráfico sea más lento de lo que debería, sobre todo cuando hablamos de UDP, que es el pan de cada día de Tailscale.
Vamos a hacer que estas correcciones sean permanentes. ¿A quién le gusta repetir comandos cada vez que reinicia? ¡A nadie!
Solución 1: Despertando el Corazón de Linux (IP Forwarding)
El reenvío de IP es obligatorio. Es como decirle al sistema: "Oye, si te llega un paquete para otro lado, ¡no lo tires! ¡Reenvíalo!".
El error del "Comando Rápido" 😬
Mucha gente te dirá: $sysctl -w net.ipv4.ip_forward=1.
Sí, funciona... hasta que reinicias. En cuanto el sistema arranca de nuevo, olvida el comando y tienes que volver a escribirlo. ¡Qué pereza!
La Solución Definitiva (con sysctl.conf)
Para que esta configuración se mantenga para siempre, tenemos que grabarla en piedra, o bueno, en el archivo de configuración del sistema (/etc/sysctl.conf).
Guardas (Ctrl+O, Enter, Ctrl+X) y luego le dices al sistema que aplique los cambios inmediatamente, sin reiniciar:
sudo sysctl -p
Busca la línea de reenvío y asegúrate de que tiene un 1. Si está comentada (con una #), quítale el símbolo o añádela al final si no está:
net.ipv4.ip_forward = 1
Abre el archivo. Yo uso nano, que es fácil de manejar:
sudo nano /etc/sysctl.conf
¡Listo! El reenvío de IP ya es permanente. ¡Adiós, primera advertencia!
Solución 2: Pisando el Acelerador (Optimización del GRO)
Ahora vamos a por el rendimiento. Si quieres que tu conexión Tailscale vuele, esta es la clave. Necesitamos una herramienta llamada ethtool.
Paso 1: Instalamos ethtool
Si no la tienes, toca instalarla. ¡Ojo! Aquí es donde tienes que asegurarte de que tu DNS está funcionando. Si no puedes acceder a internet, no podrás instalar nada.
# Para sistemas como Debian o Ubuntu
sudo apt update
sudo apt install ethtool
Paso 2: Hacemos la Corrección Permanente con systemd
De nuevo, ejecutar $ethtool -K eth0 gro off solo dura hasta que reinicies. Para que sea permanente, vamos a crear un pequeño servicio que se ejecute en el arranque.
A. Creamos el Script de Configuración
Un pequeño guion que hace la magia de la optimización:
sudo nano /usr/local/bin/config-eth0-tailscale.sh
El contenido es muy simple (ajusta eth0 si tu interfaz de red se llama distinto):
#!/bin/bash
# Deshabilita GRO para mejorar el rendimiento de reenvío UDP para Tailscale
/sbin/ethtool -K eth0 gro off
Le damos permiso para que se pueda ejecutar:
sudo chmod +x /usr/local/bin/config-eth0-tailscale.sh
B. Creamos el Servicio systemd
Ahora le decimos a Linux que ejecute ese script al iniciar:
sudo nano /etc/systemd/system/ethtool-gro-fix.service
Pegamos esta configuración:
[Unit]
Description=Configura ethtool para deshabilitar GRO en eth0 para Tailscale
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/config-eth0-tailscale.sh
StandardOutput=journal
[Install]
WantedBy=multi-user.target
C. Activamos y Lanzamos el Servicio
Finalmente, cargamos y activamos el servicio:
sudo systemctl daemon-reload
sudo systemctl enable ethtool-gro-fix.service # Para que se ejecute en cada inicio
sudo systemctl start ethtool-gro-fix.service # Para ejecutarlo ahora mismo
¡Perfecto! Ya tienes el rendimiento a tope y de forma permanente.
🎉 ¡El Final Feliz!
Ya tienes tu servidor Tailscale configurado de forma robusta, que sobrevive a reinicios y va rapidísimo.
Solo te queda un paso final:
- Ve a la consola de administración de Tailscale (la ACL/admin console) y aprueba la ruta de subred que anunciaste (
192.168.0.0/24). ¡Es la luz verde!
Vuelve a ejecutar el comando en tu servidor, pero ya sin el --reset (porque ya hicimos todo lo duro)
root@Tailscale:~# tailscale up --advertise-routes 192.168.0.0/24 --advertise-exit-node
¡Y ya está! Tu Subnet Router está listo para la batalla. Ahora sí puedes acceder a tu red desde cualquier parte del mundo con total tranquilidad. ¡A disfrutar del acceso remoto!
El Viaje del Aprendizaje: Un Agradecimiento a la Comunidad
Para ser totalmente honesto, no soy un experto en esto, ¡ni mucho menos! Soy, como tú, alguien a quien le encanta curiosear y aprender. Y en este mundillo, como en casi todo, ya hay gente que recorrió el camino antes que nosotros y que lo explica de maravilla.
Yo solo he puesto en práctica lo que he aprendido, lo he resumido para que sea fácil de digerir y he documentado las soluciones concretas a los pequeños tropiezos que me encontré en el camino.
Si quieres profundizar de verdad en el tema, entender por qué funcionan estos comandos y ver otras perspectivas, te invito de corazón a que visites los siguientes videos y sus canales. A mí me ayudaron muchísimo a que todo esto funcionara, ¡y seguro que a ti también!