Skip to content

Network reference

Datos canónicos de red. Para diagramas y flujos, ver Architecture → Network map.

Subnet

  • LAN: 192.168.0.XXX/24
  • Gateway: 192.168.0.XXX (router Movistar R2)
  • DHCP range: 192.168.0.XXX — 192.168.0.XXX (clientes dinámicos)
  • Reservas estáticas: 192.168.0.XXX — 99 y 192.168.0.XXX — 254
  • Broadcast: 192.168.0.XXX

Hosts críticos

IP Host Servicio principal
192.168.0.XXX Router Movistar R2 Gateway WAN, NAT, DHCP
192.168.0.XXX pmx-50 Proxmox nodo Ryzen
192.168.0.XXX pmx-51 Proxmox nodo Celeron
192.168.0.XXX LXC 101 hermesbot Hermes agent
192.168.0.XXX VM 171 Home Assistant
192.168.0.XXX LXC 172 ha-ml
192.168.0.XXX LXC 186 Proxmox Backup Server
192.168.0.XXX LXC 251 RAG + Kiwix
192.168.0.XXX LXC 200 n8n + alert forwarder
192.168.0.XXX Raspi Pi-hole DNS
192.168.0.XXX VM 208 Docker hub (Caddy + obs + apps)
192.168.0.XXX LXC 110 tv-gw (LG TV monitoring)
192.168.0.XXX LG TV (monitorizada vía tv-gw)
192.168.0.XXX NAS TerraMaster F4-423
192.168.0.XXX LXC 270 Caddy primary
192.168.0.XXX LXC 271 Caddy secondary
192.168.0.XXX VIP keepalived ingress unificado

DNS

Pi-hole (.204)

  • Primary DNS para toda la LAN (vía DHCP option 6).
  • Sinkhole de listas estándar (StevenBlack hosts, etc.).
  • Override monxas.casa en dnsmasq config: address=/monxas.casa/192.168.0.XXX # pre-F4 address=/monxas.casa/192.168.0.XXX # post-F4 (VIP) Esto manda cualquier subdominio *.monxas.casa a la IP local del ingress, evitando el round-trip a CF cuando estamos en LAN.

Cloudflare

  • Zona monxas.casa gestionada en CF.
  • Registro wildcard *.monxas.casa (CNAME) → <tunnel-uuid>.cfargotunnel.com.
  • Vigente desde 2026-05-20: ya no hace falta crear DNS record por servicio nuevo.
  • TTL: Automatic (CF managed).

Hostnames locales (no .casa)

Algunos hosts tienen entradas adicionales en /etc/hosts del Pi-hole:

192.168.0.XXX pmx-50 pmx-50.lan 192.168.0.XXX pmx-51 pmx-51.lan 192.168.0.XXX nas nas.lan 192.168.0.XXX mediasrv mediasrv.lan

VIPs

VIP keepalived priority Backed by Purpose
192.168.0.XXX MASTER 150, BACKUP 100 LXC 270 (pmx-50) → LXC 271 (pmx-51) Caddy HA ingress

track_process caddy weight -20: si Caddy muere en MASTER, prioridad baja a 130 y BACKUP (100) sigue siendo BACKUP… mal. Ver keepalived.conf: en realidad el weight se debe restar de la BACKUP para que el failover funcione, o usar track_script con un check de TCP :443. Validar empíricamente durante el Caddy failover drill.

CF Tunnel

  • Tunnel UUID: gestionado en CF dashboard, credentials en secrets/cloudflared.sops.yaml.
  • Daemon: LXC 123 (pmx-51), cloudflared service.
  • Config: /etc/cloudflared/config.yaml — generado por homelab-ctl.py.
  • Ingress regla por defecto post-F4: ```yaml ingress:
    • hostname: "*.monxas.casa" service: https://192.168.0.XXX:443 originRequest: noTLSVerify: true # Caddy serve internal TLS
    • service: http_status:404 ```

Puertos en el router

Solo CF Tunnel out (443 saliente). Cero port-forwards abiertos en WAN. Esto es feature, no bug:

  • Toda exposición externa va por CF (DDoS protection, CF Access SSO).
  • Si CF cae, todo lo externo cae — riesgo aceptado.

VPN (WireGuard)

  • Server: LXC 155 (pmx-51).
  • Listen port: 51820 UDP (sí, hay un solo port-forward UDP — único en el router).
  • Subnet WG: 10.X.X.X/24 (TBD confirmar).
  • Clientes: móviles + Macs cuando se viaja.
  • Routing: full tunnel (todo el tráfico) o split (solo 192.168.0.XXX/24 + *.monxas.casa).

Cosas que NO existen

  • VLANs — red plana intencionalmente.
  • IPv6 LAN — solo IPv4 internamente; CF maneja dual-stack externo.
  • mDNS/Bonjour cross-subnet — irrelevante (un solo subnet).
  • Multicast routing — keepalived usa VRRP en mismo subnet, no necesita.