Prérequis : notions de réseau vues en première (adresses IP, masque de sous-réseau, modèle TCP/IP), protocoles de routage
À l’issue de ce chapitre, vous saurez :
ip a pour afficher et interpréter la configuration réseau d’une machine ;ping ;traceroute ;nslookup ou dig ;ss ;arp ou ip neigh.Les systèmes d’exploitation de type UNIX (Linux, macOS, BSD) fournissent un ensemble de commandes en ligne permettant de configurer, tester et diagnostiquer le réseau. Ces outils sont indispensables à tout administrateur système, mais aussi à quiconque cherche à comprendre concrètement le fonctionnement des réseaux étudiés en cours.
Toutes les commandes présentées ici s’exécutent dans un terminal (aussi appelé shell). Sous Linux, on ouvre un terminal avec le raccourci Ctrl + Alt + T ou via le menu des applications.
Remarque : certaines commandes historiques (
ifconfig,netstat,route) sont progressivement remplacées par des alternatives plus modernes (ip,ss). Nous présenterons les commandes modernes en priorité, avec une mention des commandes historiques encore très répandues.
ip aLa commande ip a (abréviation de ip addr show) affiche la liste de toutes les interfaces réseau de la machine ainsi que leurs adresses IP, masques de sous-réseau et adresses MAC.
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536
link/loopback 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
link/ether 4c:ed:fb:a2:33:7e
inet 192.168.1.42/24 brd 192.168.1.255 scope global enp3s0
inet6 fe80::4eed:fbff:fea2:337e/64 scope link
3: wlp2s0: <BROADCAST,MULTICAST> mtu 1500
link/ether 60:f2:62:c4:11:a0
Chaque bloc correspond à une interface réseau :
lo est l’interface de loopback (boucle locale). Son adresse est toujours 127.0.0.1. Elle permet à la machine de communiquer avec elle-même, ce qui est utile pour tester des services localement.enp3s0 est une interface Ethernet filaire. On y lit :
4c:ed:fb:a2:33:7e (après link/ether) ;192.168.1.42 avec le masque /24 (soit 255.255.255.0) ;192.168.1.255.wlp2s0 est une interface Wi-Fi. Ici, elle n’a pas d’adresse IP : elle n’est pas connectée à un réseau.L’adresse de diffusion est la dernière adresse du réseau : tous les bits de la partie hôte y valent 1. Un paquet envoyé à cette adresse est reçu par toutes les machines du réseau local. Comme l’adresse réseau (tous les bits de la partie hôte à 0), elle ne peut être attribuée à aucune machine. Un réseau dont la partie hôte compte \(h\) bits accueille donc au plus \(2^h - 2\) machines, soit 254 pour un masque /24.
Commande historique :
ifconfigaffiche des informations similaires. Elle reste disponible sur la plupart des systèmes mais est considérée comme obsolète sur les distributions Linux récentes.
Exécutez ip a sur votre machine (ou sur un simulateur). Identifiez le nom de chaque interface, son adresse IP et son masque de sous-réseau. Quelle est l’adresse réseau associée à chaque interface ?
pingLa commande ping envoie des paquets ICMP (Internet Control Message Protocol) à une machine distante et attend une réponse. Elle permet de vérifier que la communication avec une machine distante est possible et de mesurer le temps d’aller-retour (round-trip time, ou RTT).
ping fonctionne au niveau de la couche internet du modèle TCP/IP.
$ ping -c 4 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=1.23 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.98 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=1.05 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=1.12 ms
--- 192.168.1.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 0.980/1.095/1.230/0.091 ms
Pour chaque paquet envoyé, on obtient :
icmp_seq : le numéro de séquence du paquet ;ttl (time to live) : le nombre maximal de routeurs que le paquet peut encore traverser avant d’être détruit ;time : le temps d’aller-retour en millisecondes.Le résumé final indique le nombre de paquets envoyés, reçus, le pourcentage de perte et les statistiques de temps (minimum, moyenne, maximum).
Remarque : l’option
-c 4limite l’envoi à 4 paquets. Sans cette option,pingcontinue indéfiniment sous Linux (on l’arrête avecCtrl + C).
| Situation | Interprétation possible |
|---|---|
| Réponse normale | La machine distante est joignable |
Destination Host Unreachable |
La machine visée ne répond pas sur son réseau local : elle est éteinte, débranchée, ou l’adresse n’existe pas |
Network is unreachable |
Pas de route vers la destination (par exemple, aucune passerelle configurée) |
aucune réponse, puis 100% packet loss |
Les paquets partent mais aucune réponse ne revient : un pare-feu bloque le ping, ou la machine, sur un réseau distant, est injoignable |
| Perte partielle de paquets | Liaison instable ou saturée |
ping -c 4 127.0.0.1. Que testez-vous exactement ? Quel TTL obtenez-vous et pourquoi ?ping -c 4 suivi de l’adresse de votre passerelle par défaut (souvent 192.168.1.1 ou 192.168.0.1). Interprétez le résultat.tracerouteLa commande traceroute affiche la liste de tous les routeurs traversés par un paquet entre la machine locale et une destination.
Pour comprendre son fonctionnement, il faut d’abord rappeler le rôle du champ TTL (time to live) des paquets IP. Ce champ existe pour empêcher un paquet de circuler indéfiniment dans le réseau en cas d’erreur de routage : chaque routeur traversé décrémente le TTL de 1, et si celui-ci atteint 0, le routeur détruit le paquet et renvoie un message d’erreur ICMP Time Exceeded à l’expéditeur.
traceroute détourne ce mécanisme de protection : elle envoie un premier paquet avec TTL = 1, qui est donc détruit par le premier routeur, lequel révèle son adresse IP dans le message d’erreur. Puis elle envoie un paquet avec TTL = 2, détruit par le deuxième routeur, et ainsi de suite jusqu’à atteindre la destination.
Sortie illustrative. Le site du ministère est aujourd’hui servi par un réseau de diffusion de contenu (Cloudflare) : l’adresse IP obtenue et le chemin dépendent du lieu d’où l’on interroge, et certains routeurs ne répondent pas (lignes d’astérisques).
$ traceroute www.education.gouv.fr
traceroute to www.education.gouv.fr (185.75.143.36), 30 hops max
1 box (192.168.1.1) 1.234 ms 1.102 ms 1.089 ms
2 10.45.128.1 5.678 ms 5.432 ms 5.501 ms
3 lag-10.nantes.francetelecom.net 12.34 ms 12.12 ms 12.45 ms
4 ae41.paris1.francetelecom.net 18.56 ms 18.23 ms 18.67 ms
5 185.75.143.36 19.12 ms 18.98 ms 19.23 ms
Chaque ligne correspond à un routeur intermédiaire (un hop). On y trouve :
traceroute tente une résolution DNS inverse (de l’adresse IP vers un nom de domaine) : si elle aboutit, le nom apparaît à côté de l’adresse (par exemple lag-10.nantes.francetelecom.net), sinon seule l’adresse IP est affichée ;Des étoiles * * * indiquent qu’un routeur n’a pas répondu (pare-feu ou configuration ICMP restrictive).
Variante : sous Windows, la commande équivalente est
tracert. Elle utilise des paquets ICMP au lieu d’UDP.
En observant la sortie ci-dessus, combien de routeurs le paquet traverse-t-il ? Identifiez le routeur qui introduit le plus grand saut de latence et proposez une explication.
nslookup et digLe DNS (Domain Name System) est le service qui traduit les noms de domaine (comme www.education.gouv.fr) en adresses IP. Les commandes nslookup et dig permettent d’interroger manuellement un serveur DNS.
nslookup$ nslookup www.education.gouv.fr
Server: 192.168.1.1
Address: 192.168.1.1#53
Non-authoritative answer:
Name: www.education.gouv.fr
Address: 185.75.143.36
nslookup (suite)Le résultat indique :
192.168.1.1, ici la box internet, sur le port 53) ;dig$ dig www.education.gouv.fr +short
185.75.143.36
dig est plus complet que nslookup et donne davantage de détails techniques. L’option +short permet d’obtenir uniquement l’adresse IP.
Rappel : la résolution DNS intervient au niveau de la couche application du modèle TCP/IP. Le protocole DNS utilise le port UDP 53 par défaut.
nslookup pour trouver l’adresse IP de www.python.org. Quel serveur DNS a répondu ?dig www.python.org (sans +short). Identifiez le type d’enregistrement DNS retourné (champ A pour une adresse IPv4).ssLa commande ss (socket statistics) affiche les connexions réseau actives, les ports en écoute et les protocoles utilisés. Elle remplace l’ancienne commande netstat.
| Option | Signification |
|---|---|
-t |
Connexions TCP uniquement |
-u |
Connexions UDP uniquement |
-l |
Ports en écoute (listening) uniquement |
-n |
Afficher les numéros de port au lieu des noms de service |
-p |
Afficher le processus associé à chaque connexion |
$ ss -tln
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 5 127.0.0.1:631 0.0.0.0:*
LISTEN 0 128 0.0.0.0:80 0.0.0.0:*
Cette sortie montre trois services en écoute :
127.0.0.1 donc uniquement en local ;Commande historique :
netstat -tlnproduit un résultat équivalent. On la retrouve encore dans de nombreux tutoriels et sujets d’examen.
Exécutez ss -tln sur votre machine. Quels services sont en écoute ? Pour chaque port, recherchez le service associé (les ports standards sont documentés dans le fichier /etc/services).
arp et ip neighLe protocole ARP (Address Resolution Protocol) permet de trouver l’adresse MAC associée à une adresse IP dans un réseau local. Chaque machine maintient une table ARP (ou cache ARP) qui mémorise les correspondances récemment résolues.
ARP intervient au niveau de la couche accès réseau (couche la plus basse du modèle TCP/IP).
$ ip neigh
192.168.1.1 dev enp3s0 lladdr e4:5d:51:a3:22:f0 REACHABLE
192.168.1.15 dev enp3s0 lladdr 3c:a6:f6:12:bb:cc STALE
Ou avec la commande historique :
$ arp -a
box (192.168.1.1) at e4:5d:51:a3:22:f0 [ether] on enp3s0
portable (192.168.1.15) at 3c:a6:f6:12:bb:cc [ether] on enp3s0
Chaque ligne associe une adresse IP à une adresse MAC sur une interface donnée. L’état indique la fraîcheur de l’entrée :
ip neigh (ou arp -a) sur votre machine. Identifiez l’adresse MAC de votre passerelle par défaut.ping -c 1 192.168.1.X (une adresse du réseau local), puis consultez à nouveau la table ARP. Qu’observez-vous ?| Commande | Couche TCP/IP | Rôle |
|---|---|---|
ip a / ifconfig |
Accès réseau | Afficher la configuration des interfaces |
ping |
Internet (ICMP) | Tester la connectivité |
traceroute / tracert |
Internet (ICMP/UDP) | Tracer le chemin d’un paquet |
nslookup / dig |
Application (DNS) | Résoudre un nom de domaine |
ss / netstat |
Transport (TCP/UDP) | Examiner les connexions actives |
ip neigh / arp |
Accès réseau (ARP) | Consulter la table ARP |
arp, ip a) jusqu’à la couche application (nslookup, dig).ip a affiche la configuration des interfaces (adresse IP, masque, adresse MAC) ; c’est le point de départ de tout diagnostic réseau.ping vérifie la connectivité entre deux machines grâce au protocole ICMP et mesure le temps d’aller-retour.traceroute révèle le chemin complet d’un paquet en exploitant le mécanisme du TTL, ce qui permet de localiser les goulets d’étranglement.nslookup et dig interrogent le DNS pour résoudre un nom de domaine en adresse IP (port UDP 53).ss (ou netstat) liste les connexions réseau actives et les ports en écoute, utile pour vérifier quels services tournent sur une machine.ip neigh (ou arp) affiche la table ARP qui associe adresses IP et adresses MAC au sein d’un réseau local.ip, ss) remplacent progressivement les commandes historiques (ifconfig, netstat, route) mais ces dernières restent courantes dans les sujets d’examen.ping 192.168.1.1 et obtient Destination Host Unreachable. Quelle est la cause la plus probable et à quel niveau du modèle TCP/IP se situe le problème ?
192.168.1.1 appartient au réseau local de l'élève : aucune passerelle ni aucune route n'intervient. L'ordinateur a demandé par ARP l'adresse MAC de 192.168.1.1 sans obtenir de réponse : la machine est éteinte, débranchée, ou l'adresse est fausse. Le problème se situe entre la couche accès réseau (ARP) et la couche internet. On le constate avec ip neigh, où l'entrée de 192.168.1.1 apparaît INCOMPLETE. Une absence de route produirait un autre message, Network is unreachable.ip a et celles fournies par ip neigh ?
ip a affiche la configuration propre à la machine : ses interfaces, ses adresses IP et ses adresses MAC. ip neigh affiche la table ARP, c'est-à-dire les correspondances IP ↔ MAC des autres machines du réseau local avec lesquelles la machine a récemment communiqué. L'une concerne la machine locale, l'autre ses voisins.traceroute envoie successivement des paquets avec TTL = 1, puis TTL = 2, etc. Pourquoi cette technique permet-elle de découvrir les routeurs intermédiaires ?