Métodos

42 (XI): NetPractice, redes sin servidor

Un simulador para configurar redes: máscaras, routing y lo que pasa cuando

2 min de lectura

42 (XI): NetPractice, redes sin servidor

En la recta final del tronco común —después del raycasting de 42 (X): Cub3D, raycasting y paredes que parecen 3D—, 42 me cambió el tercio: el proyecto no se compila. NetPractice es un simulador web con diez niveles donde tienes una topología de red —routers y switches (los que conectan y reparten la red) y máquinas—, unos cuantos campos de configuración, algunos vacíos, y un objetivo seco: que dos equipos se hagan ping (un "oye, ¿estás ahí?" entre ordenadores). O funciona o no. Aquí no vale ni el valgrind (el detector de errores de memoria).

El problema

Mi bagaje con redes era el de un usuario avanzado: abrir un puerto en el router, poner una IP fija en casa, montar una VPN (conexión cifrada a otra red). Sabía que la máscara (el número que dice dónde acaba tu red) tiene cuatro números y que la pasarela (la puerta de salida hacia fuera) es importante, pero nunca me había parado a pensar el porqué. El primer nivel ya te corrige la pretensión: uno de los campos viene mal de fábrica y tienes que entender qué hace cada valor antes de tocar nada. Y cuando llegan las topologías con media docena de equipos, adivinar deja de ser opción: las combinaciones posibles son un océano.

Cómo lo abordé

Me hice mi propio auxiliar: un script en Python con el módulo ipaddress que calcula dirección de red, de broadcast (la que escuchan todas las máquinas) y rango útil a partir de la IP y la máscara, y lo imprime en columnas para comparar hosts de un vistazo. Lo tenía atado a un alias de la terminal, así que trabajaba con el simulador en una ventana y el cálculo en la otra. Con eso, cada nivel se reducía al mismo método: identificar qué subredes (trozecitos de red con frontera propia) hay, qué dirección libre puede tener cada interfaz dentro de la suya, y qué ruta le falta a cada router para llegar al destino. Los niveles finales añaden la parte delicada: la salida a Internet con su dirección por defecto, y hacer que las rutas coincidan en los dos sentidos.

Qué aprendí

Tres cosas. La máscara no es un trámite: es la frontera, y según cómo la pongas tu equipo decide si el destino está "al lado" o "más allá". El ping tiene dos direcciones: el error clásico es configurar la ida y olvidar la vuelta. Y el routing (las decisiones "para ir allí, pasa por aquí") es una lista de decisiones por orden de especificidad, no una especie de magia. Desde entonces, cuando una red no va, ya no reinicio a ciegas: bajo capa a capa hasta que encuentro el nivel donde se rompe. Siguiente parada, ya con código: 42 (XII): C++, los módulos.