Subnetting IPv4 — CIDR & VLSM
Calcul de sous-réseaux, VLSM, masques, broadcast, plages d'hôtes
Rappel binaire
Octet = 8 bits — valeurs de position : 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1Conversion décimale → binaire rapide (méthode soustractive) :192 → 128+64 = 11000000172 → 128+32+8+4 = 10101100255 → tous à 1 = 111111110 → tous à 0 = 00000000Conversion binaire → décimale : additionner les positions à 111000000 = 128+64 = 19200011010 = 16+8+2 = 26
Structure d'une adresse IPv4
32 bits = 4 octets séparés par des pointsAdresse IP : 192 . 168 . 10 . 45Binaire : 11000000.10101000.00001010.00101101Avec /26 (masque = 255.255.255.192) :Partie réseau : les 26 premiers bits (fixes)Partie hôte : les 6 derniers bits (variables)11000000.10101000.00001010.00 | 101101^--- limite réseau/hôte
Notation CIDR et formules
Notation CIDR : adresse/longueur_préfixe/24 → masque 255.255.255.0 → 8 bits hôte/26 → masque 255.255.255.192 → 6 bits hôteFormules :Nb hôtes utilisables = 2^(32 - préfixe) - 2/24 → 2^8 - 2 = 254 hôtes/26 → 2^6 - 2 = 62 hôtes/30 → 2^2 - 2 = 2 hôtes (liens P2P)Nb sous-réseaux dans un bloc parent :Bits empruntés = nouveau_préfixe - préfixe_parentNb sous-réseaux = 2^(bits_empruntés)
Table des masques courants /8 à /30
| Préfixe | Masque décimal | Wildcard | Nb hôtes | Incrément | |---------|---------------------|----------------|-------------|-----------| | /8 | 255.0.0.0 | 0.255.255.255 | 16 777 214 | 256 (3e) | | /16 | 255.255.0.0 | 0.0.255.255 | 65 534 | 256 (3e) | | /17 | 255.255.128.0 | 0.0.127.255 | 32 766 | 128 | | /18 | 255.255.192.0 | 0.0.63.255 | 16 382 | 64 | | /19 | 255.255.224.0 | 0.0.31.255 | 8 190 | 32 | | /20 | 255.255.240.0 | 0.0.15.255 | 4 094 | 16 | | /21 | 255.255.248.0 | 0.0.7.255 | 2 046 | 8 | | /22 | 255.255.252.0 | 0.0.3.255 | 1 022 | 4 | | /23 | 255.255.254.0 | 0.0.1.255 | 510 | 2 | | /24 | 255.255.255.0 | 0.0.0.255 | 254 | 1 | | /25 | 255.255.255.128 | 0.0.0.127 | 126 | 128 | | /26 | 255.255.255.192 | 0.0.0.63 | 62 | 64 | | /27 | 255.255.255.224 | 0.0.0.31 | 30 | 32 | | /28 | 255.255.255.240 | 0.0.0.15 | 14 | 16 | | /29 | 255.255.255.248 | 0.0.0.7 | 6 | 8 | | /30 | 255.255.255.252 | 0.0.0.3 | 2 | 4 |
Calcul rapide d'un sous-réseau
Méthode :1. Réseau = IP AND masque (bits hôtes à 0)2. Broadcast = réseau OR (NOT masque) (bits hôtes à 1)3. Premier hôte = réseau + 14. Dernier hôte = broadcast - 1
Exemple 1 : 192.168.10.45/26
Masque /26 = 255.255.255.192 incrément = 64Trouver le bloc : 45 ÷ 64 = 0 reste 45 → dans le bloc 0–63Réseau : 192.168.10.0Broadcast : 192.168.10.63Premier : 192.168.10.1Dernier : 192.168.10.62Nb hôtes : 62Les 4 blocs /26 dans un /24 :192.168.10.0 – 192.168.10.63 (.0 + 64 - 1)192.168.10.64 – 192.168.10.127 (.64 + 64 - 1)192.168.10.128 – 192.168.10.191 (.128 + 64 - 1)192.168.10.192 – 192.168.10.255 (.192 + 64 - 1)
Exemple 2 : 172.16.0.130/19
Masque /19 = 255.255.224.0 incrément = 32 (3e octet)Trouver le bloc sur le 3e octet : 0 ÷ 32 = bloc 0–31Réseau : 172.16.0.0Broadcast : 172.16.31.255Premier : 172.16.0.1Dernier : 172.16.31.254Nb hôtes : 8190Blocs /19 dans 172.16.0.0/16 :172.16.0.0 – 172.16.31.255172.16.32.0 – 172.16.63.255172.16.64.0 – 172.16.95.255...172.16.224.0 – 172.16.255.255 (8 sous-réseaux /19 au total)
VLSM — Variable Length Subnet Mask
Principe : allouer le masque le plus petit qui couvre les hôtes requis,en partant du plus grand besoin vers le plus petit.Règle : toujours prendre 2^n - 2 ≥ nb_hôtes_requis (n = bits hôte)50 hôtes → 2^6 - 2 = 62 → /2625 hôtes → 2^5 - 2 = 30 → /2710 hôtes → 2^4 - 2 = 14 → /282 hôtes → 2^2 - 2 = 2 → /30 (lien point-à-point)
Découpage d'un 192.168.1.0/24 en VLSM
| Sous-réseau | Préfixe | Masque | Premier hôte | Dernier hôte | Broadcast | Nb hôtes | |---------------------|---------|---------------------|-----------------|-----------------|-----------------|----------| | 192.168.1.0 | /26 | 255.255.255.192 | 192.168.1.1 | 192.168.1.62 | 192.168.1.63 | 62 | | 192.168.1.64 | /27 | 255.255.255.224 | 192.168.1.65 | 192.168.1.94 | 192.168.1.95 | 30 | | 192.168.1.96 | /28 | 255.255.255.240 | 192.168.1.97 | 192.168.1.110 | 192.168.1.111 | 14 | | 192.168.1.112 | /30 | 255.255.255.252 | 192.168.1.113 | 192.168.1.114 | 192.168.1.115 | 2 | | 192.168.1.116–255 | — | — | — | — | — | réserve |
Supernetting / Agrégation de routes (CIDR)
Regrouper plusieurs réseaux contigus en un seul préfixe plus court.Conditions :1. Réseaux contigus (adresses consécutives)2. Nombre de réseaux = puissance de 2 (2, 4, 8…)3. Premier réseau aligné sur un multiple du bloc agrégéExemple :192.168.0.0/24 → 11000000.10101000.00000000.xxxxxxxx192.168.1.0/24 → 11000000.10101000.00000001.xxxxxxxx^--- bit qui diffère = 1 bit supplémentaireAgrégat : 192.168.0.0/23 (masque 255.255.254.0)Exemple avec 4 réseaux :192.168.0.0/24, 192.168.1.0/24, 192.168.2.0/24, 192.168.3.0/24→ 192.168.0.0/22 (masque 255.255.252.0)Vérification : l'adresse de début doit être divisible par la taille du bloc192.168.0.0 / 2 réseaux /24 = position 0 → ok (0 est pair)192.168.4.0 + 192.168.5.0 → agrégat 192.168.4.0/23 → ok (4 est pair)192.168.3.0 + 192.168.4.0 → NON agrégeable (3 est impair)
Cas particuliers
/31 — Liens point-à-point (RFC 3021) :2 adresses, pas d'adresse réseau ni broadcastEx: 10.0.0.0/31 → hôtes 10.0.0.0 et 10.0.0.1Cisco : ip address 10.0.0.0 255.255.255.254/32 — Route hôte / loopback :Une seule adresse — identifie un nœud uniqueEx: interface Loopback0 → ip address 1.1.1.1 255.255.255.255Utilisé en BGP (next-hop loopback), OSPF router-id, routes statiques hôte
Pour trouver l'incrément d'un masque en moins de 2 secondes : soustraire le dernier octet non-255 de 256.
- /26 → dernier octet non-255 = 192 → 256 - 192 = 64 → blocs .0, .64, .128, .192
- /27 → 256 - 224 = 32 → blocs .0, .32, .64, .96…
- /28 → 256 - 240 = 16 → blocs .0, .16, .32, .48…
- /19 → 256 - 224 = 32 → sur le 3e octet