Domain IP Lookup

Spazio di indirizzi pubblico e privato

IP pubblico

192.0.2.10

univoco globalmente: instradabile da ovunque

Intervalli privati

10.0.0.0/8172.16.0.0/12192.168.0.0/16

non instradabili sulla rete pubblica

Fondamenti del DNS

Cos'è il CIDR? Routing senza classi, prefissi e aggregazione

6 min di lettura

Una route come 203.0.113.0/24 sembra una semplice abbreviazione, ma l'idea che sta dietro ha alleviato una crisi che, all'inizio degli anni Novanta, sembrava destinata a bloccare la crescita di Internet. Questo articolo spiega perché l'indirizzamento a classi originale è fallito, che cosa dichiara davvero un prefisso, come i blocchi vicini si fondono in un'unica route e perché un router preferisce sempre la route più specifica che conosce. Per l'aritmetica della suddivisione di un blocco in subnet, il calcolatore subnet è più rapido di qualsiasi spiegazione; qui l'attenzione è su come funziona il sistema e perché.

Il problema delle classi A, B e C

Il piano originale di IPv4, definito nell'RFC 791, suddivideva le reti in classi in base ai bit iniziali di un indirizzo. Come racconta l'RFC 4632, la classe A consentiva 128 reti da circa 16,7 milioni di indirizzi ciascuna, la classe B 16.384 reti da 65.536 indirizzi e la classe C circa 2,1 milioni di reti da 254 host utilizzabili. Non c'era nulla tra 254 e 65.534 host.

Un'organizzazione di medie dimensioni si trovava in un vicolo cieco. Una classe C era troppo piccola e una classe B troppo grande per la maggior parte delle organizzazioni, eppure la classe B era la soluzione più adatta tra quelle disponibili da usare con il subnetting, così la richiesta di numeri di classe B crebbe fuori controllo. Nel novembre 1991 l'IETF costituì il gruppo ROAD (Routing and Addressing). Nel gennaio 1992 aveva individuato tre problemi: lo spazio di classe B si stava esaurendo, le tabelle di routing crescevano oltre ciò che software, hardware e operatori riuscivano a gestire e lo spazio di indirizzamento a 32 bit sarebbe prima o poi stato esaurito. Il suo lavoro produsse l'RFC 1338 e poi l'RFC 1519 (settembre 1993).

Il CIDR, Classless Inter-Domain Routing, è stato progettato per alleviare i primi due problemi, non il terzo. L'RFC 4632, la revisione del 2006, afferma che il piano doveva essere una risposta a breve termine, della durata di circa tre-cinque anni, in attesa di trovare una soluzione a più lungo termine. Più di trent'anni dopo è ancora la notazione usata da router e console cloud.

Che cosa dichiara un prefisso

Nel CIDR un blocco di indirizzi si scrive come un indirizzo, uno slash e una lunghezza del prefisso: il numero di bit iniziali che identificano la rete. I bit restanti identificano gli host al suo interno. 192.0.2.0/24 fissa 24 bit e ne lascia 8, quindi il blocco contiene 2^8 = 256 indirizzi. Ogni bit aggiunto al prefisso dimezza il blocco; ogni bit tolto lo raddoppia. Una rete a classi era semplicemente un blocco la cui lunghezza del prefisso era imposta dai primi bit, sempre /8, /16 o /24. Il CIDR ha eliminato questa imposizione, così un'organizzazione che ha bisogno di circa mille indirizzi può ricevere una /22, che ne contiene 1.024, invece di una classe B.

PrefissoIndirizziRuolo tipico
/816.777.216La dimensione della vecchia classe A
/1665.536La dimensione della vecchia classe B
/221.024Un sito di medie dimensioni, una taglia che il sistema a classi non sapeva esprimere
/24256La dimensione della vecchia classe C e una dimensione comune per una LAN
/304Un tradizionale collegamento punto-punto con 2 host utilizzabili
/312Un collegamento punto-punto secondo l'RFC 3021, con entrambi gli indirizzi utilizzabili
/321Un singolo host, o una route verso un solo indirizzo

Aggregazione: una route invece di molte

