Il existe de nombreux cas dans lesquels nous pouvons souhaiter définir une adresse IP statique pour une interface réseau. Dans RHEL 8 / CentOS 8, les connexions réseau sont gérées par le démon NetworkManager, donc dans ce tutoriel, nous voyons comment nous pouvons effectuer une telle tâche en éditant directement un fichier d'interface, en utilisant un utilitaire de ligne de commande, nmcli
, ou via une interface utilisateur textuelle, nmtui
.
Dans ce didacticiel, vous apprendrez :
- Comment définir une adresse IP statique en modifiant directement un fichier d'interface
- Comment définir une adresse IP statique à l'aide de l'utilitaire nmcli
- Comment définir une adresse IP statique à l'aide de nmtui
Le fichier d'interface réseau modifié
Configuration logicielle requise et conventions utilisées
Catégorie | Exigences, conventions ou version du logiciel utilisée |
---|---|
Système | RHEL 8/CentOS 8 |
Logiciel | Tous les logiciels mentionnés dans ce didacticiel sont inclus dans une installation minimale de RHEL 8 ou CentOS 8. |
Autre | Autorisation d'exécuter la commande avec les privilèges root. |
Conventions | # - nécessite que les commandes linux données soient exécutées avec les privilèges root soit directement en tant qu'utilisateur root, soit en utilisant sudo commande$ – nécessite que les commandes linux données soient exécutées en tant qu'utilisateur normal non privilégié |
Présentation
Dans Red Hat Enterprise Linux 8, les interfaces réseau sont gérées par le NetworkManager
démon, donc pour modifier les paramètres d'une interface réseau, nous devons interagir avec lui d'une manière ou d'une autre. Dans ce didacticiel, nous verrons comment définir une adresse IP statique, une passerelle et un serveur DNS pour une carte réseau en utilisant trois méthodes différentes.
Identifier notre interface
La première chose que nous voulons faire est de trouver l'interface que nous voulons modifier. Pour lister toutes les interfaces de notre système, nous pouvons utiliser l'ip addr
commande :
$ ip addr 1: lo: <loopback,up,lower_up> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp1s0: <broadcast,multicast,up,lower_up> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff inet 192.168.122.189/24 brd 192.168.122.255 scope global dynamic noprefixroute enp1s0 valid_lft 3004sec preferred_lft 3004sec inet6 fe80::9ab6:ba48:1ddd:a8e1/64 scope link noprefixroute valid_lft forever preferred_lft forever </broadcast,multicast,up,lower_up></loopback,up,lower_up>
Dans la sortie ci-dessus, qui est le résultat de l'exécution de la commande sur ma machine virtualisée rhel8, nous pouvons voir deux interfaces :lo
et enp1s0
. La première est une interface « virtuelle », qui est utilisée par le système pour « parler » avec lui-même. La seconde est celle qui nous intéresse, et actuellement son adresse IPv4 est 192.168.122.189 :nous souhaitons la changer.
Méthode 1 :modification manuelle du fichier de configuration de l'interface
Pour chaque interface réseau gérée par le démon NetworkManager, un fichier de configuration est créé dans /etc/sysconfig/network-scripts
annuaire. Le nom du fichier est composé du ifcfg-
préfixe plus le nom de l'interface. Si nous inspectons le fichier lié à notre carte réseau, nous pouvons voir sa configuration actuelle :
$ cat /etc/sysconfig/network-scrIPts/ifcfg-enp1s0 TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="dhcp" 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="enp1s0" UUID="d5f41bf4-de0a-43b3-b633-7e2ec6212e58" DEVICE="enp1s0" ONBOOT="yes"
Le BOOTPROTO
l'option est définie sur dhcp
:l'option définit le protocole à utiliser au démarrage pour définir l'adresse IP de l'interface. Les options possibles à utiliser sont :
- aucun – Aucun protocole ne doit être utilisé
- bootp – Utiliser le protocole bootp
- dhcp – Utiliser le protocole DHCP
Puisque nous voulons définir une adresse IPv4 statique, nous voulons changer la valeur de BOOTPROTO en none
et configurez notre IP, le préfixe de route, la passerelle et le serveur DNS de manière statique. Nous pouvons accomplir cela en utilisant respectivement le IPADDR
, PREFIX
, GATEWAY
et DNS
options. Étant donné que de nombreux serveurs DNS peuvent être spécifiés, le DNS
option doit être signalée avec un numéro progressif, à partir de 1. Après les modifications nécessaires, notre fichier devrait ressembler à
ceci :
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="enp1s0" UUID="d5f41bf4-de0a-43b3-b633-7e2ec6212e58" DEVICE="enp1s0" ONBOOT="yes" IPADDR=192.168.122.66 PREFIX=24 GATEWAY=192.168.122.1 DNS1=192.168.122.1
Nous définissons notre IP statique sur 192.168.122.66
et définissez à la fois notre passerelle et notre serveur DNS sur 192.168.122.1
. Maintenant, pour que nos changements soient efficaces, nous devons mettre en place et réactiver l'interface réseau. Sachez que cela perturbera les connexions ssh existantes via ladite interface :
$ sudo nmcli connection down enp1s0 && sudo nmcli connection up enp1s0
En exécutant l'ip addr
commande à nouveau, nous pouvons vérifier que l'adresse IP a changé :
IP addr|grep enp1s0|grep inet inet 192.168.122.66/24 brd 192.168.122.255 scope global noprefix
Méthode 2 – utilisation de nmcli
Nmcli
est un outil de ligne de commande utilisé pour contrôler NetworkManager. En l'utilisant, nous pouvons, entre autres, modifier les paramètres réseau d'une interface spécifique. Dans notre cas, nous devons utiliser nmcli avec la connection
sous-commande avec le modify
ou le edit
action. Le premier nous permet de modifier directement les paramètres, tandis que le second lance le shell nmcli, où nous pouvons opérer de manière interactive.
Utiliser nmcli directement
Pour changer l'adresse IP de l'interface "enp1s0" avec une commande directe nmcli, nous exécutons :
$ sudo nmcli connection modify enp1s0 IPv4.address 192.168.122.66/24
Notez que nous avons spécifié le préfixe de routage avec l'IP en utilisant le soi-disant CIDR
notation (Classes Inter-Domain Routing). Nous utilisons une syntaxe similaire pour modifier la passerelle et les paramètres DNS :
$ sudo nmcli connection modify enp1s0 IPv4.gateway 192.168.122.1 $ sudo nmcli connection modify enp1s0 IPv4.dns 192.168.122.1
Enfin, nous définissons la méthode sur manual
pour éviter d'utiliser tout autre protocole de démarrage pour l'interface. Cette commande définit l'option BOOTPROTO sur none dans le fichier de configuration de l'interface :
$ sudo nmcli connection modify enp1s0 IPv4.method manual
Utilisation du shell nmcli
Comme nous l'avons mentionné ci-dessus, nous pouvons également utiliser une méthode interactive pour effectuer les mêmes modifications. Pour entrer dans le nmcli shell
nous utilisons le edit
action, suivi du nom de l'interface que nous voulons modifier :
$ sudo nmcli connection edit enp1s0 ===| nmcli interactive connection editor |=== Editing existing '802-3-ethernet' connection: 'enp1s0' Type 'help' or '?' for available commands. Type 'print' to show all the connection properties. Type 'describe [.]' for detailed property descrIPtion. You may edit the following settings: connection, 802-3-ethernet (ethernet), 802-1x, dcb, sriov, ethtool, match, IPv4, IPv6, tc, proxy nmcli>
Le curseur clignotant nous indique que le shell accepte les commandes :nous pouvons taper help
pour obtenir une liste de celles disponibles, print
pour voir toutes les propriétés de connexion ou describe
suivi d'un paramètre et d'une de ses propriétés (représentées par une notation pointée), pour obtenir une description de cette dernière. Par exemple :
nmcli> nmcli> describe IPv4.address === [addresses] === [NM property descrIPtion] Array of IP addresses. [nmcli specific descrIPtion] Enter a list of IPv4 addresses formatted as: IP[/prefix], IP[/prefix],... Missing prefix is regarded as prefix of 32. Example: 192.168.1.5/24, 10.0.0.11/24
Pour changer l'adresse de notre interface :
nmcli> set IPv4.address 192.168.122.66/24
Le même principe est utilisé pour modifier les autres propriétés :
nmcli> set IPv4.gateway 192.168.122.1 nmcli> set IPv4.dns 192.168.122.1 nmcli> set IPv4.method manual
Pour enregistrer les modifications que nous avons apportées, nous devons lancer une dernière commande :
nmcli> save Connection 'enp1s0' (d5f41bf4-de0a-43b3-b633-7e2ec6212e58) successfully updated.
Pour quitter le shell nmcli, tapez simplement quit
et appuyez sur entrée :
nmcli> quit
Encore une fois, pour que les modifications soient effectives, nous devons recharger l'interface avec la même commande que nous avons utilisée auparavant.
Méthode 3 - en utilisant nmtui
Outre la modification des paramètres d'une interface réseau en modifiant son fichier manuellement ou en utilisant l'utilitaire nmcli, nous pouvons également contrôler NetworkManager en utilisant une interface utilisateur textuelle. Pour le lancer, nous invoquons simplement nmtui
dans notre terminal :
$ sudo nmtui
L'interface utilisateur texte nmtui
Nous sélectionnons Edit a connection
puis le nom de l'interface que nous voulons manipuler; on procède ensuite à la modification des valeurs souhaitées. Par exemple :
Modification des paramètres de connexion avec nmtui
Une fois que nous sommes satisfaits, nous sélectionnons OK
et appuyez sur Entrée :nous serons ramenés au menu de sélection de l'interface. Cette fois, nous sélectionnons back
, puis choisissez quit
pour quitter. Pour appliquer les paramètres, nous devons recharger la connexion de l'interface :
$ sudo nmcli connection down enp1s0 && sudo nmcli connection up enp1s0
Conclusion
Dans ce didacticiel, nous avons vu trois méthodes que nous pouvons utiliser pour définir une adresse IP statique sur Red Hat Enterprise Linux 8. Nous voyons quelles options nous devons modifier et ce que nous devons ajouter dans le fichier de configuration de l'interface lors de sa modification manuelle, et comment effectuer la mêmes changements en utilisant nmcli et nmtui, qui sont respectivement un utilitaire de ligne de commande et une interface utilisateur textuelle :les deux sont utilisés pour contrôler le démon NetworkManager.