Fichiers de conf réseau

Les configurations réseau sont stockées dans le fichier /etc/NetworkManager/system-connections/, et toutes les modifications effectuées avec la commande nmcli y sont ajoutées.

Modifier la configuration via le fichier de conf

Il est possible de directement modifier la configuration réseau directement dans les fichiers nommés /etc/NetworkManager/system-connections/<name>.nmconnection, où name est le nom du périphérique ou de la connexion.

NetworkManager utilise les répertoires suivants pour stocker les fichiers de configuration :

  • /etc/NetworkManager/system-connections/
    • profils persistants créés ou modifiés par l’utilisateur
  • /run/NetworkManager/system-connections/
    • profils temporaires et automatiquement supprimés lors d’un reboot
  • /usr/lib/NetworkManager/system-connections/
    • profils immuables prédéfinis, si modifés avec NetworkManager, seront copiés dans les profils persistants ou temporaires

Exemple de contenu de fichier de configuration pour la configuration IPv4 statique :

[connection]
id=ens192
uuid=7c5c9fce-32e8-3a2d-a772-f694e5c2a675
type=ethernet
autoconnect=true

[ipv4]
method=manual

[802-3-ethernet]
mac-address=00:23:45:67:89:AB

Comparaison syntaxe fichier/commande

Comparaison des paramètres NetworkManager et des fichiers dans /etc/NetworkManager/system-connections/ :

Options de nmcli con mod Fichier *.nmconnection But
ipv4.addresses 192.0.2.1/24 [ipv4]
address1=192.0.2.1/24
Définir une @IPv4 statique
ipv4.gateway 192.0.2.254 [ipv4]
gateway=192.0.2.254
Définir passerelle par defaut
ipv4.dns 8.8.8.8 [ipv4]
dns=8.8.8.8
Modifie resolv.conf pour les DNS
ipv4.dns-search example.com [ipv4]
dns-search=example.com
Modifie resolv.conf pour search
ipv4.ignore-auto-dns true [ipv4]
ignore-auto-dns=true
Ignore les infos DNS du DHCP
ipv6.method manual [ipv6]
method=manual
Définir une @IPv6 statique
ipv6.method auto [ipv6]
method=auto
Configuration de leréseau avec SLAAC
ipv6.method dhcp [ipv6]
method=dhcp
Configuration de leréseau avec DHCPv6
ipv6.addresses 2001:db8::a/64 [ipv6]
address1=2001:db8::a/64
Définir une @IPv6 statique
ipv6.gateway 2001:db8::1 [ipv6]
gateway=2001:db8::1
Définir passerelle par defaut
ipv6.dns fde2:6494:1e09:2::d [ipv6]
dns=fde2:6494:1e09:2::d
Modifie resolv.conf pour les DNS
ipv6.dns-search example.com [ipv6]
dns-search=example.com
Modifie resolv.conf pour search
ipv6.ignore-auto-dns true [ipv6]
ignore-auto-dns=true
Ignore les infos DNS du DHCP
connection.autoconnect yes [connection]
autoconnect=true
Activation auto de la co au démar.
connection.id ens3 [connection]
id=Main eth0
Nom de le connexion
connection.interfacename ens3 [connection]
interface-name=ens3
Connexion de inter. réseau au nom
802-3-ethernet.macaddress 32: [802-3-ethernet]
mac-address=32:..
Liaison interface à une @MAC

/!\ Résumé des commandes

Commandes :

