Quand vous devez diagnostiquer un problème réseau, ajouter une adresse IP ou configurer une route, la commande ip est l'outil moderne et officiel sous Linux. Elle remplace les commandes historiques ifconfig, route, arp et netstat, dépréciées depuis 2009. Avec une syntaxe cohérente OBJET + COMMANDE, ip permet de gérer tous les aspects du réseau depuis un seul outil.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Afficher et interpréter la configuration réseau (interfaces, IP, routes)
- Ajouter, modifier et supprimer des adresses IP
- Gérer les routes statiques et la passerelle par défaut
- Activer/désactiver des interfaces réseau
- Diagnostiquer les problèmes de connectivité
- Consulter le cache ARP (voisins réseau)
La commande ip dans l'écosystème réseau
Section intitulée « La commande ip dans l'écosystème réseau »ip centralise la gestion réseau, mais d'autres commandes restent utiles pour des diagnostics spécifiques :
| Commande | Spécialité | Quand l'utiliser |
|---|---|---|
ip | Configuration et état réseau | Interfaces, IP, routes, ARP |
ss | Sockets et connexions | Ports en écoute, connexions établies |
ping | Test de connectivité | Vérifier qu'un hôte répond |
mtr | Traceroute temps réel | Diagnostiquer latence et pertes |
dig | Requêtes DNS | Tester la résolution de noms |
Correspondance avec les commandes dépréciées :
| Ancienne commande | Équivalent ip |
|---|---|
ifconfig | ip addr, ip link |
ifconfig eth0 up | ip link set eth0 up |
route -n | ip route show |
route add default gw | ip route add default via |
arp -a | ip neigh show |
netstat -i | ip -s link |
Comprendre la commande ip en 2 min
Section intitulée « Comprendre la commande ip en 2 min »Toutes les commandes ip obéissent au même ordre des mots, ce qui évite d'apprendre une syntaxe différente par tâche. Vous nommez d'abord l'objet sur lequel vous agissez (une adresse, une interface, une route), puis l'action à mener sur cet objet. Les options globales, elles, se placent avant l'objet et changent seulement la présentation de la sortie.
🧠 Modèle mental — ip : le couteau suisse réseau moderne
La commande ip suit une structure cohérente : vous choisissez un OBJET (ce que vous voulez gérer) puis une COMMANDE (ce que vous voulez faire). C'est comme parler à un administrateur : "ip, sur l'OBJET adresse, fais l'ACTION show".
Points clés
- ip remplace ifconfig, route, arp et netstat — commandes dépréciées depuis 2009
- Tout est OBJET + COMMANDE : ip addr show, ip route add, ip link set
- Les objets ont des abréviations : addr→a, link→l, route→r, neigh→n
- Les modifications sont temporaires sauf si persistées dans la config système
Règles d'or
Vocabulaire essentiel
- addr
- Objet pour gérer les adresses IP (IPv4/IPv6) des interfaces
- link
- Objet pour gérer l'état et les propriétés des interfaces (up/down, MTU, MAC)
- route
- Objet pour gérer la table de routage (routes statiques, passerelle)
- neigh
- Objet pour gérer le cache ARP/NDP (voisins réseau)
- CIDR
- Notation IP/masque comme 192.168.1.10/24 (équivalent netmask 255.255.255.0)
- scope
- Portée de l'adresse : global (routable), link (locale), host (loopback)
📚 Pour aller plus loin — 4 options avancées
- netns
- Objet pour gérer les namespaces réseau (isolation réseau conteneurs)
- vrf
- Virtual Routing and Forwarding — tables de routage séparées
- xfrm
- Framework de transformation IPsec (tunnels chiffrés)
- maddr
- Adresses multicast des interfaces
La logique de ip est simple : vous choisissez ce que vous voulez gérer (l'objet) puis ce que vous voulez faire (la commande).
Syntaxe complète
Section intitulée « Syntaxe complète »Seul l'objet est obligatoire : ip addr suffit, car show est la commande implicite quand aucune n'est indiquée.
ip [OPTIONS] OBJET COMMANDE [ARGUMENTS]Les 4 objets essentiels :
| Objet | Abréviation | Ce qu'il gère |
|---|---|---|
addr | a | Adresses IP des interfaces |
link | l | État physique des interfaces (up/down, MTU) |
route | r | Table de routage |
neigh | n | Cache ARP/NDP (voisins réseau) |
Les commandes principales :
| Commande | Ce qu'elle fait |
|---|---|
show (ou s) | Afficher (par défaut si omis) |
add | Ajouter |
del | Supprimer |
set | Modifier (pour link) |
flush | Vider tout |
replace | Remplacer si existe |
Options globales utiles :
| Option | Description | Exemple |
|---|---|---|
-c | Sortie colorée | ip -c addr |
-4 / -6 | IPv4 ou IPv6 uniquement | ip -4 addr |
-o | Une ligne par enregistrement | ip -o addr |
-j | Sortie JSON | ip -j addr |
-s | Statistiques détaillées | ip -s link |
-br | Format brief (résumé) | ip -br addr |
Exemples fondamentaux
Section intitulée « Exemples fondamentaux »Les commandes de lecture s'exécutent sans privilège particulier ; dès qu'une commande modifie l'état du réseau, elle exige sudo, faute de quoi le noyau répond Operation not permitted.
# Afficher toutes les adresses IPip addr showip a # Forme courte
# Afficher la table de routageip route showip r # Forme courte
# Afficher les interfaces activesip link show up
# Ajouter une adresse IPsudo ip addr add 192.168.1.100/24 dev eth0
# Activer une interfacesudo ip link set eth0 up
# Ajouter une route par défautsudo ip route add default via 192.168.1.1Gestion des adresses IP (ip addr)
Section intitulée « Gestion des adresses IP (ip addr) »L'objet addr gère les adresses IPv4 et IPv6 assignées aux interfaces. Une même interface peut en porter plusieurs simultanément, sans limite pratique : c'est ainsi qu'un serveur héberge plusieurs services sur des adresses distinctes. Toute modification faite ici vit uniquement en mémoire et disparaît au redémarrage, point développé en fin de guide.
Afficher les adresses
Section intitulée « Afficher les adresses »-br (brief) réduit chaque interface à une ligne : nom, état, adresses. C'est la vue à privilégier pour repérer rapidement l'interface qui vous intéresse avant d'y regarder de plus près.
# Toutes les interfacesip addr show
# Une interface spécifiqueip addr show dev eth0
# Format résumé (plus lisible)ip -br addr show
# Sortie exemple :# lo UNKNOWN 127.0.0.1/8 ::1/128# eth0 UP 192.168.1.50/24 fe80::1/64Interpréter la sortie
Section intitulée « Interpréter la sortie »La sortie complète condense quatre informations par interface : son état administratif, son adresse matérielle, ses adresses IP et leur portée. Deux drapeaux se ressemblent mais ne disent pas la même chose : UP signifie que vous avez activé l'interface, LOWER_UP que le câble est effectivement branché et le lien négocié. Une interface UP sans LOWER_UP désigne donc un problème physique, pas une erreur de configuration.
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff inet 192.168.1.50/24 brd 192.168.1.255 scope global eth0 inet6 fe80::5054:ff:fe12:3456/64 scope link| Élément | Signification |
|---|---|
<UP,LOWER_UP> | Interface activée, lien physique OK |
mtu 1500 | Taille max des paquets (standard Ethernet) |
state UP | État opérationnel |
link/ether | Adresse MAC |
inet 192.168.1.50/24 | Adresse IPv4 avec masque |
scope global | Adresse routable (vs link = locale) |
inet6 ... scope link | Adresse IPv6 lien-local |
Ajouter et supprimer des adresses
Section intitulée « Ajouter et supprimer des adresses »Ces commandes prennent effet immédiatement, sans redémarrage de service ni confirmation. Le masque CIDR indiqué à la suppression doit être exactement celui utilisé à l'ajout, sinon le noyau ne retrouve pas l'adresse et refuse l'opération.
# Ajouter une adresse (le masque CIDR est obligatoire !)sudo ip addr add 192.168.1.100/24 dev eth0
# Ajouter une adresse secondairesudo ip addr add 192.168.1.101/24 dev eth0
# Supprimer une adresse (masque obligatoire aussi)sudo ip addr del 192.168.1.100/24 dev eth0
# Supprimer TOUTES les adresses d'une interface (Attention : danger)sudo ip addr flush dev eth0Gestion des interfaces (ip link)
Section intitulée « Gestion des interfaces (ip link) »L'objet link gère l'état physique des interfaces : activation, MTU, adresse MAC. La distinction avec addr est la source de confusion la plus fréquente : link décide si l'interface transmet des trames, addr décide quelles adresses IP elle porte. Une interface peut donc être parfaitement configurée en adresses tout en restant muette parce qu'elle est restée DOWN.
Afficher l'état des interfaces
Section intitulée « Afficher l'état des interfaces »La sortie ne montre aucune adresse IP, c'est normal : link ne connaît que l'adresse MAC et l'état du lien. -s y ajoute les compteurs de paquets reçus et émis.
# Toutes les interfacesip link show
# Seulement les interfaces UPip link show up
# Avec statistiques (paquets, erreurs)ip -s link show eth0Activer/désactiver une interface
Section intitulée « Activer/désactiver une interface »Passer une interface en down détruit toutes les connexions qui l'empruntent et supprime les routes qui en dépendent ; la remettre en up ne les restaure pas automatiquement.
# Activersudo ip link set eth0 up
# Désactiversudo ip link set eth0 downModifier le MTU
Section intitulée « Modifier le MTU »Le MTU (Maximum Transmission Unit) est la taille du plus gros paquet que l'interface accepte d'émettre en une fois. Augmenter cette valeur n'a d'effet que si tous les équipements traversés l'acceptent également, sinon les paquets sont fragmentés ou rejetés en silence.
# MTU standard : 1500# Jumbo frames : 9000 (pour réseaux hautes performances)sudo ip link set eth0 mtu 9000
# Vérifierip link show eth0 | grep mtuGestion du routage (ip route)
Section intitulée « Gestion du routage (ip route) »L'objet route gère la table de routage : comment atteindre chaque réseau. Pour chaque paquet sortant, le noyau parcourt cette table et retient la route dont le préfixe correspond le plus précisément à la destination ; la route default n'est utilisée que si aucune autre ne correspond. Une machine sans route par défaut fonctionne donc parfaitement sur son réseau local tout en étant incapable de sortir sur internet.
Afficher les routes
Section intitulée « Afficher les routes »ip route get est la commande la plus utile de cette section : elle n'affiche pas la table, elle demande au noyau la décision qu'il prendrait réellement pour une destination donnée, interface et adresse source comprises.
# Table de routage complèteip route show
# Sortie exemple :# default via 192.168.1.1 dev eth0# 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.50
# Route vers une destination spécifique (très utile pour le diagnostic)ip route get 8.8.8.8# 8.8.8.8 via 192.168.1.1 dev eth0 src 192.168.1.50Interpréter la table de routage
Section intitulée « Interpréter la table de routage »Une ligne de routage se lit en trois temps : quelle destination elle couvre, par où passer (via une passerelle ou directement dev une interface), et avec quelle adresse source. Les routes marquées proto kernel n'ont pas été saisies par un administrateur, le noyau les a créées seul au moment où vous avez ajouté une adresse à l'interface. Les supprimer casse la communication avec le réseau local.
| Élément | Signification |
|---|---|
default via 192.168.1.1 | Passerelle par défaut |
192.168.1.0/24 dev eth0 | Réseau local accessible directement |
proto kernel | Route créée automatiquement par le kernel |
scope link | Destination sur le même lien physique |
src 192.168.1.50 | Adresse source utilisée pour ce réseau |
Ajouter et supprimer des routes
Section intitulée « Ajouter et supprimer des routes »La passerelle indiquée après via doit être joignable directement, c'est-à-dire appartenir à un réseau déjà présent sur une interface locale ; dans le cas contraire le noyau refuse avec Network is unreachable.
# Ajouter la passerelle par défautsudo ip route add default via 192.168.1.1
# Ajouter une route vers un réseau distantsudo ip route add 10.0.0.0/8 via 192.168.1.254
# Ajouter une route via une interface (sans gateway)sudo ip route add 172.16.0.0/12 dev eth1
# Supprimer une routesudo ip route del 10.0.0.0/8
# Remplacer une route existante (évite l'erreur "File exists")sudo ip route replace default via 192.168.1.1Gestion des voisins ARP (ip neigh)
Section intitulée « Gestion des voisins ARP (ip neigh) »L'objet neigh gère le cache ARP (IPv4) et NDP (IPv6) : la correspondance entre adresses IP et adresses MAC. Sur un réseau local, connaître l'adresse IP d'une machine ne suffit pas à lui parler, il faut son adresse matérielle ; ARP (Address Resolution Protocol) la découvre en interrogeant le réseau, et Linux conserve le résultat quelques minutes dans ce cache. Ce cache explique certaines pannes après remplacement d'un équipement : l'adresse IP est la même, la MAC a changé, et la machine parle encore à l'ancienne.
Afficher le cache ARP
Section intitulée « Afficher le cache ARP »Seuls les voisins avec lesquels la machine a communiqué récemment apparaissent ; un cache vide n'indique aucun problème, simplement une absence de trafic local.
ip neigh show
# Sortie exemple :# 192.168.1.1 dev eth0 lladdr 00:11:22:33:44:55 REACHABLE# 192.168.1.100 dev eth0 lladdr aa:bb:cc:dd:ee:ff STALEÉtats possibles :
| État | Signification |
|---|---|
REACHABLE | Communication récente, entrée valide |
STALE | Pas de communication récente, peut être obsolète |
DELAY | En attente de confirmation |
PROBE | Envoi de requêtes ARP |
FAILED | Résolution échouée |
PERMANENT | Entrée statique |
Manipuler le cache
Section intitulée « Manipuler le cache »Vider le cache est sans risque : les entrées se reconstruisent à la première communication. Une entrée statique, en revanche, ne s'invalide jamais toute seule et devient un piège si l'équipement change de carte réseau.
# Ajouter une entrée statiquesudo ip neigh add 192.168.1.50 lladdr aa:bb:cc:dd:ee:ff dev eth0
# Supprimer une entréesudo ip neigh del 192.168.1.50 dev eth0
# Vider tout le cache (force la redécouverte)sudo ip neigh flush allStatistiques et diagnostic
Section intitulée « Statistiques et diagnostic »Les trois outils de cette section répondent à des questions différentes. Les compteurs indiquent si la carte réseau perd des paquets, donc si le problème est matériel. Le mode monitor montre les changements d'état au moment où ils surviennent, ce qui est le seul moyen d'attraper une panne intermittente. La sortie JSON, enfin, rend ces mêmes informations exploitables par un script au lieu d'un œil humain.
Statistiques d'interface
Section intitulée « Statistiques d'interface »Ces compteurs sont cumulés depuis le démarrage de l'interface : c'est leur évolution entre deux relevés qui a du sens, pas leur valeur absolue.
# Compteurs de paquets et erreursip -s link show eth0
# Sortie (extrait) :# RX: bytes packets errors dropped overrun mcast# 1234567 8901 0 0 0 123# TX: bytes packets errors dropped carrier collsns# 7654321 4567 0 0 0 0Indicateurs à surveiller :
| Compteur | Normal | Problème si élevé |
|---|---|---|
errors | 0 | Problème physique (câble, driver) |
dropped | ~0 | Saturation, buffer trop petit |
overrun | 0 | CPU ne suit pas le débit |
carrier | 0 | Problème de lien physique |
collsns | 0 (full-duplex) | Mauvaise négociation |
Surveiller en temps réel
Section intitulée « Surveiller en temps réel »ip monitor ne rend pas la main et n'affiche rien tant que rien ne bouge : chaque ligne qui apparaît correspond à un événement réel du noyau, obtention d'un bail DHCP, perte de lien, ajout de route.
# Observer les événements réseau (nouvelles IP, changements de route...)ip monitor all
# Filtrer par typeip monitor address # Seulement les changements d'adresseip monitor route # Seulement les changements de routeip monitor link # Seulement les changements d'interfaceSortie JSON pour scripts
Section intitulée « Sortie JSON pour scripts »Le format d'affichage par défaut change d'une version d'iproute2 à l'autre, ce qui casse les scripts fondés sur awk ou grep. La sortie JSON produite par -j a une structure stable, c'est la seule forme à utiliser dans du code destiné à durer.
# Toutes les adresses en JSONip -j addr show
# Parser avec jqip -j addr show | jq '.[].ifname' # Noms d'interfacesip -j addr show | jq '.[].addr_info[].local' # Toutes les IPip -j route show | jq '.[] | select(.dst=="default")' # Route par défautLes modèles de commandes courants
Section intitulée « Les modèles de commandes courants »Voici vingt modèles ip prêts à l'emploi, regroupés par objet. Chacun donne sa formule générale et un exemple concret.
Lister toutes les interfaces
Section intitulée « Lister toutes les interfaces »Voir l'état de toutes les interfaces réseau.
ip addr show # formuleip a # exemple (forme courte)Afficher une interface précise
Section intitulée « Afficher une interface précise »Voir les détails d'une seule interface.
ip addr show dev <interface> # formuleip addr show dev eth0 # exempleLister les interfaces actives
Section intitulée « Lister les interfaces actives »Filtrer les interfaces en état UP.
ip link show up # formule et exempleAfficher uniquement l'IPv4
Section intitulée « Afficher uniquement l'IPv4 »Exclure les adresses IPv6 de l'affichage.
ip -4 addr show # formuleip -4 a # exempleAjouter une adresse IP
Section intitulée « Ajouter une adresse IP »Attribuer une adresse à une interface.
sudo ip addr add <ip>/<cidr> dev <interface> # formulesudo ip addr add 192.168.1.100/24 dev eth0 # exemple- Le masque CIDR (
/24) est obligatoire.
Supprimer une adresse IP
Section intitulée « Supprimer une adresse IP »Retirer une adresse d'une interface.
sudo ip addr del <ip>/<cidr> dev <interface> # formulesudo ip addr del 192.168.1.100/24 dev eth0 # exempleVider toutes les adresses d'une interface
Section intitulée « Vider toutes les adresses d'une interface »Supprimer toutes les IP en une commande.
sudo ip addr flush dev <interface> # formulesudo ip addr flush dev eth0 # exemple : à manier avec prudenceActiver une interface
Section intitulée « Activer une interface »Passer une interface en état UP.
sudo ip link set <interface> up # formulesudo ip link set eth0 up # exempleDésactiver une interface
Section intitulée « Désactiver une interface »Passer une interface en état DOWN.
sudo ip link set <interface> down # formulesudo ip link set eth0 down # exemple- Ne jamais désactiver l'interface qui porte votre connexion SSH.
Changer le MTU
Section intitulée « Changer le MTU »Modifier la taille maximale des paquets.
sudo ip link set <interface> mtu <taille> # formulesudo ip link set eth0 mtu 9000 # exemple (jumbo frames)Afficher la table de routage
Section intitulée « Afficher la table de routage »Voir toutes les routes configurées.
ip route show # formuleip r # exemple (forme courte)Voir la route vers une destination
Section intitulée « Voir la route vers une destination »Déterminer par où passent les paquets vers une IP, le diagnostic le plus utile.
ip route get <destination> # formuleip route get 8.8.8.8 # exempleAjouter une route statique
Section intitulée « Ajouter une route statique »Créer une route vers un réseau distant.
sudo ip route add <réseau>/<cidr> via <passerelle> # formulesudo ip route add 10.0.0.0/8 via 192.168.1.1 # exempleDéfinir la passerelle par défaut
Section intitulée « Définir la passerelle par défaut »Configurer la route par défaut.
sudo ip route add default via <passerelle> # formulesudo ip route add default via 192.168.1.1 # exempleSupprimer une route
Section intitulée « Supprimer une route »Retirer une route de la table.
sudo ip route del <réseau>/<cidr> # formulesudo ip route del 10.0.0.0/8 # exempleAfficher le cache ARP
Section intitulée « Afficher le cache ARP »Voir les correspondances IP ↔ MAC connues.
ip neigh show # formuleip n # exemple (forme courte)Ajouter une entrée ARP statique
Section intitulée « Ajouter une entrée ARP statique »Forcer une association IP ↔ MAC.
sudo ip neigh add <ip> lladdr <mac> dev <interface> # formulesudo ip neigh add 192.168.1.50 lladdr aa:bb:cc:dd:ee:ff dev eth0 # exempleVider le cache ARP
Section intitulée « Vider le cache ARP »Forcer la redécouverte des voisins réseau.
sudo ip neigh flush all # formule et exempleStatistiques d'une interface
Section intitulée « Statistiques d'une interface »Voir les compteurs de paquets et d'erreurs.
ip -s link show <interface> # formuleip -s link show eth0 # exempleSortie JSON pour les scripts
Section intitulée « Sortie JSON pour les scripts »Obtenir les données dans un format parsable.
ip -j addr show # formuleip -j addr show | jq '.[].ifname' # exemple : noms d'interfaces-jproduit du JSON ;jqpermet de l'exploiter dans un script.
Les pièges à éviter
Section intitulée « Les pièges à éviter »Huit erreurs reviennent constamment avec ip. Certaines peuvent vous couper l'accès à la machine.
Oublier le masque CIDR
Section intitulée « Oublier le masque CIDR »sudo ip addr add 192.168.1.100 dev eth0 # INCORRECT : sans /CIDRSymptôme : erreur Invalid argument, ou adresse créée en /32. Cause : sans masque, Linux ne sait pas dimensionner le réseau.
sudo ip addr add 192.168.1.100/24 dev eth0 # CORRECT : masque expliciteCouper sa propre connexion SSH
Section intitulée « Couper sa propre connexion SSH »sudo ip link set eth0 down # INCORRECT : si eth0 porte votre session SSHSymptôme : connexion SSH perdue, accès console nécessaire. Cause : désactiver l'interface coupe toutes les connexions qui passent par elle.
ip route get <votre_ip> # CORRECT : vérifier l'interface utilisée AVANT toute actionModifications non persistantes
Section intitulée « Modifications non persistantes »sudo ip addr add 192.168.1.100/24 dev eth0 # Attention : perdu au prochain rebootSymptôme : la configuration disparaît après redémarrage. Cause : ip modifie l'état en mémoire uniquement.
# CORRECT : persister via l'outil de la distributionsudo nano /etc/netplan/01-config.yaml && sudo netplan applyConfondre link et addr
Section intitulée « Confondre link et addr »ip link show # INCORRECT : pour voir les adresses IPSymptôme : les adresses IP n'apparaissent pas. Cause : link gère l'état physique, addr gère les adresses IP.
ip addr show # CORRECT : addr pour les adressesRoute par défaut déjà existante
Section intitulée « Route par défaut déjà existante »sudo ip route add default via 192.168.1.1 # INCORRECT : "RTNETLINK answers: File exists"Symptôme : erreur File exists. Cause : une route par défaut existe déjà.
sudo ip route replace default via 192.168.1.1 # CORRECT : replace au lieu d'addMauvais masque à la suppression
Section intitulée « Mauvais masque à la suppression »sudo ip addr del 192.168.1.100/32 dev eth0 # INCORRECT : alors que c'était un /24Symptôme : erreur Cannot assign requested address. Cause : le masque doit correspondre exactement à celui de l'adresse ajoutée.
ip addr show dev eth0 # CORRECT : vérifier le masque exact avant de supprimerflush sur la mauvaise interface
Section intitulée « flush sur la mauvaise interface »sudo ip addr flush dev eth0 # INCORRECT : retire TOUTES les IP, sans confirmationSymptôme : toutes les adresses supprimées, machine injoignable. Cause : flush ne demande aucune confirmation.
# CORRECT : double-vérifier l'interface, et garder un accès console de secoursip -br addr showUtiliser ifconfig au lieu de ip
Section intitulée « Utiliser ifconfig au lieu de ip »ifconfig eth0 192.168.1.100 # INCORRECT : syntaxe dépréciée depuis 2009Symptôme : fonctionne, mais sans notation CIDR native et avec des fonctions limitées. Cause : ifconfig (paquet net-tools) n'est plus maintenu.
sudo ip addr add 192.168.1.100/24 dev eth0 # CORRECT : migrer vers ipTravaux pratiques
Section intitulée « Travaux pratiques »Rien ne remplace la pratique. Ce lab crée un namespace réseau isolé : vous expérimentez sans aucun risque pour la configuration réelle de la machine. À la fin, nettoyez avec le second script.
Préparer le terrain
Section intitulée « Préparer le terrain »Ce script crée un namespace lab-ip relié à l'hôte par une paire d'interfaces virtuelles veth.
#!/bin/bash# Créer un namespace réseau de testsudo ip netns add lab-ip
# Créer une paire d'interfaces vethsudo ip link add veth-host type veth peer name veth-lab
# Déplacer une extrémité dans le namespacesudo ip link set veth-lab netns lab-ip
# Configurer l'interface côté hôtesudo ip addr add 10.0.0.1/24 dev veth-hostsudo ip link set veth-host up
# Configurer l'interface côté namespacesudo ip netns exec lab-ip ip addr add 10.0.0.2/24 dev veth-labsudo ip netns exec lab-ip ip link set veth-lab upsudo ip netns exec lab-ip ip link set lo up
echo "Lab prêt : namespace lab-ip, IP hôte 10.0.0.1, IP lab 10.0.0.2"Pour nettoyer à la fin :
sudo ip netns del lab-ipsudo ip link del veth-host 2>/dev/nullLes huit étapes
Section intitulée « Les huit étapes »Enchaînez ces étapes dans l'ordre, chacune s'appuie sur le résultat de la précédente. Toutes les manipulations portent sur veth-host, l'extrémité du lien virtuel restée côté machine, jamais sur votre interface réelle : vous pouvez donc la couper sans perdre l'accès. Après chaque commande, prenez le temps de relire la sortie avant de passer à la suivante.
-
Lister les interfaces. Affichez toutes les interfaces avec leurs adresses.
Fenêtre de terminal ip addr showip addr show(ouip a) affiche chaque interface avec son état et ses adresses IPv4/IPv6, dontveth-host. -
Filtrer une interface. Affichez uniquement
veth-host.Fenêtre de terminal ip addr show dev veth-hostLe paramètre
devcible une interface précise, étatUP, adresse10.0.0.1/24. -
Ajouter une adresse secondaire. Ajoutez
10.0.0.10/24àveth-host.Fenêtre de terminal sudo ip addr add 10.0.0.10/24 dev veth-hostUne interface peut porter plusieurs adresses (aliasing), utile pour héberger plusieurs services.
-
Vérifier la table de routage. Affichez la table de routage.
Fenêtre de terminal ip route showEn ajoutant une IP, Linux crée automatiquement une route vers le réseau correspondant.
-
Tester la connectivité. Vérifiez que le namespace répond.
Fenêtre de terminal ping -c 2 10.0.0.2Le namespace
lab-iprépond : les deux extrémités du lienvethsont configurées. -
Consulter le cache ARP. Affichez les voisins réseau découverts.
Fenêtre de terminal ip neigh showAprès le ping, Linux a résolu l'adresse MAC de
10.0.0.2et l'a mise en cache (REACHABLE). -
Désactiver une interface. Désactivez
veth-host, puis réactivez-la.Fenêtre de terminal sudo ip link set veth-host downsudo ip link set veth-host upip link setcontrôle l'état physique :downcoupe l'interface (le ping échoue),upla réactive. -
Supprimer une adresse. Retirez l'adresse secondaire
10.0.0.10/24.Fenêtre de terminal sudo ip addr del 10.0.0.10/24 dev veth-hostdelest l'inverse deadd, le masque CIDR reste obligatoire.
Exercices progressifs
Section intitulée « Exercices progressifs »Dix exercices pour valider votre maîtrise. Cherchez d'abord par vous-même, puis dépliez la solution pour vous corriger.
Niveau fondations
Section intitulée « Niveau fondations »Ces cinq exercices ne portent que sur la lecture de l'état réseau et sur un ajout d'adresse sans conséquence. Ils s'exécutent sans risque sur votre machine de travail.
Exercice 1, Trouver l'IP d'une interface. Affichez l'adresse IP de l'interface eth0 (ou son équivalent). Indice : ip addr show avec le paramètre dev.
Voir la solution
ip addr show dev eth0ip addr show dev <interface> affiche les détails d'une interface précise.
Exercice 2, Identifier la passerelle par défaut. Trouvez l'adresse de votre passerelle par défaut. Indice : la ligne default via de la table de routage.
Voir la solution
ip route show defaultLa route par défaut (0.0.0.0/0) indique où envoyer le trafic vers internet.
Exercice 3, Ajouter une IP secondaire. Ajoutez l'adresse 192.168.100.10/24 à l'interface lo. Indice : ip addr add … dev lo.
Voir la solution
sudo ip addr add 192.168.100.10/24 dev loOn peut ajouter des adresses au loopback pour des tests, sans toucher aux vraies interfaces.
Exercice 4, Lister les interfaces actives. Affichez uniquement les interfaces en état UP. Indice : ip link accepte un filtre d'état.
Voir la solution
ip link show upLe mot-clé up filtre les interfaces en état opérationnel.
Exercice 5, Diagnostiquer une route. Trouvez par quelle interface et passerelle votre machine atteint 1.1.1.1. Indice : ip route get interroge le kernel.
Voir la solution
ip route get 1.1.1.1Cette commande simule le routage d'un paquet et montre le chemin choisi.
Niveau composition
Section intitulée « Niveau composition »On passe ici de la commande isolée à la combinaison avec d'autres outils du shell (awk, jq) et à la modification de la table de routage. L'exercice 7 modifie réellement le routage de la machine, pensez à supprimer la route ajoutée ensuite.
Exercice 6, Extraire les noms d'interfaces. Listez uniquement les noms des interfaces, sans les détails. Indice : combinez ip -o avec awk.
Voir la solution
ip -o link show | awk -F': ' '{print $2}'-o produit une sortie « une ligne par enregistrement », plus simple à parser ; awk en extrait le 2ᵉ champ.
Exercice 7, Créer une route statique. Ajoutez une route vers 10.20.30.0/24 via la passerelle 192.168.1.1. Indice : ip route add <réseau> via <gateway>.
Voir la solution
sudo ip route add 10.20.30.0/24 via 192.168.1.1Les routes statiques définissent des chemins spécifiques vers certains réseaux.
Exercice 8, Sortie JSON et parsing. Extrayez les adresses IPv4 de toutes les interfaces via JSON et jq. Indice : ip -j addr show | jq ….
Voir la solution
ip -j addr show | jq -r '.[].addr_info[] | select(.family=="inet") | .local'La sortie JSON permet un parsing précis et fiable pour l'automatisation.
Niveau industrialisation
Section intitulée « Niveau industrialisation »Dernier palier : produire un outil réutilisable plutôt qu'une commande jetable. L'objectif est de rassembler en une seule exécution tout ce qu'un incident réseau exige de constater, et de savoir observer les changements pendant qu'ils se produisent.
Exercice 9, Script de diagnostic réseau. Écrivez un script qui affiche IPs, routes, voisins ARP et statistiques de l'interface principale. Indice : enchaînez plusieurs commandes ip dans un script bash.
Voir la solution
#!/bin/bashecho "=== INTERFACES ==="ip -c addr showecho -e "\n=== ROUTES ==="ip -c route showecho -e "\n=== VOISINS ==="ip -c neigh showIFACE=$(ip route get 1.1.1.1 | grep -oP 'dev \K\S+')echo -e "\n=== STATS $IFACE ==="ip -s link show "$IFACE"Un script de diagnostic centralise les informations utiles en cas d'incident réseau.
Exercice 10, Surveiller les événements réseau. Lancez une surveillance temps réel des changements réseau. Indice : ip monitor.
Voir la solution
ip monitor allUtile pour déboguer des problèmes dynamiques (DHCP, bascule de lien, changements de route).
Dépannage
Section intitulée « Dépannage »Quand une commande ip échoue, le message RTNETLINK indique presque toujours la cause. Voici comment diagnostiquer.
Méthodes de diagnostic
Section intitulée « Méthodes de diagnostic »Ces cinq commandes se lancent dans cet ordre : la configuration d'abord, la décision de routage ensuite, puis la couche physique et la résolution des voisins. Aucune ne modifie quoi que ce soit, elles sont donc sans danger sur un serveur en production.
# Lister toutes les interfaces (sortie colorée)ip -c addr show
# Voir par quelle interface et passerelle passent les paquetsip route get 8.8.8.8
# Détecter les problèmes physiques (erreurs, paquets perdus)ip -s link show eth0
# Observer les événements réseau en temps réelip monitor
# Vérifier la résolution ARPip neigh showErreurs fréquentes
Section intitulée « Erreurs fréquentes »RTNETLINK est l'interface par laquelle la commande ip dialogue avec le noyau : quand ce préfixe apparaît, le refus vient du noyau lui-même et non d'une faute de syntaxe. Le message qui suit indique précisément quelle vérification il a échouée.
| Message d'erreur | Cause probable | Solution |
|---|---|---|
RTNETLINK answers: Operation not permitted | Commande sans sudo, ou conteneur restreint | Ajouter sudo, vérifier les capabilities du conteneur |
RTNETLINK answers: File exists | Adresse ou route déjà présente | Supprimer l'existant, ou utiliser replace |
RTNETLINK answers: No such device | Nom d'interface incorrect | Lister les interfaces : ip link show |
RTNETLINK answers: Network is unreachable | Aucune route, ou interface down | Ajouter une route ou activer l'interface |
RTNETLINK answers: Invalid argument | Syntaxe incorrecte, masque CIDR manquant | Corriger la syntaxe, ajouter le /CIDR |
Cannot assign requested address | Adresse inexistante ou mauvais masque à la suppression | Vérifier l'adresse exacte avec ip addr show |
Aide-mémoire ip
Section intitulée « Aide-mémoire ip »Cette section rassemble par objet les commandes vues plus haut, pour consultation rapide en cours d'intervention. Une règle traverse tous les tableaux : les formes en show se lancent sans privilège, celles en add, del, set et flush exigent sudo et prennent effet immédiatement, sans confirmation ni possibilité d'annulation.
Syntaxe et alias
Section intitulée « Syntaxe et alias »Les abréviations acceptent en réalité tout préfixe non ambigu (ip ad, ip ro), mais s'en tenir à la forme d'une lettre évite les surprises d'une version à l'autre.
| Forme | Rôle | Exemple |
|---|---|---|
ip [objet] [commande] | Structure de base | ip addr show |
ip a | Alias de ip addr show | ip a |
ip r | Alias de ip route show | ip r |
ip l | Alias de ip link show | ip l |
ip n | Alias de ip neigh show | ip n |
Options globales
Section intitulée « Options globales »Elles se placent avant l'objet et ne changent que la présentation, jamais le résultat de la commande ; elles se cumulent librement, comme dans ip -c -br addr.
| Option | Rôle | Exemple |
|---|---|---|
-c | Sortie colorée | ip -c addr |
-4 / -6 | IPv4 ou IPv6 uniquement | ip -4 addr |
-o | Une ligne par enregistrement | ip -o addr |
-j | Sortie JSON | ip -j addr |
-s | Statistiques détaillées | ip -s link |
-br | Format bref (résumé) | ip -br addr |
Adresses (addr)
Section intitulée « Adresses (addr) »Toutes ces formes exigent le masque CIDR collé à l'adresse, y compris pour la suppression, et flush retire l'ensemble des adresses de l'interface sans rien demander.
| Commande | Rôle | Exemple |
|---|---|---|
ip addr show | Afficher toutes les adresses | ip addr show |
ip addr show dev X | Adresses d'une interface | ip addr show dev eth0 |
ip addr add IP/CIDR dev X | Ajouter une adresse | ip addr add 10.0.0.1/24 dev eth0 |
ip addr del IP/CIDR dev X | Supprimer une adresse | ip addr del 10.0.0.1/24 dev eth0 |
ip addr flush dev X | Supprimer toutes les adresses | ip addr flush dev eth0 |
Interfaces (link)
Section intitulée « Interfaces (link) »Le verbe est ici set et non add ou del : on ne crée pas une interface physique, on modifie l'état de celles que le noyau a détectées.
| Commande | Rôle | Exemple |
|---|---|---|
ip link show | État des interfaces | ip link show |
ip link show up | Interfaces actives uniquement | ip link show up |
ip link set X up | Activer une interface | ip link set eth0 up |
ip link set X down | Désactiver une interface | ip link set eth0 down |
ip link set X mtu N | Changer le MTU | ip link set eth0 mtu 9000 |
Routage (route)
Section intitulée « Routage (route) »replace est la forme à retenir pour les scripts : elle crée la route si elle est absente et la met à jour si elle existe, là où add échoue sur une route déjà présente.
| Commande | Rôle | Exemple |
|---|---|---|
ip route show | Table de routage | ip route show |
ip route get IP | Route vers une destination | ip route get 8.8.8.8 |
ip route add NET via GW | Ajouter une route | ip route add 10.0.0.0/8 via 192.168.1.1 |
ip route add default via GW | Route par défaut | ip route add default via 192.168.1.1 |
ip route del NET | Supprimer une route | ip route del 10.0.0.0/8 |
ip route replace … | Remplacer une route existante | ip route replace default via 192.168.1.1 |
Voisins ARP (neigh)
Section intitulée « Voisins ARP (neigh) »Ces entrées sont reconstruites automatiquement par le noyau ; n'en figez une en statique que pour contourner un équipement fautif, et notez-le quelque part.
| Commande | Rôle | Exemple |
|---|---|---|
ip neigh show | Cache ARP / NDP | ip neigh show |
ip neigh add IP lladdr MAC dev X | Entrée ARP statique | ip neigh add 10.0.0.5 lladdr aa:bb:cc:dd:ee:ff dev eth0 |
ip neigh del IP dev X | Supprimer une entrée ARP | ip neigh del 10.0.0.5 dev eth0 |
ip neigh flush all | Vider le cache ARP | ip neigh flush all |
Checklist de maîtrise
Section intitulée « Checklist de maîtrise »Vous maîtrisez ip lorsque vous pouvez cocher chacun de ces points :
- Je sais afficher les adresses IP de toutes les interfaces
- Je sais identifier la passerelle par défaut
- Je sais ajouter et supprimer des adresses IP
- Je sais créer et supprimer des routes statiques
- Je sais activer et désactiver une interface
- Je sais diagnostiquer un problème de routage avec
ip route get - Je sais consulter le cache ARP
- Je sais utiliser la sortie JSON pour scripter
Persistance de la configuration
Section intitulée « Persistance de la configuration »La commande ip s'adresse directement au noyau, qui garde cet état en mémoire vive. Pour qu'une configuration survive au redémarrage, il faut l'écrire dans le fichier que lit le gestionnaire réseau de la distribution, lequel rejouera les mêmes opérations au démarrage suivant. Trois outils se partagent ce rôle selon les distributions, ils ne coexistent pas sur une même machine : identifiez celui qui est actif avant de modifier quoi que ce soit.
network: version: 2 ethernets: eth0: addresses: - 192.168.1.100/24 routes: - to: default via: 192.168.1.1 nameservers: addresses: [8.8.8.8, 8.8.4.4]# Appliquersudo netplan applyauto eth0iface eth0 inet static address 192.168.1.100/24 gateway 192.168.1.1 dns-nameservers 8.8.8.8# Appliquersudo systemctl restart networking# Configurer avec NetworkManagernmcli con mod "Wired connection 1" \ ipv4.addresses 192.168.1.100/24 \ ipv4.gateway 192.168.1.1 \ ipv4.dns "8.8.8.8" \ ipv4.method manual
# Appliquernmcli con up "Wired connection 1"Contrôle de connaissances
Section intitulée « Contrôle de connaissances »Vérifiez que l'essentiel de ce guide est acquis. Les questions portent uniquement sur ce qui vient d'être expliqué ici.
Contrôle de connaissances
Validez vos connaissances avec ce quiz interactif
Informations
- Le chronomètre démarre au clic sur Démarrer
- Questions à choix multiples, vrai/faux et réponses courtes
- Vous pouvez naviguer entre les questions
- Les résultats détaillés sont affichés à la fin
Lance le quiz et démarre le chronomètre
Vérification
(0/0)Profil de compétences
Quoi faire maintenant
Ressources pour progresser
Des indices pour retenter votre chance ?
Nouveau quiz complet avec des questions aléatoires
Retravailler uniquement les questions ratées
Retour à la liste des certifications
À retenir
Section intitulée « À retenir »- Syntaxe unifiée :
ip OBJET COMMANDE, cohérent pour tout le réseau - 4 objets essentiels :
addr(IP),link(interface),route(routage),neigh(ARP) - Abréviations :
ip a=ip addr show,ip r=ip route show - Masque CIDR obligatoire :
192.168.1.100/24, jamais sans le/24 - Modifications temporaires : tout est perdu au reboot sans persistance
ip route get: le diagnostic le plus utile pour comprendre le routage- JSON avec
-j: parfait pour l'automatisation et le scripting - Remplace tout :
ifconfig,route,arp,netstat -isont obsolètes
Pour aller plus loin
Section intitulée « Pour aller plus loin »- NetworkManager et nmcli : L'outil de configuration réseau côté RHEL, qui rend permanent ce que
ipfait à chaud. - Agréger des liens : bond et bridge : Construire avec
ipdes interfaces virtuelles pour la redondance et la virtualisation. - Diagnostiquer un problème réseau : La méthode par scénario d'incident, du lien physique jusqu'à l'application.