Vingt appareils, une seule adresse
Dans un cabinet comptable de Toulouse, vingt appareils sont connectés : postes, téléphones, imprimantes. L'opérateur n'a pourtant donné qu'une seule adresse publique.
Chaque salarié navigue sur internet en même temps, et chaque réponse revient au bon poste. Un mécanisme de la box rend cela possible.
À la fin de cette leçon
Remarque
Je peux expliquer comment plusieurs appareils partagent une seule adresse publique.
Mots clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Adresse publique | une adresse IP joignable depuis internet | 203.0.113.50 |
| Adresse privée | une adresse IP valable seulement dans un réseau local | 192.168.1.42 |
| Passerelle | l’appareil par où sort tout ce qui quitte le réseau local | |
| NAT | la traduction des adresses privées en adresse publique | |
| Table NAT | la liste des connexions ouvertes que tient la box |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Il existe des adresses privées
Il n'y a pas assez d'adresses IPv4 pour chaque appareil du monde. Certaines plages sont donc réservées aux réseaux locaux : ce sont les adresses privées.
Elles commencent par 10., par 192.168. ou vont de 172.16. à 172.31.. Mille entreprises peuvent utiliser 192.168.1.42 en même temps sans se gêner. Internet ne transporte jamais ces adresses.
Où vous verrez chaque plage
| Plage | Où on la voit souvent |
|---|---|
| 192.168.x.x | La box de la maison ou d’une petite entreprise |
| 10.x.x.x | Les grandes entreprises et le cloud |
| 172.16.x.x à 172.31.x.x | Certains réseaux d’entreprise et les conteneurs |
| Tout le reste, ou presque | Les adresses publiques sur internet |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Essayez : privée ou publique ?
adresses = ["192.168.1.42", "10.0.0.12", "203.0.113.50", "8.8.8.8"]
for adresse in adresses:
# Les plages privées commencent par 10. ou 192.168. (et 172.16. à 172.31.)
if adresse.startswith("10.") or adresse.startswith("192.168."):
print(adresse, ": privée, invisible depuis internet")
else:
print(adresse, ": publique")
# Ajoutez "192.168.0.10" à la liste, puis cliquez sur Exécuter.
Tout sort par la passerelle
Un poste parle directement aux appareils de son réseau local. Pour tout le reste, il envoie ses paquets à la passerelle par défaut.
Dans une petite entreprise, c'est la box, souvent 192.168.1.1. Si la passerelle est mal réglée, le poste voit l'imprimante mais aucun site. C'est un symptôme fréquent dans les tickets.
Vraie sortie de ip route
$ ip route
default via 192.168.1.1 dev wlan0 proto dhcp metric 600
192.168.1.0/24 dev wlan0 proto kernel scope link src 192.168.1.42 metric 600
Essayez : trouver la passerelle
# Une copie de la table de routage d'un poste
printf "default via 192.168.1.1 dev wlan0\n192.168.1.0/24 dev wlan0 src 192.168.1.42\n" > routes.txt
# La ligne default donne la passerelle par défaut
grep "default" routes.txt
# Remplacez "default" par "src" pour trouver l'adresse du poste, puis cliquez sur Exécuter.
La box traduit les adresses
Quand un poste sort, la box remplace son adresse privée par l'adresse publique. Elle choisit aussi un port public libre. C'est le NAT.
La box note chaque échange dans sa table NAT. Quand la réponse revient sur ce port, elle lit la table et la renvoie au bon poste. Une réponse sur un port inconnu est simplement jetée.
Exemple : la table NAT du cabinet
| Appareil interne | Sort sous le nom de | Vers |
|---|---|---|
| 192.168.1.42:51544 | 203.0.113.50:40001 | Site des impôts, port 443 |
| 192.168.1.50:49210 | 203.0.113.50:40002 | Serveur de mise à jour, port 443 |
| 192.168.1.61:50133 | 203.0.113.50:40003 | Messagerie, port 587 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Une erreur fréquente
Attention
Beaucoup pensent que chaque poste du bureau a sa propre adresse publique. Derrière une box, tous les postes sortent avec la même. C'est pourquoi un site extérieur ne peut pas joindre un poste précis, sauf si on ouvre un port exprès sur la box.