bitlvl
IT

Aggregatore e divisore CIDR

Un intervallo per riga, in qualsiasi forma. Il risultato è la lista più corta di blocchi CIDR che copre esattamente gli stessi indirizzi, pronta per un firewall, una ACL o una tabella di routing.

I risultati e i messaggi di questo strumento sono mostrati in inglese.

Aggregazione

Due blocchi si possono unire in uno quando hanno la stessa dimensione, sono adiacenti e il blocco risultante è allineato alla sua nuova dimensione: 10.0.0.0/25 e 10.0.0.128/25 diventano 10.0.0.0/24, ma 10.0.0.128/25 e 10.0.1.0/25 no. Lo strumento ordina l’input, unisce tutto ciò che si sovrappone o si tocca, e poi scrive ogni intervallo risultante come il minor numero di blocchi allineati. È quello che fanno i router quando riassumono le route, ed è quello che serve prima di incollare una lista in un firewall: meno regole, matching più rapido, nessun duplicato.

Da intervallo a CIDR

Un intervallo arbitrario come 192.168.1.6 – 192.168.1.9 raramente è un unico blocco. L’algoritmo prende il blocco allineato più grande che inizia al primo indirizzo dell’intervallo e ci sta dentro, poi ricomincia da dove quel blocco finisce: qui 192.168.1.6/31 e 192.168.1.8/31. Un intervallo di 255 indirizzi che inizia a .1 richiede otto blocchi.

Esclusioni

«Tutto in 10.0.0.0/8 tranne 10.1.0.0/16» è un’esigenza comune per split tunnel e liste di autorizzazione. Sottrarre un /16 da un /8 lascia 8 blocchi (/9, /10 … /16), perché ogni passo della divisione binaria stacca una metà. L’output cresce di circa un blocco per ogni bit di differenza.

Formati di output

La forma nftables produce un set da incollare in nft add element; iptables emette una regola per blocco; la forma Cisco usa le wildcard mask; la forma HAProxy è un file per acl src -f. La forma a intervalli è utile per la documentazione e per i sistemi che accettano coppie inizio–fine.

Domande

Perché i miei due /24 non si sono uniti in un /23?

Un /23 deve iniziare su un terzo ottetto pari: 10.0.2.0/24 e 10.0.3.0/24 si uniscono in 10.0.2.0/23, ma 10.0.1.0/24 e 10.0.2.0/24 no, perché 10.0.1.0/23 inizierebbe a 10.0.0.0.

Quanti indirizzi ci sono nel risultato?

La riga dei totali sotto lo strumento li conta separatamente per IPv4 e IPv6. Per IPv6 i conteggi sono potenze di due e vengono mostrati come tali.

Gestisce input sovrapposti?

Sì. Sovrapposizioni e duplicati vengono uniti, quindi puoi incollare liste provenienti da più fonti e ottenere un’unione pulita.

Posso convertire un blocco CIDR in un intervallo inizio–fine?

Imposta il formato di output su Intervalli. Ogni blocco mostra il primo e l’ultimo indirizzo; per un singolo blocco in input è tutta la risposta.