Linux sans magie #58 — ifconfig ou ip : comprendre les différences et retrouver ses commandes

Comparer ifconfig et iproute2 sur Linux : interfaces, adresses IPv4/IPv6, routes, statistiques et voisins, avec des commandes en lecture seule et leurs limites.

Vous intervenez sur un serveur que vous ne connaissez pas. Votre premier réflexe est ifconfig, mais le terminal répond « command not found ». Un collègue lance ip a et affiche aussitôt des interfaces, des adresses IPv4 et IPv6 et des informations qui n'apparaissaient pas dans votre ancienne commande. Le réseau a-t-il changé ? Ou seulement l'outil qui permet de le lire ?

Après le #57, qui expliquait pourquoi Linux dispose de plusieurs familles d'outils réseau, ce #58 se concentre sur un cas précis : retrouver ses repères de ifconfig dans ip, sans imaginer qu'il suffit de remplacer une commande par une autre à l'identique.

Notre objectif est pratique : lire la configuration, identifier les différences de sortie, comprendre les limites et adopter une routine de diagnostic sûre, que vous soyez sur un serveur sans interface graphique ou sur un poste Desktop.

Deux familles, mais le même noyau Linux

ifconfig appartient à net-tools, une famille historique d'outils qui comprend aussi route, arp et netstat. L'outil a longtemps été incontournable pour examiner une interface.

ip appartient à iproute2. Son interface est organisée par objets : link pour les liens et interfaces, address pour les adresses IP, route pour le routage et neighbour pour les voisins réseau. Un même programme couvre donc plusieurs besoins qui étaient répartis entre plusieurs utilitaires.

Ancienne boîte à outils       iproute2
ifconfig  → interfaces        ip link / ip address
route     → routage           ip route
arp       → voisins IPv4      ip neighbour
netstat   → sujets variés     ss, ip -s link, autres outils

Le dernier rapprochement est volontairement partiel : ss est un autre utilitaire iproute2, pas un sous-objet de ip. Les outils ne produisent pas tous les mêmes données et ne couvrent pas des périmètres parfaitement identiques.

La documentation d'ifconfig signale elle-même une limite concernant certaines longues adresses matérielles, et oriente vers ip link. Cela illustre pourquoi iproute2 constitue le choix de référence pour une inspection moderne.

Objectif du lab : comparer sans modifier

Pré-requis : une machine Linux avec ip installé, un terminal utilisateur et aucune nécessité de droits root pour les consultations proposées. ifconfig est facultatif : ne l'installez pas uniquement pour ce lab. Les sorties varient selon la distribution, le noyau, la virtualisation et les droits.

Commencez par identifier les exécutables présents :

command -v ip
command -v ifconfig || echo "ifconfig non installé"
ip -V

Un chemin retourné par command -v prouve seulement qu'une commande est accessible dans votre environnement. Il ne dit rien du gestionnaire responsable de la configuration réseau ; c'est le sujet des #59 à #66.

Toutes les commandes de lecture ci-dessous peuvent être utilisées sur un poste Desktop, une VM ou un serveur, mais elles décrivent l'espace de noms réseau dans lequel elles sont lancées. Dans un conteneur, elles peuvent donc ne montrer qu'une vue isolée.

1 — Afficher les interfaces : ifconfig -a et ip link

L'ancienne commande utile pour afficher toutes les interfaces, y compris inactives, est :

ifconfig -a

Si ifconfig n'est pas installé, sautez cette ligne. Un ifconfig sans -a affiche généralement les interfaces actives : comparer cette sortie avec toutes les interfaces retournées par ip link peut conduire à une conclusion erronée.

L'équivalent de travail moderne est :

ip link show
ip -br link

ip link show présente les interfaces avec leurs drapeaux et informations de couche liaison. L'option -br produit une sortie plus compacte, adaptée à l'inventaire.

Exemple fictif :

lo               UNKNOWN        00:00:00:00:00:00
ens160           UP             02:42:ac:11:00:02
veth-demo        DOWN           8a:2b:00:00:00:01

Les adresses MAC et les noms sont inventés. UP ne prouve pas qu'un service distant est joignable, et UNKNOWN est fréquent pour lo ou certaines interfaces virtuelles : ces étiquettes ne suffisent pas à conclure à une panne.

Pour inspecter uniquement une interface vérifiée sur votre hôte, remplacez ens160 par son vrai nom :

