Configuration Réseau

NetworkManager surveille et gère de façon dynamique les périphériques et les connexions réseau d’un système et les fichiers de configuration sont stockés dans le répertoire /etc/NetworkManager/system-connections/.

  • Chaque connexion doit avoir un nom ou un ID unique
  • Un périphérique peut avoir plusieurs configurations de connexion et basculer entre elles
  • Une seule connexion peut être active par périphérique

Commande nmcli

Extrait de l’aide pour nmcli :

Commandes Explication
nmcli dev status Affiche le statut de toutes les interfaces réseau
nmcli con show [--active] Liste toutes les connexions
nmcli con show <name> Liste les paramètres actuels de la connexion
nmcli con add con-name <name> Ajoute et nomme un nouveau profil de connexion
nmcli con mod <name> Modifie la connexion
nmcli con reload Recharge les fichiers de configuration
nmcli con up <name> Active la connexion
nmcli dev dis dev Déconnecte l’interface et également la connexion en cours
nmcli con del <name> Supprime la connexion et son fichier de configuration

Configuration du réseau

Affichage des informations

Affichage des informations réseau :

# nmcli dev status
DEVICE TYPE STATE CONNECTION
eno1 ethernet connected eno1
ens3 ethernet connected static-ens3
eno2 ethernet disconnected --
lo loopback unmanaged --

Affichage d’une liste de toutes les connexions :

# nmcli con show
NAME UUID TYPE DEVICE
eno2 ff9f7d69-db83-4fed-9f32-939f8b5f81cd 802-3-ethernet --
static-ens3 72ca57a2-f780-40da-b146-99f71c431e2b 802-3-ethernet ens3
eno1 87b53c56-1f5d-4a29-a869-8a7bdaf56dfa 802-3-ethernet eno1
# nmcli con show --active
NAME UUID TYPE DEVICE
static-ens3 72ca57a2-f780-40da-b146-99f71c431e2b 802-3-ethernet ens3
eno1 87b53c56-1f5d-4a29-a869-8a7bdaf56dfa 802-3-ethernet eno1

Affichage des permissions (de l’user qui lance la commande) :

# nmcli gen permissions
PERMISSION VALUE
[...]
org.freedesktop.NetworkManager.enable-disable-wifi yes
org.freedesktop.NetworkManager.enable-disable-wimax yes
org.freedesktop.NetworkManager.enable-disable-wwan yes
org.freedesktop.NetworkManager.network-control yes
org.freedesktop.NetworkManager.reload yes
org.freedesktop.NetworkManager.settings.modify.global-dns yes
org.freedesktop.NetworkManager.settings.modify.hostname yes
org.freedesktop.NetworkManager.settings.modify.own yes
org.freedesktop.NetworkManager.settings.modify.system yes
org.freedesktop.NetworkManager.sleep-wake yes
org.freedesktop.NetworkManager.wifi.scan yes
org.freedesktop.NetworkManager.wifi.share.open yes
org.freedesktop.NetworkManager.wifi.share.protected yes

Ajout de connexions

Ajouter une connexion eno2 de type ethernet pour l’interface réseau eno2 :

# nmcli connection add con-name eno2 type ethernet ifname eno2
Connection 'eno2' (da7d7251-bc1d-457d-9c95-ef14e8253d4a) successfully added.

Créer une connexion eno3 de type ethernet pour l’interface réseau eno3 avec un paramètre réseau IPv4 statique et configurer l’adresse IP 192.168.1.5 avec le préfixe réseau /24 et la passerelle réseau 192.168.1.254

# nmcli connection add con-name eno3 type ethernet ifname eno3 ipv4.method manual ipv4.addresses 192.168.1.115/24 ipv4.gateway 192.168.1.254
Connection 'eno3' (1a6cf3ca-349a-4a7a-b2f1-bd8167706f03) successfully added.

Créer la connexion eno4 du périphérique eno4 avec les adresses IPv6 et IPv4 statiques et l’adresse IPv6 2001:db8:0:1::c000:207 avec le préfixe réseau /64 et l’adresse 2001:db8:0:1::1 comme passerelle par défaut, ainsi que l’adresse IPv4 192.168.2.7 avec le préfixe réseau /24 et l’adresse 192.168.2.1 comme passerelle par défaut.

# nmcli con add con-name eno4 type ethernet ifname eno4 ipv6.addresses 2001:db8:0:1::c000:207/64 ipv6.gateway 2001:db8:0:1::1 ipv6.method manual ipv4.addresses 192.168.2.7/24 ipv4.gateway 192.168.2.1 ipv4.method manual
Connection 'eno4' (480fedd2-7b86-48ab-a1a4-432856c7a98b) successfully added.

