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.
10.241.0.0/16 via 192.168.88.33
10.241.0.0/16 <--> 192.168.88.0/24
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
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 TRACE: " --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.
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.
sudo iptables -t nat -L POSTROUTING -n --line-numbers sudo iptables -t nat -D POSTROUTING <número de línea>
sudo iptables -t nat -S
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
Para mantener la configuración:
sudo apt install iptables-persistent sudo iptables-save | sudo tee /etc/iptables/rules.v4 > /dev/null
Evitar tener múltiples reglas `SNAT` que afecten la misma subred y salida. Documentar cambios en el Mikrotik (rutas, firewall) para trazabilidad.
El host `srv05` actúa como gateway entre la red VPN de Zerotier (`10.241.0.0/16`) y la red LAN del homelab (`192.168.88.0/24`). Para habilitar esta conectividad, se configuraron reglas de IPTables tanto en la tabla `filter` como en `nat`, y se verificó el ruteo en el router Mikrotik.
# Tabla filter -A FORWARD -s 10.241.0.0/16 -d 192.168.88.0/24 -j ACCEPT -A FORWARD -s 192.168.88.0/24 -d 10.241.0.0/16 -j ACCEPT # Tabla nat -A POSTROUTING -s 10.241.0.0/16 -o lxcbr0 -j SNAT --to-source 192.168.88.33
Agregar una regla temporal al inicio de la cadena FORWARD para ver todo el tráfico que pasa (no solo el dropeado):
sudo iptables -I FORWARD 1 -j LOG --log-prefix "FORWARD TRACE: " --log-level 4
Esto logueará *todo* el tráfico que pase por FORWARD, no solo lo que se dropea. Ideal para observar si el tráfico llega pero no coincide con alguna regla `ACCEPT`.
Ver los logs:
tail -f /var/log/syslog | grep "FORWARD TRACE:"
Once you've found the issue, remember to remove the logging rule to avoid excessive log entries:
sudo iptables -D FORWARD -j LOG --log-prefix "FORWARD TRACE: " --log-level 4
sysctl net.ipv4.ip_forward sudo sysctl -w net.ipv4.ip_forward=1
Para hacerlo persistente:
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo iptables -t nat -S
Eliminar entradas incorrectas:
sudo iptables -t nat -D POSTROUTING -s 10.241.0.0/16 -o lxcbr0 -j SNAT --to-source 192.168.88.84
ip route
Debe haber rutas activas hacia ambas redes (`10.241.0.0/16` y `192.168.88.0/24`), y las interfaces deben estar UP (`ip a`).
`10.241.0.0/16 → vía 192.168.88.33`
Este anexo forma una guía de referencia rápida para resolver problemas de enrutamiento y NAT entre una red VPN virtualizada y un entorno de red de contenedores.