2.3. Utiliser l'outil de ligne de commandes du NetworkManager, nmcli
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.
~]$ 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
.
nmcli-examples(5)
contient un certain nombre d'exemples utiles. En voici une brève sélection :
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
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
Lancer et arrêter une interface en utilisant nmcli
nmcli con up id bond0 nmcli con up id port0 nmcli dev disconnect bond0 nmcli dev disconnect ens3
Note
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
~]$ 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]
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
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
~]$ 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.
~]$ nmcli dev status
DEVICE TYPE STATE CONNECTION
ens3 ethernet disconnected --
ens9 ethernet disconnected --
lo loopback unmanaged --
Ajouter une connexion Ethernet dynamique
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
~]$ 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
.
~]$ 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 --
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
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.
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
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
~]$ 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
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
.
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
..
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"
~]$ 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 --
~]$ 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
~]$ 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
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.
nmcli connection add type ethernet con-name "connection-name" ifname "*" mac 00:00:5E:00:53:00
Ajout d'une connexion Wi-Fi
~]$ 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
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
~]$ nmcli radio wifi [on | off ]
Changer une propriété spécifique
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
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
Exemple 2.3. Configuration des routages statiques par nmcli
~]# 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
~]$ 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
~]$