Renommage des interfaces réseau sous Linux : passage à la nomenclature classique ethX

Mécanismes de dénomination et intérêt technique

Les distributions Linux modernes utilisent par défaut un système de nommage prédictible basé sur la topologie matérielle et les informations fournies par le firmware. Cette approche garantit l'unicité des interfaces (ex: ens33, enp2s0) mais introdiut une variabilité incompatible avec les déploiements automatisés et les scripts de configuration standardisés. Forcer l'utilisation de la nomenclature traditionnelle (eth0, eth1) restaure une prédictibilité totale, simplifiant ainsi la gestion des infrastructures à grande échelle.

Configuration persistante sur les systèmes RHEL/CentOS/Fedora

Cette procédure désactive les règles udev de nommage prédictible et met à jour les scripts réseau du système.

1. Injcetion des paramètres d'amorçage

L'option net.ifnames=0 doit être ajoutée à la ligne de commande du noyau pour inhiber la génération dynamique des identifiants.

# Éditer le fichier de configuration GRUB
sudo vi /etc/default/grub

# Modifier la ligne suivante :
GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/cl-swap rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet net.ifnames=0 biosdevname=0"

2. Migration des fichiers de configuration réseau

Les profils réseau résident dans /etc/sysconfig/network-scripts/. Un script de traitement par lots permet de renommer les fichiers et d'actualiser les variables internes sans intervention manuelle.

#!/bin/bash
INTERFACE_ACTUELLE="enp3s0"
NOUVELLE_INTERFACE="eth0"
REPERTOIRE_CONF="/etc/sysconfig/network-scripts"

# Renommer le fichier de configuration
sudo mv "${REPERTOIRE_CONF}/ifcfg-${INTERFACE_ACTUELLE}" "${REPERTOIRE_CONF}/ifcfg-${NOUVELLE_INTERFACE}"

# Remplacer les occurrences dans le contenu du fichier
sudo sed -i "s/${INTERFACE_ACTUELLE}/${NOUVELLE_INTERFACE}/g" "${REPERTOIRE_CONF}/ifcfg-${NOUVELLE_INTERFACE}"

3. Régénération du chargeur d'amorçage

La cible de sortie dépend du mode de démarrage détecté par le système d'exploitation.

if [ -d /sys/firmware/efi ]; then
    sudo grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
else
    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
fi

# Appliquer les modifications
sudo systemctl reboot

Configuration persistante sur Ubuntu/Debian

Les systèmes basés sur Debian utilisent Netplan pour la définition des interfaces. La logique de désactivation reste identique, mais la gestion des fichiers diffère.

1. Paramétrage du noyau

sudo vi /etc/default/grub
# Ajouter net.ifnames=0 biosdevname=0 à GRUB_CMDLINE_LINUX
sudo update-grub

2. Adaptation du schéma Netplan

Les configurations sont stockées dans /etc/netplan/. Il faut modifier l'identifiant racine dans le fichier YAML.

network:
  version: 2
  ethernets:
    eth0:  # Remplacer l'ancien nom ici
      dhcp4: true
      match:
        macaddress: 00:50:56:xx:xx:xx
      set-name: eth0

3. Application des règles

# Générer les règles udev et redémarrer le service réseau
sudo netplan generate
sudo netplan apply
sudo reboot

Modification éphémère (session uniquement)

Pour des tests ou des interventions ponctuelles sans persistance disque, la commande ip permet de réassigner l'interface en mémoire.

#!/bin/bash
SOURCE="enp3s0"
TARGET="eth0"

# Désactiver l'interface avant modification
sudo ip link set "$SOURCE" down

# Renommer dynamiquement
sudo ip link set "$SOURCE" name "$TARGET"

# Réactiver avec le nouvel identifiant
sudo ip link set "$TARGET" up

# Vérifier l'état
ip -br link show "$TARGET"

Cette méthode ne modifie aucun fichier système. Les paramètres sont réinitialisés automatiquement lors du prochain cycle d'initialisation.

Étiquettes: Linux systemd network-interface grub Netplan

Publié le 18 septembre à 08h48