En une phrase
Le CIDR, c'est la méthode d'Internet pour tracer les limites de propriété, transformant un champ d'adresses IP immense et chaotique en quartiers bien rangés et gérables où vos données peuvent trouver leur place.
Le problème que ça résout
Remontez le temps jusqu'aux débuts d'Internet dans les années 80. La vie était simple. Si vous aviez besoin d'adresses IP, vous demandiez une "classe" d'adresses. Vous aviez trois choix principaux :
- Classe A : 16 777 214 adresses d'hôte. Pour les géants.
- Classe B : 65 534 adresses d'hôte. Pour les grandes organisations.
- Classe C : 254 adresses d'hôte. Pour les p'tits gars.
Ce système "à classes" était rigide et incroyablement gaspilleur. Imaginez que vous ayez besoin de 300 adresses IP. Une Classe C était trop petite, donc vous deviez prendre une Classe B. Félicitations, on vient de vous donner 65 534 adresses et vous en gaspillez maintenant 65 234. C'était comme avoir besoin d'un scooter et être obligé d'acheter un semi-remorque.
Au début des années 90, les experts voyaient une apocalypse numérique se profiler à l'horizon : on allait manquer d'adresses IP. Les tables de routage d'Internet — le carnet d'adresses global utilisé par les routeurs principaux — explosaient aussi en taille, menaçant de ralentir tout le système jusqu'à l'arrêt.
En 1993, un groupe d'ingénieurs a introduit les RFC 1518 et 1519, qui définissaient le Classless Inter-Domain Routing, ou CIDR (en général, on prononce les lettres "C-I-D-R"). Le CIDR a balayé les classes rigides A/B/C. Il a introduit une nouvelle manière flexible de définir un bloc d'adresses de n'importe quelle taille.
Ça a changé la donne. Ça a permis aux Fournisseurs d'Accès à Internet (FAI) d'allouer des blocs d'adresses "juste comme il faut" pour leurs clients, ralentissant considérablement l'épuisement des adresses IPv4. Ça a aussi permis l'"agrégation de routes", où une seule entrée dans une table de routage pouvait représenter des milliers de routes individuelles, sauvant la colonne vertébrale d'Internet de l'effondrement sous son propre poids.
Comment ça marche sous le capot
Pour piger le CIDR, il faut d'abord accepter une vérité fondamentale : les adresses IP sont pour les ordinateurs, pas pour les humains. Le format décimal pointé (192.168.1.10) n'est qu'un mensonge pratique qu'on se raconte. La réalité, c'est le binaire.
D'abord, un petit rappel sur les adresses IP et le binaire
Une adresse IPv4 est un nombre de 32 bits. C'est tout. Trente-deux uns et zéros. On le découpe en quatre morceaux de 8 bits (des octets) et on convertit chacun en un nombre décimal (0-255) pour le rendre lisible.
Prenons 172.20.129.45 :
172 . 20 . 129 . 45
10101100 . 00010100 . 10000001 . 00101101
Tous les calculs de réseau IP, y compris le CIDR, se font à ce niveau binaire.
Le Masque de Sous-réseau : L'Anneau Décodeur Magique
Chaque adresse IP mène une double vie. Une partie identifie le réseau auquel elle appartient (le nom de sa rue), et une autre partie identifie l'hôte spécifique sur ce réseau (son numéro de maison).
Comment un ordinateur sait-il où une partie se termine et l'autre commence ? Il utilise un masque de sous-réseau (subnet mask). Un masque de sous-réseau est un autre nombre de 32 bits qui agit comme un filtre. Voici comment ça marche :
- Le masque de sous-réseau est une série de
1consécutifs suivis d'une série de0. - Les
1correspondent à la partie réseau de l'adresse. - Les
0correspondent à la partie hôte de l'adresse.
Pour trouver l'adresse du réseau, un ordinateur effectue une opération AND bit à bit entre l'adresse IP et le masque de sous-réseau.
Disons que notre IP est 172.20.129.45 et notre masque est 255.255.0.0.
Adresse IP : 10101100.00010100.10000001.00101101 (172.20.129.45)
Masque de sous-réseau : 11111111.11111111.00000000.00000000 (255.255.0.0)
-----------------------------------------------------------------
ID du Réseau : 10101100.00010100.00000000.00000000 (172.20.0.0)
Le résultat, 172.20.0.0, est le "nom de la rue" pour chaque appareil de ce réseau.
Et voici le CIDR : le Raccourci pour le Masque de Sous-réseau
Écrire 255.255.255.0, c'est pénible. La notation CIDR est un simple raccourci. C'est juste l'adresse IP, un slash (/), et le nombre de 1 consécutifs au début du masque de sous-réseau. Ce nombre s'appelle la longueur du préfixe (prefix length).
| Suffixe CIDR | Masque de sous-réseau | Nombre de 1 |
Masque binaire |
|---|---|---|---|
| /8 | 255.0.0.0 | 8 | 11111111.0000... |
| /16 | 255.255.0.0 | 16 | 11111111.11111111.0000... |
| /24 | 255.255.255.0 | 24 | 11111111.11111111.11111111.00000000 |
| /29 | 255.255.255.248 | 29 | ...11111111.11111000 |
| /32 | 255.255.255.255 | 32 | Que des 1 (un seul hôte) |
Donc, 172.20.129.45 avec un masque de 255.255.0.0 s'écrit simplement 172.20.129.45/16. Simple comme bonjour.
Calculer les Choses Intéressantes
Avec une adresse CIDR comme 10.50.84.111/22, on peut tout déduire sur son voisinage réseau.
Préfixe :
/22. Ça veut dire que 22 bits sont pour le réseau, et les32 - 22 = 10bits restants sont pour les hôtes.Adresse Réseau : C'est la première adresse de la plage, où tous les bits d'hôte sont à
0. On la trouve avec l'opérationAND.- IP :
10.50.84.111->00001010.00110010.01010100.01101111 - Masque
/22:255.255.252.0->11111111.11111111.11111100.00000000 - Résultat
AND:00001010.00110010.01010100.00000000->10.50.84.0 - Donc, l'Adresse Réseau est
10.50.84.0.
- IP :
Nombre d'Hôtes : On a 10 bits d'hôte. Le nombre d'adresses possibles est
2^10 = 1024.Hôtes Utilisables : On doit soustraire deux adresses. Pourquoi ?
- La toute première adresse (tous les bits d'hôte à
0) est l'Adresse Réseau elle-même. C'est le nom de la rue, pas une maison. - La toute dernière adresse (tous les bits d'hôte à
1) est l'Adresse de Broadcast. Envoyer un paquet ici, c'est comme crier "Salut tout le monde !" à chaque appareil du réseau.
- Donc, hôtes utilisables =
(2^10) - 2 = 1024 - 2 = 1022.
- La toute première adresse (tous les bits d'hôte à
Adresse de Broadcast : C'est l'Adresse Réseau avec tous les bits d'hôte passés à
1.- Réseau :
00001010.00110010.01010100.00000000 - Broadcast :
00001010.00110010.01010111.11111111->10.50.87.255
- Réseau :
Plage d'Hôtes : Les adresses utilisables sont tout ce qui se trouve entre l'Adresse Réseau et l'Adresse de Broadcast.
- Premier hôte utilisable :
10.50.84.1(Adresse Réseau + 1) - Dernier hôte utilisable :
10.50.87.254(Adresse de Broadcast - 1)
- Premier hôte utilisable :
Donc, 10.50.84.111/22 est un hôte sur le réseau 10.50.84.0, qui peut accueillir 1022 appareils de 10.50.84.1 à 10.50.87.254.
Histoires vécues
### La Calamité du Coût dans le Cloud
Une startup en vogue a monté son infrastructure dans un cloud public. Pressés de se mettre à coder, ils ont accepté les paramètres réseau par défaut pour leur Virtual Private Cloud (VPC), qui a pris un énorme bloc /16 (65 534 IP). Quelques mois plus tard, ils ont décroché un gros client qui avait besoin d'une connexion directe et sécurisée entre leurs environnements cloud. Le problème ? Le client avait aussi utilisé exactement le même bloc /16 par défaut. Leurs espaces d'adressage, 10.10.0.0/16 et 10.10.0.0/16, étaient identiques. On ne peut pas router entre deux endroits qui prétendent avoir la même adresse. La startup a dû passer une semaine de folie à reconstruire tout son réseau à partir de zéro sur une nouvelle plage CIDR non chevauchante.
Leçon : Planifiez votre espace d'adressage réseau comme si vous planifiez une ville. Même si vous n'avez besoin que d'un petit village pour l'instant, laissez de la place pour que des autoroutes puissent se connecter à d'autres villes plus tard. N'acceptez pas simplement les valeurs par défaut.
### Le Mystérieux Appareil Hors Ligne
Un admin réseau junior a été chargé de configurer un nouveau serveur de monitoring. On lui a donné la plage d'IP 192.168.100.0/24. Il a configuré le serveur avec l'IP 192.168.100.255. L'interface réseau du serveur s'est bien activée, mais c'était un fantôme. Il ne pouvait pas pinger la passerelle, et rien sur le réseau ne pouvait le pinger. Après une heure à vérifier les câbles et à réinstaller les drivers, un ingénieur senior est passé, a jeté un œil à l'écran pendant deux secondes et a dit : "Ça, c'est ton adresse de broadcast." Ils ont changé l'IP en 192.168.100.254, et il est instantanément revenu en ligne.
Leçon : La première et la dernière adresse de n'importe quel sous-réseau sont spéciales et ne peuvent pas être assignées à un hôte. Elles sont respectivement l'identité du réseau et son mégaphone.
### La Sorcière du Wi-Fi Domestique
Le réseau domestique d'une développeuse était un vrai bazar. Entre les ordinateurs portables, les téléphones, les smart TV, les enceintes, les ampoules connectées et un grille-pain "intelligent", les appareils se déconnectaient constamment du Wi-Fi. En regardant la page d'administration de son routeur, elle a vu que le serveur DHCP était configuré pour la plage 192.168.1.0/28. Un calcul rapide a montré qu'un /28 ne fournit que (2^(32-28)) - 2 = 14 adresses IP utilisables. Sa famille avait plus de 30 appareils ! Elle a changé le masque de sous-réseau pour son LAN de 255.255.255.240 (/28) à 255.255.255.0 (/24), portant le nombre d'IP disponibles à 254. L'instabilité du Wi-Fi a disparu instantanément.
Leçon : Le subnetting n'est pas réservé aux data centers. Il détermine combien d'appareils peuvent rejoindre votre réseau local, et un sous-réseau mal configuré est une cause fréquente de "mauvais Wi-Fi".
Erreurs et pièges courants
- Oublier les deux adresses réservées. Une erreur classique d'un décalage de deux. Vous calculez
2^het dites à quelqu'un qu'il a autant d'adresses, mais vous oubliez de soustraire l'adresse réseau et l'adresse de broadcast. Cela mène à des erreurs de configuration et à des réseaux juste un peu trop petits. - Chevauchement de sous-réseaux. Comme vu dans l'histoire du cloud, si deux réseaux qui doivent communiquer ont des plages d'IP qui se chevauchent, vous allez au-devant de gros ennuis. Le routage devient ambigu et souvent impossible sans des hacks de Traduction d'Adresses Réseau (NAT) complexes et moches. Anticipez !
- Penser en décimal. Vous ne pouvez pas bien comprendre le subnetting en regardant les nombres décimaux.
192.168.0.255et192.168.1.0semblent être juste à côté l'un de l'autre. Si vous êtes dans un/24, ils sont dans des réseaux différents. Si vous êtes dans un/23, ils sont dans le même réseau. Tout dépend de l'endroit où se situe la frontière binaire. - Mal utiliser un
/31. Un/31a2^(32-31) = 2adresses. Les anciennes règles disaient qu'après avoir réservé le réseau et le broadcast, il restait zéro hôte utilisable. Cependant, la RFC 3021 a mis cela à jour pour les liaisons point à point spéciales (par ex., connecter deux routeurs), où aucun broadcast n'est nécessaire. Pour un réseau normal avec des clients, c'est inutile. - Se tromper de préfixe en tapant. C'est facile de taper
/23quand on voulait dire/24. Une différence d'un seul chiffre peut être la différence entre un réseau de 254 hôtes et un de 510 hôtes, changeant complètement les limites du réseau et causant potentiellement des conflits. Vérifiez bien votre préfixe.
Pourquoi ça devrait vous intéresser
Vous pensez peut-être que c'est juste un truc pour les ingénieurs réseau purs et durs. Vous avez tort.
- Ingénieurs Cloud & DevOps : C'est votre quotidien. Concevoir des VPC/VNET dans AWS, Azure, ou GCP est un exercice de planification CIDR. Se planter au début mène à des migrations coûteuses et complexes plus tard.
- Développeurs Backend : Vous n'arrivez pas à vous connecter à votre base de données ? Peut-être que le serveur d'applications est sur
10.0.1.0/24et la BDD sur10.0.2.0/24. S'il n'y a pas de routeur configuré entre eux, ils pourraient aussi bien être sur des planètes différentes. Comprendre les sous-réseaux est une étape fondamentale du débogage. - Professionnels de la sécurité : Les règles de pare-feu (firewall) sont souvent basées sur des blocs CIDR. Pour autoriser l'accès depuis tout un bureau, vous n'ajoutez pas 200 IP individuelles ; vous ajoutez une seule règle pour
10.5.0.0/22. Pour bloquer un acteur malveillant connu, vous bloquez sa plage CIDR. - Quiconque exécute du code : Même si vous ne travaillez que sur
localhost, vous utilisez un réseau. Savoir que127.0.0.1n'est qu'un hôte dans le gigantesque bloc de loopback127.0.0.0/8aide à démystifier une partie essentielle du développement local.
Dans un monde de services interconnectés, de conteneurs et d'infrastructure cloud, le réseau n'est plus le problème de quelqu'un d'autre. Comprendre son carnet d'adresses est un super-pouvoir pour le développeur moderne.
Pour aller plus loin
- RFC 4632: Classless Inter-domain Routing (CIDR) - La spécification moderne qui a remplacé les RFC originales.
- RFC 1918: Address Allocation for Private Internets - Le document qui définit les plages d'IP privées que vous connaissez et adorez (
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16). - RFC 3021: Using 31-Bit Prefixes on IPv4 Point-to-Point Links - La spec qui rend le
/31utile et économise des adresses IP. - Wikipedia: Classless Inter-Domain Routing - Un excellent résumé de haut niveau avec un contexte historique.
- Wikipedia: Subnetwork - Une plongée en profondeur dans les mécanismes du subnetting et des masques.