CIDR pour les nuls

46

Je comprends ce qu'est le CIDR et à quoi il sert, mais je ne comprends toujours pas comment le calculer dans ma tête. Quelqu'un peut-il donner une explication de type "pour les nuls" avec des exemples?

Bob
la source
3
Voir également cette question pour la question exhaustive des sous-réseaux.
Zoredache

Réponses:

78

CIDR (routage interdomaine sans classe, prononcé "kidder" ou "cidre" - ajoutez votre propre variante locale aux commentaires!) Est un système permettant de définir la partie réseau d'une adresse IP (généralement ce que les gens considèrent comme un masque de sous-réseau) . La raison pour laquelle elle est "sans classe" est qu’elle permet de casser les réseaux IP de manière plus flexible que leur classe de base.

Lorsque les réseaux IP ont été définis pour la première fois, les IP avaient des classes basées sur leur préfixe binaire:

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

(Notez que c’est la source de personnes qui désignent a / 24 comme une "classe C", bien que ce ne soit pas une comparaison strictement vraie car une classe C devait avoir un préfixe spécifique)

Ces préfixes binaires ont été utilisés pour router de gros morceaux d’espace IP. Cela était inefficace, car de grands blocs étaient attribués à des organisations qui n'en avaient pas nécessairement besoin, mais également parce que les classes C ne pouvaient être attribuées que par incréments de 24 bits, ce qui signifiait que les tables de routage pouvaient devenir inutilement volumineuses lorsque plusieurs classes de classe étaient acheminées. au même endroit.

CIDR a été défini pour permettre l'application de masques de sous-réseau de longueur variable (VLSM) aux réseaux. Selon le nom, les groupes d'adresses ou les réseaux peuvent être divisés en groupes sans relation directe avec la "classe" naturelle à laquelle ils appartiennent.

Le principe de base de VLSM est de fournir le nombre de bits de réseau dans un réseau. Puisqu'une adresse IPv4 est un entier de 32 bits, le VLSM sera toujours compris entre 0 et 32 ​​(bien que je ne sois pas sûr de savoir dans quel cas vous pourriez avoir un masque de longueur nulle).

La meilleure façon de commencer à calculer le VLSM / CIDR dans votre tête est de comprendre les limites "naturelles" de 8 bits:

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

(En passant, il est parfaitement légal, et assez courant dans les ACL, d'utiliser un masque / 32. Cela signifie simplement que vous vous référez à une seule adresse IP)

Une fois que vous les avez compris, l'arithmétique binaire simple consiste à monter ou descendre pour obtenir le nombre d'hôtes. Par exemple, si un / 24 a 256 adresses IP (nous allons laisser les adresses réseau et de diffusion pour le moment, c’est une autre question de théorie du réseau), augmenter le sous-réseau d’un bit (à / 25) réduira l’espace hôte d’un bit 7), ce qui signifie qu'il y aura 128 adresses IP.

Voici un tableau du dernier octet. Cette table peut être déplacée sur n’importe quel octet pour obtenir l’équivalent quadruple en pointillé.

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

Comme exemple de décalage de ceux-ci vers un autre octet, / 18 (qui est / 26 moins 8 bits, ainsi décalé d'un octet) serait 255.255.192.0.

jj33
la source
2
Bizarre, j'entends généralement le prononcer "cidre"
sclarson
Je suis sûr que c'est régional / organisationnel. Je ne sais pas si j'entendu quelqu'un appel CIDR « Kidder », mais je sais quand je pris la fonction CDR il y a quelques années de programmation LISP a été appelé « Kidder » par mon prof, peut - être je l' ai ramassé à partir de là ...
jj33
Juste comme points de données supplémentaires: j'ai seulement entendu "cidre" et on m'a appris que CDR était "cudder". À chacun ses goûts, je suppose. :-)
Luke
Merci SaveTheRbtz, j'ai changé la plage de fin de classe B en 191.255.255.255 et le début de classe C en 192.255.255.255. Étrange, j'ai bien saisi le préfixe binaire et je me rappelle avoir fait le calcul. Merci beaucoup d'avoir remarqué ça!
jj33
2
Je donnerais ce +10 si je pouvais. C'est une excellente explication de CIDR / VLSM.
JamesBarnett
8

Chaque octet vaut 8.

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

Ainsi, vous pouvez rapidement réduire votre sous-réseau et vous ne vous inquiétez plus que des 8 derniers 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

J'espère que c'est assez clair

Sclarson
la source
6

Un jour (sic) en retard, espérons pas un dollar en moins. CIDR est le nombre d'un bit contigu dans le masque IPv4 (32 bits) commençant au bit le plus significatif.

10000000 00000000 00000000 00000000 où 1 = bit le plus significatif

Les masques communs sont / 8, / 16, / 24, qui se trouvent tous sur une limite de 8 bits (octets).

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

Ce n'est pas vraiment difficile quand il n'est pas aligné octet, mais cela nécessite quelques notions de calcul et de compréhension de ce qu'est un octet.

11111111 11111111 11100000 00000000 = / 19

Les deux premiers octets du masque sont 255.255 (/ 16 est inférieur à / 19). Le dernier octet est 0 (/ 19 est inférieur à / 24). Jusqu'ici nous savons

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

En regardant chaque octet, rappelez-vous qu’il s’agit d’une valeur de 8 bits, comprise entre 0 et 255.

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

Donc, le troisième octet (?) 11100000 est 128 + 64 + 32 = 224. Cela signifie

11111111 11111111 11100000 00000000 = / 19 = 255.255.224.0

Dbasnett
la source
4

Il est très probable que les réseaux non triviaux soient calculés manuellement. Essayez plutôt une calculatrice CIDR .

Hayalci
la source
2
Qui a voté pour ça?! Je suis totalement d'accord, il est très facile de mal calculer les plages de CIDR dans votre tête, en particulier lors de la conversion, par exemple, la forme / 23 en 255.255.254.0. J'utilise le paquet 'ipcalc' sur Debian pour m'aider.
Mike Pountney
2
Je pense ipcalcet sipcalcsont de meilleurs choix, mais de toute façon +1
SaveTheRbtz
2

Au contraire, je pense qu'il est bon de comprendre complètement le CIDR et de pouvoir faire des calculs dans votre cerveau ... mais parfois, vous voulez vérifier vos calculs. J'aime utiliser la calculatrice de sous-réseau PHP : http://share-foo.com/SubnetCalc.php

texte alternatif

l0c0b0x
la source