>_ DevTrendsit

Lingua

Home

Linguaggi

Sezioni

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicurezza
TypeScript

Come smettere di calcolare le subnet mask a mente e iniziare a vivere

Ogni team ha quella persona che risponde a "quanti indirizzi in /26?" a velocità di calcolatrice e ti dice istantaneamente se 10.0.13.37 rientra nel range 10.0.12.0/22. Non sono io. Ogni volta che devo lavorare con una rete, apro Python e inizio a cliccare sui bit. Fino a quando non ho scoperto cidr.xyz.

Cos'è questo strumento

cidr.xyz è un calcolatore CIDR e visualizzatore di subnet creato da uno sviluppatore che si firma yuvadm. Il progetto esiste da un po': il repository è stato creato nel dicembre 2015, e da allora ha accumulato circa 850 stelle e 238 fork. Il servizio stesso risiede su cidr.xyz e funziona interamente nel browser.

L'idea è semplicemente geniale: inserisci un indirizzo IP e una maschera (in notazione CIDR o nel classico formato 255.255.255.0), e la pagina mostra istantaneamente tutto ciò che puoi estrarre da quella coppia. La prima riga dopo l'input è un suffisso CIDR pronto all'uso che puoi copiare direttamente nella tua configurazione.

Cosa mostra il calcolatore

Lasciami fare un esempio. Inseriamo 10.0.13.37 con maschera /22. L'output ci fornisce:

  • Indirizzo di rete e broadcast
  • Primo e ultimo indirizzo host utilizzabile
  • Numero di host nella subnet
  • Indirizzo e maschera in binario, bit per bit
  • Wildcard mask (quella 0.0.3.255 senza la quale non puoi scrivere ACL)
  • Formato "Range of everything" — la stringa familiare per configurazioni pfSense o Cisco
  • Maschera binaria in forma decimale

Sembra la descrizione di qualsiasi ipcalc, ma c'è una cosa che distingue cidr.xyz da un centinaio di strumenti simili — la visualizzazione. Sotto i campi di input, viene disegnata una griglia di bit: 32 bit di indirizzo e 32 bit di maschera, divisi in ottetti. I bit responsabili della rete e degli host sono evidenziati in colori diversi.

Ed è allora che arriva il momento della rivelazione. Prima, sapevo che /22 significa 22 bit di rete, ma lo conservavo nella mia testa come conoscenza astratta. Su cidr.xyz, puoi vedere il confine tra parte di rete e parte di host spostarsi mentre trascini la maschera da /24 a /21. Capisci immediatamente perché 10.0.13.37/22 significa la rete 10.0.12.0 — il terzo ottetto 13 in binario è 00001101, e con una maschera /22, i primi sei bit del terzo ottetto sono bloccati dalla rete, i rimanenti sei bit sono assegnati agli host. Nessuna tabella ti dà quella sensazione di "ah, ecco cosa significa".

A chi è rivolto

Prima di tutto, a chi si prepara per colloqui o certificazioni. Le domande su VLSM e suddivisione di rete compaiono nel CCNA, e capire l'aritmetica dei bit è davvero necessario lì.

In secondo luogo, admin e SRE che lavorano con le configurazioni. Verificare rapidamente che la wildcard mask per un ACL sia calcolata correttamente, che il range 172.16.0.0/12 finisca effettivamente a 172.31.255.255 — questo è un compito da dieci secondi.

Terzo, tutti gli altri che si occupano di networking una volta al mese e una volta al mese dimenticano come funziona. Sono in questa categoria.

Sotto il cofano

Il progetto è scritto in TypeScript, usando React e Next.js. Il README è minimale all'estremo — solo due sezioni — ma è sufficiente per eseguire una copia locale:

npm install
npm run dev

Dopo di che, lo strumento è disponibile su localhost:3000, e puoi esplorare il codice o personalizzarlo per te stesso. Ad esempio, stavo pensando seriamente di aggiungere il calcolo del conteggio delle subnet quando si divide per un numero dato. È uno di quei rari casi in cui la codebase è così compatta che puoi realisticamente aprire una pull request in una serata.

Il deployment è automatizzato: il branch master vola attraverso Cloudflare Workers. Licenza MIT, quindi se vuoi puoi farne un fork o incorporarlo da qualche parte.

Un po' di critica

Non c'è barile di miele senza un cucchiaio di catrame. Le funzionalità sono pensate per IPv4 — il calcolatore non accetta indirizzi IPv6. Se vivi nel mondo di fd00::/8, questo strumento non ti sarà utile. Anche la visualizzazione binaria a volte diventa travolgente: a prima vista sulla tabella di bit lampeggianti, è facile atterrare nel posto sbagliato. E sì, 850 stelle non sono un milione — il progetto è conosciuto in ambienti ristretti, ma non dimenticato: l'ultimo commit sul branch master era recente, il repository è vivo.

Vale la pena provarlo

Assolutamente sì, se: ti stai preparando per un colloquio di rete; stai facendo configurazioni per apparecchiature di rete; vuoi finalmente capire visivamente come una subnet mask divide lo spazio degli indirizzi. Aggiungi semplicemente cidr.xyz ai tuoi segnalibri accanto al traduttore — ti sarà utile.

E se vuoi qualcosa di più, fai un fork del repository e aggiungi il supporto IPv6. A giudicare dalla compattezza del codice, è un compito perfettamente realizzabile in un weekend.

Progetti correlati