Files
network-documentation/planificacion/mudanza-departamento.md

186 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Mudanza de Oficina → Departamento 2 Recámaras
> **Fecha**: Septiembre 2026
> **Estado**: 🟡 Planificación
> **Destino**: Departamento de 2 recámaras + sala
---
## 🏠 Distribución por Espacios
### Recámara 1 — Servidores, Impresoras 3D e Insumos
| Elemento | Notas |
|---|---|
| Rack 42U completo | TYAN #1, Cisco1 (Dell T430 #1), DellT430-2, Switch, OPNsense + equipo nuevo (TYAN #2, 3x UCS) |
| Minisplit **inverter** (confirmado) | Cubrirá la carga térmica de los servidores; dejar la unidad exterior en lugar ventilado |
| Impresoras 3D | Sobre mesa aparte, lejos del rack (polvo/vibración) |
| Insumos (filamento, repuestos) | Cerrados, lejos de humedad, sol y luz UV |
| Estantes / racks de pared | Para insumos y cajas |
**Restricciones críticas de esta habitación:**
1. **Piso / carga**: el rack lleno supera con facilidad los 300–500 kg (torres Dell T430 en bandeja, TYAN, UPS futuro). Ubicar **contra muro portante** y verificar con el arrendador/carpintería; en piso alto confirmar límite de carga del inmueble.
2. **Electricidad**: consumo estimado continuo:
- TYAN #1 + discos ZFS: ~500–800 W
- Cisco1 (Dell T430): ~300–600 W
- DellT430-2: ~300–600 W
- Impresoras 3D en impresión: 500–2000 W c/u
- Total pico: **3–5 kW**. Verificar con electricista el tablero del departamento; idealmente 2–3 circuitos dedicados con tierra física. Un departamento residencial típico (15–20 A por circuito a 127 V) **no soporta todo en un solo circuito**.
3. **Refrigeración**: los servidores disipan su consumo como calor (~2–3 kW continuos). Se instalará **minisplit inverter** en esta habitación (confirmado); capacidad recomendada **12 000 BTU mínimo** o la operación caerá por sobrecalentamiento en verano. El inverter es la mejor opción: mantiene temperatura estable sin ciclos encendido/apagado. ⚠️ Los minisplits (sala + servidores) deben ir en **circuitos separados** de los servidores si el tablero lo permite.
4. **Ruido**: los chassis 1U (TYAN, UCS) son muy ruidosos. Esta habitación debe estar **al lado opuesto** a la recámara de descanso y con puerta que cierre bien.
5. **Aire limpio**: no mezclar zona de impresión 3D con rack (filamentos/vapores y polvo afectan filtros y ventiladores).
### Recámara 2 — Descanso
- Espacio para **teclado musical** (clases de música): candidato natural para esta recámara, ya que el sonido no molestaría a las estaciones de trabajo de la sala; con auriculares es compatible con cualquier horario.
- Sin equipo de cómputo fijo (excepto quizá una TV).
- Verificar que la pared compartida con la recámara de servidores **no** sea la del rack.
- Considerar blackout y aislamiento de ruido si el A/C de la sala de servidores comparte pared.
### Exterior — Rack de Bicicletas
- **Rack de bicicleta instalado por afuera** del departamento (confirmado).
- Anclaje fuerte a muro/piso; si es área común, requiere aprobación de la administración del edificio.
- Candado de seguridad (los racks exteriores visibles son blanco frecuente de robo).
- Ojo con la logística de mudanza: verificar que el rack exterior no obstruya la ruta de entrada del equipo pesado (rack 42U, torres Dell T430).
### Sala — 3 Estaciones de Trabajo
| Elemento | Notas |
|---|---|
| 3 escritorios + 3 PCs | Conectados al switch por Cat6 (no WiFi para trabajo) |
| Minisplit **inverter** (confirmado) | Para confort de las estaciones de trabajo |
| Switch adicional pequeño (8p) en sala | Un solo troncal Cat6 hacia la recámara de servidores |
| Impresora de oficina | Puede ir aquí si es de uso diario |
**Cableado sala ↔ servidores:**
- En departamento no se puede picar pared; usar **canal de superficie estético (scoch/canalete)** o pase por techo/plafón si el arrendador lo permite.
- Troncal mínimo **2× Cat6** (principal + respaldo) entre sala y recámara de servidores.
---
## 📡 Internet y IP Pública
| Punto | Acción |
|---|---|
| Contratación | Agendar traslado o nueva línea de internet **antes** de mudar el rack (ventana de instalación 3–7 días) |
| Doble proveedor | Evaluar línea 2 (cable/fibra distinta) si la operación de clientes depende del enlace |
| IP pública nueva | Al instalar, correr `network-documentation/scripts/update-dns.sh` con el nuevo IP y revisar **todos** los registros A de Cloudflare (`consultoria-as.com`, `nexusautoparts.com.mx`) |
| VPN | Aprovechar la mudanza para levantar WireGuard (pendiente en seguridad) |
---
## 🚚 Plan de Migración Física
### Antes (T-3 a T-1 días)
- [ ] `vzdump` de **todas** las VMs críticas (proyectos, Caddy, Gitea, n8n, bases de datos) al storage Backup
- [ ] Copia externa del backup (disco USB o Cloudflare R2)
- [ ] Exportar configuración de Caddy (`Caddyfile`) y bases de datos (`mysqldump`/`pg_dump`)
- [ ] Etiquetar todo el cableado (foto del rack actual como referencia)
- [ ] Apagar impresoras 3D y limpiar (filamento removido, boquillas tapadas)
### Día de la mudanza
- [ ] Apagado limpio en orden: VMs/servicios → nodos Proxmox → switch/OPNsense
- [ ] Desconectar discos, sellar puertos libres, embalar:
- Rack: desmontar torres de bandejas; transportar torres **de pie**, sobre espuma
- Discos extra en caja antiestática con espuma
- Monitores/KVM en cajas originales o con amortiguación
- [ ] Transporte en vehículo cerrado, rack amarrado para que no vuelque
### Después (T+1 a T+3)
- [ ] Armar rack contra muro portante; conectar a tierra física
- [ ] Encendido en orden: OPNsense → switch → nodos Proxmox → VMs/servicios
- [ ] Actualizar IP pública en Cloudflare (`update-dns.sh`) y verificar cada servicio en `status.consultoria-as.com`
- [ ] Probar: Gitea, Caddy/TLS, n8n, bases de datos, acceso remoto de clientes
- [ ] Ajustar UPS/autotransformadores; medir consumo real y temperatura de la habitación
- [ ] Actualizar esta documentación con fotos y el layout final
---
## ✅ Checklist de Equipamiento para el Nuevo Lugar
| # | Ítem | Prioridad |
|---|---|---|
| 1 | Minisplit inverter ×2 (sala + recámara servidores, 12 000 BTU+ el de servidores) | 🔴 Alta — planificado ✅ |
| 2 | Circuito(s) dedicado(s) + tierra física + regulador/UPS (minisplits en circuito separado) | 🔴 Alta |
| 3 | Canal de superficie / canaletes Cat6 (sala ↔ servidores) | 🔴 Alta |
| 4 | Mueble/estantes para insumos y filamento | 🟡 Media |
| 5 | Mesa de trabajo para impresoras 3D | 🟡 Media |
| 6 | Deshumidificador o bolsas de silica para filamento | 🟡 Media |
| 7 | Extintor clase C cerca del rack | 🟡 Media |
| 8 | UPS de rack para el U20+ libre del rack 42U | 🟢 Baja (ya en plan rack) |
| 9 | Detector de humo / sensor de temperatura con alerta (n8n) | 🟢 Baja |
| 10 | Rack de bicicletas exterior + anclaje + candados | 🟡 Media — planificado ✅ |
| 11 | Espacio/soporte para teclado musical (recámara descanso) | 🟢 Baja |
---
*Plan de mudanza de oficina - Consultoria-AS*
*Actualizado: 8 Septiembre 2026 — Agregados minisplits inverter (sala + servidores), teclado musical y rack de bicicletas exterior*
---
## 📡 Migración a Cloudflare Tunnel (post-CGNAT) — 20 Sept 2026
La nueva oficina entrega internet por **CGNAT**: sin port forwarding posible. La exposición externa migró a **Cloudflare Tunnel**:
| Componente | Detalle |
|---|---|
| **Conector** | `cloudflared` contenedor Docker en **Dockge** (192.168.10.74), `network_mode: host`, stack `/opt/stacks/cloudflared/` |
| **Túnel** | `oficina-dockge` (ID 74123581-44be-4011-939a-9c0f815b2958), dashboard-managed |
| **Ingress** | `*.consultoria-as.com` → `http://localhost:8081` |
| **Router** | nginx en Dockge (`:8081`): server blocks por hostname → servicio interno; consolas PegaProx siguen en SU túnel propio (LXC 125) |
| **DNS** | 16 subdominios migrados de A→CNAME `<tunnel-id>.cfargotunnel.com` (proxied) |
**Estado de servicios (verificado 20/Sep)**: git ✓, odoo ✓, n8n ✓, immich ✓, metabase ✓, status ✓, nexus ✓, afterlife ✓, recetas ✓, navidrome ✓, 3d ✗ (app caída), mesh ✓, cronicas ✓, pagoda ✓, hacienda ✗ (app caída), api-hacienda ✗ (app caída).
**Notas de red nueva oficina**:
- ISP con **CGNAT** + bloqueo de **DNS externo por UDP/53** → los LXCs deben usar el DNS del router (`192.168.10.254`), no 1.1.1.1/8.8.4.4.
- Gateway/router: `192.168.10.254` responde ✓; subnet LAN se mantuvo `192.168.10.0/24`.
- puerto **8080 en Dockge = qbittorrent** (no usar para otros servicios); router nginx en **8081**.
---
## 🚀 Migración a IP Estática (GetAStatic Pro) — 21 Sept 2026
Se contrató **GetAStatic Pro** (IPv4 estática dedicada vía WireGuard, California) para eliminar los límites de Cloudflare Tunnel y restaurar el flujo clásico de reverse proxy.
### Arquitectura nueva
```
Internet ──► 199.87.229.133 (IP estática GetAStatic)
│ (túnel WireGuard de GetAStatic)
▼
OPNsense (oficina) ──► DNAT 80/443
▼
Caddy (Dockge, stack Docker) — TLS Let's Encrypt (DNS-01 Cloudflare)
▼
Servicios internos (192.168.10.x)
```
### Cambios aplicados
| Elemento | Antes | Ahora |
|---|---|---|
| DNS de 15 subdominios (consultoria-as.com) | CNAME → túnel Cloudflare | **A → 199.87.229.133** (DNS-only, sin proxy) |
| DNS nexus (wildcard, apex, manager) | CNAME → túnel | **A → 199.87.229.133** (DNS-only) |
| TLS | Cloudflare edge | **Caddy** (DNS-01 con token Cloudflare por sitio) |
| Límite de subida | 100 MB (plan free CF) | **Sin límite** (Jellyfin/streaming OK) |
| `pegaprox` | túnel propio + nginx loopback | **Caddy → 192.168.10.125:8080** (bloque añadido al Caddyfile con TLS DNS-01) |
| `horuxfin.com` | Route53 → (sin salida) | Route53 → **IP GetAStatic** (307 ✓) |
### Ajustes técnicos
- El nginx router del LXC PegaProx (125) escuchaba en `127.0.0.1:8080` (solo para su túnel) → cambiado a `0.0.0.0:8080` para que el Caddy lo alcance.
- El bloque `pegaprox` en el Caddyfile requiere el bloque `tls { dns cloudflare <token> }` como los demás sitios — sin él Caddy intenta TLS-ALPN y falla.
- Los túneles de Cloudflare (Dockge y PegaProx) quedan **corriendo sin tráfico** como fallback temporal; apagarlos cuando se confirme estabilidad.
### Estado verificado (21 Sep)
✅ git, odoo, n8n, immich, metabase, status, hacienda, afterlife, navidrome, mesh, jellyfin, mediarequest, nexus, pegaprox, nexusautoparts.com.mx, manager, clientes wildcard (strada, atlas…), horuxfin.com