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éfixeMasque décimalWildcardNb hôtesIncrément
/8255.0.0.00.255.255.25516 777 214256 (3e)
/16255.255.0.00.0.255.25565 534256 (3e)
/17255.255.128.00.0.127.25532 766128
/18255.255.192.00.0.63.25516 38264
/19255.255.224.00.0.31.2558 19032
/20255.255.240.00.0.15.2554 09416
/21255.255.248.00.0.7.2552 0468
/22255.255.252.00.0.3.2551 0224
/23255.255.254.00.0.1.2555102
/24255.255.255.00.0.0.2552541
/25255.255.255.1280.0.0.127126128
/26255.255.255.1920.0.0.636264
/27255.255.255.2240.0.0.313032
/28255.255.255.2400.0.0.151416
/29255.255.255.2480.0.0.768
/30255.255.255.2520.0.0.324

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éseauPréfixeMasquePremier hôteDernier hôteBroadcastNb hôtes
192.168.1.0/26255.255.255.192192.168.1.1192.168.1.62192.168.1.6362
192.168.1.64/27255.255.255.224192.168.1.65192.168.1.94192.168.1.9530
192.168.1.96/28255.255.255.240192.168.1.97192.168.1.110192.168.1.11114
192.168.1.112/30255.255.255.252192.168.1.113192.168.1.114192.168.1.1152
192.168.1.116–255ré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.028 notes · Networklocal