Recherche de site Web

Comment gérer la mise en réseau avec NetworkManager dans RHEL/CentOS 8


Dans RHEL et CentOS 8, le service réseau est géré par le démon NetworkManager et il est utilisé pour configurer et contrôler dynamiquement les périphériques réseau et maintenir les connexions. et actifs lorsqu'ils sont disponibles.

NetworkManager offre de nombreux avantages tels que la prise en charge d'une configuration et d'une gestion faciles du réseau à l'aide d'outils d'interface de ligne de commande et d'interface utilisateur graphique, fournit une API via D-Bus qui permet d'interroger et de contrôler la configuration du réseau, prend en charge pour la flexibilité de configuration et bien plus encore.

En outre, NetworkManager peut également être configuré à l'aide de fichiers et de la console Web Cockpit et prend en charge l'utilisation de scripts personnalisés pour démarrer ou arrêter d'autres services en fonction de l'état de la connexion.

Lire aussi : Comment configurer et gérer les connexions réseau à l'aide de l'outil « nmcli »

Avant d'aller plus loin, voici quelques autres points importants à noter concernant la mise en réseau dans CentOS/RHEL 8 :

  • Les fichiers de configuration de type ifcfg traditionnels (par exemple ifcfg-eth0, ifcfg-enp0s3) sont toujours pris en charge.
  • Les scripts réseau sont obsolètes et ne sont plus fournis par défaut.
  • Une installation minimale fournit une nouvelle version des scripts ifup et ifdown qui appellent NetworkManager via l'outil nmcli.
  • Pour exécuter les scripts ifup et ifdown, NetworkManager doit être en cours d'exécution.

Installation de NetworkManager sur CentOS/RHEL 8

Le NetworkManager doit être préinstallé sur une installation de base CentOS/RHEL 8, sinon vous pouvez l'installer à l'aide du gestionnaire de packages DNF comme indiqué.

dnf install NetworkManager

Le fichier de configuration global de NetworkManager se trouve dans /etc/NetworkManager/NetworkManager.conf et des fichiers de configuration supplémentaires peuvent être trouvés dans /etc/NetworkManager/ .

Gestion de NetworkManager à l'aide de Systemctl sur CentOS/RHEL 8

Dans CentOS/RHEL 8 et d'autres systèmes Linux modernes qui ont adopté le systemd (gestionnaire de système et de services), les services sont gérés à l'aide de l'outil systemctl.

Voici des commandes systemctl utiles pour gérer le service NetworkManager.

Vérification de l'état de NetworkManager

Une installation minimale de CentOS/RHEL 8 devrait avoir NetworkManager démarré et activé pour démarrer automatiquement au moment du démarrage, par défaut. Vous pouvez utiliser les commandes suivantes pour vérifier si NetworkManager est actif, activé et imprimer les informations sur l'état d'exécution de NetworkManager.

systemctl is-active NetworkManager
systemctl is-enabled NetworkManager
systemctl status NetworkManager 

Démarrage de NetworkManager

Si NetworkManager n'est pas en cours d'exécution, vous pouvez le démarrer simplement en l'exécutant.

systemctl start NetworkManager

Arrêt de NetworkManager

Pour arrêter ou désactiver NetworkManager pour une raison ou une autre, exécutez la commande suivante.

systemctl stop NetworkManager

Redémarrage de NetworkManager

Si vous avez apporté des modifications aux fichiers de configuration d'interface ou à la configuration du démon NetworkManager (généralement situés dans le répertoire /etc/NetworkManager/), vous pouvez redémarrer (arrêter puis démarrer) NetworkManager pour appliquer les modifications comme suit. montré.

systemctl restart NetworkManager

Rechargement de NetworkManager

