8.3 KiB
Route between ZeroTier and Physical Networks - ZeroTier Documentation
Important Points:
- Add clients
- HASS
- Enable Bridge mode on the ZeroTier Central
- PC
- HASS
Be sure on the PC we have the metric to route to the HASS ip on ZeroTier
route add 192.168.88.0 mask 255.255.255.0 172.25.215.168 metric 1
On the HASS with the Advanced SSH & Web Terminal
- add ==iptables== to the packages
- on the terminal do:
iptables -A FORWARD -i end0 -o ztyxazlaou -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -s 172.25.0.0/16 -d 192.168.88.0/24 -j MASQUERADE
ztyxazlaou
is the netcard from the ZeroTier addon
Documentación: Configuración de ZeroTier en Home Assistant con NAT para acceso a red local
Índice
- Visión general
- Requisitos previos
- Instalación de add-ons necesarios
- Configuración de ZeroTier
- Configuración de rutas en ZeroTier Central
- Configuración de iptables para NAT
- Configuración del cliente Windows
- Pruebas y verificación
- Solución de problemas comunes
1. Visión general
Este documento detalla cómo configurar ZeroTier en Home Assistant para permitir el acceso remoto a toda la red local a través de un cliente ZeroTier. La configuración incluye la configuración de NAT (Network Address Translation) utilizando iptables para permitir que los dispositivos de la red ZeroTier se comuniquen con los dispositivos de la red local.
Diagrama de red
Cliente ZeroTier (172.25.77.122) <---> Internet <---> Home Assistant con ZeroTier (172.25.215.168) <---> Red local (192.168.88.0/24)
2. Requisitos previos
- Raspberry Pi ejecutando Home Assistant OS
- Acceso a la interfaz de administración de Home Assistant
- Cuenta en ZeroTier Central (https://my.zerotier.com)
Información de la red en este ejemplo
- Red local: 192.168.88.0/24
- Router local: 192.168.88.1
- IP local de Home Assistant: 192.168.88.130
- Red ZeroTier: 172.25.0.0/16
- IP ZeroTier de Home Assistant: 172.25.215.168
- IP ZeroTier del cliente Windows: 172.25.77.122
3. Instalación de add-ons necesarios
- Abrir Home Assistant y navegar a Configuración → Add-ons
- Instalar los siguientes add-ons:
- ZeroTier One (del repositorio Community Add-ons)
- Advanced SSH & Web Terminal (del repositorio Community Add-ons)
- Configurar el add-on Advanced SSH & Web Terminal:
- Editar la configuración del add-on
- En la sección
packages:
, añadiriptables
- Guardar y reiniciar el add-on
4. Configuración de ZeroTier
- Crear una cuenta en ZeroTier Central (https://my.zerotier.com) si aún no tienes una
- Crear una nueva red (botón "Create Network")
- Anotar el Network ID (16 caracteres alfanuméricos)
- Configurar el add-on ZeroTier en Home Assistant:
-
Abrir la configuración del add-on
-
Añadir el Network ID a la configuración:
yaml
networks: - 'tu_network_id_aquí' api_auth_token: ''
-
Guardar y reiniciar el add-on
-
- Autorizar el nodo de Home Assistant en ZeroTier Central:
- Ir a la página de la red en ZeroTier Central
- Buscar el nodo de Home Assistant (aparecerá con un nombre similar a su dirección MAC)
- Marcar la casilla "Auth" para autorizarlo
- Anotar la dirección IP asignada (en este caso 172.25.215.168)
5. Configuración de rutas en ZeroTier Central
- En la red ZeroTier, ir a la sección "Managed Routes"
- Añadir una nueva ruta:
- Destination: 192.168.88.0/24 (tu red local)
- Via: 172.25.215.168 (la IP ZeroTier de Home Assistant)
- Guardar los cambios
6. Configuración de iptables para NAT
-
Verificar que el forwarding de IP está habilitado:
bash
cat /proc/sys/net/ipv4/ip_forward
Debería devolver
1
. Si devuelve0
, necesitarás habilitarlo. -
Identificar las interfaces de red:
bash
ip -4 addr show
En este ejemplo:
- Interfaz de red local:
end0
(IP 192.168.88.130) - Interfaz ZeroTier:
ztyxazlaou
(IP 172.25.215.168)
- Interfaz de red local:
-
Configurar las reglas de iptables:
bash
# Permitir forwarding entre ZeroTier y la red local iptables -A FORWARD -i ztyxazlaou -o end0 -j ACCEPT iptables -A FORWARD -i end0 -o ztyxazlaou -m state --state ESTABLISHED,RELATED -j ACCEPT # Configurar NAT (masquerading) para los paquetes salientes iptables -t nat -A POSTROUTING -s 172.25.0.0/16 -d 192.168.88.0/24 -j MASQUERADE
-
Crear un script para hacer las reglas persistentes:
bash
mkdir -p /config/scripts
cat > /config/scripts/zerotier-nat.sh << 'EOF'
#!/bin/bash
# Limpiar reglas existentes para evitar duplicados
iptables -F FORWARD
iptables -t nat -F POSTROUTING
# Configurar forwarding
iptables -A FORWARD -i ztyxazlaou -o end0 -j ACCEPT
iptables -A FORWARD -i end0 -o ztyxazlaou -m state --state ESTABLISHED,RELATED -j ACCEPT
# Configurar NAT
iptables -t nat -A POSTROUTING -s 172.25.0.0/16 -d 192.168.88.0/24 -j MASQUERADE
# Registrar que el script se ha ejecutado
echo "ZeroTier NAT configurado el $(date)" >> /config/zerotier-nat.log
EOF
chmod +x /config/scripts/zerotier-nat.sh
- Crear una automatización en Home Assistant para ejecutar el script al inicio:
-
Ir a Configuración → Automatizaciones
-
Crear una nueva automatización:
- Disparador: "Start-up: Home Assistant started"
- Acción: "Call service: Shell command: Execute"
- Comando:
/config/scripts/zerotier-nat.sh
-
Añadir el shell command en configuration.yaml:
yaml
shell_command: zerotier_nat: /config/scripts/zerotier-nat.sh
-
7. Configuración del cliente Windows
- Descargar e instalar ZeroTier One desde https://www.zerotier.com/download/
- Unirse a la red ZeroTier:
- Hacer clic derecho en el icono de ZeroTier en la bandeja del sistema
- Seleccionar "Join Network"
- Introducir el Network ID y hacer clic en "Join"
- Autorizar el nodo del cliente en ZeroTier Central
- Verificar que se le ha asignado una IP en la red ZeroTier
8. Pruebas y verificación
-
Desde el cliente Windows, abrir un símbolo del sistema (CMD) y probar la conectividad:
ping 172.25.215.168
Debería responder la instancia de Home Assistant.
-
Probar la conectividad con la IP local de Home Assistant:
ping 192.168.88.130
Debería responder también.
-
Probar la conectividad con otros dispositivos de la red local:
ping 192.168.88.1
Debería responder el router u otros dispositivos de la red local.
-
Verificar que puedes acceder a servicios en la red local a través de sus direcciones IP.
9. Solución de problemas comunes
No hay conectividad con la red ZeroTier
- Verificar que ZeroTier está en ejecución en ambos extremos
- Verificar que ambos nodos están autorizados en ZeroTier Central
- Verificar que no hay firewalls bloqueando el tráfico UDP en el puerto 9993
Se puede hacer ping a la IP ZeroTier de Home Assistant pero no a la red local
- Verificar que la ruta está correctamente configurada en ZeroTier Central
- Verificar que el forwarding de IP está habilitado
- Verificar que las reglas de iptables están correctamente configuradas
- Comprobar los logs del sistema para errores relacionados con iptables
Las reglas de iptables no persisten después de un reinicio
- Verificar que el script se está ejecutando correctamente al inicio
- Comprobar los logs en
/config/zerotier-nat.log
- Asegurarse de que la automatización de Home Assistant está configurada correctamente
Conexión intermitente
- Verificar la calidad de la conexión a Internet
- Comprobar si hay otros servicios compitiendo por el ancho de banda
- Verificar si hay limitaciones de tráfico en el router
Este proceso te permite acceder de forma segura a tu red local a través de ZeroTier desde cualquier lugar, sin necesidad de abrir puertos en tu router ni configurar DNS dinámico.