Da studiare
--- [2026-08-19 - discusso] --- Split-horizon = stesso nome, risposta diversa a seconda di chi chiede (vista interna vs esterna).
STATO REALE del mio setup (verificato con dig, non dedotto): git.giobi.com -> 100.124.141.10 (IP Tailscale di tanuki) vault.giobi.com -> 100.81.194.35 (IP Tailscale di b2) immich.giobi.com -> 46.225.164.17 (efesto, pubblico) n8n / one -> 188.114.96.2 / 97.2 (proxy Cloudflare)
Quindi NON ho split-horizon: ho una vista sola che pubblica gli IP tailnet nel DNS pubblico. Non e' un buco: 100.64.0.0/10 e' CGNAT, non instradabile; Tailscale documenta il pattern e lo definisce 'relatively harmless'. Niente da correggere.
DUE COSE DA SAPERE:
- DNS REBINDING PROTECTION — molti resolver la applicano anche al range CGNAT. Quando succede il nome NON risolve, e sembra 'servizio giu'' invece che 'rete che blocca'. Se da un hotel o da un cliente git.giobi.com non risponde, NON e' Forgejo: e' il resolver. Questa e' la ricaduta pratica vera.
- Il DNS pubblico espone quali servizi interni esistono e su che nodo. Non sfruttabile, ma e' una mappa gratis per chiunque.
SERVIREBBE davvero solo se un servizio dovesse essere raggiungibile con lo STESSO nome sia da dentro (diretto) sia da fuori (via proxy). Oggi non e' il caso: i servizi o sono interni o sono pubblici, la divisione e' netta.
SE mai servisse, due vie senza montare un DNS:
- Tailscale Split DNS: nameserver personalizzato ristretto a giobi.com nella console admin
- Cloudflare Internal DNS: da poco general availability, split-horizon sullo stesso motore di policy del pubblico. La piu' coerente col resto del mio stack.