Pour recharger la configuration du démon NetworkManager (mais pas le fichier de configuration de l'unité de systemd) sans redémarrer le service, exécutez la commande suivante.

systemctl reload NetworkManager

Utilisation des outils NetworkManager et utilisation des fichiers ifcfg

Le NetworkManager prend en charge certains outils permettant aux utilisateurs d'interagir avec lui, à savoir :

  1. nmcli – un outil de ligne de commande utilisé pour configurer le réseau.
  2. nmtui – une interface utilisateur texte simple basée sur des malédictions, qui est également utilisée pour configurer et gérer les connexions de l'interface newtwork.
  3. D'autres outils incluent le nm-connection-editor, le control-center et l'icône de connexion réseau (le tout sous interface graphique).

Pour répertorier les périphériques détectés par NetworkManager, exécutez la commande nmcli.

 
nmcli device 
OR
nmcli device status

Pour afficher toutes les connexions actives, exécutez la commande suivante (notez que sans le -a, elle répertorie les profils de connexion disponibles).

nmcli connection show -a

Définir l'adresse IP statique sur CentOS/RHEL 8

Les fichiers de configuration spécifiques à l'interface réseau se trouvent dans le répertoire /etc/sysconfig/network-scripts/. Vous pouvez modifier n'importe lequel de ces fichiers, par exemple, pour définir une adresse IP statique pour votre serveur CentOS/RHEL 8.

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

Voici un exemple de configuration pour définir une adresse IP statique.

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=e81c46b7-441a-4a63-b695-75d8fe633511
DEVICE=enp0s3
ONBOOT=yes
IPADDR=192.168.0.110
PREFIX=24
GATEWAY=192.168.0.1
DNS1=8.8.8.8
PEERDNS=no

Après avoir enregistré les modifications, vous devez recharger tous les profils de connexion ou redémarrer NetworkManager pour que les nouvelles modifications soient appliquées.

nmcli connection reload
OR
systemctl restart NetworkManager

Démarrage ou arrêt des services/scripts réseau basés sur la connectivité réseau

NetworkManager dispose d'une option utile qui permet aux utilisateurs d'exécuter des services (tels que NFS, SMB, etc.) ou des scripts simples basés sur la connectivité réseau.

Par exemple, si vous souhaitez monter automatiquement un répertoire distant localement avec sshfs, montez des partages SMB ou montez des partages NFS après avoir basculé entre les réseaux. Vous souhaiterez peut-être que ces services réseau ne soient exécutés que lorsque NetworkManager est opérationnel (toutes les connexions sont actives).

Cette fonctionnalité est fournie par le service NetworkManager-dispatcher (qui doit être démarré et activé pour démarrer automatiquement au démarrage du système). Une fois le service exécuté, vous pouvez ajouter vos scripts dans le répertoire /etc/NetworkManager/dispatcher.d.

Tous les scripts doivent être exécutables et accessibles en écriture, et appartenir à root, par exemple :

chown root:root /etc/NetworkManager/dispatcher.d/10-nfs-mount.sh
chmod 755 /etc/NetworkManager/dispatcher.d/10-nfs-mount.sh

Important : les scripts du répartiteur seront exécutés par ordre alphabétique au moment de la connexion et par ordre alphabétique inverse aux heures de déconnexion.

Utilisation de scripts réseau hérités

Comme nous l'avons mentionné précédemment, les scripts réseau sont obsolètes dans CentOS/RHEL 8 et ne sont pas installés par défaut. Si vous souhaitez toujours utiliser les scripts réseau, vous devez installer le package network-scripts.

yum install network-scripts

Une fois installé, ce package fournit une nouvelle version des scripts ifup et ifdown qui appellent NetworkManager via l'outil nmcli nous avons regardé ci-dessus. Notez que NetworkManager doit être en cours d'exécution pour que vous puissiez exécuter ces scripts.

Pour plus d'informations, consultez les pages de manuel systemctl et NetworkManager.

man systemctl
man NetworkManager

C’est tout ce que nous avons préparé dans cet article. Vous pouvez demander des éclaircissements sur l’un des points, poser des questions ou apporter des ajouts à ce guide via le formulaire de commentaires ci-dessous.