Vraag CIDR voor Dummies


Ik begrijp wat CIDR is en waarvoor het wordt gebruikt, maar ik weet nog steeds niet hoe ik het in mijn hoofd moet berekenen. Kan iemand een voorbeeld geven van een "voor dummies" -type met voorbeelden?


44
2018-05-27 13:19


oorsprong


Zie ook deze vraag voor de uitputtende subnettingvraag. - Zoredache


antwoorden:


CIDR (Classless Inter-Domain Routing, uitgesproken als "kidder" of "cider" - voeg uw eigen lokale variant toe aan de opmerkingen!) Is een systeem voor het definiëren van het netwerkgedeelte van een IP-adres (meestal beschouwen mensen dit als een subnetmasker) . De reden dat het "klasseloos" is, is dat het een manier biedt om IP-netwerken flexibeler te verbreken dan hun basisklasse.

Toen IP-netwerken voor het eerst werden gedefinieerd, hadden IP's klassen op basis van hun binaire prefix:

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

(Merk op dat dit de bron is van mensen die verwijzen naar a / 24 als een "klasse C", hoewel dat geen strikt juiste vergelijking is omdat een klasse C een specifiek voorvoegsel moest hebben)

Deze binaire prefixen werden gebruikt voor het routeren van grote hoeveelheden IP-ruimte rond. Dit was inefficiënt omdat het ertoe leidde dat grote blokken werden toegewezen aan organisaties die ze niet noodzakelijkerwijs nodig hadden, en ook omdat Class C's alleen in stappen van 24 bit konden worden toegewezen, wat betekent dat routetabellen onnodig groot konden worden omdat meerdere Class C's naar dezelfde locatie.

CIDR is zo gedefinieerd dat subnetmaskers met variabele lengte (VLSM) op netwerken kunnen worden toegepast. Zoals de naam van toepassing is, kunnen adresgroepen of netwerken worden opgesplitst in groepen die geen directe relatie hebben met de natuurlijke "klasse" waartoe ze behoren.

Het uitgangspunt van VLSM is om de telling van het aantal netwerkbits in een netwerk te leveren. Omdat een IPv4-adres een 32-bits geheel getal is, zal de VLSM altijd tussen 0 en 32 liggen (hoewel ik niet zeker weet in welk geval u een 0-lengtemasker zou kunnen hebben).

De eenvoudigste manier om te beginnen met het berekenen van VLSM / CIDR in je hoofd is om de "natuurlijke" 8-bits grenzen te begrijpen:

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

(Overigens is het volkomen legaal en tamelijk gewoon in ACL's om een ​​/ 32-masker te gebruiken. Het betekent simpelweg dat je naar een enkel IP-adres verwijst)

Zodra je die begrijpt, is het eenvoudige binaire rekenkunde om omhoog of omlaag te gaan om het aantal hosts te krijgen. Als a / 24 bijvoorbeeld 256 IP's heeft (laten we nu netwerk- en broadcastadressen achterwege laten, is dat een andere kwestie in de netwerktheorie), zal het verhogen van het subnet met één bit (tot / 25) de hostruimte met één bit verminderen (naar 7), wat betekent dat er 128 IP's zijn.

Hier is een tabel van het laatste octet. Deze tabel kan worden verplaatst naar een octet om het gestippelde quad-equivalent te krijgen.

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 een voorbeeld om deze naar een ander octet te verplaatsen, zou / 18 (dat is / 26 minus 8 bits, dus een octet verschoven) 255.255.192.0 zijn.


75
2018-05-27 13:50



Vreemd, ik hoor het meestal uitgesproken als "cider" - sclarson
Ik weet zeker dat het regionaal / organisatorisch is. Ik weet niet zeker of ik iemand CIDR "kidder" heb horen noemen, maar ik weet dat toen ik jaren geleden LISP programmeerde, de CDR-functie door mijn prof "kidder" werd genoemd, misschien heb ik het van daar opgehaald ... - jj33
Net als extra datapunten: ik heb alleen "cider" gehoord en mij werd geleerd dat CDR "cudder" was. Aan elk van hen, denk ik. :-) - Luke
Bedankt SaveTheRbtz, ik heb het bereik van klasse B gewijzigd in 191.255.255.255 en de klasse C begint met 192.255.255.255. Vreemd, ik heb het binaire voorvoegsel goed en ik herinner me dat ik de wiskunde had gedaan. Heel erg bedankt voor het zien van dat! - jj33
Ik zou deze +10 geven als ik kon. Het is een geweldige uitleg van CIDR / VLSM. - JamesBarnett


Elk octet is 8 waard.

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

U kunt dus snel uw subnet verkleinen en u maakt zich alleen zorgen over de laatste 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

Ik hoop dat dat duidelijk genoeg is


7
2018-05-27 13:45





Een dag (sic) laat, hopelijk geen dollar tekort. CIDR is het aantal aangrenzende één bits in het IPv4-masker (32 bits) beginnend bij het meest significante bit.

10000000 00000000 00000000 00000000 waarbij 1 = meest significante bit

De gemeenschappelijke maskers zijn / 8, / 16, / 24 die allemaal op een 8 bit (octet) grens vallen.

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

Het is niet echt moeilijk als het niet octet uitgelijnd is, maar het vereist enige eenvoudige wiskunde en begrip van wat een octet is.

11111111 11111111 11100000 00000000 = / 19

De eerste twee octetten van het masker zijn 255.255 (/ 16 is kleiner dan / 19). Het laatste octet is 0 (/ 19 is kleiner dan / 24). Tot zover weten we het

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

Kijk naar elk octet en onthoud dat het een 8-bitswaarde is, 0 - 255.

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

Dus het derde octet (?) 11100000 is 128 + 64 + 32 = 224. Dat betekent

11111111 11111111 11100000 00000000 = / 19 = 255.255.224.0


6
2017-08-12 15:15





Het is erg foutgevoelig om niet-triviale netwerken met de hand te berekenen. Probeer een CIDR-rekenmachine in plaats daarvan.


3
2018-05-27 19:53



Wie heeft dit gestemd ?! Ik ben het er helemaal mee eens, het is heel gemakkelijk om de CIDR-ranges in je hoofd te misrekenen, vooral tijdens het converteren, bijv. / 23 naar 255.255.254.0 formulier. Ik gebruik het 'ipcalc'-pakket op Debian om me te helpen. - Mike Pountney
I denk ipcalc en sipcalc zijn betere keuzes, maar in elk geval +1 - SaveTheRbtz


Integendeel, ik denk dat het goed is om het volledig te begrijpen CIDR en in staat zijn om berekeningen in je brein te maken ... maar soms wil je je berekeningen dubbel controleren. Ik gebruik graag de PHP Subnet Calculator: http://share-foo.com/SubnetCalc.php

alt-tekst http://locobox.googlepages.com/phpsubnet.png


2
2018-05-27 20:11





Een ander goed document om te hebben, als je alleen een desk reference wilt, is RFC 1878 - Subnet-tabel met variabele lengte voor IPv4.


1
2018-05-27 20:07