Définir pour la connexion static-ens3 l’adresse IPv4 192.168.2.2/24 et la passerelle par défaut 192.168.2.254 :

#  nmcli con mod static-ens3 ipv4.addresses 192.168.2.2/24 ipv4.gateway 192.168.2.254 connection.autoconnect yes

Définir pour la connexion static-ens3 l’adresse IPv6 2001:db8:0:1::a00:1/64 et la passerelle par défaut 2001:db8:0:1::1 :

# nmcli con mod static-ens3 ipv6.addresses 2001:db8:0:1::a00:1/64 ipv6.gateway 2001:db8:0:1::1

Ajouter le serveur DNS à la connexion static-ens3 :

# nmcli con mod static-ens3 +ipv4.dns 2.2.2.2

Activation d’un périphérique

Activer un périphérique réseau :

# nmcli con up static-ens3
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)

Deconnexion de périphérique

Déconnecter un périphérique réseau et interrompre la connexion :

# nmcli dev disconnect ens3

Appliquer les modifications

Toutes modifications peuvent être effectuées via /etc/NetworkManager/system-connections/.

# ls /etc/NetworkManager/system-connections/
eno2.nmconnection    eno3.nmconnection    eno4.nmconnection    ens192.nmconnection

Contenu de eno4.nmconnection :

# cat /etc/NetworkManager/system-connections/eno4.nmconnection
[connection]
id=eno4
uuid=480fedd2-7b86-48ab-a1a4-432856c7a98b
type=ethernet
interface-name=eno4

[ethernet]

[ipv4]
address1=192.0.2.7/24,192.0.2.1
method=manual

[ipv6]
addr-gen-mode=default
address1=2001:db8:0:1::c000:207/64,2001:db8:0:1::1
method=manual

[proxy]

Si la commande nmcli est utilisée, elle communiquent directement avec NetworkManager pour écrire dans le fichier mais il faudra utiliser nmcli con reload pour les appliquer.

Charger tous les profils de connexion :

# nmcli con reload

Charge uniquement le profil de connexion eno2 dans /etc/NetworkManager/system-connections/eno2.nmconnection :

# nmcli con reload eno2

Supprimer une connexion

Supprimer une connexion du système :

# nmcli con del static-ens3

/!\ Résumé des commandes

Commandes :


# nmcli dev status // Affiche le statut NetworkManager de toutes les interfaces réseau
# nmcli con show [--active] // Liste toutes les connexions
# nmcli con show name // Liste les paramètres actuels de la connexion nom
# nmcli con add con-name name // Ajoute et nomme un nouveau profil de connexion
# nmcli con mod name // Modifie la connexion nom
# nmcli con reload // Recharge les fichiers de configuration, après la modification manuelle des fichiers
# nmcli con up name // Active la connexion nom
# nmcli dev dis dev // Déconnecte l’interface, ce qui désactive également la connexion en cours
# nmcli con del name // Supprime la connexion spécifiée et son fichier de configuration

# nmcli dev disconnect ens3

# nmcli gen permissions

Fichiers :

/etc/NetworkManager/system-connections/

Cas pratiques

Localisation du nom de l’interface réseau associé à l’adresse Ethernet 00:0c:29:a9:52:d1 :

[root@server01 ~]# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:a9:52:d1 brd ff:ff:ff:ff:ff:ff
altname enp11s0

Affichage d’uniquement les connexions actives avec nmcli con show --active :

[root@server01 ~]# nmcli connection show --active
NAME    UUID                                  TYPE      DEVICE
ens192 7c5c9fce-32e8-3a2d-a772-f694e5c2a675 ethernet ens192
lo 4b6f8677-6ffb-4ee6-9f5c-0b33f3140f32 loopback lo

Affichage de tous les paramètres de configuration de la connexion active :

[root@server01 ~]# nmcli con show "ens192"
connection.id:                          ens192
connection.uuid: 7c5c9fce-32e8-3a2d-a772-f694e5c2a675
connection.stable-id: --
connection.type: 802-3-ethernet
connection.interface-name: ens192
connection.autoconnect: yes
[...]
ipv4.method: manual
ipv4.dns: 8.8.8.8
ipv4.dns-search: my.domain.org, domain.org
ipv4.dns-options: --
ipv4.dns-priority: 0
ipv4.addresses: 192.168.1.115/24
ipv4.gateway: 192.168.1.254
[...]
ipv6.method: auto
ipv6.dns: --
ipv6.dns-search: --
ipv6.dns-options: --
ipv6.dns-priority: 0
ipv6.addresses: --
ipv6.gateway: --
ipv6.routes: --
[...]
GENERAL.NAME: ens192
GENERAL.UUID: ec3a15fb-2e26-3254-9433-90c66981e924
GENERAL.DEVICES: ens192
GENERAL.IP-IFACE: ens192
GENERAL.STATE: activated
GENERAL.DEFAULT: yes
[...]

