L’imprimante à tickets du salon
Un salon de coiffure encaisse sur une tablette. Une petite imprimante sort les tickets. Tout marche depuis des mois.
Un jour, l’imprimante est remplacée. Le patron tape une adresse à la main, et plus aucun ticket ne sort.
Les deux adresses se ressemblent beaucoup. Pourtant, elles disent que les appareils sont sur deux réseaux différents. Tu vas apprendre à le voir.
À la fin de cette leçon
Remarque
Je peux dire si deux appareils sont sur le même réseau.
Mots clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Adresse IP | le numéro qui désigne un appareil sur un réseau | 192.168.1.20 |
| Octet | un des quatre nombres d’une adresse, de 0 à 255 | |
| Masque | le nombre qui dit quelle partie de l’adresse désigne le réseau | 255.255.255.0 |
| Partie réseau | les octets que partagent tous les appareils d’un réseau | |
| Partie hôte | les octets qui désignent un appareil précis | |
| Plage privée | des adresses gardées pour les réseaux internes, jamais utilisées sur internet |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Une adresse a deux parties
Une adresse IP a quatre octets, comme 192.168.1.20. Le masque dit où couper.
Là où l’octet du masque vaut 255, l’octet de l’adresse fait partie du réseau. Là où il vaut 0, il désigne l’hôte.
Le masque 255.255.255.0 s’écrit souvent /24. Les 24 premiers bits, donc trois octets, désignent le réseau.
Exemple travaillé : couper avec le masque
| Adresse | Masque | Partie réseau | Partie hôte |
|---|---|---|---|
| 192.168.1.20 | 255.255.255.0 (/24) | 192.168.1 | 20 |
| 10.0.3.2 | 255.255.255.0 (/24) | 10.0.3 | 2 |
| 172.20.8.15 | 255.255.0.0 (/16) | 172.20 | 8.15 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Demande à Python le réseau de h1
python3 -c "print(__import__('ipaddress').ip_interface('10.0.1.2/24').network)"Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Demande à Python le réseau de h2
python3 -c "print(__import__('ipaddress').ip_interface('10.0.3.2/24').network)"Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Même partie réseau, même réseau
Pour comparer deux appareils, calcule leur partie réseau avec le même masque. Si les deux sont égales, ils partagent un réseau.
Alors ils se parlent directement. Sinon, chaque paquet doit passer par un routeur.
L’ordinateur fait un calcul appelé ET sur chaque octet. Avec 255, l’octet reste. Avec 0, il devient 0.
Exemple travaillé : les appareils du salon
| Appareil | Adresse | Réseau avec /24 | Comme la tablette ? |
|---|---|---|---|
| Tablette de caisse | 192.168.1.20 | 192.168.1.0 | C’est elle |
| Ancienne imprimante | 192.168.1.50 | 192.168.1.0 | Oui |
| Nouvelle imprimante | 192.168.2.50 | 192.168.2.0 | Non |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Demande à h1 comment joindre r1
sudo ip netns exec h1 ip route get 10.0.1.1Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Demande à h1 comment joindre r2
sudo ip netns exec h1 ip route get 10.0.12.2Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Ce que h1 a décidé
La première réponse commence par 10.0.1.1 dev to-r1. Pas de via : le routeur est sur le réseau de h1, donc h1 lui envoie directement.
La seconde commence par 10.0.12.2 via 10.0.1.1. La partie réseau 10.0.12 n’est pas celle de h1. Alors h1 confie le paquet à son routeur, 10.0.1.1.
Des plages gardées pour l’intérieur
Trois plages d’adresses sont privées. Les maisons, les lycées et les boutiques les réutilisent sans arrêt. Internet ne les transporte jamais.
Les autres adresses peuvent être publiques : chacune sert une seule fois dans le monde. Ton téléphone, chez toi, a souvent une adresse privée comme 192.168.1.x.
Exemple travaillé : les trois plages privées
| Plage | Commence par | On la trouve souvent |
|---|---|---|
| 10.0.0.0/8 | 10 | Dans les grands lycées et les entreprises |
| 172.16.0.0/12 | 172.16 jusqu’à 172.31 | Dans les réseaux moyens |
| 192.168.0.0/16 | 192.168 | Dans les maisons et les petits commerces |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Demande si 192.168.1.20 est privée
python3 -c "print(__import__('ipaddress').ip_address('192.168.1.20').is_private)"Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Demande si 8.8.8.8 est privée
python3 -c "print(__import__('ipaddress').ip_address('8.8.8.8').is_private)"Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Une erreur fréquente
Attention
Beaucoup pensent que deux adresses qui se ressemblent sont sur le même réseau. Seule la partie réseau compte. Avec /24, 192.168.1.50 et 192.168.2.50 diffèrent au troisième octet : ce sont deux réseaux.
Pour aller plus loin : un masque coupé
Certains masques coupent un octet en deux, comme 255.255.255.192, ou /26. Ta fonction masque_de ne sait pas le fabriquer, mais adresse_reseau sait l’utiliser.
Essaie 200 & 192 puis 100 & 192 dans Python. Avec ce masque, 192.168.1.100 et 192.168.1.200 sont-ils sur le même réseau ? Vérifie avec adresse_reseau.