Aller au contenu
Réseaux high

Module 3 — Comprendre les adresses IP et les sous-réseaux

21 min de lecture

Vous voyez passer des adresses comme 192.168.1.0/24 ou 10.0.0.0/8 et vous ne savez pas ce que signifie le /24 ? Ce module vous explique comment lire une adresse IP, ce qu’est un masque de sous-réseau, et comment calculer combien de machines peuvent se connecter à un réseau. À la fin, vous saurez identifier une IP privée d’une publique et calculer une plage d’adresses.

  • /24 = masque 255.255.255.0 = 256 adresses (254 utilisables)
  • IP privées : 10.x.x.x, 172.16-31.x.x, 192.168.x.x (ne sortent pas sur Internet)
  • CIDR = notation adresse/masque (ex: 192.168.1.0/24)
  • Plus le nombre après / est grand, plus le réseau est petit
  • Je sais que /24 = 254 machines utilisables
  • Je reconnais une IP privée (192.168.x.x, 10.x.x.x)
  • Je comprends que deux machines sur le même sous-réseau communiquent directement
MasqueNotationAdressesMachines utilisables
/8255.0.0.016 millionsTrès grands réseaux
/16255.255.0.065 536Entreprises
/24255.255.255.0256Réseaux locaux
/32255.255.255.2551Une seule machine

Pour suivre ce module, vous devez maîtriser :

  • Anatomie d’une adresse IPv4 : les 4 octets et leur signification
  • Le masque de sous-réseau : ce que signifie /24, /16, /8
  • IP privées vs publiques : pourquoi certaines adresses ne sortent pas sur Internet
  • Calculer une plage : combien de machines dans un réseau /24 ?
  • La notation CIDR : lire et écrire 192.168.1.0/24

Une adresse IPv4 est composée de 4 nombres (appelés octets) séparés par des points :

192.168.1.45

Chaque octet peut prendre une valeur de 0 à 255 (soit 256 valeurs possibles). C’est logique : un octet = 8 bits, et 2⁸ = 256.

PositionOctet 1Octet 2Octet 3Octet 4
Valeur192168145
Plage possible0-2550-2550-2550-255

Au total, une adresse IPv4 fait 32 bits (4 × 8 = 32).

Voici le concept clé à comprendre : une adresse IP se divise en deux parties :

PartieRôleAnalogie postale
Partie réseauIdentifie le réseau (le “quartier”)Code postal + ville
Partie hôteIdentifie la machine dans ce réseauNuméro de rue

Prenons l’adresse 192.168.1.45 sur un réseau /24 :

192.168.1 . 45
└────┬────┘ └┬┘
Réseau Hôte
  • Partie réseau (192.168.1) : toutes les machines de ce réseau partagent ces 3 premiers octets
  • Partie hôte (45) : identifiant unique de cette machine dans le réseau

Structure d'une adresse IPv4 avec masque /24 : partie réseau en vert (24 bits) et partie hôte en rouge (8 bits)

Conséquence : deux machines peuvent communiquer directement seulement si elles partagent la même partie réseau. Sinon, elles doivent passer par un routeur.

Quand vous voyez 192.168.1.45, comment savez-vous où s’arrête la partie réseau et où commence la partie hôte ? C’est là qu’intervient le masque de sous-réseau.

Le masque indique combien de bits sont réservés au réseau. Plus le masque est grand, plus la partie réseau est importante, et moins il reste de place pour les machines.

La notation CIDR (Classless Inter-Domain Routing) est la façon moderne d’écrire un masque :

192.168.1.0/24

Le /24 signifie : les 24 premiers bits identifient le réseau.

Notation CIDRSignificationPartie réseauPartie hôte
/2424 bits pour le réseau3 octets (24 bits)1 octet (8 bits)
/1616 bits pour le réseau2 octets (16 bits)2 octets (16 bits)
/88 bits pour le réseau1 octet (8 bits)3 octets (24 bits)

Vous verrez aussi le masque écrit sous forme décimale. C’est la même information, présentée différemment :