# nmcli con mod ipv4.addresses 192.0.2.1/24   // Définir une @IPv4 statique        
# nmcli con mod ipv4.gateway 192.0.2.254 // Définir passerelle par defaut
# nmcli con mod ipv4.dns 8.8.8.8 // Modifie `resolv.conf` pour les DNS
# nmcli con mod ipv4.dns-search example.com // Modifie `resolv.conf` pour search
# nmcli con mod ipv4.ignore-auto-dns true // Ignore les infos DNS du DHCP
# nmcli con mod ipv6.method manual // Définir une @IPv6 statique
# nmcli con mod ipv6.method auto // Configuration de leréseau avec SLAAC
# nmcli con mod ipv6.method dhcp // Configuration de leréseau avec DHCPv6
# nmcli con mod ipv6.addresses 2001:db8::a/64 // Définir une @IPv6 statique
# nmcli con mod ipv6.gateway 2001:db8::1 // Définir passerelle par defaut
# nmcli con mod ipv6.dns fde2:6494:1e09:2::d // Modifie `resolv.conf` pour les DNS
# nmcli con mod ipv6.dns-search example.com // Modifie `resolv.conf` pour search
# nmcli con mod ipv6.ignore-auto-dns true // Ignore les infos DNS du DHCP
# nmcli con mod connection.autoconnect yes // Activation auto de la co au démar.
# nmcli con mod connection.id ens3 // Nom de le connexion
# nmcli con mod connection.interfacename ens3 // Connexion de inter. réseau au nom
# nmcli con mod 802-3-ethernet.macaddress 32: // Liaison interface à une @MAC

Fichiers :

/etc/NetworkManager/system-connections/                     // profils persistants créés ou modifiés par l’utilisateur
/etc/NetworkManager/system-connections/<name>.nmconnection // fichier de l'interface <name>
/run/NetworkManager/system-connections/ // profils temporaires et automatiquement supprimés lors d’un reboot
/usr/lib/NetworkManager/system-connections/ // profils immuables prédéfinis, si modifés seront copiés dans les profils persistants ou temporaires

Cas pratiques

Modification des fichiers de configuration réseau

La connexion active est appelée WiredCon1 et sa configuration se trouve dans /etc/NetworkManager/systemconnections/WiredCon1.nmconnection.

[aline@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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 52:54:00:00:ff:aa brd ff:ff:ff:ff:ff:ff
altname enp11s0
altname ens3
[aline@SERVER01~]$ nmcli con show --active
NAME        UUID                                  TYPE      DEVICE
WiredCon1 a98936a-25c0-aaaa-bbbb-f413fc05758fe ethernet eth0
[aline@SERVER01~]$ ls /etc/NetworkManager/system-connections/
WiredCon1.nmconnection

Modification du fichier /etc/NetworkManager/system-connections/WiredCon1.nmconnection pour ajouter l’adresse 192.168.121/24

[root@SERVER01 ~]# vim /etc/NetworkManager/system-connections/WiredCon1.nmconnection
1.nmconnection"
[...]
[ipv4]
address1=192.168.1.110/24,192.168.1.254
address2=192.168.121/24
[...]

Activation de la nouvelle adresse réseau avec la commande nmcli :

[root@SERVER01 ~]# nmcli con reload

Activation de la connexion avec les modifications :

[root@SERVER01 ~]# nmcli con up "WiredCon1"
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)

Vérification que la nouvelle adresse IP soit correctement attribuée :

[root@SERVER01 ~]# ip -br addr show eth0
eth0: UP 192.168.1.110/24 192.168.121/24 fe80::6fed:5a11:4ad4:1bcf/64

Modification du fichier de configuration sur SERVER02 en ajoutant l’adresse 192.168.122/24 comme 2eme adresse sous la première adresse dans le fichier :

[root@SERVER02 ~]# vim /etc/NetworkManager/system-connections/WiredCon1.nmconnection
WiredCon1.nmconnection"
address1=192.168.1.11/24,192.168.1.254
address2=192.168.122/24

Reload des modifications :

[root@SERVER02 ~]# nmcli con reload

Activation de la connexion avec les modifications :

[root@SERVER02 ~]# nmcli con up "WiredCon1"
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)

Vérification que la nouvelle adresse IP soit correctement attribuée :

[root@SERVER02 ~]# ip -br addr show eth0
eth0 UP 192.168.1.11/ip 192.168.122/24 fe80::6be8:6651:4280:892c/64

Test de connectivité entre les machines SERVER01 et SERVER02 avec les nouvelles adresses réseau :

[root@SERVER02 ~]# ping -c3 192.168.121
PING 192.168.121 (192.168.121) 56(84) bytes of data.
64 bytes from 192.168.121: icmp_seq=1 ttl=64 time=1.30 ms
64 bytes from 192.168.121: icmp_seq=2 ttl=64 time=0.983 ms
64 bytes from 192.168.121: icmp_seq=3 ttl=64 time=0.312 ms

