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.md y 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#

TipoNombreAlcanceEjemplo en SoyDigital
LANLocal Area NetworkUn edificio/salaLa red del Kit de campo (router ER7206 + AP EAP610 + Mini-PC)
WANWide Area NetworkCiudades/paísesInternet (Starlink + LTE 4G) conectando el Kit a la nube
VPNVirtual Private NetworkGlobal (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:

CapaNombre¿Qué hace?Ejemplo real¿Lo tocamos?
7AplicaciónLo que el usuario veHTTP, HTTPS, DNS, DHCPSiempre
6PresentaciónFormato/cifrado de datosSSL/TLS, JSON, gzipSSL certs
5SesiónMantiene conexiones abiertasWebSocket, sesiones TCPRara vez
4TransporteEntrega confiable entre procesosTCP (confiable), UDP (rápido)Puertos
3RedEnrutamiento entre redesIP, ICMP (ping), rutasSubnets, rutas
2Enlace de datosComunicación en la misma redEthernet (MAC), ARP, Wi-Fi (802.11)DHCP, MACs
1FísicaCables, señales, radioRJ45, fibra, antena Wi-FiHardware

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#

TipoRango¿Quién la ve?Ejemplo
PúblicaCualquiera fuera de los rangos privadosTodo internet136.116.39.52 (servidor VPN)
Privada10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16Solo tu red local192.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 CIDRMáscaraIPs disponiblesEjemplo
/24255.255.255.0254 hosts192.168.0.0/24 → .1 a .254
/16255.255.0.065,534 hosts172.16.0.0/16
/32255.255.255.2551 host exactoRegla de firewall para 1 IP

Nuestra red de campo:

Ctrl+Scroll=Zoom · Arrastrar=Mover

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.

PuertoServicio¿Lo usamos?
22SSHAcceso remoto
53DNSdnsmasq
67/68DHCPAsignación de IPs
80HTTPRedirect a HTTPS
443HTTPSNginx proxy
3478STUN/TURNNetbird VPN
5432PostgreSQLBase de datos
7000API Backenddominicana-api
7001Admin Frontenddominicana-admin-front
7011Frontend Públicodominicana-front
9000GCS Proxy CacheCaché de recursos multimedia
23000Brigadas (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ísticaTCPUDP
ConfiabilidadGarantiza que TODO llega, en orden"Best effort" — puede perder paquetes
VelocidadMás lento (handshake de 3 pasos)Más rápido (sin handshake)
Uso típicoHTTP, SSH, bases de datos, emailDNS, VPN (WireGuard), streaming, juegos
En SoyDigitalToda la web, API, PostgreSQLDNS (puerto 53), Netbird VPN (STUN/TURN)

El Handshake TCP de 3 pasos#

Ctrl+Scroll=Zoom · Arrastrar=Mover

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):#

Ctrl+Scroll=Zoom · Arrastrar=Mover

Tipos de registros DNS#

TipoFunciónEjemplo
ANombre → IPv4capacitaciones.critertec.cloud → 192.168.0.159
AAAANombre → IPv6google.com → 2607:f8b0:4004:800::200e
CNAMEAlias (nombre → nombre)www.critertec.cloud → critertec.cloud
MXServidor de correocritertec.cloud → mail.critertec.cloud
TXTTexto arbitrarioValidación SSL Let's Encrypt, SPF
NSServidores DNS autoritativoscritertec.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 de 8.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:

  1. DNS local → Interceptar dominios y resolverlos al Mini-PC (DNS Spoofing)
  2. 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.

Ctrl+Scroll=Zoom · Arrastrar=Mover

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):#

Ctrl+Scroll=Zoom · Arrastrar=Mover

¿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:

SistemaURL de detecciónEspera
iOS/macOShttp://captive.apple.com/hotspot-detect.htmlTexto "Success"
Androidhttp://connectivitycheck.gstatic.com/generate_204HTTP 204
Windowshttp://www.msftconnecttest.com/connecttest.txtTexto "Microsoft Connect Test"
Chromehttp://clients3.google.com/generate_204HTTP 204

Nuestro flujo con DNS Spoofing:#

Ctrl+Scroll=Zoom · Arrastrar=Mover

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ándarNombre comercialBandaVelocidad máxAlcance
802.11nWi-Fi 42.4 GHz + 5 GHz600 Mbps~70m interior
802.11acWi-Fi 55 GHz3.5 Gbps~35m interior
802.11axWi-Fi 62.4 GHz + 5 GHz9.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ística2.4 GHz5 GHz
AlcanceMayor (~100m exterior)Menor (~50m exterior)
VelocidadMenorMayor
PenetraciónMejor (pasa paredes)Peor
InterferenciaMUCHA (microondas, bluetooth, vecinos)Poca
Canales3 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#

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.

Es un Access Point (NO un router) — solo extiende la red inalámbrica.