CIDRMasque décimalExplication
/24255.255.255.0Les 3 premiers octets sont fixes (255 = tous les bits à 1)
/16255.255.0.0Les 2 premiers octets sont fixes
/8255.0.0.0Le premier octet est fixe

Sur votre machine Linux, le masque apparaît avec ip addr :

Fenêtre de terminal
ip addr show | grep "inet "

Sortie typique :

inet 192.168.1.45/24 brd 192.168.1.255 scope global eth0

Le /24 après votre IP est votre masque de sous-réseau.

Quand vous sortez des masques “faciles” (/8, /16, /24), le calcul devient moins intuitif. Pour vraiment comprendre, il faut connaître une seule règle : l’opération AND binaire.

Adresse réseau = IP AND masque

C’est cette opération que fait votre système pour déterminer si deux machines sont sur le même réseau.

Exemple avec /24 (le plus simple) :

IP : 192.168.1.45 → 11000000.10101000.00000001.00101101
Masque : 255.255.255.0 → 11111111.11111111.11111111.00000000
────────────────────────────────────
Réseau : 192.168.1.0 → 11000000.10101000.00000001.00000000

Partout où le masque a un 1, on garde le bit de l’IP. Partout où il a un 0, le résultat est 0.

Broadcast = réseau OR (NOT masque)

On met tous les bits “hôte” à 1 :

Réseau : 192.168.1.0 → 11000000.10101000.00000001.00000000
NOT masque : 0.0.0.255 → 00000000.00000000.00000000.11111111
────────────────────────────────────
Broadcast : 192.168.1.255 → 11000000.10101000.00000001.11111111

C’est une question fréquente : “Si j’ai un réseau /24, combien de machines puis-je y connecter ?”

La formule est simple :

Nombre d'adresses = 2^(32 - masque)
Machines utilisables = Nombre d'adresses - 2

On soustrait 2 car deux adresses sont toujours réservées (sauf pour /31) :

  • Adresse réseau (première) : identifie le réseau lui-même
  • Adresse de broadcast (dernière) : envoie à toutes les machines du réseau
MasqueAdresses totalesMachines utilisablesCas d’usage typique
/3211Route host (IP unique), ACL, tunnels
/3122Liaison point-à-point moderne (RFC 3021)
/3042Liaison point-à-point classique
/281614Petit réseau (équipe)
/266462Sous-réseau département
/24256254Réseau local standard
/1665 53665 534Grande entreprise, VPC cloud
/816 777 21616 777 214Très grand réseau

Décomposons le réseau 192.168.1.0/24 :

ÉlémentAdresseRôle
Adresse réseau192.168.1.0Identifie le réseau (non assignable)
Première IP utilisable192.168.1.1Souvent la passerelle (box/routeur)
Dernière IP utilisable192.168.1.254Dernière machine possible
Adresse de broadcast192.168.1.255Envoie à tout le monde (non assignable)
Plage utilisable192.168.1.1192.168.1.254254 machines

Quand le masque n’est pas un multiple de 8 (/26, /20, /27…), le dernier octet concerné ne tombe plus sur 0 ou 255. Il faut raisonner en blocs.

La taille du bloc (block size) = 2^(bits restants dans l’octet concerné).

MasqueBits hôte dans l’octetBlock sizeLimites du dernier octet
/266 bits640, 64, 128, 192
/275 bits320, 32, 64, 96, 128, 160, 192, 224
/284 bits160, 16, 32, 48, 64, 80, …
/293 bits80, 8, 16, 24, 32, 40, …
/302 bits40, 4, 8, 12, 16, …
  1. Identifier le block size

    /26 = 26 bits réseau, donc 6 bits hôte (32 - 26 = 6). Block size = 2^6 = 64.

  2. Trouver les limites de bloc

    Blocs : 0, 64, 128, 192. L’IP 100 est entre 64 et 128.

  3. Calculer réseau et broadcast

    • Adresse réseau : 192.168.1.64
    • Broadcast : 192.168.1.127 (64 + 63)
    • Plage : 192.168.1.65192.168.1.126 (62 machines)

