Adressage IPv4, masques et sous-réseaux
- Niveau
- Débutant
- Durée
- 1 h 30 avec les exercices
- Testé sur
- Calculs vérifiés avec ipcalc
Avant d’installer un DHCP, de créer un domaine Active Directory ou de configurer un VLAN, il faut savoir répondre à une question simple : ces deux machines sont-elles sur le même réseau ? Tout cet article sert à y répondre sans hésiter, de tête ou avec un papier.
Objectifs
Section intitulée « Objectifs »À la fin de cet article, vous saurez :
- lire une adresse IPv4 et son masque, en notation décimale et en notation CIDR (
/24) ; - trouver l’adresse réseau, l’adresse de broadcast et la plage d’adresses utilisables ;
- calculer combien de machines un réseau peut accueillir ;
- découper un réseau en sous-réseaux de même taille, puis de tailles différentes (VLSM).
Prérequis
Section intitulée « Prérequis »Aucun, à part savoir compter en puissances de 2. Une feuille et un crayon aident beaucoup.
L’adresse IPv4
Section intitulée « L’adresse IPv4 »Une adresse IPv4 est un nombre de 32 bits. Pour la rendre lisible, on la coupe en quatre octets de 8 bits, écrits en décimal et séparés par des points :
192 .168 .10 .7711000000 .10101000 .00001010 .01001101Chaque octet va donc de 0 (00000000) à 255 (11111111). Une adresse comme 192.168.10.300
n’existe pas.
Convertir un octet en binaire
Section intitulée « Convertir un octet en binaire »Chaque bit d’un octet a un poids, de 128 à 1 :
| Poids | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|---|
| 77 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 |
Pour convertir 77, on prend les poids de gauche à droite tant qu’ils rentrent :
64 rentre (reste 13), 32 et 16 non, 8 rentre (reste 5), 4 rentre (reste 1), 2 non, 1 rentre.
On obtient 01001101.
Partie réseau, partie hôte et masque
Section intitulée « Partie réseau, partie hôte et masque »Une adresse IP contient deux informations : le réseau auquel appartient la machine, et l’hôte, c’est-à-dire la machine elle-même dans ce réseau. Le masque indique où se trouve la frontière entre les deux.
Le masque est lui aussi un nombre de 32 bits. Ses bits à 1 désignent la partie réseau, ses bits à
0 la partie hôte. Les 1 sont toujours tous à gauche :
Masque 255.255.255.19211111111.11111111.11111111.11000000└────────── réseau (26 bits) ──────┘└ hôte (6 bits)La notation CIDR
Section intitulée « La notation CIDR »Écrire 255.255.255.192 est long. La notation CIDR donne simplement le nombre de bits à 1 du
masque : /26. On écrit donc l’adresse et son masque d’un seul coup : 192.168.10.77/26.
| CIDR | Masque décimal | Bits hôte | Adresses | Hôtes utilisables |
|---|---|---|---|---|
/8 |
255.0.0.0 |
24 | 16 777 216 | 16 777 214 |
/16 |
255.255.0.0 |
16 | 65 536 | 65 534 |
/22 |
255.255.252.0 |
10 | 1 024 | 1 022 |
/23 |
255.255.254.0 |
9 | 512 | 510 |
/24 |
255.255.255.0 |
8 | 256 | 254 |
/25 |
255.255.255.128 |
7 | 128 | 126 |
/26 |
255.255.255.192 |
6 | 64 | 62 |
/27 |
255.255.255.224 |
5 | 32 | 30 |
/28 |
255.255.255.240 |
4 | 16 | 14 |
/29 |
255.255.255.248 |
3 | 8 | 6 |
/30 |
255.255.255.252 |
2 | 4 | 2 |
La règle derrière ce tableau : avec n bits d’hôte, un réseau contient 2ⁿ adresses, dont 2ⁿ − 2 utilisables pour des machines.
Pourquoi « moins 2 » ?
Section intitulée « Pourquoi « moins 2 » ? »Dans chaque réseau, deux adresses sont réservées :
- la première, où tous les bits d’hôte sont à 0, est l’adresse du réseau lui-même. Elle sert à le désigner, par exemple dans une table de routage ;
- la dernière, où tous les bits d’hôte sont à 1, est l’adresse de broadcast. Un paquet envoyé à cette adresse est reçu par toutes les machines du réseau.
On ne peut attribuer ni l’une ni l’autre à une machine.
Trouver le réseau d’une adresse : la méthode complète
Section intitulée « Trouver le réseau d’une adresse : la méthode complète »Prenons 192.168.10.77/26 et cherchons son adresse réseau, son broadcast et sa plage utilisable.
Méthode 1 : le ET logique en binaire
Section intitulée « Méthode 1 : le ET logique en binaire »On aligne l’adresse et le masque en binaire, puis on fait un ET logique bit à bit : le résultat vaut 1 seulement si les deux bits valent 1. Les trois premiers octets du masque valent 255, donc ils recopient l’adresse telle quelle. Il suffit de calculer le dernier :
Adresse 77 01001101Masque 192 11000000 -------- ETRéseau 64 01000000L’adresse réseau est 192.168.10.64. Pour le broadcast, on garde la partie réseau et on met tous
les bits d’hôte à 1 : 01111111, soit 127. Le broadcast est 192.168.10.127.
Méthode 2 : le nombre magique (plus rapide)
Section intitulée « Méthode 2 : le nombre magique (plus rapide) »En pratique, on ne passe presque jamais par le binaire. On regarde l’octet où le masque n’est ni 255 ni 0 (l’octet « intéressant »), et on calcule :
taille du bloc = 256 − valeur du masque dans cet octet
Ici, le masque vaut 192 dans le 4ᵉ octet : 256 − 192 = 64. Les réseaux commencent donc tous les
64 dans cet octet : .0, .64, .128, .192. L’adresse .77 tombe entre .64 et .127 :
| Information | Résultat |
|---|---|
| Adresse réseau | 192.168.10.64/26 |
| Première adresse utilisable | 192.168.10.65 |
| Dernière adresse utilisable | 192.168.10.126 |
| Broadcast | 192.168.10.127 |
| Nombre d’hôtes | 2⁶ − 2 = 62 |
Les deux méthodes donnent évidemment le même résultat. La première sert à comprendre, la seconde à aller vite.
Ces deux machines peuvent-elles se parler directement ?
Section intitulée « Ces deux machines peuvent-elles se parler directement ? »Deux machines communiquent directement (sans routeur) seulement si elles sont dans le même réseau. Pour le vérifier, on calcule l’adresse réseau de chacune avec son masque.
192.168.1.120/25: bloc de 128, réseau192.168.1.0.192.168.1.130/25: bloc de 128, réseau192.168.1.128.
Elles ne sont pas dans le même réseau. Un ping de l’une vers l’autre échouera s’il n’y a pas de
routeur entre les deux, alors que leurs adresses se ressemblent beaucoup. C’est l’une des causes de
panne les plus fréquentes en TP.
Les adresses à connaître
Section intitulée « Les adresses à connaître »Certaines plages ont un rôle particulier :
| Plage | Rôle |
|---|---|
10.0.0.0/8 |
Adresses privées (RFC 1918) |
172.16.0.0/12 |
Adresses privées, de 172.16.0.0 à 172.31.255.255 |
192.168.0.0/16 |
Adresses privées, les plus courantes chez les particuliers |
127.0.0.0/8 |
Boucle locale. 127.0.0.1 désigne la machine elle-même |
169.254.0.0/16 |
APIPA : adresse que Windows s’attribue seul quand il ne trouve pas de serveur DHCP |
0.0.0.0 |
« Aucune adresse » ou « toutes les adresses », selon le contexte (route par défaut 0.0.0.0/0) |
255.255.255.255 |
Broadcast limité au réseau local |
Les adresses privées ne sont pas routées sur Internet. Elles sont utilisées dans les réseaux d’entreprise et de TP, et traduites en adresse publique par la box ou le pare-feu (NAT).
Découper un réseau en sous-réseaux
Section intitulée « Découper un réseau en sous-réseaux »Découper, c’est emprunter des bits à la partie hôte pour les ajouter à la partie réseau. Chaque bit emprunté double le nombre de sous-réseaux et divise par deux leur taille.
Sous-réseaux de même taille
Section intitulée « Sous-réseaux de même taille »Énoncé : l’école dispose de 192.168.1.0/24 et veut 4 réseaux séparés (administration, salle de
TP 1, salle de TP 2, serveurs).
- Combien de bits emprunter ? Il faut au moins 4 sous-réseaux : 2² = 4, donc 2 bits.
- Nouveau masque : 24 + 2 = /26, soit
255.255.255.192. - Taille de chaque bloc : 256 − 192 = 64 adresses, donc 62 hôtes.
| Sous-réseau | Adresse réseau | Plage utilisable | Broadcast |
|---|---|---|---|
| Administration | 192.168.1.0/26 |
.1 à .62 |
192.168.1.63 |
| Salle TP 1 | 192.168.1.64/26 |
.65 à .126 |
192.168.1.127 |
| Salle TP 2 | 192.168.1.128/26 |
.129 à .190 |
192.168.1.191 |
| Serveurs | 192.168.1.192/26 |
.193 à .254 |
192.168.1.255 |
Si on avait eu besoin de 6 réseaux, 2 bits n’auraient pas suffi (4 réseaux seulement). Il aurait
fallu 3 bits (2³ = 8 réseaux), donc un /27 avec des blocs de 32.
Sous-réseaux de tailles différentes (VLSM)
Section intitulée « Sous-réseaux de tailles différentes (VLSM) »Dans la réalité, tous les réseaux n’ont pas la même taille. Donner 62 adresses à un lien entre deux routeurs qui n’en utilise que 2, c’est du gaspillage. Le VLSM (Variable Length Subnet Mask) consiste à choisir un masque différent pour chaque sous-réseau.
Énoncé : à partir de 192.168.50.0/24, créer :
- un réseau Administration de 100 postes ;
- un réseau Pédagogie de 50 postes ;
- un réseau Serveurs de 20 machines ;
- un lien entre deux routeurs (2 adresses).
La règle d’or : on place toujours les plus grands réseaux en premier. Sinon, les blocs ne tombent plus sur des frontières valides.
| Besoin | Plus petit masque qui convient | Réseau attribué | Plage utilisable | Broadcast |
|---|---|---|---|---|
| 100 postes | /25 (126 hôtes) |
192.168.50.0/25 |
.1 à .126 |
.127 |
| 50 postes | /26 (62 hôtes) |
192.168.50.128/26 |
.129 à .190 |
.191 |
| 20 machines | /27 (30 hôtes) |
192.168.50.192/27 |
.193 à .222 |
.223 |
| 2 adresses | /30 (2 hôtes) |
192.168.50.224/30 |
.225 à .226 |
.227 |
Chaque réseau commence juste après le broadcast du précédent. Il reste de la place libre de
192.168.50.228 à 192.168.50.255 pour de futurs besoins.
Vérifier ses calculs
Section intitulée « Vérifier ses calculs »Il est utile de savoir calculer à la main, mais en situation réelle on vérifie toujours avec un outil.
Sous Linux avec ipcalc
Section intitulée « Sous Linux avec ipcalc »sudo apt install ipcalcipcalc -n 192.168.10.77/26Exemple de sortie (l’option -n retire les couleurs) :
Address: 192.168.10.77 11000000.10101000.00001010.01 001101Netmask: 255.255.255.192 = 26 11111111.11111111.11111111.11 000000Wildcard: 0.0.0.63 00000000.00000000.00000000.00 111111=>Network: 192.168.10.64/26 11000000.10101000.00001010.01 000000HostMin: 192.168.10.65 11000000.10101000.00001010.01 000001HostMax: 192.168.10.126 11000000.10101000.00001010.01 111110Broadcast: 192.168.10.127 11000000.10101000.00001010.01 111111Hosts/Net: 62 Class C, Private InternetL’espace dans la colonne binaire montre exactement où passe la frontière entre réseau et hôte.
Voir la configuration IP d’une machine
Section intitulée « Voir la configuration IP d’une machine »ipconfigip -4 addressWindows affiche le masque en décimal (Masque de sous-réseau . . : 255.255.255.0), Linux en
notation CIDR (inet 192.168.1.20/24). C’est la même information.
Erreurs courantes
Section intitulée « Erreurs courantes »Attribuer l’adresse réseau ou le broadcast à une machine. Avec un /26, 192.168.1.64 et
192.168.1.127 ne sont pas des adresses d’hôte. Windows refusera l’adresse réseau avec un message
d’erreur ; d’autres équipements l’accepteront et ne fonctionneront pas.
Oublier que le masque doit être le même partout. Si un poste est en /24 et l’autre en /25
dans la même salle, ils ne « voient » pas le réseau de la même façon. Le ping peut marcher dans un
sens et pas dans l’autre.
Faire le calcul du bloc sur le mauvais octet. Le nombre magique se calcule sur l’octet où le
masque n’est ni 255 ni 0. Avec un /20, c’est le 3ᵉ octet, pas le 4ᵉ.
Placer les petits réseaux en premier en VLSM. Les blocs se retrouvent mal alignés et les adresses se chevauchent. Toujours trier du plus grand au plus petit.
Confondre nombre d’adresses et nombre d’hôtes. Un /24 contient 256 adresses mais seulement
254 hôtes.
Exercices corrigés
Section intitulée « Exercices corrigés »Essayez d’abord sans regarder la correction, avec la méthode du nombre magique.
Exercice 1. Donnez le réseau, le broadcast, la plage utilisable et le nombre d’hôtes de
172.16.33.10/20.
Correction
Masque /20 = 255.255.240.0. Octet intéressant : le 3ᵉ, bloc de 256 − 240 = 16.
Les réseaux sont 172.16.0.0, 172.16.16.0, 172.16.32.0, 172.16.48.0… 33 est entre 32 et 47.
- Réseau :
172.16.32.0/20 - Plage utilisable :
172.16.32.1à172.16.47.254 - Broadcast :
172.16.47.255 - Hôtes : 2¹² − 2 = 4 094
Exercice 2. Quel masque (en CIDR et en décimal) faut-il au minimum pour un réseau de 50 postes ?
Correction
Il faut 2ⁿ − 2 ≥ 50. Avec n = 5 : 30, trop peu. Avec n = 6 : 62, ça convient.
6 bits d’hôte, donc 32 − 6 = 26 bits de réseau : /26, soit 255.255.255.192.
Exercice 3. Les machines 10.10.10.14/28 et 10.10.10.17/28 peuvent-elles communiquer sans
routeur ?
Correction
/28 donne des blocs de 16 : .0, .16, .32… 10.10.10.14 est dans le réseau 10.10.10.0,
10.10.10.17 dans le réseau 10.10.10.16. Non, elles sont dans deux réseaux différents.
Exercice 4. Découpez 192.168.20.0/24 en 8 sous-réseaux de même taille. Donnez le masque et
les trois premiers réseaux.
Correction
8 = 2³, on emprunte 3 bits : /27 (255.255.255.224), blocs de 32, 30 hôtes chacun.
192.168.20.0/27:.1à.30, broadcast.31192.168.20.32/27:.33à.62, broadcast.63192.168.20.64/27:.65à.94, broadcast.95
Exercice 5. Un poste Windows affiche l’adresse 169.254.12.40. Que se passe-t-il ?
Correction
C’est une adresse APIPA : le poste est configuré en DHCP mais n’a reçu aucune réponse d’un serveur DHCP. Il faut vérifier le câble ou la carte réseau virtuelle, le VLAN, puis que le serveur DHCP fonctionne et que son étendue n’est pas pleine.
Pour aller plus loin
Section intitulée « Pour aller plus loin »- Le masque générique (wildcard). C’est l’inverse du masque :
0.0.0.63pour un/26. Vous le retrouverez dans les ACL et la configuration OSPF des équipements Cisco. - La supernet ou agrégation de routes. L’opération inverse du découpage : regrouper
192.168.0.0/24et192.168.1.0/24en une seule route192.168.0.0/23. - IPv6. Les adresses passent à 128 bits et le découpage se fait presque toujours en
/64. Un article dédié viendra plus tard.
La suite logique de cet article est le montage de votre lab de TP, pour mettre ces calculs en pratique sur de vraies machines virtuelles.
Contenu sous licence CC BY-SA 4.0, écrit par les bénévoles de l’association RootLab.