Repository navigation
v1.0.0
v1.0.0 - Sprint 2: Grafo DNS con Ciclos y Conectividad
Fecha de Release: 2025-10-03
Tipo: Meta - Sprint 2 Completo
Funcionalidades Principales
Detección de Ciclos CNAME
- Algoritmo visited tracking para identificar bucles infinitos en cadenas CNAME
- Reporte estructurado con nodos involucrados y recomendaciones
- Validación automática con palabra clave "CYCLE" para tests
Verificación de Conectividad DNS
- Socket statistics con
sshacia IPs finales del grafo - Sondas HTTP/HTTPS con
curl(puertos 80/443) - Timeouts configurables y manejo robusto de errores
Construcción de Grafo DNS
- Edge list determinista desde resoluciones DNS
- Métricas de profundidad máxima y promedio
- Post-procesamiento respetando separación C-L-E
Artefactos Generados
out/
├── dns_resolves.csv # Resoluciones DNS normalizadas
├── edges.csv # Edge list del grafo
├── depth_report.txt # Métricas de profundidad
├── cycles_report.txt # Detección de ciclos CNAME
├── connectivity_ss.txt # Verificación con ss
└── curl_probe.txt # Sondas HTTP/HTTPS
Cobertura de Tests
- 40 casos de prueba Bats implementados
- Metodología AAA en todos los tests
- 4 suites completas: resolve, cycles/depth, connectivity, env contracts
Documentación
- Contratos de salidas con validaciones grep/awk
- Bitácoras Sprint 1-2 documentadas por alumno
- Comandos de validación para cada artefacto
Mejoras Técnicas
Caché Incremental
- Make dependencies para builds optimizados
- 32x más rápido en segunda corrida sin cambios
- Regeneración inteligente solo cuando cambian dependencias
Robustez de Tests
- Aislamiento BATS_TEST_TMPDIR entre tests
- Teardown automático con cleanup garantizado
- Validaciones numéricas de profundidad y métricas
12-Factor Compliance
- Configuración via variables de entorno (DOMAINS_FILE, DNS_SERVER)
- Separación C-L-E mantenida en todos los scripts
- Build determinista y reproducible
Comandos Principales
# Build completo con caché
make build
# Ejecutar tests completos
make test
# Generar todos los artefactos
make run
# Limpiar generados
make clean
Métricas de Sprint 2
- 6 artefactos de salida generados
- 3 scripts principales (resolve_dns, build_graph, verify_connectivity)
- 931 líneas de código en tests
- 100% completitud según guía Sprint 2