Frage CIDR für Dummies


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" Typ Erklärung mit Beispielen geben?


44
2018-05-27 13:19


Ursprung


Siehe auch diese Frage für die erschöpfende Subnetz-Frage. - Zoredache


Antworten:


CIDR (Classless Inter-Domain Routing, ausgesprochen "Kidder" oder "Apfelwein" - fügen Sie Ihre eigene lokale Variante zu den Kommentaren hinzu!) Ist ein System zur Definition des Netzwerkteils einer IP-Adresse (in der Regel wird dies als Subnetzmaske betrachtet) . Der Grund dafür, dass er "klassenlos" ist, ist, dass er IP-Netzwerke flexibler als die Basisklasse abbrechen kann.

Wenn IP-Netzwerke zuerst definiert wurden, 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 streng zutreffender Vergleich ist, da eine Klasse C ein spezifisches Präfix haben muss)

Diese binären Präfixe wurden verwendet, um große Teile des IP-Raums zu routen. Dies war ineffizient, da große Blöcke Organisationen zugewiesen wurden, die sie nicht unbedingt benötigten, und weil Klasse Cs nur in 24-Bit-Schritten zugewiesen werden konnten, was bedeutet, dass Routing-Tabellen unnötig groß werden konnten, wenn mehrere Klasse C weitergeleitet wurden der gleiche Ort.

CIDR wurde definiert, um zu ermöglichen, dass Subnetzmasken variabler Länge (VLSM) auf Netzwerke angewendet werden können. Wie der Name besagt, 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 mir nicht sicher bin, in welcher Instanz Sie möglicherweise eine 0-Längenmaske haben).

Der einfachste Weg, VLSM / CIDR in Ihrem Kopf zu berechnen, ist, 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 es vollkommen legal und in ACLs ziemlich üblich, eine / 32-Maske zu verwenden. Es bedeutet einfach, dass Sie sich auf eine einzelne IP beziehen)

Sobald Sie diese begreifen, ist es eine einfache Binärarithmetik, nach oben oder unten zu gehen, um die Anzahl der Hosts zu erhalten. Wenn zum Beispiel a / 24 256 IPs hat (lassen Sie uns Netzwerk- und Broadcast-Adressen vorerst auslassen, das ist eine andere Frage der Netztheorie), wird durch Erhöhen des Subnetzes um ein Bit (auf / 25) der Host-Speicherplatz um ein Bit (auf 7), was bedeutet, dass es 128 IPs geben wird.

Hier ist eine Tabelle des letzten Oktetts. Diese Tabelle kann zu jedem 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 ein Beispiel für das Verschieben dieser zu einem anderen Oktett wäre / 18 (welches / 26 minus 8 Bits ist, also ein Oktett verschoben) 255.255.192.0.


75
2018-05-27 13:50



Seltsam, ich höre es normalerweise "Apfelwein" - sclarson
Ich bin mir sicher, dass es regional / organisatorisch ist. Ich bin mir nicht sicher, ob ich jemanden CIDR "Kidder" genannt habe, aber ich weiß, als ich vor Jahren die LISP-Programmierung nahm, wurde die CDR-Funktion von meinem Prof "Kidder" genannt, vielleicht habe ich es von dort abgeholt ... - jj33
Nur als zusätzliche Datenpunkte: Ich habe nur "Cider" gehört und mir wurde beigebracht, dass CDR "cuder" sei. Zu jedem ihren eigenen, schätze ich. :-) - Luke
Dank SaveTheRbtz habe ich den Endbereich der Klasse B auf 191.255.255.255 und die Klasse C auf 192.255.255.255 gesetzt. Seltsam, ich habe das binäre Präfix richtig gemacht und ich erinnere mich daran, die Mathematik zu machen. Vielen Dank, dass Sie das entdeckt haben! - jj33
Ich würde diese +10 geben, wenn ich könnte. Es ist eine großartige Erklärung von CIDR / VLSM. - JamesBarnett


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 eingrenzen und dann machen Sie sich nur Sorgen um die letzten 8 Bits.

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


7
2018-05-27 13:45





Ein Tag (sic) spät, hoffentlich kein Dollar kurz. CIDR ist die Anzahl der zusammenhängenden Bits in der IPv4-Maske (32 Bits), beginnend beim 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- (Oktett-) Grenze 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 Oktett ausgerichtet ist, aber es erfordert einige einfache Mathematik und Verständnis, was ein Oktett ist.

11111111 11111111 11100000 00000000 = / 19

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

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

Achten Sie beim Betrachten jedes Oktetts darauf, 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

Also das dritte Oktett (?) 11100000 ist 128 + 64 + 32 = 224. Das heißt

11111111 11111111 11100000 00000000 = / 19 = 255.255.224.0


6
2017-08-12 15:15





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


3
2018-05-27 19:53



Wer hat das abgelehnt ?! Ich stimme völlig zu, es ist sehr einfach, CIDR-Bereiche in Ihrem Kopf zu verrechnen, besonders bei der Konvertierung, zB / 23 zu 255.255.254.0. Ich benutze das "ipcalc" -Paket auf Debian, um mir zu helfen. - Mike Pountney
Meiner Ansicht nach ipcalc und sipcalc sind bessere Wahlen, aber trotzdem +1 - SaveTheRbtz


Im Gegenteil, ich finde es gut, das zu verstehen CIDR und in der Lage sein, Berechnungen in Ihrem Gehirn durchzuführen ... aber manchmal möchten Sie Ihre Berechnungen noch einmal überprüfen. Ich benutze gerne die PHP Subnet-Rechner: http://share-foo.com/SubnetCalc.php

alt text http://locobox.googlepages.com/phpsubnet.png


2
2018-05-27 20:11





Ein weiteres gutes Dokument zu haben, wenn Sie nur eine Schreibtischreferenz wollen, ist RFC 1878 - Subnet-Tabelle mit variabler Länge für IPv4.


1
2018-05-27 20:07