web-dev-qa-db-fra.com

CIDR for Dummies

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

46
Bob

Le CIDR (Classless Inter-Domain Routing, prononcé "kidder" ou "cider" - ajoutez votre propre variante locale aux commentaires!) Est un système de définition de la partie réseau d'une adresse IP (généralement les gens pensent à cela comme un masque de sous-réseau) . La raison pour laquelle il est "sans classe" est qu'il permet de briser 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 adresses 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 se référant à 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 acheminer de gros morceaux d'espace IP autour. Cela était inefficace car il en résultait que de gros blocs étaient attribués à des organisations qui n'en avaient pas nécessairement besoin, et aussi parce que les classes C ne pouvaient être attribuées que par incréments de 24 bits, ce qui signifie que les tables de routage pouvaient devenir inutilement volumineuses lorsque plusieurs classes C étaient acheminées vers au même endroit.

Le CIDR a été défini pour permettre aux masques de sous-réseau de longueur variable (VLSM) d'être appliqués aux réseaux. Selon le nom, les groupes d'adresses ou réseaux peuvent être décomposés en groupes qui n'ont pas de 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. Étant donné qu'une adresse IPv4 est un entier 32 bits, le VLSM sera toujours compris entre 0 et 32 ​​(bien que je ne sais pas dans quel cas vous pourriez 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

(Soit dit en passant, il est parfaitement légal et assez courant dans les listes de contrôle d'accès d'utiliser un masque/32. Cela signifie simplement que vous faites référence à une seule adresse IP)

Une fois que vous les avez saisis, c'est une simple arithmétique binaire pour monter ou descendre pour obtenir le nombre d'hôtes. Par exemple, si a/24 a 256 adresses IP (laissons de côté les adresses de réseau et de diffusion pour l'instant, c'est une question de théorie de réseau différente), l'augmentation du 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éplacé vers 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

À titre d'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.

78
jj33

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 affiner votre sous-réseau, puis vous êtes juste inquiet pour les 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

8
sclarson

Un jour (sic) de retard, je l'espère, pas un dollar à court. CIDR est le nombre de bits un contigus 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 tombent 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 quand il n'est pas aligné sur un octet, mais cela nécessite quelques calculs simples et une 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

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

Lorsque vous regardez chaque octet, souvenez-vous qu'il s'agit d'une valeur de 8 bits, 0 - 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

6
dbasnett

Il est très sujet aux erreurs de calculer manuellement les réseaux non triviaux. Essayez plutôt une Calculatrice CIDR .

4
hayalci

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

alt text

2
l0c0b0x

Un autre bon document à avoir, si vous voulez juste une référence de bureau, est RFC 1878 - Table de sous-réseau de longueur variable pour IPv4 .

1
Gavin McTaggart