Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
2.3. Utiliser l'outil de ligne de commandes du NetworkManager, nmcli
L'outil de ligne de commandes nmcli peut être utilisé à la fois par les utilisateurs et les scripts pour contrôler le NetworkManager. Le format de base d'une commande est le suivant :
nmcliayant comme OBJECT pourOPTIONS
OBJECT {COMMAND
| help }
général
, réseautage
, radio
, connexion
, ou périphérique
. Les options les plus utilisées sont les suivantes : -t, --terse
pour les scripts, l'option -p, --pretty
pour les utilisateurs et l'option -h, --help
pour assistance. La complétion de commande est maintenant en place pour nmcli, donc n'oubliez pas d'appuyer sur Tab (onglet) quand vous hésitez sur les commandes disponibles. Voir la page man nmcli(1)
pour obtenir une liste complète des options et des commandes. Pour obtenir une liste des configurations des périphérique de réseau connus, exécuter la commande nmcli device
sans arguments.
L'outil nmcli contient une assistance contectuelle intégrée. Pour l'utiliser, saisir les deux commande suivantes, et constatez la différence :
~]$ nmcli help
Usage: nmcli [OPTIONS] OBJECT { COMMAND | help }
OPTIONS
-t[erse] terse output
-p[retty] pretty output
-m[ode] tabular|multiline output mode
-f[ields] <field1,field2,...>|all|common specify fields to output
-e[scape] yes|no escape columns separators in values
-n[ocheck] don't check nmcli and NetworkManager versions
-a[sk] ask for missing parameters
-w[ait] <seconds> set timeout waiting for finishing operations
-v[ersion] show program version
-h[elp] print this help
OBJECT
g[eneral] NetworkManager's general status and operations
n[etworking] overall networking control
r[adio] NetworkManager radio switches
c[onnection] NetworkManager's connections
d[evice] devices managed by NetworkManager
a[gent] NetworkManager secret agent or polkit agent
m[onitor] monitor NetworkManager changes
~]$ nmcli general help
Usage: nmcli general { COMMAND | help }
COMMAND := { status | hostname | permissions | logging }
status
hostname [<hostname>]
permissions
logging [level <log level>] [domains <log domains>]
Dans le deuxième exemple ci-dessus, l'aide disponible se rapporte à l'objet general
.
La page man
nmcli-examples(5)
contient un certain nombre d'exemples utiles. En voici une brève sélection :
Pour afficher le statut global du NetworkManager :
nmcli statut general. Pour contrôler la journalisation NetworkManager :
nmcli general logging. Pour afficher toutes les connexions :
nmcli connection show. Pour montrer les connexions actives uniquement, ajoutez l'option
- a,--active
, comme suit : nmcli connection show --active. Pour afficher les périphériques reconnus par le NetworkManager et leur état :
nmcli device status
Le commandes peuvent être écourtées et certaines options omises. Par exemple, la commande :
nmcli connection modify id 'MyCafe' 802-11-wireless.mtu 1350peut être réduite à la commande suivante :
nmcli con mod MyCafe 802-11-wireless.mtu 1350. L'option
id
peut été omise car l'ID de connexion (nom) est sans équivoque pour nmcli dans ce cas. Au fur et à mesure que vous vous familiariserez avec les commandes, d'autres abréviations peuvent être faites. Par exemple, nmcli connection add type ethernetpeut être réduit à:
nmcli c a type eth
Note
N'oubliez pas de vous servir de la fonction de complétion de commande si vous avez un doute.
Lancer et arrêter une interface en utilisant nmcli
L'outil nmcli peut être utilisé pour démarrer et pour stopper une interface de réseau, y compris les masters. Ainsi :
nmcli con up id bond0 nmcli con up id port0 nmcli dev disconnect bond0 nmcli dev disconnect ens3
Note
Il est recommandé d'utiliser
nmcli dev disconnect iface-name
plutôt que nmcli con down id id-string
, car la disconnexion met l'interface en mode « manual », et aucune connexion automatique ne démarrera tant que l’utilisateur n'aura pas demandé au NetworkManager de démarrer une connexion ou tant qu'un événement externe tel qu'un changement d'opérateur, une hibernation,une mise en veille n'ait eu lieu.
L'éditeur de connexions interactives nmcli
L'outil nmcli contient un éditeur de connexions interactif. Pour l'utiliser, saisir la commande suivante :
~]$ nmcli con edit
On vous demandera de saisir un type de connexion valide à partir de la liste affichée. Après avoir entré un type de connexion, vous serez placé sur invite de nmcli. Si vous êtes familier avec les types de connexion, vous pouvez ajouter une option de type
de connexion valide à la commande nmcli con edit
, et être pris directement à l'invite de nmcli. Le format est le suivant pour l'édition d'un profil de connexion existant : nmcli con edit [id | uuid | path] ID. Pour ajouter ou modifier un nouveau profil de connexion, appliquer le format suivant :
nmcli con edit [saisir new-connection-type de type] [con-name new-connexion- name]
Saisir
help
à l'invite de nmcli pour voir une liste de commandes valides. Utiliser la commande describe
pour obtenir une liste des paramètres et de leurs propriétés. Le format est le suivant : describe setting.property. Par exemple :
nmcli> describe team.config
2.3.1. Comprendre les options nmcli
La plupart des commandes nmcli s'expliquent par elles-mêmes, mais pour certaines commandes, cela vaut la peine de se pencher un petit moment dessus :
type
— le type de connexion.- Les valeurs autorisées sont les suivantes :
adsl
,bond
,bond-slave
,bridge
,bridge-slave
,bluetooth
,cdma
,ethernet
,gsm
,infiniband
,olpc-mesh
,team
,team-slave
,vlan
,wifi
,wimax
.Chaque type de connexion contient des options de commande spécifiques à un type. Appuyer sur Tab pour en obtenir une liste ou pour voir la listeTYPE_SPECIFIC_OPTIONS
dans la page mannmcli(1)
. L'optiontype
s'applique après les commandes suivantes :nmcli connection add
etnmcli connection edit
. con-name
— le nom assigné à un profil de connexion.- Si vous n'indiquez pas de nom de connexion, il sera généré suivant le format suivant :
type
-ifname[-number]Le nom de connexion est le nom d'un profil de connexion et ne doit pas être confondu avec le nom de l'interface qui représente un périphérique comme wlan0, ens3, em1 et ainsi de suite). Les utilisateurs peuvent toutefois nommer les connexions d'après les interfaces, mais ce n'est pas la même chose. Il peut y avoir plusieurs profils de connexion pour un périphérique. Ceci est particulièrement utile pour les appareils mobiles ou quand on fait des changements de câble réseau entre différents appareils. Plutôt que de modifier la configuration, créer des profils différents et les appliquer à l'interface selon les besoins. L'optionid
fait également référence au nom du profil de connexion. id
— une chaîne d'identification assignée par l'utilisateur à un profil de connexion.- L'ID peut être utilisé avec les commandes
nmcli connection
pour identifier une connexion. Le champ NAME figurant dans la sortie indique l'ID de connexion (nom). Il se rapporte au même nom de connexion que celui ducon-name
. uuid
— une chaîne d'identification unique assignée par le système à un profil de connexion.- L'UUID peut être utilisé par les commandes
nmcli connection
pour identifier une connexion.
2.3.2. Se connecter à réseau par nmcli
Pour obtenir une liste des connexions de réseau disponibles, lancez la commande suivante :
~]$ nmcli con show
NAME UUID TYPE DEVICE
Auto Ethernet 9b7f2511-5432-40ae-b091-af2457dfd988 802-3-ethernet --
ens3 fb157a65-ad32-47ed-858c-102a48e064a2 802-3-ethernet ens3
MyWiFi 91451385-4eb8-4080-8b82-720aab8328dd 802-11-wireless wlan0
Notez que le champ de nom NAME dans la sortie indique toujours l'ID de connexion (nom). Il ne correspond pas au nom de l'interface même s'il a le même aspect. Pour la seconde connexion mentionnée ci-dessus, ens3
du champ NAME correspond à l'ID de connexion donné au profil qui s'applique à l'interface ens3. Dans la dernière connexion ci-dessus, l'utilisateur assigne l'ID de connexion MyWiFi
à l'interface wlan0.
L'ajout d'une connexion Ethernet revient à créer un profil de configuration, qui est alors assigné à un périphérique. Avant de créer un nouveau profil, vérifiez les périphériques suivants :
~]$ nmcli dev status
DEVICE TYPE STATE CONNECTION
ens3 ethernet disconnected --
ens9 ethernet disconnected --
lo loopback unmanaged --
Ajouter une connexion Ethernet dynamique
Pour ajouter un profil de configuration Ethernet à une configuration
IP
dynamique, ce qui permet à DHCP
d'assigner la configuration de réseau, on peut utiliser une commande du format suivant : nmcli connection add type ethernet con-name connection-name ifname interface-name
Ainsi, pour créer un profil de connexion dynamique nommé my-office, exécutez la commande suivante :
~]$ nmcli con add type ethernet con-name my-office ifname ens3
Connection 'my-office' (fb157a65-ad32-47ed-858c-102a48e064a2) successfully added.
NetworkManager définira son paramètre interne connection.autoconnect
à yes
. Le NetworkManager inscrira également des paramètres de config dans /etc/sysconfig/network-scripts/ifcfg-my-office
avec la directive ONBOOT définie sur yes
.
Notez que les changements manuels apportés au fichier ifcfg ne seront pas remarqués par le NetworkManager tant que l'interface n'est pas appelée à nouveau. Voir Section 1.9, « Configuration de réseau par les fichiers sysconfig » pour obtenir plus d'informations sur la façon d'utiliser les fichiers de configuration.
Pour afficher la connexion Ethernet, exécuter la commande suivante :
~]$ nmcli con up my-office
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)
Pour vérifier le statut des périphériques et des connexions :
~]$ nmcli device status
DEVICE TYPE STATE CONNECTION
ens3 ethernet connected my-office
ens9 ethernet disconnected --
lo loopback unmanaged --
Pour modifier le nom d'un hôte envoyé par un hôte à un serveur
DHCP
, modifier la propriété dhcp-hostname
comme suit :
~]$ nmcli con modify my-office my-office ipv4.dhcp-hostname host-name ipv6.dhcp-hostname host-name
Pour modifier l'ID client
IPv4
envoyé par un hôte à un serveur DHCP
, modifier la propriété dhcp-client-id
comme suit :
~]$ nmcli con modify my-office my-office ipv4.dhcp-client-id client-ID-string
Il n'y a pas de propriété dhcp-client-id
pour IPv6
, le dhclient crée un identifiant pour IPv6
. Voir la page man dhclient(8)
pour plus d'informations.
Pour ignorer les serveurs
DNS
envoyés à un hôte par un serveur DHCP
, modifier la propriété ignore-auto-dns
comme suit :
~]$ nmcli con modify my-office my-office ipv4.ignore-auto-dns yes ipv6.ignore-auto-dns yes
Voir la page man
nm-settings(5)
pour obtenir plus d'informations sur les propriétés et leurs paramètres de configurations.
Exemple 2.1. Configurer une connexion Ethernet dynamique par l'éditeur interactif
Pour configurer une connexion Ethernet dynamique par l'éditeur interactif, exécuter les commandes suivantes :
~]$ nmcli con edit type ethernet con-name ens3
===| nmcli interactive connection editor |===
Ajouter une nouvelle connexion '802-3-ethernet'
Tapez 'help' ou '?' pour interroger les commandes disponibles.
Tapez 'describe [<setting>.<prop>]' pour obtenir une description de propriété détaillée.
Vous pouvez modifier les paramètres suivants : connection, 802-3-ethernet (ethernet), 802-1x, ipv4, ipv6, dcb
nmcli> describe ipv4.method
=== [method] ===
[NM property description]
IPv4 configuration method. Si 'auto' est spécifié, alors la méthode automatique (DHCP, PPP, etc) qui convient sera utilisée par l'interface, et la plupart des autres propriétés devront demeurer non définies. Si 'link-local' est spécifié, alors une adresse de lien-local dans l'intervalle de valeurs 169.254/16 sera assignée à l'interface. Si 'manual' est spécifié, l'adressage IP statique est utilisé, et une adresse IP au moins devra être donnée dans la propriété 'addresses' . Si 'shared' est spécifié (indiquant ainsi que cette connexion donnera un accès réseau à d'autres machines) alors, l'interface reçoit une adresse dans la plage de valeurs 10.42.x.1/24 et un DHCP, le serveur de transfert DNS est démarré, et l'interface est en NAT-ed dans la connexion réseau courante par défaut. 'disabled' signifie qu' IPv4 ne sera pas utilisé pour cette connnexion. Cette propriété devra être définie.
nmcli> set ipv4.method auto
nmcli> save
Sauvegarde de la connexion avec 'autoconnect=yes'. Peut résulter en activation immédiate de la connexion.
Souhaitez-vous toujours sauvegarder ? [yes] yes
Connexion 'ens3' (090b61f7-540f-4dd6-bf1f-a905831fc287) sauvegardée.
nmcli> quit
~]$
L'action par défaut est de conserver le profil de connexion persistant. Si nécessaire, le profil peut être contenu en mémoire uniquement, jusqu'au prochain démarrage, par la commande save temporary
.
Ajouter une connexion Ethernet statique
Pour ajouter une connexion Ethernet ayant une configuration
IPv4
statique, utiliser une commande sous le format suivant : nmcli connection add type ethernet con-name connection-name ifname interface-name ip4 address gw4 address
IPv6
. L'adresse et la passerelle peuvent être ajoutées en utilisant les options ip6
et gw6
.
Par exemple, voici une commande pour créer une connexion Ethernet statique avec l'adresse
IPv4
et une passerelle :
~]$En option, spécifier en même temps l'adressenmcli con add type ethernet con-name test-lab ifname ens9 ip4 10.10.10.10/24 \
gw4 10.10.10.254
IPv6
et la passerelle pour le périphérique comme suit :
~]$NetworkManager définira son paramètre internenmcli con add type ethernet con-name test-lab ifname ens9 ip4 10.10.10.10/24 \
gw4 10.10.10.254 ip6 abbe::cafe gw6 2001:db8::1
Connection 'test-lab' (05abfd5e-324e-4461-844e-8501ba704773) successfully added.
ipv4.method
à manual
et connection.autoconnect
à yes
. Le NetworkManager inscrira également des paramètres de config dans /etc/sysconfig/network-scripts/ifcfg-my-office
avec la directive BOOTPROTO définie sur none
et ONBOOT définie sur yes
..
Notez que les changements manuels apportés au fichier ifcfg ne seront pas remarqués par le NetworkManager tant que l'interface n'est pas appelée à nouveau. Voir Section 1.9, « Configuration de réseau par les fichiers sysconfig » pour obtenir plus d'informations sur la façon d'utiliser les fichiers de configuration.
Pour définir deux adresses de serveur
IPv4
DNS
:
~]$ nmcli con mod test-lab ipv4.dns "8.8.8.8 8.8.4.4"
Notez que cela remplacera tous les serveurs DNS
déjà définis. Pour définir deux adresses de serveur IPv6
DNS
:
~]$ nmcli con mod test-lab ipv6.dns "2001:4860:4860::8888 2001:4860:4860::8844"
Notez que cela remplacera tous les serveurs DNS
déjà définis. Pour ajouter deux serveurs DNS
à un serveur déjà défini, utiliser le préfixe +
comme suit :
~]$ nmcli con mod test-lab +ipv4.dns "8.8.8.8 8.8.4.4"
~]$ nmcli con mod test-lab +ipv6.dns "2001:4860:4860::8888 2001:4860:4860::8844"
Pour afficher la nouvelle connexion Ethernet, exécuter la commande suivante :
~]$ nmcli con up test-lab ifname ens9
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)
Pour vérifier le statut des périphériques et des connexions :
~]$ nmcli device status
DEVICE TYPE STATE CONNECTION
ens3 ethernet connected my-office
ens9 ethernet connected test-lab
lo loopback unmanaged --
Pour vérifier les informations détaillées sur la connexion configurée, veuillez exécuter la commande suivante :
~]$ nmcli -p con show test-lab
===============================================================================
Connection profile details (test-lab)
===============================================================================
connection.id: test-lab
connection.uuid: 05abfd5e-324e-4461-844e-8501ba704773
connection.interface-name: ens9
connection.type: 802-3-ethernet
connection.autoconnect: yes
connection.timestamp: 1410428968
connection.read-only: no
connection.permissions:
connection.zone: --
connection.master: --
connection.slave-type: --
connection.secondaries:
connection.gateway-ping-timeout: 0[output truncated]
L'option -p, --pretty
ajoute un titre de bannière et une séparation de section à la sortie.
Exemple 2.2. Configurer une connexion Ethernet statique par l'éditeur interactif
Pour configurer une connexion Ethernet statique par l'éditeur interactif, exécuter la commande suivante :
~]$ nmcli con edit type ethernet con-name ens3
===| nmcli interactive connection editor |===
Ajouter une nouvelle connexion '802-3-ethernet'
Tapez 'help' ou '?' pour interroger les commandes disponibles.
Tapez 'describe [<setting>.<prop>]' pour obtenir une description de propriété détaillée.
Vous pouvez modifier les paramètres suivants : connection, 802-3-ethernet (ethernet), 802-1x, ipv4, ipv6, dcb
nmcli> set ipv4.routes 192.168.122.88/24
Souhaitez-vous également définir 'ipv4.method' à 'manual'? [yes]: yes
nmcli>
nmcli> save temporary
Sauvegarde de la connexion avec 'autoconnect=yes'. Peut résulter en activation immédiate de la connexion.
Souhaitez-vous toujours sauvegarder ? [yes] no
nmcli> save
Souhaitez-vous toujours sauvegarder ? [yes] yes
Connexion 'ens3' (704a5666-8cbd-4d89-b5f9-fa65a3dbc916) sauvegardée.
nmcli> quit
~]$
L'action par défaut est de conserver le profil de connexion persistant. Si nécessaire, le profil peut être contenu en mémoire uniquement, jusqu'au prochain démarrage, par la commande save temporary
.
Verrouiller un profil sur un périphérique particulier
Pour verrouiller un profil à une interface spécifique, les commandes utilisées dans les exemples ci-dessus incluent le nom de l'interface. Par exemple :
nmcli connection add type ethernet con-name connection-name ifname interface-name. Pour rendre un profil utilisable par toutes les interfaces Ethernet compatibles, exécuter une commande comme :
nmcli connection add type ethernet con-name connection-name ifname "*". Notez que vous devez utiliser l'argument
ifname
même si vous ne souhaitez pas définir une interface spécifique. Utilisez le caractère générique *
pour spécifier que le profil puisse être utilisé avec n'importe quel périphérique compatible.
Pour verrouiller un profil à une adresse MAC particulière, utilisez une commande sous le format suivant :
nmcli connection add type ethernet con-name "connection-name" ifname "*" mac 00:00:5E:00:53:00
Ajout d'une connexion Wi-Fi
Pour afficher les points d'accès Wi-Fi, exécutez une commande comme suit :
~]$ nmcli dev wifi list
SSID MODE CHAN RATE SIGNAL BARS SECURITY
FedoraTest Infra 11 54 MB/s 98 ▂▄▆█ WPA1
Red Hat Guest Infra 6 54 MB/s 97 ▂▄▆█ WPA2
Red Hat Infra 6 54 MB/s 77 ▂▄▆_ WPA2 802.1X
* Red Hat Infra 40 54 MB/s 66 ▂▄▆_ WPA2 802.1X
VoIP Infra 1 54 MB/s 32 ▂▄__ WEP
MyCafe Infra 11 54 MB/s 39 ▂▄__ WPA2
Pour créer un profil de connexion Wi-Fi avec une configuration
IP
statique, tout en autorisant l'attribution d'adresses DNS
automatiques, exécutez une commande comme suit :
~]$Pour définir un mot de passe WPA2, comme par exemple « caffeine », exécutez les commandes suivantes :nmcli con add con-name MyCafe ifname wlan0 type wifi ssid MyCafe \
ip4 192.168.100.101/24 gw4 192.168.100.1
~]$Voir le guide Red Hat Enterprise Linux 7 Security Guide pour obtenir des informations sur la sécurité des mots de passe.nmcli con modify MyCafe wifi-sec.key-mgmt wpa-psk
~]$nmcli con modify MyCafe wifi-sec.psk caffeine
Pour modifier l'état Wi-Fi, exécutez une commande sous le format suivant :
~]$ nmcli radio wifi [on | off ]
Changer une propriété spécifique
Pour vérifier une propriété particulière, comme
mtu
, exécutez une commande comme suit :
~]$ nmcli connection show id 'MyCafe' | grep mtu
802-11-wireless.mtu: auto
Pour modifier la propriété d'un paramètre de configuration, veuillez exécuter la commande suivante :
~]$ nmcli connection modify id 'MyCafe' 802-11-wireless.mtu 1350
Pour vérifier la modification, exécutez une commande comme suit :
~]$ nmcli connection show id 'MyCafe' | grep mtu
802-11-wireless.mtu: 1350
Notez que le NetworkManager fait référence à des paramètres de configuration comme
802-3-ethernet
et 802-11-wireless
et mtu
comme propriétés de configuration. Voir la page man nm-settings(5)
pour plus d'informations sur les propriétés et leurs configurations.
2.3.3. Configuration des routages statiques par nmcli
Pour configurer des routages statiques avec l'outil nmcli, on doit utiliser le mode d'édition interactive ou l'outil en lignes de commandes.
Exemple 2.3. Configuration des routages statiques par nmcli
Pour configurer un routage statique pour une connexion Ethernet existante par l'outil en lignes de commandes, exécuter les commandes suivantes :
~]# nmcli connection modify eth0 +ipv4.routes "192.168.122.0/24 10.10.10.1"
Cela dirigera le trafic du sous-réseau 192.168.122.0/24
vers la passerelle 10.10.10.1
Exemple 2.4. Configuration des routages statiques par l'éditeur nmcli
Pour configurer un routage statique pour une connexion Ethernet par l'éditeur interactif, exécuter les commandes suivantes :
~]$ nmcli con edit type ethernet con-name ens3
===| nmcli interactive connection editor |===
Ajouter une nouvelle connexion '802-3-ethernet'
Tapez 'help' ou '?' pour interroger les commandes disponibles.
Tapez 'describe [<setting>.<prop>]' pour obtenir une description de propriété détaillée.
Vous pouvez modifier les paramètres suivants : connection, 802-3-ethernet (ethernet), 802-1x, ipv4, ipv6, dcb
nmcli> set ipv4.routes 192.168.122.0/24 10.10.10.1
nmcli>
nmcli> save persistent
Sauvegarde de la connexion avec 'autoconnect=yes'. Peut résulter en activation immédiate de la connexion.
Souhaitez-vous toujours sauvegarder ? [yes] yes
Connexion 'ens3' (704a5666-8cbd-4d89-b5f9-fa65a3dbc916) sauvegardée.
nmcli> quit
~]$