Cours sur l'IPv4
IPv4 (Internet Protocol version 4) est la version originelle du protocole IP utilisée pour l'adressage et l'acheminement des paquets de données sur le réseau.
Il définit la manière dont les ordinateurs (et autres équipements réseau) s'identifient et communiquent entre eux via une adresse de 32 bits, généralement représentée sous la forme de quatre nombres décimaux (compris chacun entre 0 et 255) séparés par des points
(ex. : 192.168.10.1).
1. Les classes d'adresses IP
Historiquement, les adresses IPv4 étaient réparties en différentes classes (A, B, C, D, E) selon la valeur du premier octet
Bien que l'utilisation stricte des classes ne soit plus la méthode la plus courante (on leur préfère le CIDR, Classless Inter-Domain Routing), il est intéressant de les connaître pour comprendre l'histoire d'IPv4.
1.1 Classe A
- Plage : 0.0.0.0 à 127.255.255.255
- Premier octet : entre 0 et 127
- Masque par défaut : 255.0.0.0 (ou /8)
- Destinations typiques : grands réseaux (énormes entreprises, gouvernements).
- Adresse spéciale : 127.0.0.0/8 est réservé pour la boucle locale (loopback).
L'adresse 127.0.0.1 est communément appelée "localhost".
1.2 Classe B
- Plage : 128.0.0.0 à 191.255.255.255
- Premier octet : entre 128 et 191
- Masque par défaut : 255.255.0.0 (ou /16)
- Destinations typiques : réseaux de taille moyenne (universités, entreprises de taille intermédiaire).
1.3 Classe C
- Plage : 192.0.0.0 à 223.255.255.255
- Premier octet : entre 192 et 223
- Masque par défaut : 255.255.255.0 (ou /24)
- Destinations typiques : petits réseaux (PME, particuliers).
1.4 Classe D
- Plage : 224.0.0.0 à 239.255.255.255
- Destination : multicast (diffusion à un groupe spécifique d'hôtes).
1.5 Classe E
- Plage : 240.0.0.0 à 255.255.255.255
- Usage : expérimental ou réservé pour de futures utilisations.
Adresses publiques et adresses privées (non-routables)
Certaines adresses IP sont dites publiques (routables sur Internet) et d'autres sont privées (non routables sur Internet, elles sont réservées pour les réseaux internes).
- Adresses privées (RFC 1918) :
- 10.0.0.0 à 10.255.255.255 (Classe A privée)
Masque : 255.0.0.0 ou /8
- 172.16.0.0 à 172.31.255.255 (Classe B privée)
Masque : 255.240.0.0 ou /12
- 192.168.0.0 à 192.168.255.255 (Classe C privée)
Masque : 255.255.0.0 ou /16
Ces adresses privées doivent être utilisées derrière un dispositif effectuant une traduction d'adresses (NAT, Network Address Translation) pour accéder à Internet (routeur, pare-feu, box internet...).
2. Le masque de sous-réseau (subnet mask)
Un masque de sous-réseau (souvent appelé "masque" ou "subnet mask" ou "netmask") indique quelle partie de l'adresse IP identifie le réseau et quelle partie identifie l'hôte (ou l'appareil) sur ce réseau.
- Représentation : comme une adresse IP, il est généralement noté en notation décimale pointée (ex. : 255.255.255.0).
- Notation CIDR (Classless Inter-Domain Routing) : permet d'indiquer le nombre de bits réservés à la partie réseau. Par exemple, un masque 255.255.255.0 correspond à /24 (24 bits réseau).
Exemple :
- Adresse IP : 192.168.10.15
- Masque de sous-réseau : 255.255.255.0
- Notation CIDR : 192.168.10.15/24
Le masque 255.255.255.0 (/24) signifie que les 24 premiers bits (3 premiers octets) désignent la partie réseau, et les 8 bits restants (dernier octet) désignent la partie hôte.
3. La passerelle (gateway)
La passerelle par défaut (ou gateway) est l'équipement réseau (généralement un routeur) vers lequel est envoyé tout paquet de données destiné à un réseau différent de celui de la machine source.
- Lorsque votre ordinateur veut joindre une IP qui n'est pas sur le même réseau local, il adresse le paquet à la passerelle par défaut, qui se charge de trouver le chemin vers la destination.
- Dans un usage domestique, la box/routeur fourni par le FAI (Fournisseur d'Accès Internet) est souvent configurée comme passerelle par défaut pour tous les appareils du réseau local.
4. Le VLSM (Variable Length Subnet Mask)
Le VLSM (pour Variable Length Subnet Mask, ou masques de sous-réseau à longueur variable) est une technique permettant de subdiviser un réseau IP en plusieurs sous-réseaux de tailles différentes, en ajustant le masque de sous-réseau de manière précise.
- But : éviter le gaspillage d'adresses IP et optimiser l'allocation d'adresses.
- Principe : on part d'un réseau global avec un préfixe (ex. /16), puis on le scinde en sous-réseaux de tailles variées selon les besoins (ex. /24, /26, /27, etc.).
- Avantage : adapté aux environnements hétérogènes où certains segments du réseau nécessitent beaucoup d'adresses, et d'autres très peu.
Exemple simplifié :
- Réseau de base : 192.168.0.0/24
- On peut décider de découper ce /24 en :
- 192.168.0.0/25 (pour 126 hôtes possibles)
- 192.168.0.128/26 (pour 62 hôtes possibles)
- 192.168.0.192/27 (pour 30 hôtes possibles)
Chacun de ces sous-réseaux a un masque différent, adapté à la taille de ses besoins.
5. Composition d'une "trame" IP (ou plus précisément "en-tête IP")
Pour être tout à fait exact, on utilise souvent le terme "trame" pour désigner la structure de niveau 2 (couche liaison) : la trame Ethernet, par exemple. Au niveau 3 (couche réseau), on parle plutôt de "paquet IP" dont la partie principale est l'en-tête IP.
L'en-tête IP (IPv4) contient plusieurs champs :
- Version (4 bits) : indique la version du protocole (ici, 4 pour IPv4).
- IHL (Internet Header Length) (4 bits) : longueur de l'en-tête IP, en multiples de 4 octets.
- Type of Service (8 bits) / DSCP : permet de spécifier la qualité de service (QoS).
- Total Length (16 bits) : longueur totale du paquet IP (en-tête + données).
- Identification (16 bits) : identifiant utilisé lors de la fragmentation du paquet.
- Flags (3 bits) : indiquent si le paquet peut être fragmenté (DF) ou s'il s'agit d'un fragment final (MF).
- Fragment Offset (13 bits) : position du fragment dans le paquet initial s'il y a fragmentation.
- Time To Live (TTL) (8 bits) : nombre de sauts (ou routeurs) que le paquet peut traverser avant d'être détruit.
- Protocol (8 bits) : indique le protocole de la couche supérieure (ex. 6 = TCP, 17 = UDP, etc.).
- Header Checksum (16 bits) : somme de contrôle de l'en-tête IP pour vérifier l'intégrité.
- Source IP Address (32 bits) : adresse IP de l'expéditeur.
- Destination IP Address (32 bits) : adresse IP du destinataire.
- Options (variable, jusqu'à 40 octets max) : champs optionnels (rarement utilisés).
- Data (variable) : la charge utile (données) à transmettre vers la couche transport.