CIDR für Dummies

46

Ich verstehe, was CIDR ist und wofür es verwendet wird, aber ich kann immer noch nicht herausfinden, wie ich es in meinem Kopf berechnen soll. Kann jemand eine "für Dummies" Typerklärung mit Beispielen geben?

Bob
quelle
3
Siehe auch diese Frage für die erschöpfende Subnetzfrage.
Zoredache

Antworten:

78

CIDR (Classless Inter-Domain Routing, ausgesprochen "kidder" oder "cider" - fügen Sie Ihre eigene lokale Variante zu den Kommentaren hinzu!) Ist ein System zum Definieren des Netzwerkteils einer IP-Adresse (normalerweise wird dies als Subnetzmaske betrachtet). . Der Grund, warum es "klassenlos" ist, ist, dass es eine Möglichkeit gibt, IP-Netzwerke flexibler als ihre Basisklasse aufzubrechen.

Bei der ersten Definition von IP-Netzwerken hatten IPs Klassen basierend auf ihrem binären Präfix:

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

(Beachten Sie, dass dies die Quelle von Personen ist, die sich auf a / 24 als "Klasse C" beziehen, obwohl dies kein strikter Vergleich ist, da eine Klasse C ein bestimmtes Präfix haben musste.)

Diese binären Präfixe wurden zum Weiterleiten großer Teile des IP-Speicherplatzes verwendet. Dies war ineffizient, weil große Blöcke Organisationen zugewiesen wurden, die diese nicht unbedingt benötigten, und weil Klasse Cs nur in 24-Bit-Schritten zugewiesen werden konnten, was bedeutete, dass Routingtabellen unnötig groß werden konnten, wenn mehrere Klasse Cs an sie weitergeleitet wurden der gleiche Ort.

CIDR wurde so definiert, dass Subnetzmasken variabler Länge (VLSM) auf Netzwerke angewendet werden können. Je nach Name können Adressgruppen oder Netzwerke in Gruppen unterteilt werden, die keine direkte Beziehung zu der natürlichen "Klasse" haben, zu der sie gehören.

Die Grundvoraussetzung von VLSM besteht darin, die Anzahl der Netzwerkbits in einem Netzwerk anzugeben. Da eine IPv4-Adresse eine 32-Bit-Ganzzahl ist, liegt die VLSM immer zwischen 0 und 32 (obwohl ich nicht sicher bin, in welchem ​​Fall Sie möglicherweise eine 0-Längenmaske haben).

Der einfachste Weg, um mit der Berechnung von VLSM / CIDR in Ihrem Kopf zu beginnen, besteht darin, die "natürlichen" 8-Bit-Grenzen zu verstehen:

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

(Übrigens ist die Verwendung einer / 32-Maske in ACLs vollkommen legal und recht häufig. Dies bedeutet lediglich, dass Sie sich auf eine einzelne IP beziehen.)

Sobald Sie diese verstanden haben, ist es eine einfache Binärarithmetik, sich nach oben oder unten zu bewegen, um die Anzahl der Hosts zu ermitteln. Wenn zum Beispiel ein / 24 256 IPs hat (lassen wir Netzwerk- und Broadcast-Adressen vorerst weg), wird durch Erhöhen des Subnetzes um ein Bit (auf / 25) der Host-Speicherplatz um ein Bit (auf) verringert 7), was bedeutet, dass es 128 IPs geben wird.

Hier ist eine Tabelle des letzten Oktetts. Diese Tabelle kann in ein beliebiges Oktett verschoben werden, um das gepunktete Quad-Äquivalent zu erhalten.

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

Als Beispiel für das Verschieben dieser in ein anderes Oktett würde / 18 (was / 26 minus 8 Bits ist, also ein Oktett verschoben) 255.255.192.0 lauten.

jj33
quelle
2
Seltsam, ich höre es normalerweise "Apfelwein" ausgesprochen
Sclarson
Ich bin sicher, es ist regional / organisatorisch. Ich bin mir nicht sicher, ob ich jemanden CIDR "kidder" nennen hörte, aber ich weiß, als ich vor Jahren LISP-Programmierung aufnahm, wurde die CDR-Funktion von meinem Professor "kidder" genannt, vielleicht habe ich sie von dort aufgegriffen ...
jj33
Nur als zusätzliche Datenpunkte: Ich habe nur "Apfelwein" gehört und mir wurde beigebracht, dass CDR "Cudder" ist. Für jeden seine, denke ich. :-)
Luke
Dank SaveTheRbtz habe ich den Endbereich der Klasse B auf 191.255.255.255 geändert und den Start der Klasse C auf 192.255.255.255. Seltsam, ich habe das Binärpräfix richtig verstanden und erinnere mich, dass ich die Mathematik gemacht habe. Vielen Dank, dass Sie das entdeckt haben!
jj33
2
Ich würde diese +10 geben, wenn ich könnte. Es ist eine großartige Erklärung für CIDR / VLSM.
JamesBarnett
8

Jedes Oktett ist 8 wert.

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

So können Sie Ihr Subnetz schnell einschränken und sich dann nur noch Sorgen um die letzten 8 Bits machen.

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

Hoffe das ist klar genug

Sclarson
quelle
6

Ein Tag zu spät, hoffentlich kein Dollar zu kurz. CIDR ist die Anzahl der zusammenhängenden Ein-Bits in der IPv4-Maske (32 Bits), beginnend mit dem höchstwertigen Bit.

10000000 00000000 00000000 00000000 wobei 1 = höchstwertiges Bit

Die gemeinsamen Masken sind / 8, / 16, / 24, die alle auf eine 8-Bit-Grenze (Oktettgrenze) fallen.

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

Es ist nicht wirklich schwer, wenn es nicht mit einem Oktett ausgerichtet ist, aber es erfordert eine einfache Berechnung und ein Verständnis dessen, was ein Oktett ist.

11111111 11111111 11100000 00000000 = / 19

Die ersten beiden Oktette der Maske sind 255.255 (/ 16 ist kleiner als / 19). Das letzte Oktett ist 0 (/ 19 ist kleiner als / 24). Soweit wir wissen

11111111 11111111 11100000 00000000 = / 19 = 255,255.?.0

Denken Sie beim Betrachten jedes Oktetts daran, dass es sich um einen 8-Bit-Wert von 0 bis 255 handelt.

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

Das dritte Oktett (?) 11100000 ist also 128 + 64 + 32 = 224. Das bedeutet

11111111 11111111 11100000 00000000 = / 19 = 255.255.224.0

dbasnett
quelle
4

Es ist sehr fehleranfällig, nicht triviale Netzwerke von Hand zu berechnen. Versuchen Sie stattdessen einen CIDR-Rechner .

hayalci
quelle
2
Wer hat das abgelehnt ?! Ich stimme vollkommen zu, es ist sehr einfach, CIDR-Bereiche in Ihrem Kopf falsch zu berechnen, insbesondere bei der Konvertierung von zB / 23 in 255.255.254.0. Ich benutze das 'ipcalc'-Paket unter Debian, um mir zu helfen.
Mike Pountney
2
Ich denke ipcalcund bin sipcalcbesser gewählt, aber trotzdem +1
SaveTheRbtz
2

Im Gegenteil, ich denke, es ist gut, CIDR vollständig zu verstehen und Berechnungen in Ihrem Gehirn durchführen zu können ... aber manchmal möchten Sie Ihre Berechnungen noch einmal überprüfen. Ich benutze gerne den PHP Subnet Calculator : http://share-foo.com/SubnetCalc.php

Alt-Text

l0c0b0x
quelle