ip -d link show dev <nom-interface-verifie>

Cette commande est en lecture seule, mais le nom de l'interface doit être relevé avant utilisation. Le détail -d peut révéler notamment le type d'interface virtuelle.

2 — Lire les adresses IPv4 et IPv6

ifconfig affiche des informations d'adressage selon son implémentation et ses options, mais son format n'est pas le référentiel le plus commode pour les fonctionnalités réseau modernes.

Avec iproute2 :

ip address show
ip -br address
ip -4 address show
ip -6 address show

address peut s'abréger en addr ou en a. Lorsqu'on apprend, écrire le nom complet facilite la lecture ; ip a est pratique au quotidien.

-4 limite l'affichage à IPv4 et -6 à IPv6. Une même interface peut porter plusieurs adresses, avec des portées différentes, et parfois des durées de validité liées à leur acquisition.

Exemple documentaire :

ens160           UP             192.0.2.25/24 2001:db8::25/64

Ces plages sont réservées à la documentation. /24 et /64 expriment des préfixes réseau ; ils ne sont pas des ports. Le #68 abordera en détail les préfixes CIDR et les sous-réseaux.

Un piège fréquent consiste à conclure qu'une interface sans adresse IPv4 est inutilisable. Elle peut être configurée uniquement en IPv6, ou n'être qu'un composant de niveau liaison d'un bridge ou d'une autre architecture.

3 — Les routes : ifconfig ne remplace pas route

Il faut corriger une habitude de vocabulaire : ifconfig n'a jamais été l'outil principal pour lire la table de routage. Historiquement, on utilisait notamment route -n, distinct de ifconfig.

route -n

Si net-tools n'est pas installé, sa sortie n'est pas disponible. Avec iproute2, préférez :

ip route show
ip -6 route show
ip rule show

Les deux premières commandes montrent les routes IPv4 et IPv6 de la table principale par défaut. La dernière montre les règles de sélection de tables utilisées pour le routage avancé. Un diagnostic complexe peut donc exiger d'examiner d'autres tables : la présence d'une route ne suffit pas à expliquer toutes les décisions de routage.

Une route par défaut peut apparaître comme suit :

default via 192.0.2.1 dev ens160
192.0.2.0/24 dev ens160 proto kernel scope link src 192.0.2.25

Cela décrit la configuration visible, pas une preuve de connectivité. Il faudra vérifier ensuite le chemin, le filtrage et le service distant. Le routage sera traité en profondeur au #70.

4 — Les voisins : arp et ip neighbour

Autre ancienne commande, autre rôle : arp -n consultait notamment les associations IPv4 vers adresses de liaison sur le segment local.

arp -n

L'outil moderne est :

ip neighbour show
ip -4 neighbour show
ip -6 neighbour show

ip neigh est une abréviation de ip neighbour. Contrairement à une vue strictement ARP IPv4, le concept de voisins couvre aussi les entrées IPv6 liées à NDP.

Des états tels que REACHABLE, STALE ou FAILED doivent être interprétés dans leur contexte. Une entrée STALE n'est pas automatiquement une panne : elle indique que l'information n'a pas été récemment confirmée. Les articles #73 et #76 compléteront cette lecture.

Une table vide ne signifie pas nécessairement « réseau coupé » : le système peut simplement ne pas avoir eu à contacter de voisin dans cette interface ou cet espace de noms.

5 — Statistiques, compteurs et erreurs

Dans ifconfig, les compteurs RX/TX sont souvent visibles directement. Pour examiner les statistiques avec iproute2 :

ip -s link show
ip -s -s link show

Ces commandes permettent de voir les octets, paquets, erreurs et pertes connus du noyau et du pilote. La signification précise des compteurs dépend toutefois du périphérique et de la couche d'observation.

Ne concluez pas à une panne sur un compteur non nul isolé. Comparez les mesures à deux instants et corrélez-les avec la supervision, les journaux et la charge. Un compteur total depuis le démarrage n'exprime pas nécessairement un incident en cours.

Pour les statistiques détaillées du pilote ou d'une carte Ethernet, ethtool peut compléter le diagnostic, mais c'est un autre outil, pas un remplacement d'ifconfig par ip.

Tableau pratique : retrouver ses commandes