DatoValor
EstándarWi-Fi 6 (802.11ax)
Bandas2.4 GHz + 5 GHz simultáneas
Clientes máx500+
PotenciaConfigurable (bajo/medio/alto)
AlimentaciónPoE (Power over Ethernet) — corriente por el cable de red
IP68Resistente a polvo y agua
GestiónOmada 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#

Ctrl+Scroll=Zoom · Arrastrar=Mover

Clase 3.3: Configuración Paso a Paso del Router ER7206#

Acceso al Panel#

  1. Conectar laptop al puerto LAN del router (cable)
  2. Navegar a http://192.168.0.1
  3. 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:

MACIP reservada
a8:a1:59:ab:cd:ef192.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.

Ctrl+Scroll=Zoom · Arrastrar=Mover

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:

Ctrl+Scroll=Zoom · Arrastrar=Mover

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:

Ctrl+Scroll=Zoom · Arrastrar=Mover

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".

Ctrl+Scroll=Zoom · Arrastrar=Mover

TURN (Traversal Using Relays around NAT)#

Si STUN falla (NAT muy restrictivo), TURN actúa como intermediario:

Ctrl+Scroll=Zoom · Arrastrar=Mover

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íntomaCausa probableDiagnósticoSolución
"No se puede conectar al Wi-Fi"AP apagado/desconectadoVerificar LED del EAP610Reconectar cable PoE
"Conectado pero sin internet"dnsmasq no respondedig @192.168.0.159 test.comsudo systemctl restart dnsmasq
"La página no carga"Nginx caídosudo systemctl status nginxsudo systemctl restart nginx
"Error de certificado SSL"Cert expirado o incorrectoopenssl s_client -connect 192.168.0.159:443Renovar certificado
"La plataforma está lenta"Muchos usuarios, PM2 saturadopm2 monit + htopVerificar RAM/CPU
"Celulares no obtienen IP"DHCP lleno o dnsmasq caídocat /var/lib/misc/dnsmasq.leasesReducir lease time o reiniciar dnsmasq
"VPN desconectada"Netbird caído o internet inestablenetbird statussudo netbird up o reiniciar internet
"No puedo hacer SSH al servidor"ngrok caído o Netbird caídoping 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 incorrectacurl -s https://dominicana-api.critertec.cloud/healthVerificar WAN + variables de entorno
"Portal cautivo no aparece"DNS no intercepta correctamentedig @192.168.0.159 captive.apple.comVerificar 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#

CapaMedidaEstado
SSHSolo autenticación por llave (sin contraseña)Implementado
SSHCambiar puerto por defecto (22→otro)Pendiente
PostgreSQLSolo escucha en localhost/LANImplementado
NginxRate limiting en APIImplementado
VPNACLs en Netbird (quién puede ver a quién)Configurado
SSLCertificados Let's Encrypt (no auto-firmados)Implementado
VariablesSecretos en .env, NUNCA en el código fuenteImplementado
Backupspg_dump diario automatizadoParcial

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#

Ctrl+Scroll=Zoom · Arrastrar=Mover

Glosario de Redes#

TérminoSignificado
ARPAddress Resolution Protocol — traduce IP a MAC en la red local
BroadcastMensaje enviado a TODOS los dispositivos de una red (ej: 255.255.255.255)
CIDRClassless Inter-Domain Routing — notación de subred (/24, /16, etc.)
DHCPDynamic Host Configuration Protocol — asigna IPs automáticamente
DNSDomain Name System — traduce nombres a IPs
DNS SpoofingInterceptar consultas DNS para redirigirlas a otra IP (legítimo en LAN)
GatewayDispositivo que conecta tu red local con internet (generalmente el router)
Hole PunchingTécnica para conectar dos dispositivos detrás de NAT
Lease TimeTiempo que una IP asignada por DHCP es "reservada" para un dispositivo
MAC AddressDirección física única de cada tarjeta de red (ej: a8:a1:59:ab:cd:ef)
NATNetwork Address Translation — permite que muchos dispositivos compartan 1 IP pública
PoEPower over Ethernet — alimentación eléctrica a través del cable de red
Portal CautivoPágina que aparece al conectarse a un Wi-Fi (para login o redirección)
STUNServer que ayuda a dispositivos detrás de NAT a descubrir su IP pública
SubnetSubdivisión de una red IP (ej: 192.168.0.0/24)
TURNRelay server que retransmite tráfico cuando la conexión directa falla
WireGuardProtocolo 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)#

  1. 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.
  2. 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)#

  1. 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).
  2. 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.
  3. 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)#

  1. 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.
  2. Proxy de Caché y DNS Spoofing: Crear enclaves Nginx avanzados o dnsmasq inyectando 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.
  3. 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.x roto o latencias de 4000ms+ sin pasar ruteo).
  • Protocolo de Acción Arquitecto:
    1. Revisar si Netbird Management API responde (Usualmente por Bloqueo Geográfico / DPI del Carrier principal o failover).
    2. Uso local de netbird status -d y journalctl -u netbird.
    3. 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.
    4. Reducir forzosamente el MTU global en la interfaz wg0 / wt0 de 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).