Mètodes

42 (XI): NetPractice, xarxes sense servidor

Un simulador per configurar xarxes: màscares, routing i el que passa quan

2 min de lectura

42 (XI): NetPractice, xarxes sense servidor

A la recta final del tronc comú —després del raycasting de 42 (X): Cub3D, raycasting i parets que semblen 3D—, 42 em va canviar el terç: el projecte no es compila. NetPractice és un simulador web amb deu nivells on tens una topologia de xarxa —routers i switches (els que connecten i reparteixen la xarxa) i màquines—, uns quants camps de configuració, alguns buits, i un objectiu sec: que dos equips es facin ping (un "toi, hi ets?" entre ordinadors). O funciona o no. Aquí no val ni el valgrind (el detector d'errors de memòria).

El problema

El meu bagatge amb xarxes era el d'un usuari avançat: obrir un port al router, posar una IP fixa a casa, muntar una VPN (connexió xifrada a una altra xarxa). Sabia que la màscara (el número que diu on acaba la teva xarxa) té quatre números i que la passarel·la (la porta de sortida cap a fora) és important, però mai no m'havia calcat el perquè. El primer nivell ja et corrigeix la pretensió: un dels camps ve malament de fàbrica i has d'entendre què fa cada valor abans de tocar res. I quan arriben les topologies amb mitja dotzena d'equips, endevinar deixa de ser opció: les combinacions possibles són un oceà.

Com ho vaig abordar

Em vaig fer el meu propi auxiliar: un script en Python amb el mòdul ipaddress que calcula adreça de xarxa, de broadcast (la que escolten totes les màquines) i rang útil a partir de la IP i la màscara, i ho imprimeix en columnes per comparar hosts d'un cop d'ull. El tenia lligat a un àlias de la terminal, així que treballava amb el simulador en una finestra i el càlcul a l'altra. Amb això, cada nivell es reduïa al mateix mètode: identificar quines subxarxes (trossets de xarxa amb frontera pròpia) hi ha, quina adreça lliure pot tenir cada interfície dins la seva, i quina ruta li falta a cada router per arribar a la destinació. Els nivells finals afegeixen la part delicada: la sortida a Internet amb la seva adreça per defecte, i fer que les rutes coincideixin en els dos sentits.

Què n'he après

Tres coses. La màscara no és un tràmit: és la frontera, i segons com la posis el teu equip decideix si la destinació és "al costat" o "més enllà". El ping té dues direccions: l'error clàssic és configurar l'anada i oblidar la tornada. I el routing (les decisions "per anar allà, passa per aquí") és una llista de decisions per ordre d'especificitat, no una mena de màgia. Des de llavors, quan una xarxa no va, ja no reinicio a cegues: baixo capa a capa fins que trobo el nivell on es trenca. Següent parada, ja amb codi: 42 (XII): C++, els mòduls.