BesoinAncien outilCommande moderne de lecture
Toutes les interfacesifconfig -aip link show
Vue courte des liensVariable selon versionip -br link
Adresses IPifconfig -aip address show
IPv4 uniquementAffichage ifconfig à interpréterip -4 address show
IPv6 uniquementAffichage ifconfig à interpréterip -6 address show
Routes IPv4route -nip route show
Routes IPv6Outils et options spécifiquesip -6 route show
Voisins IPv4arp -nip -4 neighbour show
Voisins IPv6Pas d'équivalent ARP IPv4ip -6 neighbour show
Compteurs interfacesifconfig -aip -s link show

Ce tableau établit des correspondances de diagnostic, pas des substitutions caractère pour caractère. Les colonnes ne garantissent ni des résultats identiques ni les mêmes possibilités de configuration.

Quel outil sur Debian, Ubuntu, RHEL, serveur ou Desktop ?

Sur un serveur Debian ancien, net-tools peut être présent par habitude. Sur une installation minimale récente, ifconfig peut être absent sans que cela constitue un dysfonctionnement. Sur un poste Desktop, le réseau peut être piloté par NetworkManager même lorsque l'on consulte les interfaces avec ip.

La commande de lecture ne définit pas le gestionnaire responsable du réseau. Vous pouvez exécuter ip address show sur une machine gérée par NetworkManager, par systemd-networkd ou par ifupdown. Cela ne dit pas où enregistrer durablement une adresse.

Le bon réflexe reste le même pour Debian, Ubuntu, RHEL, Rocky Linux ou une VM cloud : identifier la distribution et les interfaces, puis déterminer le mécanisme qui configure réellement chaque périphérique avant de modifier quoi que ce soit.

cat /etc/os-release
ip -br link
ip -br address
ip route show

Ces commandes fonctionnent sans présumer qu'un outil historique ou un environnement graphique est installé. Pour le gestionnaire et les profils persistants, le #59 détaillera la différence entre état courant et état souhaité.

Petit lab reproductible : cinq observations, zéro changement

Sur un hôte de test ou un serveur où vous êtes autorisé à consulter la configuration :

  1. Exécutez ip -br link et repérez les interfaces sans supposer que eth0 existe.
  2. Exécutez ip -br address : quelles interfaces ont une adresse IPv4 ? IPv6 ?
  3. Affichez ip route show et ip -6 route show : les deux familles disposent-elles d'une route par défaut ?
  4. Exécutez ip neighbour show : y a-t-il des voisins connus ? Ne déduisez rien d'une liste vide.
  5. Exécutez ip -s link show et comparez les compteurs après un délai raisonnable sans générer de trafic artificiel.

Pour vérifier votre interprétation, notez dans votre compte rendu : l'interface, son état administratif, les adresses, les routes, les voisins et les compteurs. Séparez faits observés et hypothèses : « aucune route IPv6 affichée » n'équivaut pas à « le réseau est en panne ».

Le résultat attendu est une carte descriptive du réseau visible depuis votre session, pas un changement de configuration.

Limites, sécurité et retour arrière

Toutes les commandes exécutables proposées dans le lab sont des commandes d'observation. Les exemples de paramètres dev <...> restent volontairement fictifs dans un bloc non exécutable. Aucun changement de route, d'adresse ou d'état d'interface n'est demandé.

Les deux familles permettent aussi des modifications : ifconfig ... down et ip link set ... down peuvent interrompre brutalement une connexion distante. Évitez également d'essayer ip addr flush ou ip route flush pour « remettre à zéro » un diagnostic.

Pour les commandes présentées ici, aucun rollback n'est nécessaire, car aucune configuration n'est modifiée. Pour toute future écriture, identifiez d'abord le gestionnaire persistant, préparez un accès console hors bande et un retour arrière validé.

Les affichages peuvent contenir des adresses IP, noms d'interfaces ou détails de topologie confidentiels. Anonymisez les extraits avant de les publier.

Références officielles

Conclusion — Moderniser sans effacer l'historique

ifconfig reste utile pour comprendre des systèmes et des procédures hérités. ip fournit une interface plus large aux objets réseau actuels du noyau. L'enjeu n'est pas de connaître des raccourcis par cœur, mais de savoir quelle donnée chaque commande vous montre et quelles informations elle ne garantit pas.

Dans le #59, nous aborderons le piège suivant : une adresse est visible avec ip, mais qui l'a configurée, qui peut la réécrire, et pourquoi ne survit-elle pas toujours au redémarrage ?