systemd : Le réseau avec systemd-networkd
Table des matières
Comme vous le savez, systemd est plus qu'un système d'init et de gestion des services !
Voici quelques exemples de configuration possibles avec systemd !
Cet article sera consacré à la gestion du réseau.
Pour faire fonctionner le réseau avec systemd, nous aurons besoin de :
systemd-networkd.service => Le service réseau
systemd-resolved.service => Le service de résolution de nom
A noter que systemd-resolved peut être utilisé sans systemd-networkd.
Si on utilise systemd-networkd, il faut évidemment désactiver le service NetworkManager (ou autre gestionnaire réseau) !
Toutes les configuration réseau se trouvent dans /etc/systemd/network/.
Comme toute commande systemd, elle finit par ctl, et nous utiliserons networkctl.
Pour lister les interfaces, on peut donc utiliser :
Lorsque aucune interface n'est paramétrée, on a une sortie de ce style :
Sur la machine concernée, l'interface réseau s'appelle enp0s3.
Je vais créer le fichier /etc/systemd/network/enp0s3-ethernet.network
Exemple avec une configuration DHCP :
Exemple avec une configuration statique :
Après chaque modification, on doit redémarrer le service :
La commande networkctl list nous produit ceci une fois l'interface configurée :
Voici quelques exemples de Valeurs possibles pour chacune des sections des fichiers .network :
Introduction
Comme vous le savez, systemd est plus qu'un système d'init et de gestion des services !
Voici quelques exemples de configuration possibles avec systemd !
Cet article sera consacré à la gestion du réseau.
Le réseau avec systemd-networkd
Pour faire fonctionner le réseau avec systemd, nous aurons besoin de :
systemd-networkd.service => Le service réseau
systemd-resolved.service => Le service de résolution de nom
A noter que systemd-resolved peut être utilisé sans systemd-networkd.
Si on utilise systemd-networkd, il faut évidemment désactiver le service NetworkManager (ou autre gestionnaire réseau) !
Toutes les configuration réseau se trouvent dans /etc/systemd/network/.
Comme toute commande systemd, elle finit par ctl, et nous utiliserons networkctl.
Pour lister les interfaces, on peut donc utiliser :
Copier vers le presse-papierCode BASH :
networkctl list
Lorsque aucune interface n'est paramétrée, on a une sortie de ce style :
Copier vers le presse-papierCode BASH :
# networkctl list IDX LINK TYPE OPERATIONAL SETUP 1 lo loopback carrier unmanaged 2 enp0s3 ether routable unmanaged
Sur la machine concernée, l'interface réseau s'appelle enp0s3.
Je vais créer le fichier /etc/systemd/network/enp0s3-ethernet.network
Exemple avec une configuration DHCP :
Copier vers le presse-papierCode BASH :
[Match] Name=enp0s3 [Network] DHCP=ipv4
Exemple avec une configuration statique :
Copier vers le presse-papierCode BASH :
[Match] Name=enp0s3 [Network] Address=192.168.21.240/24 Gateway=192.168.21.254 DNS=1.1.1.1
Après chaque modification, on doit redémarrer le service :
Copier vers le presse-papierCode BASH :
systemctl restart systemd-networkd
La commande networkctl list nous produit ceci une fois l'interface configurée :
Copier vers le presse-papierCode BASH :
# networkctl list IDX LINK TYPE OPERATIONAL SETUP 1 lo loopback carrier unmanaged 2 enp0s3 ether routable configuring
Voici quelques exemples de Valeurs possibles pour chacune des sections des fichiers .network :
Copier vers le presse-papierCode :
[Match]
Name=Nom de l'interface
MACAddress=Adresse MAC de l'interface
[Link]
MACAddress=Changer l'adresse MAC
MTUBytes=Changer la valeur du MTU
[Network]
DHCP=ipv4 ou ipv6 (si non indiqué, vaut false)
Address=IP fixe (si DHCP non actif)
Gateway=IP du routeur (si DHCP non actif)
DNS=IP du DNS