Configurer des adresses IP statiques avec NetworkManager sur RHEL/CentOS

Configurez une IP statique persistante sur RHEL ou CentOS avec `nmcli`, incluant la passerelle, les DNS, l'activation et les vérifications de retour arrière.

Configurer des adresses IP statiques avec NetworkManager sur RHEL/CentOS

Le réseau est l'une des premières choses à configurer correctement sur un serveur. Sur RHEL et CentOS, NetworkManager permet de configurer une adresse IP statique persistante sans éditer manuellement les fichiers d'interface, ce qui est plus sûr sur les versions récentes d'Enterprise Linux.

Ce guide vous explique les commandes nmcli pour définir une adresse, une passerelle et des serveurs DNS, activer le profil et vérifier que la modification survit à un redémarrage.

Comprendre NetworkManager et nmcli

Avant de plonger dans les étapes de configuration, clarifions les composants principaux que nous allons utiliser :

Qu'est-ce que NetworkManager ?

NetworkManager est un démon qui gère les paramètres réseau, facilitant la gestion des connexions réseau. Il peut gérer différents types de connexions, y compris Ethernet, Wi-Fi, haut débit mobile et VPN. Il détecte et configure automatiquement les périphériques réseau et tente de maintenir une connexion réseau active, en basculant entre les connexions disponibles si nécessaire. Pour les serveurs, il garantit que vos interfaces réseau sont correctement configurées et persistent après les redémarrages.

Qu'est-ce que nmcli ?

nmcli est le client en ligne de commande pour NetworkManager. Il vous permet de contrôler NetworkManager et de configurer les connexions réseau depuis le terminal. Il est particulièrement utile dans les environnements serveur sans interface graphique. Les commandes nmcli sont intuitives et offrent un moyen robuste d'interagir avec l'ensemble des fonctionnalités de NetworkManager, de l'affichage de l'état des périphériques réseau à la création et la modification de profils de connexion complexes.

Prérequis

Pour suivre ce guide, assurez-vous d'avoir :

  • Privilèges root : Vous aurez besoin d'un accès sudo ou d'être connecté en tant qu'utilisateur root pour effectuer des modifications de configuration réseau.
  • Informations système : L'adresse IP statique, le masque de sous-réseau (ou notation CIDR), la passerelle par défaut et les adresses IP des serveurs DNS que vous souhaitez utiliser.
  • Interface réseau identifiée : Connaissance du nom de l'interface réseau (par exemple, enp0s3, eth0) que vous souhaitez configurer. Nous verrons comment la trouver.

Configuration étape par étape d'une adresse IP statique

Voici comment configurer une adresse IP statique avec nmcli.

Étape 1 : Identifier votre interface réseau

Tout d'abord, vous devez connaître le nom de l'interface réseau que vous souhaitez configurer. Vous pouvez lister tous les périphériques réseau actifs et leur état avec nmcli device ou nmcli device status :

nmcli device status

Exemple de sortie :

DEVICE     TYPE      STATE                   CONNECTION
enp0s3     ethernet  connected               System enp0s3
lo         loopback  unmanaged               --

Dans cet exemple, enp0s3 est notre interface Ethernet. Notez le nom de votre interface.

Étape 2 : Créer un nouveau profil de connexion réseau

Il est généralement recommandé de créer un nouveau profil de connexion pour votre configuration IP statique, plutôt que de modifier directement un profil existant géré par DHCP, surtout si vous souhaitez pouvoir revenir facilement en arrière. Un profil de connexion stocke tous les paramètres d'une connexion réseau spécifique.

Pour créer un nouveau profil de connexion Ethernet, utilisez la commande nmcli connection add. Vous spécifierez le type de connexion, un nom de connexion descriptif (con-name) et le nom de l'interface (ifname).

sudo nmcli connection add type ethernet con-name my-static-eth ifname enp0s3
  • type ethernet : Spécifie une connexion Ethernet.
  • con-name my-static-eth : Attribue un nom à ce nouveau profil de connexion. Choisissez quelque chose de descriptif.
  • ifname enp0s3 : Lie ce profil de connexion à l'interface réseau physique enp0s3.

Alternative : Modifier un profil existant

Si vous préférez modifier une connexion existante (par exemple, System enp0s3 de la sortie nmcli device status), vous utiliseriez nmcli connection modify avec son con-name existant.

