nmcli networkmanager
Linux/Unix

nmcli : Configurer facilement les interfaces réseaux

La configuration de la partie réseau de votre machine linux est une étape essentielle pour la faire connecter à votre LAN ou à un WAN comme internet. Auparavant j’utilisais l’outil ifconfig ( InterFace CONFiguration ) ou bien je modifie directement les fichiers de configuration des interfaces réseau, mais maintenant après avoir essayer l’outil nmcli, la configuration réseau devient pour moi un jeux d’enfant alors qu’avant c’était pas un truc que j’aime faire.
C’est l’objectif de cet article, nous allons découvrir comment utiliser l’outil nmcli pour configurer vos carte réseau et vous allez certainement oublier l’outil ifconfig à la fin de cet article 🙂 .

nmcli c’est quoi ?

« nmcli » est un outil qui permet de gérer la configuration réseau en interagissant avec un deamon appelé NetworkManager, ila été lancé par RedHat en 2004 afin de faciliter la gestion du réseau.

La gestion du réseau Linux nmcli :

Le principe de nmcli est simple, c’est de créer ce qu’on appel un profile qui contient toutes la configuration réseaux ( adresse IP, masque, passerelle, dns, …) et l’attacher à l’interface réseau de la machine, plusieurs profiles peuvent être créés pour une seule interface, mais on ne peut en activer qu’une seule.

A quoi sert de créer plusieurs profiles ?

Cela vous permet d’utiliser une configuration réseau spéciale selon votre cas, par exemple lorsque je me connecte de chez mois j’utiliser un profile d’une configuration statique alors que lorsque je m’assoie dans un café j’active un 2ème profile d’une configuration automatique.

Passons maintenant à la pratique, nous allons voir comment créer un profile réseau et l’affecter à une interface.

Création d’un profile avec nmcli  :

Dans cet guide j’utilise la distribution CentOS 7 , vous pouvez utiliser n’importe quelle distribution à condition de s’assurer que NetworkManager est bien installé, si ce n’est pas le cas vous pouvez l’installer avec la commande ci-dessous :

yum install NetworkManager
ou
apt-get install NetworkManager

Nous allons configurer l’interface réseau « ens33 » pour avoir la configuration ci-dessous :

-Adresse IP : 192.168.162.134
-Masque du réseau : 255.255.255.0
-Passerelle : 192.168.162.2
-Serveur DNS :  192.168.162.10

Tout d’abord vérifier que le service « NetworkmManager » est bien démarré :

[root@pc1 ~]# systemctl status NetworkManager
● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2020-01-27 21:21:47 +01; 14h ago
Docs: man:NetworkManager(8)
Main PID: 813 (NetworkManager)
CGroup: /system.slice/NetworkManager.service
├─ 813 /usr/sbin/NetworkManager --no-daemon
└─14317 /sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-ens33.pid -lf /var/lib/NetworkManager/dhclient-...

Jan 28 12:15:18 pc1.redhat.com dhclient[14317]: DHCPREQUEST on ens33 to 192.168.162.254 port 67 (xid=0x68737ebd)
Jan 28 12:15:18 pc1.redhat.com dhclient[14317]: DHCPACK from 192.168.162.254 (xid=0x68737ebd)
Jan 28 12:15:18 pc1.redhat.com NetworkManager[813]: <info> [1580210118.5952] dhcp4 (ens33): address 192.168.162.134
Jan 28 12:15:18 pc1.redhat.com NetworkManager[813]: <info> [1580210118.5956] dhcp4 (ens33): plen 24 (255.255.255.0)

Ensuite nous allons crée un profile pour notre interface ens33 via la commande nmcli:

Voici les explication des paramètres :

Type : c’est le type d’interface réseau, ici nous utilisons une interface ethernet.
-con-name : C’est le nom de du profile, vous pouvez donner le nom que vous voulez, dans mon cas je l’ai nommée « static »
-ifname : c’est le nom de l’interface réseau ( dans mon cas c’est ens33), vous pouvez l’obtenir en utilisant la commande « ip addr show » ou « ifconfig »


