*** ## Configurazione Attuale in ZeroTier Central - **Rete ZeroTier**: Configurata con routing - **Rotta configurata**: 172.16.0.0/16 via 10.147.18.24 - **Home Assistant**: IP ZeroTier 10.147.18.24 - **Impostazioni nodo Home Assistant**: "Allow Ethernet Bridging" abilitato ![[Pasted image 20250501184158.png]] Aggiungere questa ruta o due o tre tipo 172.16.==1==.0/24 via 10.147.18.24 + 172.16.==17==.0/24 via 10.147.18.24 ![[Pasted image 20250501184305.png]] ## Considerazioni sulle Subnet La subnet 172.16.0.0/16 è molto ampia (65.536 indirizzi IP). Per una rete domestica, questo potrebbe essere eccessivo e presenta alcuni svantaggi: - **Sicurezza**: Espone potenzialmente un intervallo molto più ampio di indirizzi rispetto a quelli necessari - **Prestazioni**: Le tabelle di routing con subnet più specifiche funzionano in modo più efficiente - **Organizzazione**: È più difficile gestire uno spazio di indirizzi così grande ### Alternative consigliate: - **172.16.x.0/24**: Dove "x" sarebbe un numero specifico per la rete locale (come 172.16.1.0/24). Questo fornirebbe 256 indirizzi, sufficienti per la maggior parte delle reti domestiche. - **172.16.0.0/20**: Se sono realmente necessari più indirizzi, questo fornirebbe 4.096 IP, che è comunque molto più specifico di /16. - Aggiungere questa ruta o due o tre tipo 172.16.==1==.0/24 via 10.147.18.24 + 172.16.==17==.0/24 via 10.147.18.24 ## Configurazione Necessaria su Home Assistant ### 1. Abilitare l'IP Forwarding ```bash echo 1 > /proc/sys/net/ipv4/ip_forward ``` * Questo nel tuo caso già e aposto. Per renderlo permanente, modificare `/etc/sysctl.conf` e aggiungere: ``` net.ipv4.ip_forward=1 ``` ### 2. Identificare le Interfacce di Rete Prima di configurare le regole NAT e firewall, è necessario identificare le interfacce di rete corrette: ```bash # Mostra tutte le interfacce di rete ip addr show ``` In questo output: - L'interfaccia ZeroTier avrà un nome come `zt0`, `zt1` o `ztxxxxx` (dove xxxxx è parte dell'ID di rete) - L'interfaccia di rete locale potrebbe NON essere `eth0`. Nei sistemi moderni, potrebbe essere chiamata: - `enp3s0`, `enp0s25`, `ens33` o simili (per Ethernet cablata) - `wlan0` o `wlp3s0` (per WiFi) - `br0` o `hassio` (se c'è un bridge di rete configurato) - `docker0` (se Docker è installato) È importante identificare correttamente l'interfaccia che connette Home Assistant alla rete locale (quella che ha l'indirizzo IP della rete locale, es. 172.16.x.x). ### 3. Regole NAT ```bash # Attivare MASQUERADE per consentire ai pacchetti dalla rete ZeroTier di uscire verso la rete locale iptables -t nat -A POSTROUTING -s 10.147.18.0/24 -d 172.16.0.0/16 -j MASQUERADE # Se si desidera anche l'accesso a Internet, aggiungere (sostituire enp3s0 con l'interfaccia di rete locale reale): iptables -t nat -A POSTROUTING -s 10.147.18.0/24 -o enp3s0 -j MASQUERADE # Per essere più specifici con l'interfaccia ZeroTier (sostituire zt0 con l'interfaccia ZeroTier reale): iptables -t nat -A POSTROUTING -i zt0 -o enp3s0 -j MASQUERADE ``` **non me ricordo se era enp3s0 pero me ricordo che non era eth0** ### 4. Regole Firewall ```bash # Consentire il traffico di inoltro dalla rete ZeroTier alla rete locale # (sostituire zt0 con l'interfaccia ZeroTier reale, enp3s0 con l'interfaccia di rete locale) iptables -A FORWARD -i zt0 -o enp3s0 -s 10.147.18.0/24 -d 172.16.0.0/16 -j ACCEPT # Consentire il traffico di ritorno # (sostituire enp3s0 con l'interfaccia di rete locale, zt0 con l'interfaccia ZeroTier) iptables -A FORWARD -i enp3s0 -o zt0 -s 172.16.0.0/16 -d 10.147.18.0/24 -m state --state RELATED,ESTABLISHED -j ACCEPT ``` ### 5. Salvare le Regole per la Persistenza dopo il Riavvio ```bash # Su sistemi basati su Debian iptables-save > /etc/iptables/rules.v4 # Oppure per Home Assistant OS, potrebbe essere necessario: iptables-save > /config/scripts/iptables-rules ``` Per rendere queste regole permanenti in Home Assistant, puoi creare un file in `/config/scripts/apply-iptables.sh`: ```bash #!/bin/bash # Script per applicare le regole iptables all'avvio # Abilitare l'IP forwarding echo 1 > /proc/sys/net/ipv4/ip_forward # Ripristinare le regole salvate iptables-restore < /config/scripts/iptables-rules exit 0 ``` Quindi rendilo eseguibile: ```bash chmod +x /config/scripts/apply-iptables.sh ``` E configuralo per l'esecuzione all'avvio in Home Assistant aggiungendo in `configuration.yaml`: ```yaml shell_command: apply_iptables: bash /config/scripts/apply-iptables.sh automation: - alias: Apply iptables at startup trigger: platform: homeassistant event: start action: service: shell_command.apply_iptables ``` ### 5. Script di Avvio Creare uno script per applicare queste regole dopo il riavvio. Può essere aggiunto alla configurazione di Home Assistant per l'esecuzione automatica. ## Note Importanti: - Regolare `10.147.18.0/24` in base alla subnet effettiva della rete ZeroTier - Modificare `eth0` con l'interfaccia di rete reale che Home Assistant utilizza per connettersi alla rete locale - Si consiglia di utilizzare una subnet più specifica per la rete locale (ad esempio 172.16.1.0/24 invece di 172.16.0.0/16) - Potrebbe essere necessario adattare le regole in base alla configurazione specifica della rete