L'altra metà dello scopo del CIDR riguardava il routing. Se un provider possiede un grande blocco e ne assegna porzioni ai clienti, il resto di Internet ha bisogno di una sola route verso l'intero blocco invece di una per cliente. L'RFC 4632 afferma che i prefissi sono pensati per seguire a grandi linee la topologia sottostante di Internet, in modo che l'aggregazione sia possibile, ed è per questo che vengono in genere assegnati lungo le linee provider-cliente.

L'aggregazione funziona solo quando i blocchi sono allineati. Due blocchi /24 adiacenti si fondono in un /23 solo se il primo parte da un confine pari. 192.168.0.0/24 e 192.168.1.0/24 si combinano in 192.168.0.0/23. 192.168.1.0/24 e 192.168.2.0/24 no, perché nessun /23 inizia a 192.168.1.0. Il più piccolo blocco singolo che li copre entrambi è 192.168.0.0/22, che comprende anche 192.168.0.0/24 e 192.168.3.0/24, indirizzi che potresti non possedere. Questa regola di allineamento è la ragione pratica per assegnare gli indirizzi in blocchi di dimensione pari a una potenza di due fin dall'inizio di un piano di rete.

Longest match: perché vince la route più specifica

Quando le route si sovrappongono, il router ha bisogno di un criterio di spareggio. L'RFC 4632 afferma che l'inoltro su Internet avviene secondo il criterio del longest match: tra tutte le route il cui prefisso contiene la destinazione, viene usata quella con il prefisso più lungo. Supponi che una tabella contenga 10.0.0.0/8 tramite il router A, 10.1.0.0/16 tramite il router B e 10.1.2.0/24 tramite il router C.

  • Un pacchetto per 10.1.2.9 corrisponde a tutte e tre le route e segue la /24 verso C.
  • Un pacchetto per 10.1.9.9 corrisponde alla /8 e alla /16 e segue la /16 verso B.
  • Un pacchetto per 10.9.9.9 corrisponde solo alla /8 e va ad A.

L'RFC 4632 (sezione 5.1) aggiunge due regole. Una rete raggiungibile attraverso più provider deve annunciare esplicitamente il proprio prefisso invece di restare nascosta dentro l'aggregato di un solo provider. E un router che genera un aggregato deve scartare i pacchetti che corrispondono all'aggregato ma a nessuna delle sue route più specifiche, altrimenti il traffico diretto a parti irraggiungibili del blocco può finire in loop.

Dettagli che ancora fanno inciampare

  • Host utilizzabili. Un blocco di 2^(32−n) indirizzi di norma ne perde due: l'indirizzo di rete e l'indirizzo di broadcast. Una /30 ha quindi due host utilizzabili. L'RFC 3021 consente i prefissi /31 sui collegamenti punto-punto, dove entrambi gli indirizzi sono utilizzabili.
  • Anche gli intervalli privati sono blocchi CIDR. L'RFC 1918 riserva 10.0.0.0/8, 172.16.0.0/12 e 192.168.0.0/16. Il blocco intermedio va solo da 172.16.0.0 a 172.31.255.255, quindi un indirizzo come 172.32.0.1 è pubblico.
  • Subnet zero. L'RFC 950 (1985), scritto per l'era dell'indirizzamento a classi, sconsigliava di assegnare subnet il cui campo subnet fosse composto da soli zeri o da soli uni. L'RFC 1878 (1995) definisce obsoleta questa pratica, e il software moderno può usare ogni subnet definibile.
  • IPv6 usa una notazione simile. L'RFC 4291 richiede identificatori di interfaccia a 64 bit per tutti gli indirizzi unicast, tranne quelli che iniziano con il valore binario 000, quindi una normale subnet IPv6 è una /64 e la pianificazione degli indirizzi avviene nei bit al di sopra di essa.

Da ricordare

La lunghezza del prefisso dice quanti bit iniziali costituiscono la rete. Tutto il resto ne discende: blocchi di qualsiasi dimensione pari a una potenza di due, aggregazione di blocchi vicini allineati e inoltro in base al prefisso corrispondente più lungo.

Fonti e letture di approfondimento

Devi controllare gli indirizzi DNS pubblici di un dominio? Usa lo strumento Domain IP Lookup.

Strumenti gratuiti su questo argomento

Domande frequenti