-ipv4.addresses : Pour spécifier l’adresse de l’interface
-ipv4.gateway : Pour spécifier l’adresse de la passerelle
-ipv4.dns : Spécifier l’adresse du serveur DNS
-ipv4.method : s’il s’agit d’une configuration statique ( comme dans notre cas ) , donner la valeur « manual » sinon si vous avez un serveur DHCP dans ce cas vous spécifiez la valeur « auto »

une fois le profile « home » est créé un fichier de configuration est automatiquement créé dans le répertoire : /etc/sysconfig/network-scripts

Pour voir si le profile « home » a été créé, taper la commande ci-dessous :

[root@pc1 ~]# nmcli connection show

Ensuite vous devez l’activer pour que la configuration soit attribuée à l’interface ens33, pour cela taper la commande ci-dessous :

[root@pc1 ~]# nmcli connection up home

Assurez-vous que l’interface a bien eu son adresse IP avec la commande « ip addr show » :

et voilà c’est tout 🙂 .

Dans cet exemple nous avons créé un profile d’une configuration statique, si vous souhaiter crée une configuration automatique c’est plus simple que ça, il suffit de spécifier le paramètre auto au lieu de manual :

 

Modifier la connexion réseau avec nmcli :

Une connexion existante peut être modifiée avec la commande « nmcli connection modify ».
Prenons quelques exemples :

-Connexion automatique :

[root@pc1 ~]# nmcli connection modify home connection.autoconnect yes

La commande permet d’activer la connexion « home » par défaut au démarrage de la machine.

-Modifier l’adresse IP :

nmcli connection modify home ipv4.addresses 192.168.162.26/24

-Ajouter une adresse IP de plus :

[root@pc1 ~]# nmcli connection modify home +ipv4.addresses 192.168.12.22/24

-Ajouter une autre adresse DNS :

[root@pc1 ~]# nmcli connection modify home +ipv4.dns 192.168.3.1

Ici je ne vais pas vous présenter tous les options que vous pouvez changer car Il en existe plusieurs, vous pouvez taper la commande ci-dessous pour les voir en spécifiant le nom du profile :

[root@pc1 ~]# nmcli connection show home
connection.id:                          home
connection.uuid:                        deb7a927-626a-45e3-b2ef-b9e22ab98cab
connection.stable-id:                   --
connection.type:                        802-3-ethernet
connection.interface-name:              ens33
connection.autoconnect:                 yes
connection.autoconnect-priority:        0
connection.autoconnect-retries:         -1 (default)
connection.multi-connect:               0 (default)
connection.auth-retries:                -1
connection.timestamp:                   1580204807
connection.read-only:                   no
connection.permissions:                 --
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (default)
connection.secondaries:                 --
connection.gateway-ping-timeout:        0
connection.metered:                     unknown
connection.lldp:                        default
connection.mdns:                        -1 (default)
connection.llmnr:                       -1 (default)

Edition des fichiers de configuration réseau

Il est possible également de modifier un profile réseau en éditant les fichiers réseaux placés dans le répertoire /etc/sysconfig/network-scripts .

Ces fichiers sont nommés ifcfg-nom ( où nom fait référence au nom du profile )

Nous allons éditer le fichier de configuration liée à l’interface ens33 que nous avons créé :

Et voici un exemple d’une configuration statique :

Comme vous pouvez le constater, dans le cas d’une configuration statique, les variables  « IPADDR », PREFIX, « GATEWAY », « DNS1 », « DEFROUTE » sont bien visibles dans le fichier.

La gestion du réseau Linux avec nmtui :

Pour ceux qui trouvent que la configuration réseau via les commandes est complexe il existe un outil appelé « outil d’interface d’utilisateur texte nmtui ( NetworkManager Text User Interface ).

Pour démarrer cet outil, taper la commande nmtui :

1-« Edit a connection » pour créer une nouvelle configuration et ensuite « Add »:

2-Choisissez le type « Ethernet » :

3-Donner le nom du profile réseau et l’interface à la quelle il va être attaché, et si vous souhaitez que ce profil soit activé automatiquement au démarrage coché « Automatically connect » :

Et voila notre profile Wifi a été créé :

Vous pouvez bien éditer le profile pour le modifier en cliquant que « Edit » :

Et voilà notre Tuto est terminé j’espère qu’il vous était bien utile et que vous pouvez dorénavant créer vos profils sans aucun souci ;).

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *