infra / reseaux-tcp-ip
Calcul CIDR / masques avancé
Explication
Ce que vous allez apprendre
- Comprendre pourquoi des sous-réseaux de taille identique gaspillent des adresses IP
- Appliquer le VLSM (masquage à longueur variable) pour dimensionner chaque sous-réseau selon son besoin réel
- Calculer rapidement le nombre d'hôtes utilisables à partir d'un CIDR (
2^(32-CIDR) - 2) - Comprendre le supernetting (résumé de route) et son intérêt pour alléger une table de routage
- Vérifier avec
ipcalcou Python qu'une IP appartient bien à un sous-réseau donné
Dans quel contexte ?
Un ingénieur réseau doit adresser un nouveau site d'entreprise disposant d'un unique bloc 10.0.0.0/22 : 100 postes utilisateurs, 20 serveurs, 6 imprimantes réseau et 2 liaisons WAN point-à-point. Découper ce bloc en 4 sous-réseaux identiques serait un gaspillage énorme pour les imprimantes ou les liens WAN, qui n'ont besoin que de quelques adresses. Le VLSM lui permet de tailler chaque sous-réseau exactement à la mesure de son besoin, sans rien perdre.
Aller plus loin que des sous-réseaux de taille identique
La leçon précédente montrait comment découper un réseau en sous-réseaux égaux. En pratique, les besoins réels ne sont jamais uniformes : un service a besoin de 100 adresses, un autre de seulement 2. Découper systématiquement en blocs de même taille gaspillerait énormément d'adresses. Le VLSM (masquage à longueur variable) résout ce problème en autorisant des sous-réseaux de tailles différentes, chacun dimensionné au plus juste pour son besoin réel.
| Besoin | CIDR choisi | Hôtes utilisables |
|---|---|---|
| 100 postes utilisateurs | /25 | 126 |
| 20 serveurs | /27 | 30 |
| 6 imprimantes | /29 | 6 |
| 2 liens WAN point-à-point | /30 | 2 |
Astuce
Pour dimensionner un VLSM sans te tromper, trie toujours tes besoins du plus grand au plus petit avant de découper : ça évite de "coincer" un gros sous-réseau dans un trou trop petit laissé par un sous-réseau plus petit alloué en premier.
Penser en puissances de deux
Toute la logique du CIDR repose sur le binaire : chaque bit "emprunté" au masque double ou divise par deux le nombre d'adresses disponibles. Comprendre cette mécanique en puissances de deux (et la formule qui en découle) permet de calculer rapidement, sans table de correspondance, la taille exacte d'un sous-réseau ou le masque nécessaire pour un nombre d'hôtes donné.
Le supernetting : l'opération inverse
Là où le VLSM découpe un grand réseau en petits, le supernetting fait l'inverse : il regroupe plusieurs réseaux contigus en une seule route plus large. C'est une optimisation essentielle pour les grandes infrastructures, où une table de routage pourrait autrement contenir des milliers de lignes individuelles alors qu'une seule ligne résumée suffit.
Une compétence qui reste pertinente malgré les outils automatiques
Des outils comme ipcalc ou des bibliothèques de programmation font ces calculs instantanément. Mais comprendre le raisonnement derrière (pourquoi tel masque donne tel nombre d'hôtes, pourquoi deux adresses sont dans le même réseau ou non) reste indispensable pour diagnostiquer une erreur de configuration ou concevoir soi-même un plan d'adressage cohérent, plutôt que de faire confiance aveuglément à un résultat qu'on ne sait pas vérifier.
Commandes & code
Calcul CIDR et masques avancé
# Rappel binaire : un masque /24 en binaire
11111111.11111111.11111111.00000000 = 255.255.255.0
# VLSM (Variable Length Subnet Masking) : découper un réseau en sous-réseaux DE TAILLES DIFFÉRENTES
# Besoin réel typique en entreprise : 100 postes, 20 serveurs, 6 imprimantes, 2 liens WAN
# Réseau de départ : 10.0.0.0/22 (1024 adresses)
# 1. Poste utilisateurs : besoin de 100+ adresses -> /25 (126 utilisables)
10.0.0.0/25 -> 10.0.0.0 à 10.0.0.127
# 2. Serveurs : besoin de 20+ adresses -> /27 (30 utilisables)
10.0.0.128/27 -> 10.0.0.128 à 10.0.0.159
# 3. Imprimantes : besoin de 6+ adresses -> /29 (6 utilisables)
10.0.0.160/29 -> 10.0.0.160 à 10.0.0.167
# 4. Liens WAN point-à-point : besoin de 2 adresses -> /30 (2 utilisables)
10.0.0.168/30 -> 10.0.0.168 à 10.0.0.171
10.0.0.172/30 -> 10.0.0.172 à 10.0.0.175
# Méthode rapide pour trouver le nombre d'hôtes utilisables : 2^(32-CIDR) - 2
# /27 -> 2^(32-27) - 2 = 2^5 - 2 = 30 hôtes utilisables# Calcul rapide en CLI (paquet ipcalc)
ipcalc 10.0.0.0/22
# Address: 10.0.0.0
# Netmask: 255.255.252.0 = 22
# Network: 10.0.0.0/22
# HostMin: 10.0.0.1
# HostMax: 10.0.3.254
# Broadcast: 10.0.3.255
# Hosts/Net: 1022
# Vérifier si deux IP sont dans le même sous-réseau (ET binaire avec le masque)
ipcalc 10.0.0.50/25 | grep Network # 10.0.0.50 appartient à quel réseau ?
ipcalc 10.0.0.140/25 | grep Network # 10.0.0.140 est-il dans le même /25 ?
# Résumé de route (route summarization / supernetting) : agréger plusieurs réseaux contigus
# 192.168.0.0/24, 192.168.1.0/24, 192.168.2.0/24, 192.168.3.0/24
# -> peuvent être résumés en une seule route : 192.168.0.0/22
ip route add 192.168.0.0/22 via 10.0.0.1 # une seule ligne de route au lieu de 4
# Vérifier l'appartenance d'une IP à un CIDR avec Python (pratique en script)
python3 -c "import ipaddress; print(ipaddress.ip_address('10.0.0.50') in ipaddress.ip_network('10.0.0.0/25'))"Résumé
- VLSM permet d'allouer des sous-réseaux de tailles différentes selon le besoin réel (pas de gaspillage d'IP).
- Formule clé :
2^(32-CIDR) - 2= nombre d'hôtes utilisables (sauf /31 et /32). - Le supernetting (résumé de route) réduit le nombre de lignes dans une table de routage en agrégeant des réseaux contigus.
Exercices pratiques
Mission : dimensionner un plan d'adressage VLSM
Objectif : Découper un bloc unique en sous-réseaux de tailles différentes, correctement dimensionnés, sans gaspiller d'adresses ni provoquer de collision.
Contexte
Un nouveau site dispose du bloc 10.4.0.0/23 (512 adresses). Il doit héberger 4 groupes aux besoins très différents : 200 postes utilisateurs, 50 serveurs, 10 imprimantes, et 4 liens WAN point-à-point (2 adresses chacun).
Applique le VLSM : trie les besoins du plus grand au plus petit avant de découper, pour ne pas te retrouver coincé.