Obsidean_VM/01-Documentation/Routers/Zero-Tier ONE - Lan NAT.md

8.3 KiB


Route between ZeroTier and Physical Networks - ZeroTier Documentation

Important Points:


  • Add clients
    • HASS
      • Enable Bridge mode on the ZeroTier Central
    • PC

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

  1. Visión general
  2. Requisitos previos
  3. Instalación de add-ons necesarios
  4. Configuración de ZeroTier
  5. Configuración de rutas en ZeroTier Central
  6. Configuración de iptables para NAT
  7. Configuración del cliente Windows
  8. Pruebas y verificación
  9. 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

  1. Abrir Home Assistant y navegar a ConfiguraciónAdd-ons
  2. Instalar los siguientes add-ons:
    • ZeroTier One (del repositorio Community Add-ons)
    • Advanced SSH & Web Terminal (del repositorio Community Add-ons)
  3. Configurar el add-on Advanced SSH & Web Terminal:
    • Editar la configuración del add-on
    • En la sección packages:, añadir iptables
    • Guardar y reiniciar el add-on

4. Configuración de ZeroTier

  1. Crear una cuenta en ZeroTier Central (https://my.zerotier.com) si aún no tienes una
  2. Crear una nueva red (botón "Create Network")
  3. Anotar el Network ID (16 caracteres alfanuméricos)
  4. 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

  5. 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

  1. En la red ZeroTier, ir a la sección "Managed Routes"
  2. 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)
  3. Guardar los cambios

6. Configuración de iptables para NAT

  1. Verificar que el forwarding de IP está habilitado:

    bash

    cat /proc/sys/net/ipv4/ip_forward
    

    Debería devolver 1. Si devuelve 0, necesitarás habilitarlo.

  2. 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)
  3. 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
    
  4. 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
  1. Crear una automatización en Home Assistant para ejecutar el script al inicio:
    • Ir a ConfiguraciónAutomatizaciones

    • 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

  1. Descargar e instalar ZeroTier One desde https://www.zerotier.com/download/
  2. 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"
  3. Autorizar el nodo del cliente en ZeroTier Central
  4. Verificar que se le ha asignado una IP en la red ZeroTier

8. Pruebas y verificación

  1. 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.

  2. Probar la conectividad con la IP local de Home Assistant:

    ping 192.168.88.130
    

    Debería responder también.

  3. 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.

  4. 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.