sudo nmcli connection modify "System enp0s3" # remplacez par le nom de votre connexion

Remarque : Pour simplifier et clarifier, ce guide suppose que vous avez créé un nouveau profil de connexion nommé my-static-eth.

Étape 3 : Configurer les paramètres IPv4 (IP, passerelle, DNS)

Configurons maintenant l'adresse IP statique, la passerelle et les serveurs DNS pour notre profil de connexion my-static-eth. Il est crucial de définir la méthode IPv4 sur manual pour désactiver le DHCP.

Définir l'adresse IP et la passerelle

Utilisez les propriétés ipv4.addresses et ipv4.gateway. L'adresse IP doit être en notation CIDR (par exemple, 192.168.1.100/24).

sudo nmcli connection modify my-static-eth ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1
  • ipv4.addresses 192.168.1.100/24 : Définit l'adresse IP statique sur 192.168.1.100 avec un masque de sous-réseau de 24 bits (255.255.255.0).
  • ipv4.gateway 192.168.1.1 : Définit la passerelle par défaut du réseau.

Définir les serveurs DNS

Spécifiez une ou plusieurs adresses IP de serveurs DNS. Séparez plusieurs adresses par des virgules.

sudo nmcli connection modify my-static-eth ipv4.dns "1.1.1.1,8.8.8.8"

Si votre organisation utilise des DNS internes, utilisez ces adresses de résolveur à la place. Par exemple, un serveur privé pourrait utiliser 192.168.1.10 et 192.168.1.11.

Désactiver le DHCP pour IPv4

Définissez la méthode IPv4 sur manual ; sinon, NetworkManager pourrait encore essayer le DHCP pour ce profil.

sudo nmcli connection modify my-static-eth ipv4.method manual

Si le serveur ne doit pas utiliser IPv6 sur cette connexion, désactivez-le explicitement :

sudo nmcli connection modify my-static-eth ipv6.method disabled

Ne faites cela que si votre réseau ne dépend pas d'IPv6.

Étape 4 : Activer le profil statique

Activez la nouvelle connexion. Si vous travaillez via SSH, faites-le depuis un accès console ou planifiez un retour arrière avant de modifier l'interface active.

sudo nmcli connection up my-static-eth

Si un ancien profil DHCP est toujours actif sur la même interface, désactivez-le après avoir confirmé que le profil statique fonctionne :

sudo nmcli connection down "System enp0s3"

Remplacez "System enp0s3" par le nom réel de l'ancienne connexion depuis nmcli connection show.

Étape 5 : Vérifier l'adresse, la route et le DNS

Vérifiez la connexion active :

nmcli connection show --active

Confirmez l'adresse IP :

ip addr show enp0s3

Confirmez la route par défaut :

ip route

Vous devriez voir une route similaire à :

default via 192.168.1.1 dev enp0s3

Vérifiez les paramètres DNS gérés par NetworkManager :

nmcli device show enp0s3 | grep DNS

Testez ensuite la connectivité réelle :

ping -c 3 192.168.1.1
ping -c 3 1.1.1.1
getent hosts example.com

La première commande vérifie la passerelle, la seconde vérifie la connectivité IP sortante et la troisième vérifie la résolution DNS.

Modifications à distance plus sûres

Les modifications d'IP statique peuvent déconnecter votre session SSH si vous faites une erreur dans l'adresse ou la passerelle. Avant d'appliquer le profil à distance, gardez une deuxième session ouverte et envisagez de planifier un retour arrière :

sudo shutdown -r +5 "Redémarrage pour retour réseau"

Si la nouvelle IP statique fonctionne, annulez le redémarrage :

sudo shutdown -c

Sur les systèmes où un redémarrage n'est pas acceptable, créez un travail at temporaire ou utilisez un accès console hors bande pour pouvoir récupérer si la route est erronée.

Conclusion

Utilisez les profils de connexion nmcli pour une configuration IP statique persistante sur RHEL et CentOS. L'ensemble minimum de travail est ipv4.addresses, ipv4.gateway, ipv4.dns et ipv4.method manual ; le flux de travail le plus sûr est d'activer le profil, de vérifier le comportement de la route et du DNS, puis de supprimer ou désactiver l'ancien profil DHCP uniquement après que le serveur soit joignable à sa nouvelle adresse.