05 Ingenieria de Redes
Actualizado: 17 de marzo de 2026
Ruta de Aprendizaje y Onboarding: Ingeniería de Redes#
Tu rol es el pegamento invisible que permite que 200 personas se conecten simultáneamente a un portal educativo en la mitad de un campo donde no hay fibra óptica. Sin ti, los brigadistas no pueden registrar, los estudiantes no pueden aprender, y la plataforma no puede sincronizar. Esta ruta cubre desde los fundamentos absolutos de redes hasta la configuración real de los equipos de campo.
Tiempo estimado de estudio: 50–70 horas
Prerrequisitos: Saber usar una terminal Linux (cd, ls, cat, sudo). Si no los manejas, completa primero la guía de Brigadista.
Índice de Contenidos y Mapa de Profundidad#
- Nivel 1 (Junior): Fundamentos de Redes
- Nivel 2 (Semi-Senior): DNS, DHCP y Portal Cautivo
- Nivel 3 (Senior): Hardware y Wi-Fi
- Nivel 4 (Arquitecto/Experto): VPN, Netbird y Diagnóstico
- Matriz de Crecimiento en Entornos Aislados
Exigencias y Requisitos Técnicos del Rol#
Este rol NO es "reiniciar el router". Eres el arquitecto que entiende cómo viajan los bits. Si no entiendes el handshake de TCP, no puedes diagnosticar la latencia.
1. Dominio de Linux y Redes (OBLIGATORIO)#
Debes saber usar tcpdump, dig, ip a, y leer archivos de configuración de servicios (dnsmasq, hostapd).
Acción: Completa el manual
00-Fundamentos-Linux-Esenciales.mdy concéntrate en Nivel 4.
2. Protocolos a Nivel de Byte#
Debes comprender la diferencia real entre TCP y UDP, cómo funciona un Three-Way Handshake, y qué es un encabezado HTTP vs un paquete IP.
3. DNS y DHCP Avanzado#
No basta con poner 8.8.8.8. Debes entender registros A, CNAME, TXT, cómo funciona la recursividad, y cómo un servidor DHCP asigna leases y maneja conflictos.
4. RF y Wi-Fi#
Debes entender la diferencia física entre 2.4GHz y 5GHz, canales no solapados, interferencia, y cómo la densidad de usuarios afecta el ancho de banda (Airtime Fairness).
5. VPN y Túneles#
Debes dominar los conceptos de NAT Traversal (STUN/TURN), MTU, y cómo enrutar tráfico a través de una interfaz virtual (tun/tap).
Nivel 1 (Junior) - Fundamentos de Redes de Computadoras#
Clase 1.1: ¿Qué es una Red?#
Una red es simplemente dos o más dispositivos conectados que pueden intercambiar información. Tu celular conectado al Wi-Fi de tu casa ya es una red.
Tipos de redes por tamaño#
| Tipo | Nombre | Alcance | Ejemplo en SoyDigital |
|---|---|---|---|
| LAN | Local Area Network | Un edificio/sala | La red del Kit de campo (router ER7206 + AP EAP610 + Mini-PC) |
| WAN | Wide Area Network | Ciudades/países | Internet (Starlink + LTE 4G) conectando el Kit a la nube |
| VPN | Virtual Private Network | Global (sobre internet) | Netbird conectando todos los Kits + la nube |
Clase 1.2: El Modelo OSI — Cómo Viaja un Paquete#
Imagina que envías una carta postal. Necesitas: escribir el mensaje, meterlo en un sobre, ponerle dirección, llevarlo al correo, etc. Las redes funcionan igual, en 7 capas:
| Capa | Nombre | ¿Qué hace? | Ejemplo real | ¿Lo tocamos? |
|---|---|---|---|---|
| 7 | Aplicación | Lo que el usuario ve | HTTP, HTTPS, DNS, DHCP | Siempre |
| 6 | Presentación | Formato/cifrado de datos | SSL/TLS, JSON, gzip | SSL certs |
| 5 | Sesión | Mantiene conexiones abiertas | WebSocket, sesiones TCP | Rara vez |
| 4 | Transporte | Entrega confiable entre procesos | TCP (confiable), UDP (rápido) | Puertos |
| 3 | Red | Enrutamiento entre redes | IP, ICMP (ping), rutas | Subnets, rutas |
| 2 | Enlace de datos | Comunicación en la misma red | Ethernet (MAC), ARP, Wi-Fi (802.11) | DHCP, MACs |
| 1 | Física | Cables, señales, radio | RJ45, fibra, antena Wi-Fi | Hardware |
En la práctica diaria de SoyDigital, trabajamos principalmente en las capas 2, 3, 4 y 7.
Clase 1.3: Direcciones IP — El "Domicilio" de Cada Dispositivo#
IPv4#
Una dirección IPv4 tiene 4 números separados por puntos: 192.168.0.159
Cada número va de 0 a 255 (1 byte = 8 bits). Total: 32 bits = ~4.3 billones de direcciones posibles (ya se agotaron).
IPs Públicas vs Privadas#
| Tipo | Rango | ¿Quién la ve? | Ejemplo |
|---|---|---|---|
| Pública | Cualquiera fuera de los rangos privados | Todo internet | 136.116.39.52 (servidor VPN) |
| Privada | 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 | Solo tu red local | 192.168.0.159 (Mini-PC en Kit) |
En SoyDigital, los Kits de campo usan IPs privadas (
192.168.0.x). Solo el servidor VPN tiene IP pública.
Subredes y CIDR#
La "máscara de subred" define cuántas IPs hay en una red:
| Notación CIDR | Máscara | IPs disponibles | Ejemplo |
|---|---|---|---|
/24 | 255.255.255.0 | 254 hosts | 192.168.0.0/24 → .1 a .254 |
/16 | 255.255.0.0 | 65,534 hosts | 172.16.0.0/16 |
/32 | 255.255.255.255 | 1 host exacto | Regla de firewall para 1 IP |
Nuestra red de campo:
Clase 1.4: Puertos — El "Número de Apartamento"#
Si la IP es la dirección de un edificio, el puerto es el número de apartamento. Un servidor puede tener MILES de servicios, cada uno escuchando en un puerto diferente.
| Puerto | Servicio | ¿Lo usamos? |
|---|---|---|
| 22 | SSH | Acceso remoto |
| 53 | DNS | dnsmasq |
| 67/68 | DHCP | Asignación de IPs |
| 80 | HTTP | Redirect a HTTPS |
| 443 | HTTPS | Nginx proxy |
| 3478 | STUN/TURN | Netbird VPN |
| 5432 | PostgreSQL | Base de datos |
| 7000 | API Backend | dominicana-api |
| 7001 | Admin Frontend | dominicana-admin-front |
| 7011 | Frontend Público | dominicana-front |
| 9000 | GCS Proxy Cache | Caché de recursos multimedia |
| 23000 | Brigadas (GraphQL) | App de brigadas |
bash# Ver qué puertos están escuchando en el servidor sudo ss -tlnp # t=TCP, l=listening, n=numérico, p=proceso # O con netstat sudo netstat -tlnp
Clase 1.5: TCP vs UDP#
| Característica | TCP | UDP |
|---|---|---|
| Confiabilidad | Garantiza que TODO llega, en orden | "Best effort" — puede perder paquetes |
| Velocidad | Más lento (handshake de 3 pasos) | Más rápido (sin handshake) |
| Uso típico | HTTP, SSH, bases de datos, email | DNS, VPN (WireGuard), streaming, juegos |
| En SoyDigital | Toda la web, API, PostgreSQL | DNS (puerto 53), Netbird VPN (STUN/TURN) |
El Handshake TCP de 3 pasos#
Nivel 2 (Semi-Senior) - DNS, DHCP y la Magia del Kit de Campo#
Clase 2.1: DNS — El Sistema de Nombres de Dominio#
Problema: Los humanos recuerdan nombres (capacitaciones.critertec.cloud). Las computadoras necesitan números (192.168.0.159). DNS traduce entre ambos.
Cómo funciona una consulta DNS normal (en internet):#
Tipos de registros DNS#
| Tipo | Función | Ejemplo |
|---|---|---|
| A | Nombre → IPv4 | capacitaciones.critertec.cloud → 192.168.0.159 |
| AAAA | Nombre → IPv6 | google.com → 2607:f8b0:4004:800::200e |
| CNAME | Alias (nombre → nombre) | www.critertec.cloud → critertec.cloud |
| MX | Servidor de correo | critertec.cloud → mail.critertec.cloud |
| TXT | Texto arbitrario | Validación SSL Let's Encrypt, SPF |
| NS | Servidores DNS autoritativos | critertec.cloud → ns1.cloudflare.com |
Clase 2.2: dnsmasq — Nuestro DNS y DHCP Local#
➤ Profundización Técnica / Casos de Borde:
- Colapso por DNS Loop/Amplification: Si configuras dnsmasq para enviar los paquetes no resueltos hacia
.159(él mismo) en lugar de8.8.8.8, crearás un bucle infinito. En 3 segundos, esto consumirá el 100% del procesador del Mini-PC debido a miles de consultas recursivas por segundo que se enfilan eternamente.
En los Kits de campo usamos dnsmasq para dos funciones críticas simultáneamente:
- DNS local → Interceptar dominios y resolverlos al Mini-PC (DNS Spoofing)
- DHCP → Asignar IPs automáticamente a los dispositivos que se conectan
¿Qué es DNS Spoofing (en nuestro contexto)?#
NO es un ataque. Es una técnica legítima para hacer que los dispositivos crean que el Mini-PC local ES el servidor de la nube.
El truco: Configuramos el router para que todo dispositivo use el Mini-PC como servidor DNS. Así, cuando pregunten por cualquier dominio nuestro, el Mini-PC responde "soy yo".
Configuración real de dnsmasq:#
ini# /etc/dnsmasq.conf en los servidores de campo # === DHCP === dhcp-range=192.168.0.100,192.168.0.199,12h # Asignar IPs del .100 al .199, lease time de 12 horas # Reserva de IP por MAC (el Mini-PC siempre es .159) dhcp-host=a8:a1:59:ab:cd:ef,192.168.0.159 # Anunciar al Mini-PC como el gateway y servidor DNS dhcp-option=3,192.168.0.159 # Gateway (puerta de enlace) dhcp-option=6,192.168.0.159 # Servidor DNS # === DNS Spoofing === # Capturar TODOS los subdominios de critertec.cloud address=/critertec.cloud/192.168.0.159 # Esto significa: # capacitaciones.critertec.cloud → 192.168.0.159 # vpn.critertec.cloud → 192.168.0.159 # lo-que-sea.critertec.cloud → 192.168.0.159 # === Upstream DNS (para dominios que NO interceptamos) === server=8.8.8.8 server=8.8.4.4
Comandos útiles:#
bash# Reiniciar dnsmasq después de cambiar la configuración sudo systemctl restart dnsmasq # Ver los leases actuales (quién tiene qué IP) cat /var/lib/misc/dnsmasq.leases # Formato: timestamp MAC IP hostname client-id # Verificar que el DNS está interceptando correctamente dig @192.168.0.159 capacitaciones.critertec.cloud # Debe responder: 192.168.0.159 # Probar desde un dispositivo conectado al Wi-Fi nslookup capacitaciones.critertec.cloud
Clase 2.3: DHCP — Asignación Automática de IPs#
Cuando un celular se conecta al Wi-Fi del Kit, necesita una IP. No puede "inventarse" una — otro dispositivo podría tener la misma. DHCP resuelve esto:
El Proceso DORA (4 pasos):#
¿Qué pasa si hay muchos dispositivos?
- Pool: .100 a .199 = 100 IPs disponibles
- Si se conectan 101 dispositivos → el #101 NO obtiene IP → no puede navegar
- Lease time de 12 horas: si un celular se desconecta, su IP se libera después de 12h
- Si el evento dura 1 día con alta rotación → considerar reducir lease time a 2–4 horas
Clase 2.4: El Portal Cautivo — La Experiencia del Usuario#
➤ Profundización Técnica / Casos de Borde:
- HSTS Strict Transport Bypass: Si el navegador ya tiene cacheadas directivas de HSTS para la plataforma original en nube y conectas el kit localmente con un auto-firmado inválido o sin TLS transparente, el navegador Apple bloqueará permanentemente la carga como un posible ataque Man-In-The-Middle. El "Nginx reverse proxy" del Kit debe emitir la misma cadena de confianza o el Portal Cautivo fracasará.
Cuando alguien se conecta al Wi-Fi del Kit, queremos que automáticamente se abra la plataforma SoyDigital en su navegador.
¿Cómo lo logran los dispositivos?#
Cada sistema operativo tiene una URL secreta que consulta para detectar si hay internet:
| Sistema | URL de detección | Espera |
|---|---|---|
| iOS/macOS | http://captive.apple.com/hotspot-detect.html | Texto "Success" |
| Android | http://connectivitycheck.gstatic.com/generate_204 | HTTP 204 |
| Windows | http://www.msftconnecttest.com/connecttest.txt | Texto "Microsoft Connect Test" |
| Chrome | http://clients3.google.com/generate_204 | HTTP 204 |
Nuestro flujo con DNS Spoofing:#
Problemas conocidos con iOS:#
- iOS 17.3+: Si cierra el Mini Browser cautivo, puede no reabrir automáticamente
- Workaround: Abrir Safari manualmente → escribir cualquier URL → redirige a la plataforma
- iOS Private Relay: Puede intentar usar DNS propio (bypass de nuestro DNS Spoofing)
- Workaround: Private Relay se desactiva automáticamente en redes sin internet completo
- Certificados SSL en Mini Browser: El Mini Browser cautivo de iOS puede tener problemas con SSL auto-firmado
- Solución: Usamos certificados Let's Encrypt legítimos
Nivel 3 (Senior) - Wi-Fi, Hardware de Red y Configuración del Kit#
Clase 3.1: Wi-Fi — 802.11 y sus Variantes#
➤ Profundización Técnica / Casos de Borde:
- Airtime Fairness y Rate Limiting: En salones con 120 alumnos, si un solo estudiante alejado tiene mala señal (-85dBm), su transmisión es tan lenta que monopoliza el tiempo de la antena (Airtime), haciendo que los 119 restantes también caigan de velocidad. El Ingeniero debe forzar Minimum RSSI en Omada para patear clientes con mala señal o usar Limitadores de Tasa MAC.
| Estándar | Nombre comercial | Banda | Velocidad máx | Alcance |
|---|---|---|---|---|
| 802.11n | Wi-Fi 4 | 2.4 GHz + 5 GHz | 600 Mbps | ~70m interior |
| 802.11ac | Wi-Fi 5 | 5 GHz | 3.5 Gbps | ~35m interior |
| 802.11ax | Wi-Fi 6 | 2.4 GHz + 5 GHz | 9.6 Gbps | ~30m interior |
Nuestro EAP610-Outdoor es Wi-Fi 6 (802.11ax) — soporta MU-MIMO y OFDMA para manejar muchos dispositivos simultáneos.
2.4 GHz vs 5 GHz#
| Característica | 2.4 GHz | 5 GHz |
|---|---|---|
| Alcance | Mayor (~100m exterior) | Menor (~50m exterior) |
| Velocidad | Menor | Mayor |
| Penetración | Mejor (pasa paredes) | Peor |
| Interferencia | MUCHA (microondas, bluetooth, vecinos) | Poca |
| Canales | 3 no superpuestos (1, 6, 11) | ~25 canales |
Recomendación para eventos masivos: Usar canal fijo (no auto) en 5 GHz si el espacio es abierto. Usar 2.4 GHz si hay muchas paredes/obstáculos.
Clase 3.2: Hardware del Kit de Campo#
TP-Link ER7206 (Router)#
Es un router VPN empresarial con:
- 1 puerto WAN (internet: Starlink/LTE)
- 1 puerto WAN/LAN configurable
- 3 puertos LAN Gigabit
- VPN server integrado (IPSec, OpenVPN, L2TP, PPTP)
- Balanceo de carga multi-WAN (si conectas Starlink + LTE)
Configuración actual:
WAN: Conectado a Starlink (IP dinámica) o LTE 4G (hotspot/modem USB)
LAN IP: 192.168.0.1
Subnet: 255.255.255.0 (/24)
DHCP: DESACTIVADO en el router (lo maneja dnsmasq en el Mini-PC)
DNS: Apunta a 192.168.0.159 (Mini-PC)
** IMPORTANTE:** El DHCP del router DEBE estar DESACTIVADO. Si ambos (router y dnsmasq) intentan asignar IPs, habrá conflictos.
TP-Link EAP610-Outdoor (Access Point)#
Es un Access Point (NO un router) — solo extiende la red inalámbrica.
| Dato | Valor |
|---|---|
| Estándar | Wi-Fi 6 (802.11ax) |
| Bandas | 2.4 GHz + 5 GHz simultáneas |
| Clientes máx | 500+ |
| Potencia | Configurable (bajo/medio/alto) |
| Alimentación | PoE (Power over Ethernet) — corriente por el cable de red |
| IP68 | Resistente a polvo y agua |
| Gestión | Omada Controller (web) o standalone |
Configuración actual:
SSID: SoyDigitalRD (o personalizado por sede)
Seguridad: WPA2-PSK o Open (según la sede)
VLAN: No configurado (red plana)
Banda: Ambas (2.4 + 5 GHz)
Canal: Auto (o fijo según análisis de interferencia)
Diagrama Completo del Kit#
Clase 3.3: Configuración Paso a Paso del Router ER7206#
Acceso al Panel#
- Conectar laptop al puerto LAN del router (cable)
- Navegar a
http://192.168.0.1 - Usuario:
admin/ Contraseña: (según el Kit)
Configuraciones Clave#
1. WAN (Internet):
- Tipo: DHCP (para Starlink) o Static IP (para LTE con IP fija)
- DNS WAN:
8.8.8.8,1.1.1.1(solo para tráfico que SÍ va a internet)
2. LAN:
- IP del router:
192.168.0.1 - Máscara:
255.255.255.0 - DHCP: OFF (lo maneja dnsmasq)
3. Reserva MAC (asegurar IP fija para el Mini-PC): Aunque DHCP lo maneja dnsmasq, el router puede tener una reserva ARP estática:
| MAC | IP reservada |
|---|---|
a8:a1:59:ab:cd:ef | 192.168.0.159 |
4. Firewall / Access Control:
- Bloquear acceso al panel del router desde Wi-Fi (solo acceso por cable LAN)
- Permitir todo el tráfico interno (192.168.0.0/24)
Nivel 4 (Arquitecto/Experto) - VPN, Seguridad, Diagnóstico Avanzado#
Clase 4.1: VPN con WireGuard y Netbird#
¿Qué es una VPN?#
Una VPN crea un "túnel cifrado" entre dos dispositivos a través de internet. Es como un tubo invisible que conecta tu red local con otra red remota.
WireGuard — El Protocolo Base#
Netbird usa WireGuard internamente. WireGuard es:
- Ultra-ligero (~4,000 líneas de código vs ~100,000 de OpenVPN)
- Basado en criptografía moderna (ChaCha20, Curve25519, BLAKE2s)
- Funciona sobre UDP (rápido, eficiente)
- Cada peer tiene un par de llaves (pública/privada) — no hay "usuario/contraseña"
Netbird — La Capa de Gestión sobre WireGuard#
Netbird añade:
- Panel web para administrar peers
- NAT Traversal automático (STUN/TURN) — los equipos se conectan sin necesidad de IPs públicas
- Access Control Lists (ACLs) — reglas de quién puede ver a quién
- Autenticación OIDC (Google, GitHub, etc.)
Topología de Netbird en SoyDigital:
Comandos Netbird:#
bash# Estado de la conexión netbird status # Muestra: peers conectados, IP asignada, servidor de señal # Iniciar/detener el agente sudo netbird up sudo netbird down # Ver peers conectados netbird status --detail # Reiniciar si hay problemas sudo systemctl restart netbird
Clase 4.2: NAT Traversal — ¿Cómo se conectan los Kits sin IP pública?#
➤ Profundización Técnica / Casos de Borde:
- CGNAT Doble Restrictivo (Symmetric NAT): Cuando Starlink es la WAN primaria, implementa Carrier-Grade NAT. Si la torre Cloud también tiene firewalls corporativos cerrados (CGNAT a CGNAT sin puertos), STUN fracasa. Aquí dependemos ABSOLUTAMENTE del TURN Server (
vpn.critertec.cloud:3478), quien se vuelve el pivote. Si TURN colapsa, todas las conexiones mueren silenciosamente.
El problema: Los Kits de campo están detrás de routers con NAT. No tienen IP pública. ¿Cómo se conectan entre sí?
¿Qué es NAT (Network Address Translation)?#
Tu router en casa tiene 1 IP pública (ej: 201.50.100.25). Pero en tu casa hay 10 dispositivos con IPs privadas (192.168.x.x). NAT traduce:
El problema para VPNs: Si dos dispositivos están AMBOS detrás de NAT, ninguno sabe la IP real del otro.
STUN (Session Traversal Utilities for NAT)#
STUN es un servidor público que le dice a cada dispositivo: "Tu IP pública es X y tu puerto externo es Y".
TURN (Traversal Using Relays around NAT)#
Si STUN falla (NAT muy restrictivo), TURN actúa como intermediario:
En SoyDigital: El servidor Netbird en GCP (136.116.39.52:3478) funciona como STUN+TURN.
Clase 4.3: ngrok — Túneles SSH de Respaldo#
¿Qué pasa si Netbird se cae? Necesitamos un plan B para acceder a los servidores de campo.
bash# En cada servidor de campo, ngrok crea un túnel persistente: ngrok tcp 22 --region us --remote-addr 5.tcp.ngrok.io:21911 # Esto expone el puerto 22 (SSH) del servidor en: # 5.tcp.ngrok.io:21911 (SVR03) # 5.tcp.ngrok.io:21918 (SVR04)
bash# Desde tu laptop, puedes conectarte directamente: ssh -p 21911 lmartinez@5.tcp.ngrok.io
Regla de seguridad: ngrok es un túnel público. SIEMPRE usar autenticación por llave SSH (no contraseña). NUNCA exponer puertos que no sean SSH.
Clase 4.4: Diagnóstico y Troubleshooting de Red#
Herramientas Esenciales#
bash# 1. PING — ¿El dispositivo responde? ping 192.168.0.159 # Ping al Mini-PC ping 8.8.8.8 # Ping a internet (Google DNS) ping capacitaciones.critertec.cloud # Ping resolviendo DNS # 2. TRACEROUTE — ¿Por dónde viajan los paquetes? traceroute 8.8.8.8 # Muestra cada "salto" (router) entre tú y el destino # 3. DIG / NSLOOKUP — ¿El DNS está funcionando? dig @192.168.0.159 capacitaciones.critertec.cloud # Debe responder: 192.168.0.159 (interceptado por dnsmasq) dig @8.8.8.8 capacitaciones.critertec.cloud # Debe responder: IP de Cloudflare (resolución real) # 4. ARP — ¿Quién está en la red local? arp -a # Lista todas las MACs e IPs que tu equipo ha visto en la LAN # 5. NMAP — Escaneo de puertos/dispositivos nmap -sn 192.168.0.0/24 # Descubre TODOS los dispositivos en la red nmap -p 80,443,7000,7011 192.168.0.159 # Verifica puertos del servidor # 6. SS / NETSTAT — Puertos abiertos en este servidor sudo ss -tlnp # ¿Quién escucha en qué puerto? sudo ss -s # Estadísticas de conexiones # 7. TCPDUMP — Captura de paquetes en tiempo real (avanzado) sudo tcpdump -i eth0 port 53 # Ver tráfico DNS sudo tcpdump -i eth0 port 443 # Ver tráfico HTTPS sudo tcpdump -i eth0 host 192.168.0.142 # Todo tráfico de un dispositivo específico
Tabla de Diagnóstico para Problemas Comunes#
| Síntoma | Causa probable | Diagnóstico | Solución |
|---|---|---|---|
| "No se puede conectar al Wi-Fi" | AP apagado/desconectado | Verificar LED del EAP610 | Reconectar cable PoE |
| "Conectado pero sin internet" | dnsmasq no responde | dig @192.168.0.159 test.com | sudo systemctl restart dnsmasq |
| "La página no carga" | Nginx caído | sudo systemctl status nginx | sudo systemctl restart nginx |
| "Error de certificado SSL" | Cert expirado o incorrecto | openssl s_client -connect 192.168.0.159:443 | Renovar certificado |
| "La plataforma está lenta" | Muchos usuarios, PM2 saturado | pm2 monit + htop | Verificar RAM/CPU |
| "Celulares no obtienen IP" | DHCP lleno o dnsmasq caído | cat /var/lib/misc/dnsmasq.leases | Reducir lease time o reiniciar dnsmasq |
| "VPN desconectada" | Netbird caído o internet inestable | netbird status | sudo netbird up o reiniciar internet |
| "No puedo hacer SSH al servidor" | ngrok caído o Netbird caído | ping 100.112.x.x (Netbird IP) | Probar ngrok: ssh -p 21911 user@5.tcp.ngrok.io |
| "Datos no se sincronizan" | No hay internet o S2S key incorrecta | curl -s https://dominicana-api.critertec.cloud/health | Verificar WAN + variables de entorno |
| "Portal cautivo no aparece" | DNS no intercepta correctamente | dig @192.168.0.159 captive.apple.com | Verificar wildcard en dnsmasq.conf |
Clase 4.5: Seguridad de Red#
Principio de Mínimo Privilegio#
Solo abre los puertos que necesitas. Todo lo demás, cerrado.
Firewall con iptables (en los servidores de campo)#
bash# Ver reglas actuales sudo iptables -L -n -v # Ejemplo: bloquear acceso externo al puerto de PostgreSQL sudo iptables -A INPUT -p tcp --dport 5432 -s 192.168.0.0/24 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 5432 -j DROP # Solo la red local puede conectarse a la DB # Persistir reglas (se pierden en reboot si no se guardan) sudo netfilter-persistent save
Seguridad específica de SoyDigital#
| Capa | Medida | Estado |
|---|---|---|
| SSH | Solo autenticación por llave (sin contraseña) | Implementado |
| SSH | Cambiar puerto por defecto (22→otro) | Pendiente |
| PostgreSQL | Solo escucha en localhost/LAN | Implementado |
| Nginx | Rate limiting en API | Implementado |
| VPN | ACLs en Netbird (quién puede ver a quién) | Configurado |
| SSL | Certificados Let's Encrypt (no auto-firmados) | Implementado |
| Variables | Secretos en .env, NUNCA en el código fuente | Implementado |
| Backups | pg_dump diario automatizado | Parcial |
Clase 4.6: Análisis de Tráfico con tcpdump#
Para problemas difíciles, necesitas ver los paquetes reales:
bash# Capturar tráfico DNS y guardarlo en archivo sudo tcpdump -i eth0 port 53 -w /tmp/dns_capture.pcap -c 100 # -i eth0 = interfaz de red # port 53 = solo DNS # -w = guardar a archivo # -c 100 = capturar solo 100 paquetes # Analizar el archivo (en formato legible) tcpdump -r /tmp/dns_capture.pcap -nn # Capturar en tiempo real y filtrar por IP sudo tcpdump -i eth0 host 192.168.0.142 and port 443 -nn # Muestra todo el tráfico HTTPS de un celular específico
Caso de uso real: Un celular iOS no carga el portal cautivo.
bash# Paso 1: Capturar su tráfico sudo tcpdump -i eth0 host 192.168.0.142 -nn # Paso 2: Buscar la petición de detección de portal cautivo # Deberías ver: 192.168.0.142 > 192.168.0.159: HTTP GET /hotspot-detect.html # Si NO ves esa petición → el celular no está usando nuestro DNS # Verificar: dig @192.168.0.159 captive.apple.com (desde el celular)
Resumen: El Stack de Red de SoyDigital#
Glosario de Redes#
| Término | Significado |
|---|---|
| ARP | Address Resolution Protocol — traduce IP a MAC en la red local |
| Broadcast | Mensaje enviado a TODOS los dispositivos de una red (ej: 255.255.255.255) |
| CIDR | Classless Inter-Domain Routing — notación de subred (/24, /16, etc.) |
| DHCP | Dynamic Host Configuration Protocol — asigna IPs automáticamente |
| DNS | Domain Name System — traduce nombres a IPs |
| DNS Spoofing | Interceptar consultas DNS para redirigirlas a otra IP (legítimo en LAN) |
| Gateway | Dispositivo que conecta tu red local con internet (generalmente el router) |
| Hole Punching | Técnica para conectar dos dispositivos detrás de NAT |
| Lease Time | Tiempo que una IP asignada por DHCP es "reservada" para un dispositivo |
| MAC Address | Dirección física única de cada tarjeta de red (ej: a8:a1:59:ab:cd:ef) |
| NAT | Network Address Translation — permite que muchos dispositivos compartan 1 IP pública |
| PoE | Power over Ethernet — alimentación eléctrica a través del cable de red |
| Portal Cautivo | Página que aparece al conectarse a un Wi-Fi (para login o redirección) |
| STUN | Server que ayuda a dispositivos detrás de NAT a descubrir su IP pública |
| Subnet | Subdivisión de una red IP (ej: 192.168.0.0/24) |
| TURN | Relay server que retransmite tráfico cuando la conexión directa falla |
| WireGuard | Protocolo VPN moderno, rápido y seguro (base de Netbird) |
Ruta de Dominio y Escalafón Profesional (Matriz de Habilidades de Redes SD-WAN)#
El entorno incluye flujos P2P cruzados sobre satélites y túneles criptográficos (Wireguard / Netbird). Obliga al personal a salir del esquema de "Red Clásica de Oficina" a Mallas Dinámicas.
Nivel Junior (Capa IP Básica)#
- Configuración de Interfaces Locales:
ip tuntap, configuración de redes clase C e integración de routers con asignación DHCP estática/dinámica en campos complejos. - Testeo y Diagnóstico Perimetral: Manejo del protocolo ICMP avanzado,
traceroute, validación de MTU al nivel local básico, resolución de bucles y fallos en colisiones de IP.
Nivel Semi-Senior (Satelital, Módems e Intercepción)#
- Manejo Netbird P2P y ACL: Definición estricta de dominios de routing. Capacidad para estructurar "Setup keys" con etiquetas autoasignables (tag:MiniPC, tag:CloudHub) aislando tráfico mediante Listas de Control de Acceso (ACLs) granulares en el dashboard de Netbird (STUN/TURN).
- Topología EdgeRouter e ISPs: Configuración avanzada de políticas de ruteo basadas en interfaces (PBR). Capacidad de forzar modo Bridge en los CPEs y balanceo de líneas (Load Balancing) en sitios híbridos con fibra rural o DSL alternado con Starlink.
- Inspecciones TCP/UDP: Dominio medio de
tcpdump -i any host ...o capturas PCAP interpretando un Wireguard Handshake para asegurar que la negociación no está siendo baneada por DPI de algún proveedor.
Nivel Senior/Arquitecto (Rutas Oscuras, CGNAT y BGP Overlays)#
- Penetración Transversal de CGNATs Híbridos (Carrier Grade NAT): Entendimiento de que los Starlinks operan enteramente en un túnel CGNAT. Diseña rutas relay que permiten un "Punch-hole" o establece "Relays permanentes" en DataCenters robustos, inyectando flujos OSPF/BGP ligeros emulados para cruzar toda la red SD-WAN hacia sitios escondidos.
- Proxy de Caché y DNS Spoofing: Crear enclaves Nginx avanzados o
dnsmasqinyectando engaños A-Record de modo que, si se consulta "api.indotel.local", el tráfico no rebote en internet regresando, sino que intercepte y rote internamente para preservar metraje de ancho de banda Edge. - Clamp MSS y MTU Optimization Extremo: Ante latencias ruidosas o degradaciones de enlace por lluvias (Rain Fade Starlink). Capacidad de modificar el Maximum Segment Size (MSS) local en linux (
iptables -t mangle -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu) previniendo fragmentación de paquetes Wireguard que destruiría las confirmaciones sincrónicas TCP.
�� Escenarios Críticos y Troubleshooting de Redes (Edge Cases)#
1. Falla Total de Convergencia Malla Netbird (Split Brain y Caída Silenciosa de Rutas)
- Síntoma: Todos los equipos remotos de campo están encendidos y aparecen como "Online" en ping interno básico, pero no pueden hacer el Handshake a la base de datos Central Wireguard (Rango
100.x.x.xroto o latencias de 4000ms+ sin pasar ruteo). - Protocolo de Acción Arquitecto:
- Revisar si Netbird Management API responde (Usualmente por Bloqueo Geográfico / DPI del Carrier principal o failover).
- Uso local de
netbird status -dyjournalctl -u netbird. - Si es DPI/Bloqueo Geo. Recodifica estáticamente a través del túnel inverso o desplaza localmente a un "Reverse Proxy Relay" en Nube pública estática.
- Reducir forzosamente el MTU global en la interfaz
wg0/wt0de los agentes (ip link set mtu 1280 dev wt0) previniendo la desintegración del cifrado Wireguard durante tormenta geomagnética / lluvia intensa en campo usando Starlink.
2. Flap Incessante Gateway MultiWAN (EdgeRouter / Falla de Sesiones)
- Síntoma: Un entorno Edge tiene Starlink + Fibra rural (Load Balanced). El Brigadista reporta que "se loggean al frontend, y los bota en 5 segundos (JWT/Sesssion Lost) o las conexiones TLS fallan en repetición".
- Protocolo de Acción: El Balanceo de carga indiscriminado (Round-Robin sin estado) está enviando paquetes TCP SYN por la Interfaz A y las respuestas/Acks cruzados por la Interfaz B. El destino Cloud percibe salto de IPs y rechaza/tira la sesión HTTPS. El Ingeniero de Redes ejecuta comandos y define Sticky Sessions o Policy-Based Routing donde el tráfico asignado a los endpoints de Sincronización se compromete con un canal específico (ejemplo WAN1) con failover duro al WAN2 (Nunca Balanceo puro de round-robin a nivel transaccional S2S).