Affichage du statut des périphériques :

[root@server01 ~]# nmcli dev status
DEVICE  TYPE      STATE                   CONNECTION
ens192 ethernet connected ens192
lo loopback connected (externally) lo

Affichage des paramètres du périphérique ens192 :

[root@server01 ~]# nmcli device show ens192
GENERAL.DEVICE:                         ens192
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 00:0C:29:A9:52:D1
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: ens192
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
WIRED-PROPERTIES.CARRIER: on
IP4.ADDRESS[1]: 192.168.1.111/24
IP4.GATEWAY: 192.168.1.1
IP4.ROUTE[1]: dst = 192.168.1.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 192.168.1.1, mt = 100
IP4.DNS[1]: 8.8.8.8
IP4.DOMAIN[1]: home.arpa
IP6.ADDRESS[1]: fe80::200:29ff:feaa:52d1/64
IP6.GATEWAY: fe80::200:29ff:fe88:cddd
IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 1024
IP6.ROUTE[2]: dst = ::/0, nh = fe80::200:29ff:fe88:cddd, mt = 100
IP6.SEARCHES[1]: home.arpa

Création d’une connexion statique avec la même adresse IPv4, le même préfixe réseau et la même passerelle par défaut que la connexion active appelée static-addr :

[root@server01 ~]# nmcli connection add con-name static-addr ifname ens192 type ethernet ipv4.method manual ipv4.dns 8.8.8.8 ipv4.addresses 192.168.1.115/24 ipv4.gateway 192.168.1.254
Connection 'static-addr' (0759a270-41f6-418a-973d-d0d04ea94c9b) successfully added.

Affichage de toutes les connexions :

[root@server01 ~]# nmcli con show
NAME UUID TYPE DEVICE
ens192 7c5c9fce-32e8-3a2d-a772-f694e5c2a675 ethernet ens192
lo 4b6f8677-6ffb-4ee6-9f5c-0b33f3140f32 loopback lo
static-addr 0759a270-41f6-418a-973d-d0d04ea94c9b ethernet --

Affichage des connexions actives :

[root@server01 ~]# nmcli con show --active
NAME UUID TYPE DEVICE
ens192 7c5c9fce-32e8-3a2d-a772-f694e5c2a675 ethernet ens192
lo 4b6f8677-6ffb-4ee6-9f5c-0b33f3140f32 loopback lo

Activation de la nouvelle connexion static-addr :

[root@server01 ~]# nmcli con up static-addr
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)

Vérification de la nouvelle connexion active :

[root@server01 ~]# nmcli connection show --active
NAME         UUID                                  TYPE      DEVICE
static-addr 0759a270-41f6-418a-973d-d0d04ea94c9b ethernet ens192
lo 4b6f8677-6ffb-4ee6-9f5c-0b33f3140f32 loopback lo

Désactivation de la connexion d’origine afin qu’elle ne démarre pas automatiquement au démarrage :

[root@server01 ~]# nmcli con mod "ens192" connection.autoconnect no

Redémarrage du système :

[root@server01 ~]# systemctl reboot
Connection to servera closed by remote host.
Connection to servera closed.

Vérification que la connexion static-addr est la connexion active :

[aline@SERVER01 ~]$ nmcli con show --active
NAME          UUID                                  TYPE      DEVICE
static-addr dc519805-48c4-4b31-b9e9-d3631cf9082c ethernet ens192

Test de la connectivité avec la nouvelle adresses IP :

[aline@SERVER01 ~]$ ip -br addr show ens192
ens192           UP             192.168.1.115/24 fe80::11dd:2345:1010:8de4/64

Test de la connectivité avec la nouvelle passerelle par défaut :

[aline@SERVER01 ~]$ ip route
default via 192.168.1.254 dev ens192 proto static metric 100
192.168.1.0/24 dev ens192 proto kernel scope link src 192.168.1.115 metric 100

Test de ping à l’adresse du DNS :

[aline@SERVER01 ~]$ ping -c3 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=64 time=0.777 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=64 time=0.431 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=64 time=0.272 ms

--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2045ms
rtt min/avg/max/mdev = 0.272/0.493/0.777/0.210 ms

Documentation

MAN NetworkManager(8)
MAN nmcli(1)
MAN nmcli-examples(5)
MAN nmsettings(5)
MAN hostnamectl(1)
MAN resolv.conf(5)
MAN hostname(5)
MAN p(8)
MAN ipaddress(8)

> Partager <