MDstable
NoteSnippetChecklistPlaybook

Subnetting IPv4 — CIDR & VLSM

Calcul de sous-réseaux, VLSM, masques, broadcast, plages d'hôtes

snippetintermediate 2025-05-14 6 min read
ipv4subnettingcidrvlsmmaskbroadcastnetwork-design

Rappel binaire

text
Octet = 8 bits — valeurs de position : 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1
Conversion décimale → binaire rapide (méthode soustractive) :
192128+64 = 11000000
172128+32+8+4 = 10101100
255 → tous à 1 = 11111111
0 → tous à 0 = 00000000
Conversion binaire → décimale : additionner les positions à 1
11000000 = 128+64 = 192
00011010 = 16+8+2 = 26

Structure d'une adresse IPv4

text
32 bits = 4 octets séparés par des points
Adresse IP : 192 . 168 . 10 . 45
Binaire : 11000000.10101000.00001010.00101101
Avec /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

text
Notation CIDR : adresse/longueur_préfixe
/24 → masque 255.255.255.08 bits hôte
/26 → masque 255.255.255.1926 bits hôte
Formules :
Nb hôtes utilisables = 2^(32 - préfixe) - 2
/242^8 - 2 = 254 hôtes
/262^6 - 2 = 62 hôtes
/302^2 - 2 = 2 hôtes (liens P2P)
Nb sous-réseaux dans un bloc parent :
Bits empruntés = nouveau_préfixe - préfixe_parent
Nb 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

text
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 + 1
4. Dernier hôte = broadcast - 1

Exemple 1 : 192.168.10.45/26

text
Masque /26 = 255.255.255.192 incrément = 64
Trouver le bloc : 45 ÷ 64 = 0 reste 45 → dans le bloc 063
Réseau : 192.168.10.0
Broadcast : 192.168.10.63
Premier : 192.168.10.1
Dernier : 192.168.10.62
Nb hôtes : 62
Les 4 blocs /26 dans un /24 :
192.168.10.0192.168.10.63 (.0 + 64 - 1)
192.168.10.64192.168.10.127 (.64 + 64 - 1)
192.168.10.128192.168.10.191 (.128 + 64 - 1)
192.168.10.192192.168.10.255 (.192 + 64 - 1)

Exemple 2 : 172.16.0.130/19

text
Masque /19 = 255.255.224.0 incrément = 32 (3e octet)
Trouver le bloc sur le 3e octet : 0 ÷ 32 = bloc 031
Réseau : 172.16.0.0
Broadcast : 172.16.31.255
Premier : 172.16.0.1
Dernier : 172.16.31.254
Nb hôtes : 8190
Blocs /19 dans 172.16.0.0/16 :
172.16.0.0172.16.31.255
172.16.32.0172.16.63.255
172.16.64.0172.16.95.255
...
172.16.224.0172.16.255.255 (8 sous-réseaux /19 au total)

VLSM — Variable Length Subnet Mask

text
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 → /26
25 hôtes → 2^5 - 2 = 30 → /27
10 hôtes → 2^4 - 2 = 14 → /28
2 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)

text
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/2411000000.10101000.00000000.xxxxxxxx
192.168.1.0/2411000000.10101000.00000001.xxxxxxxx
^--- bit qui diffère = 1 bit supplémentaire
Agré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 bloc
192.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

text
/31 — Liens point-à-point (RFC 3021) :
2 adresses, pas d'adresse réseau ni broadcast
Ex: 10.0.0.0/31 → hôtes 10.0.0.0 et 10.0.0.1
Cisco : ip address 10.0.0.0 255.255.255.254
/32 — Route hôte / loopback :
Une seule adresse — identifie un nœud unique
Ex: interface Loopback0 → ip address 1.1.1.1 255.255.255.255
Utilisé en BGP (next-hop loopback), OSPF router-id, routes statiques hôte
💡 Tip —

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
OPS·BRAIN v1.027 notes · Networklocal