CIDR for Dummies


46

Capisco cos'è CIDR e a cosa serve, ma non riesco ancora a capire come calcolarlo nella mia testa. Qualcuno può dare una spiegazione di tipo "per manichini" con esempi?


3
Vedi anche questa domanda per la domanda di subnet esaustiva.
Zoredache,

Risposte:


78

CIDR (Classless Inter-Domain Routing, pronunciato "kidder" o "sidro" - aggiungi la tua variante locale ai commenti!) È un sistema per definire la parte di rete di un indirizzo IP (di solito la gente pensa a questo come a una subnet mask) . Il motivo per cui è "senza classi" è che consente di abbattere le reti IP in modo più flessibile rispetto alla loro classe di base.

Quando le reti IP furono definite per la prima volta, gli IP avevano classi basate sul loro prefisso binario:

Class    Binary Prefix    Range                       Network Bits
A        0*               0.0.0.0-127.255.255.255     8
B        10*              128.0.0.0-191.255.255.255   16
C        110*             192.0.0.0-223.255.255.255   24
D        1110*            224.0.0.0-239.255.255.255
E        1111*            240.0.0.0-255.255.255.255

(Si noti che questa è la fonte di persone che si riferiscono a / 24 come "classe C", sebbene non sia un confronto strettamente vero perché una classe C deve avere un prefisso specifico)

Questi prefissi binari sono stati utilizzati per il routing di grossi blocchi di spazio IP in giro. Ciò è stato inefficiente perché ha comportato l'assegnazione di blocchi di grandi dimensioni a organizzazioni che non ne avevano necessariamente bisogno, e anche perché le Class C potevano essere assegnate solo con incrementi di 24 bit, il che significa che le tabelle di routing potevano diventare inutilmente grandi man mano che venivano instradate più Class C la stessa posizione.

Il CIDR è stato definito per consentire alle subnet mask di lunghezza variabile (VLSM) di essere applicate alle reti. A seconda del nome, i gruppi di indirizzi o le reti possono essere suddivisi in gruppi che non hanno relazioni dirette con la "classe" naturale a cui appartengono.

La premessa di base di VLSM è fornire il conteggio del numero di bit di rete in una rete. Poiché un indirizzo IPv4 è un numero intero a 32 bit, VLSM sarà sempre compreso tra 0 e 32 (anche se non sono sicuro in quale caso potresti avere una maschera di lunghezza 0).

Il modo più semplice per iniziare a calcolare VLSM / CIDR nella tua testa è capire i confini "naturali" a 8 bit:

CIDR    Dotted Quad
/8      255.0.0.0
/16     255.255.0.0
/24     255.255.255.0
/32     255.255.255.255

(A proposito, è perfettamente legale e abbastanza comune negli ACL, usare una maschera / 32. Significa semplicemente che ti riferisci a un singolo IP)

Una volta afferrati quelli, è semplice aritmetica binaria per spostarsi verso l'alto o verso il basso per ottenere il numero di host. Ad esempio, se un / 24 ha 256 IP (per ora lasciamo fuori gli indirizzi di rete e broadcast, questa è una domanda diversa sulla teoria della rete), aumentare la sottorete di un bit (a / 25) ridurrà lo spazio host di un bit (a 7), il che significa che ci saranno 128 IP.

Ecco una tabella dell'ultimo ottetto. Questa tabella può essere spostata su qualsiasi ottetto per ottenere l'equivalente quad punteggiato.

CIDR    Dotted Quad
/24     255.255.255.0
/25     255.255.255.128
/26     255.255.255.192
/27     255.255.255.224
/28     255.255.255.240
/29     255.255.255.248
/30     255.255.255.252
/31     255.255.255.254
/32     255.255.255.255

Come esempio di spostamento di questi in un altro ottetto, / 18 (che è / 26 meno 8 bit, quindi spostato un ottetto) sarebbe 255.255.192.0.


2
Strano, di solito lo sento pronunciato "sidro"
sclarson