Le /20 touche le troisième octet (pas le quatrième).

  1. Identifier l’octet concerné

    /20 = 20 bits réseau = 2 octets complets (16 bits) + 4 bits dans le 3e octet. Les bits hôte commencent au 3e octet.

  2. Calculer le block size

    Bits dans le 3e octet pour les hôtes : 8 - 4 = 4 bits → block size = 2^4 = 16. Mais attention : les 8 bits du 4e octet sont aussi pour les hôtes, donc le réseau avance par blocs de 16 sur le 3e octet.

  3. Trouver les limites

    Blocs du 3e octet : 0, 16, 32, 48, 64, 80, 96, 112, 128, 144, … 128 est pile sur une limite → c’est l’adresse réseau.

  4. Résultat

    • Réseau : 10.45.128.0/20
    • Broadcast : 10.45.143.255 (128 + 15 = 143 pour le 3e octet)
    • Plage : 10.45.128.110.45.143.254 (4094 machines)
  1. Affichez votre configuration réseau

    Fenêtre de terminal
    ip addr show | grep "inet " | grep -v "127.0.0.1"

    Notez votre IP et votre masque (exemple : 192.168.1.45/24).

  2. Identifiez l’adresse réseau

    Avec un masque /24, gardez les 3 premiers octets et mettez le dernier à 0.

    192.168.1.45 devient 192.168.1.0 (adresse réseau)

  3. Calculez le broadcast

    Avec un masque /24, gardez les 3 premiers octets et mettez le dernier à 255.

    → Broadcast = 192.168.1.255

  4. Vérifiez avec ipcalc (installez-le si nécessaire)

    Fenêtre de terminal
    # Installation sur Debian/Ubuntu
    sudo apt install ipcalc
    # Calcul
    ipcalc 192.168.1.45/24

    Sortie :

    Address: 192.168.1.45
    Network: 192.168.1.0/24
    Netmask: 255.255.255.0 = 24
    Broadcast: 192.168.1.255
    HostMin: 192.168.1.1
    HostMax: 192.168.1.254
    Hosts/Net: 254

Certaines adresses ont un rôle particulier :

AdresseNomUtilité
127.0.0.1LocalhostVotre propre machine (boucle locale)
0.0.0.0Toutes les interfaces”Écouter sur toutes les IP”
255.255.255.255Broadcast globalEnvoyer à tout le monde (rarement utilisé)
169.254.x.xLink-local (RFC 3927)IP auto-attribuée quand pas de DHCP
100.64.0.0/10CGNAT (RFC 6598)Utilisé par les FAI pour le NAT partagé

Cas pratique : analyser votre réseau d’entreprise

Section intitulée « Cas pratique : analyser votre réseau d’entreprise »

Imaginons que vous arrivez sur un serveur en production et que vous voyez :

Fenêtre de terminal
$ ip addr show eth0
inet 10.45.128.67/20 brd 10.45.143.255 scope global eth0

Que pouvez-vous en déduire ?

  1. Type d’adresse

    10.x.x.x → C’est une IP privée (plage entreprise/cloud).

  2. Taille du réseau

    /20 = 2^(32-20) = 2^12 = 4096 adresses (4094 machines utilisables).

  3. Adresse réseau

    C’est plus complexe qu’un /24. Utilisons ipcalc :

    Fenêtre de terminal
    ipcalc 10.45.128.67/20
    Network: 10.45.128.0/20
    Broadcast: 10.45.143.255
    HostMin: 10.45.128.1
    HostMax: 10.45.143.254
    Hosts/Net: 4094
  4. Interprétation

    Ce serveur fait partie d’un réseau de 4094 machines (probablement un sous-réseau cloud ou datacenter).

Utilisez ipcalc pour explorer différentes configurations :

  1. Réseau domestique classique

    Fenêtre de terminal
    ipcalc 192.168.1.0/24

    → 254 machines, parfait pour une maison ou une petite entreprise.

  2. Réseau cloud AWS/Azure typique

    Fenêtre de terminal
    ipcalc 10.0.0.0/16

    → 65 534 machines, un VPC entier.

  3. Sous-réseau Kubernetes

    Fenêtre de terminal
    ipcalc 10.244.0.0/16

    → Plage typique pour les pods Kubernetes.

  4. Liaison point-à-point

    Fenêtre de terminal
    ipcalc 192.168.100.0/30

    → Seulement 2 machines : un routeur et un serveur.