--- 192.168.121 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 0.312/0.864/1.297/0.410 ms

Accès à la machine SERVER01 en tant qu’utilisateur aline pour effectuer un test ping sur la nouvelle adresse de la machine SERVER02 :

[root@SERVER01 ~]# ping -c3 192.168.122
PING 192.168.122 (192.168.122) 56(84) bytes of data.
64 bytes from 192.168.122: icmp_seq=1 ttl=64 time=0.876 ms
64 bytes from 192.168.122: icmp_seq=2 ttl=64 time=0.310 ms
64 bytes from 192.168.122: icmp_seq=3 ttl=64 time=0.289 ms
--- 192.168.122 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2047ms
rtt min/avg/max/mdev = 0.289/0.491/0.876/0.271 ms

Gestion de la mise en réseau

Configuration de 2 adresses IPv4 statiques pour l’interface réseau principale.

Création d’une connexion avec une configuration de réseau statique à l’aide des paramètres suivant :

Paramètre Paramètre
Nom de la connexion labo_Connexion
Interface name enX (peut varier)
adresse IP 192.168.1.11/24
Adresse de la passerelle 192.168.1.254
Adresse DNS 192.168.1.254

Trouver le nom de l’interface de la connexion active actuelle :

[root@SERVER02 ~]# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULTgroup default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:99:89:52:dd brd ff:ff:ff:ff:ff:ff
altname enp11s0
altname ens3

Trouver le nom de la connexion active actuelle :

[root@SERVER02 ~]# nmcli con show --active
NAME          UUID                                   TYPE      DEVICE
System eth0 4b6f8677-6ffb-4ee6-9f5c-d6ee1e3df5503 ethernet eth0

Création du profil de connexion labo_Connexion en fonction des informations du tableau et association du profil à l’interface réseau indiquée dans la sortie de la commande ip link précédente :

[root@SERVER02 ~]# nmcli con add con-name labo_Connexion ifname eth0 type ethernet ipv4.method manual ipv4.dns 192.168.1.254 ipv4.addresses 192.168.1.11/24 ipv4.gateway 192.168.1.254
Connection 'labo_Connexion' (b35aa560-2b5a-4898-87ee-1279845bf3ad) successfully added.

Configuration de la nouvelle connexion pour qu’elle démarre automatiquement. Les autres connexions ne doivent pas démarrer automatiquement :

[root@SERVER02 ~]# nmcli con mod "labo_Connexion" connection.autoconnect yes
[root@SERVER02 ~]# nmcli con mod "System eth0" connection.autoconnect no

Modification de la nouvelle connexion afin qu’elle utilise également l’adresse IP 10.0.1.1/24 :

[root@SERVER02 ~]# nmcli con mod "labo_Connexion" +ipv4.addresses 10.0.1.1/24

Modification du fichier de configuration pour ajouter l’adresse 10.0.1.1/24 comme deuxième adresse :

[root@SERVER02 ~]# vim /etc/NetworkManager/system-connections/labo_Connexion.nmconnection
address2=10.0.1.1/24

Configuration du fichier hosts de sorte pour faire référence à l’adresse IP 10.0.1.1 avec le nom private :

[root@SERVER02 ~]# echo "10.0.1.1 private" >> /etc/hosts

Après un rédemarrage, vérification que la machine SERVER02 est initialisée :

[student@workstation ~]$ ping -c3 SERVER02
PING SERVER02.labo_Connexion.example.com (192.168.1.11) 56(84) bytes of data.
64 bytes from SERVER02.labo_Connexion.example.com (192.168.1.11): icmp_seq=1 ttl=64 time=0.478 ms
64 bytes from SERVER02.labo_Connexion.example.com (192.168.1.11): icmp_seq=2 ttl=64 time=0.504 ms
64 bytes from SERVER02.labo_Connexion.example.com (192.168.1.11): icmp_seq=3 ttl=64 time=0.513 ms

--- SERVER02.labo_Connexion.example.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 78ms
rtt min/avg/max/mdev = 0.478/0.498/0.513/0.023 ms

Documentation

MAN nmcli(1)
MAN nm-settings(5)
MAN nm-settings-keyfile(5)

> Partager <