Sono sicuro che sia regionale / organizzativo. Non sono sicuro di aver sentito qualcuno chiamare CIDR "kidder", ma so che quando ho preso la programmazione LISP anni fa la funzione CDR è stata chiamata "kidder" dal mio prof, forse l'ho preso da lì ...
jj33

Proprio come punti dati aggiuntivi: ho sentito solo "sidro" e mi è stato insegnato che il CDR era "cudder". A ciascuno il suo, immagino. :-)
Luca,

Grazie a SaveTheRbtz, ho modificato l'intervallo di fine classe B in 191.255.255.255 e la classe C inizia a 192.255.255.255. Strano, ho ottenuto il prefisso binario giusto e ricordo di aver fatto la matematica. Grazie mille per averlo individuato!
jj33,

2
Darei questo +10 se potessi. È una grande spiegazione di CIDR / VLSM.
JamesBarnett,

8

Ogni ottetto vale 8.

  • 255.0.0.0 / 8
  • 255.255.0.0 / 16
  • 255.255.255.0 / 24
  • 255.255.255.255 / 32

Quindi puoi restringere rapidamente la tua sottorete e poi sei solo preoccupato per gli ultimi 8 bit.

128, 192, 224, 240, 248, 252, 254, 255

+1  , +2 , +3 , +4 , +5 , +6 , +7 , +8
  • 255.128.0.0 = / 9
  • 255.192.0.0 = / 10
  • 255.224.0.0 = / 11
  • 255.240.0.0 = / 12
  • 255.248.0.0 = / 13
  • 255.252.0.0 = / 14
  • 255.254.0.0 = / 15

Spero che sia abbastanza chiaro


6

Un giorno (sic) in ritardo, si spera non un dollaro in meno. CIDR è il numero di 1 bit contigui nella maschera IPv4 (32 bit) a partire dal bit più significativo.

10000000 00000000 00000000 00000000 dove 1 = bit più significativo

Le maschere comuni sono / 8, / 16, / 24 che cadono tutte su un limite di 8 bit (ottetto).

11111111 00000000 00000000 00000000 = / 8 = 255.0.0.0

11111111 11111111 00000000 00000000 = / 16 = 255.255.0.0

11111111 11111111 11111111 00000000 = / 24 = 255.255.255.0

Non è davvero difficile quando non è allineato l'ottetto, ma richiede una semplice matematica e comprensione di cosa sia un ottetto.

11111111 11111111 11100000 00000000 = / 19

I primi due ottetti della maschera sono 255.255 (/ 16 è inferiore a / 19). L'ultimo ottetto è 0 (/ 19 è inferiore a / 24). Finora lo sappiamo

11111111 11111111 11100000 00000000 = / 19 = 255.255.?.0

Quando si osserva ciascun ottetto, ricordare che è un valore di 8 bit, 0 - 255.

0 0 0 0 0 0 0 0 
1
2 6 3 1
8 4 2 6 8 4 2 1

Quindi il terzo ottetto (?) 11100000 è 128 + 64 + 32 = 224. Ciò significa

11111111 11111111 11100000 00000000 = / 19 = 255.255.224.0


4

È molto soggetto a errori calcolare manualmente reti non banali. Prova invece un calcolatore CIDR .


2
Chi l'ha votata ?! Sono pienamente d'accordo, è molto facile calcolare male gli intervalli CIDR nella tua testa, specialmente durante la conversione, ad es. Da / 23 a 255.255.254.0. Uso il pacchetto 'ipcalc' su Debian per aiutarmi.
Mike Pountney,

2
Penso ipcalce sipcalcsono scelte migliori, ma comunque +1
SaveTheRbtz

2

Al contrario, penso che sia bello comprendere completamente il CIDR ed essere in grado di fare calcoli nel tuo cervello ... ma a volte vuoi ricontrollare i tuoi calcoli. Mi piace usare il calcolatore di sottorete PHP : http://share-foo.com/SubnetCalc.php

testo alternativo


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.