Symptôme : vous ne pouvez pas joindre une machine, même avec ping.

Causes possibles :

VérificationCommandeSolution
Pas dans le même sous-réseauip addrVérifier que les machines partagent le même préfixe réseau
Pas de route vers ce réseauip routeAjouter une route ou vérifier la passerelle
Masque incorrectip addrCorriger le masque (ex: /24 au lieu de /32)

Symptôme : ping vers une IP échoue avec ce message.

Diagnostic :

Fenêtre de terminal
# Vérifier votre table de routage
ip route
# Vérifier si vous avez une passerelle par défaut
ip route | grep default

Si vous n’avez pas de default via, votre machine ne sait pas comment atteindre les réseaux extérieurs.

”Destination Host Unreachable” (problème L2/ARP)

Section intitulée « ”Destination Host Unreachable” (problème L2/ARP) »

Symptôme : ping échoue avec ce message, même si la destination est sur le même réseau.

Cause : la machine source ne peut pas résoudre l’adresse MAC de la destination (problème au niveau 2).

Diagnostic :

Fenêtre de terminal
# Vérifier le cache ARP
ip neigh
# ou
arp -n
# Chercher les entrées FAILED ou INCOMPLETE
ip neigh | grep -E "FAILED|INCOMPLETE"

Causes possibles :

  • La machine destination est éteinte ou déconnectée
  • VLAN différent (même si même sous-réseau IP)
  • Problème de câble ou de switch
  • Adresse IP en conflit

Symptôme : ping 192.168.1.100 fonctionne, mais curl http://192.168.1.100 timeout.

Cause : un firewall bloque le port TCP, mais pas ICMP (ping).

Diagnostic :

Fenêtre de terminal
# Sur la machine destination, vérifier que le service écoute
ss -tlnp | grep :80
# Vérifier les règles firewall (iptables)
sudo iptables -L -n | grep -i drop
# Vérifier les règles firewall (nftables)
sudo nft list ruleset | grep -i drop
# Vérifier firewalld (si utilisé)
sudo firewall-cmd --list-all

Symptôme : votre machine a une IP 169.254.x.x.

Cause : le client DHCP n’a pas réussi à obtenir une adresse.

Solutions :

Fenêtre de terminal
# Renouveler le bail DHCP
sudo dhclient -r eth0 # libère l'IP
sudo dhclient eth0 # demande une nouvelle IP
# Ou redémarrer le service réseau
sudo systemctl restart NetworkManager
  1. Une adresse IPv4 = 4 octets (32 bits), valeurs de 0 à 255
  2. Le masque (ex: /24) indique combien de bits sont réservés au réseau
  3. Adresse réseau = IP AND masque (le vrai calcul derrière tout)
  4. /24 = 256 adresses, 254 utilisables (le plus courant)
  5. IP privées : 10.x.x.x, 172.16-31.x.x, 192.168.x.x — non routées sur Internet
  6. CGNAT (100.64.x.x) : ce n’est pas du RFC 1918, c’est votre FAI
  7. Hors /8-/16-/24 : raisonnez par blocs (block size = 2^bits_hôte)
  8. ipcalc est votre meilleur ami pour vérifier vos calculs
  9. ip route get <IP> : la commande diagnostic ultime
  10. 169.254.x.x = problème DHCP, pas d’IP attribuée

Contrôle de connaissances

Validez vos connaissances avec ce quiz interactif

10 questions
10 min.
80% requis

Informations

  • Le chronomètre démarre au clic sur Démarrer
  • Questions à choix multiples, vrai/faux et réponses courtes
  • Vous pouvez naviguer entre les questions
  • Les résultats détaillés sont affichés à la fin

Lance le quiz et démarre le chronomètre