This is an old revision of the document!
VPN no puede acceder a la LAN (srv05 como gateway Zerotier)
Contexto
El servidor `srv05` actúa como puente entre la red LAN local `192.168.88.0/24` y la red VPN de Zerotier `10.241.0.0/16`, usando la interfaz `ztkse3ixxp`.
El objetivo era permitir que nodos de la VPN accedan a dispositivos dentro de la LAN hogareña, como por ejemplo un Raspberry Pi.
Verificaciones básicas
- ✅ `srv05` tiene IP `192.168.88.33` asignada a `lxcbr0`
- ✅ `ztkse3ixxp` está UP y tiene una IP válida `10.241.x.x`
- ✅ El Mikrotik tiene una ruta estática:
10.241.0.0/16 via 192.168.88.33
- ✅ El Mikrotik permite forwarding en ambos sentidos:
10.241.0.0/16 <--> 192.168.88.0/24
- ✅ Desde una máquina en la LAN se puede pingear a hosts de la VPN
- ✅ El `iptables` de `srv05` tiene reglas de FORWARD adecuadas:
sudo iptables -L FORWARD -n -v --line-numbers -A FORWARD -s 10.241.0.0/16 -d 192.168.88.0/24 -i ztkse3ixxp -o lxcbr0 -j ACCEPT -A FORWARD -s 192.168.88.0/24 -d 10.241.0.0/16 -i lxcbr0 -o ztkse3ixxp -m state --state RELATED,ESTABLISHED -j ACCEPT
Problema detectado
Desde la VPN no se podía acceder a la LAN (el tráfico era dropeado en `srv05`). Se verificó el tráfico con:
sudo iptables -I FORWARD 1 -j LOG --log-prefix "FORWARD DROP: " --log-level 4 tail -f /var/log/syslog | grep "FORWARD DROP:"
Se encontró que el paquete llegaba por `ztkse3ixxp` y salía por `lxcbr0`, pero era dropeado.
Causa raíz
Existía una regla obsoleta en `iptables -t nat`:
-A POSTROUTING -s 10.241.0.0/16 -o lxcbr0 -j SNAT --to-source 192.168.88.84
Esa IP ya no estaba asignada a ninguna interfaz, lo que provocaba un SNAT inválido y rompía el tráfico.
Solución aplicada
- Se eliminó la regla inválida:
sudo iptables -t nat -L POSTROUTING -n --line-numbers sudo iptables -t nat -D POSTROUTING <número de línea>
- Verificación posterior:
sudo iptables -t nat -S
- Se comprobó que el tráfico funciona incluso sin SNAT, dado que:
- El Mikrotik enruta correctamente.
- No se necesita ocultar el origen.
- Es mejor para trazabilidad (los logs muestran la IP real del origen).
Comandos útiles para este troubleshooting
ip a # Ver interfaces y direcciones ip r # Ver rutas ip route get <IP> # Ruta efectiva hacia un destino sudo iptables -L FORWARD -v -n --line-numbers sudo iptables -t nat -L POSTROUTING -n --line-numbers sudo iptables -t nat -S sudo iptables -S
Notas finales
Para mantener la configuración:
sudo apt install iptables-persistent sudo iptables-save > /etc/iptables/rules.v4
Evitar tener múltiples reglas `SNAT` que afecten la misma subred y salida. Documentar cambios en el Mikrotik (rutas, firewall) para trazabilidad.
