52 votes

CIDR pour les nuls

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

87voto

Curt Hagenlocher Points 12432

Le CIDR (Classless Inter-Domain Routing, prononcé "kidder" ou "cider" - ajoutez votre propre variante locale dans les commentaires !) est un système de définition de la partie réseau d'une adresse IP (on pense généralement à un masque de sous-réseau). La raison pour laquelle il est "sans classe" est qu'il permet de décomposer les réseaux IP de manière plus souple que leur classe de base.

Lorsque les réseaux IP ont été définis pour la première fois, les IP étaient classés en fonction de 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

(Il est à noter que c'est la raison pour laquelle les gens parlent d'un /24 comme d'une "classe C", bien que cette comparaison ne soit pas tout à fait exacte, car une classe C devait avoir un préfixe spécifique).

Ces préfixes binaires étaient utilisés pour acheminer de grandes parties de l'espace IP. Cette méthode était inefficace, car de grands blocs étaient attribués à des organisations qui n'en avaient pas nécessairement besoin, et aussi parce que les préfixes de classe C ne pouvaient être attribués que par incréments de 24 bits, ce qui signifie que les tables de routage pouvaient devenir inutilement volumineuses lorsque plusieurs préfixes de classe C étaient acheminés vers le même endroit.

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

Le principe de base du VLSM est de fournir le décompte du nombre de bits de réseau dans un réseau. Étant donné qu'une adresse IPv4 est un nombre entier de 32 bits, le VLSM sera toujours compris entre 0 et 32 (bien que je ne sache pas exactement dans quel cas on pourrait avoir un masque de longueur 0).

La façon la plus simple de commencer à calculer 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

(Par ailleurs, 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 IP)

Une fois que vous les avez compris, il suffit de faire de l'arithmétique binaire pour obtenir le nombre d'hôtes. Par exemple, si un /24 a 256 adresses IP (laissons de côté les adresses de réseau et de diffusion pour l'instant, c'est une autre question de théorie des réseaux), 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. Ce tableau peut être décalé sur n'importe quel octet pour obtenir l'équivalent en quadrature du cercle.

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

Pour donner un exemple de décalage vers un autre octet, /18 (qui est /26 moins 8 bits, donc décalé d'un octet) serait 255.255.192.0.

10voto

sclarson Points 3594

Chaque octet vaut 8.

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

Vous pouvez donc rapidement réduire votre sous-réseau et ne vous préoccuper 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 suffisamment clair

8voto

dbasnett Points 673

Un jour (sic) de retard, espérons qu'il ne manque pas un dollar. Le CIDR est le nombre de bits 1 contigus dans le masque IPv4 (32 bits) en commençant par le bit le plus significatif.

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

Les masques les plus courants sont /8, /16, /24 qui se situent tous sur une frontière 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 lorsqu'il n'est pas aligné sur l'octet, mais cela nécessite quelques mathématiques simples et la 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'à présent, nous savons que

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

Lorsque vous examinez chaque octet, n'oubliez pas 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

Le troisième octet ( ?) 11100000 correspond donc à 128 + 64 + 32 = 224. Cela signifie que

11111111 11111111 11100000 00000000 = /19 = 255.255.224.0

4voto

Zachary Scott Points 146

Le calcul à la main de réseaux non triviaux est très sujet aux erreurs. Essayez un Calculateur CIDR au lieu de cela.

2voto

l0c0b0x Points 11587

Au contraire, je pense qu'il est bon de bien comprendre CIDR et être capable de faire des calculs dans votre cerveau... mais parfois vous voulez revérifier vos calculs. J'aime utiliser l'outil Calculateur de sous-réseau PHP : http://share-foo.com/SubnetCalc.php

alt text

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X