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 »🧠 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 »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 »# 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.
Afficher les adresses
Section intitulée « Afficher les adresses »# 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 »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 »# 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 (⚠️ 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.
Afficher l'état des interfaces
Section intitulée « Afficher l'état des interfaces »# 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 »# Activersudo ip link set eth0 up
# Désactiversudo ip link set eth0 downModifier le MTU
Section intitulée « Modifier le MTU »# 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.
Afficher les routes
Section intitulée « Afficher les routes »# 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 »| É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 »# 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.
Afficher le cache ARP
Section intitulée « Afficher le cache ARP »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 »# 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 »Statistiques d'interface
Section intitulée « Statistiques d'interface »# 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 »# 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 »# 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 # ❌ 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 # ✅ masque expliciteCouper sa propre connexion SSH
Section intitulée « Couper sa propre connexion SSH »sudo ip link set eth0 down # ❌ 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> # ✅ 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 # ⚠️ perdu au prochain rebootSymptôme : la configuration disparaît après redémarrage. Cause : ip modifie l'état en mémoire uniquement.
# ✅ 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 # ❌ 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 # ✅ 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 # ❌ "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 # ✅ 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 # ❌ 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 # ✅ 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 # ❌ retire TOUTES les IP, sans confirmationSymptôme : toutes les adresses supprimées, machine injoignable. Cause : flush ne demande aucune confirmation.
# ✅ 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 # ❌ 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 # ✅ 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 »-
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 »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 »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 »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 »# 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 »| 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 »Syntaxe et alias
Section intitulée « Syntaxe et alias »| 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 »| 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) »| 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) »| 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) »| 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) »| 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 »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 »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