Aller au contenu

Configuration Réseau avec Systemd

Cette documentation détaille la configuration de systemd-networkd, systemd-resolved et systemd-timesyncd.

Configuration de l'interface (Networkd)

Création du dossier de configuration

Si le dossier n'existe pas déjà :

Bash
sudo mkdir -p /etc/systemd/network/

Création du fichier de configuration

Il est recommandé de nommer le fichier avec le nom de l'interface réseau pour faciliter l'identification (ex: 20-eno8303.network).

Bash
sudo nano /etc/systemd/network/20-eno8303.network

Option A : Configuration DHCP

Utilisez cette configuration pour obtenir une IP automatiquement.

INI
[Match]
Name=eno8303  # Il est important de mettre le nom exact de la carte réseau ICI

[Network]
DHCP=ipv4

Option B : Configuration IP Statique

Utilisez cette configuration pour définir une adresse fixe.

INI
[Match]
Name=eno8303 # Il est important de mettre le nom exact de la carte réseau ICI

[Network]
DHCP=no
Address=IP/CIDR
Gateway=IP

Récapitulatif des paramètres possibles

Section Paramètre Description Utilité Principale
[Match] Name= Définit les noms d'interface auxquels la configuration s'applique (par ex., enp*). Cibler l'interface physique ou virtuelle.
[Match] MACAddress= Spécifie l'adresse MAC de l'interface à cibler. Configuration matérielle spécifique.
[Network] DHCP= Active le client DHCP. yes, ipv4, ipv6, no. (Le plus courant).
[Network] Address= Configure une adresse IP statique avec son préfixe. Exemple : 192.168.1.50/24.
[Network] Gateway= Définit l'adresse IP de la passerelle par défaut. Définir la route de sortie.
[Network] DNS= Adresses IP des serveurs DNS statiques. Résolution de noms statique.
[Network] FallbackDNS= Serveurs DNS de secours utilisés si aucun autre n'est disponible. Assurer la résilience de la résolution.
[Network] IPForward= Active le transfert de paquets (routage) sur l'interface. Transformer la machine en routeur/passerelle.
[Network] IPMasquerade= Active le masquage IP (NAT de sortie). Partage de connexion simple.
[Network] MulticastDNS= Active la prise en charge de mDNS (Zeroconf). Résolution de noms sur le réseau local.
[Network] Domains= Domaines de recherche DNS (suffixe de domaine). Simplifier la résolution de noms internes.
[Link] MTUBytes= Définit la taille de l'Unité de Transmission Maximale. Optimisation de la performance ou compatibilité VPN.
[Link] MACAddressPolicy= Définit comment l'adresse MAC est gérée. Garantir une adresse MAC prévisible ou aléatoire.
[DHCPv4] RouteMetric= Priorité des routes apprises via DHCPv4. Gestion des chemins multiples.
[DHCPv4] UseDNS= Indique si les DNS fournis par DHCP doivent être utilisés. Filtrer la configuration reçue par DHCP.
[Route] Destination= Définit le réseau de destination de la route statique. Configuration d'une route spécifique.
[Route] Gateway= Passerelle pour atteindre le réseau de destination. Définir le "prochain saut" (next-hop).
[IPv6AcceptRA] Enabled= Active/désactive l'acceptation des publicités de routeurs IPv6 (RA). Autoconfiguration IPv6.

Configuration DNS (Resolved)

Installation de systemd-resolved

Bash
sudo apt install systemd-resolved

Édition du fichier de configuration

Bash
sudo nano /etc/systemd/resolved.conf

Ajoutez ou modifiez les lignes suivantes :

INI
[Resolve]
DNS=IP
FallbackDNS=IP
Domains=nom de domaine
LLMNR=no
Paramètre Description Valeurs Possibles (Exemples)
DNS= Liste des adresses IP des serveurs DNS globaux à utiliser. Adresses IP (IPv4 et/ou IPv6).
FallbackDNS= Liste des serveurs DNS de secours. Adresses IP (IPv4 et/ou IPv6).
Domains= Liste des domaines de recherche DNS globaux. example.com, localdomain, ~. (pour les serveurs par défaut).
LLMNR= Active la résolution de noms LLMNR. yes, no, resolve (seulement en mode résolveur).
MulticastDNS= Active la résolution de noms mDNS (ZeroConf). yes, no, resolve.
DNSOverTLS= Active DNS over TLS (DoT) pour les serveurs qui le supportent. yes, no, opportunistic (recommandé).
DNSSEC= Active la validation DNSSEC. yes, no, allow-downgrade.
DNSStubListener= Contrôle le fonctionnement du stub resolver sur l'interface de bouclage. yes, no, tcp (pour écouter en TCP).
DNSStubListenerExtra= Permet d'écouter les requêtes DNS sur d'autres adresses/interfaces que 127.0.0.53. Liste d'adresses IP ou d'interfaces (par ex. 10.0.0.1, eth0).
ReadEtcHosts= Spécifie si le service doit lire /etc/hosts. yes, no.

Configuration NTP (Timesyncd)

Installation de systemd-timesyncd

Bash
sudo apt install systemd-timesyncd

Édition de la configuration NTP

Bash
sudo nano /etc/systemd/timesyncd.conf

Ajoutez ou modifiez les lignes suivantes :

INI
[Time]
NTP=0.pool.ntp.org 1.pool.ntp.org
Paramètre Description Valeurs Possibles (Exemples) Utilité Principale
NTP= Liste des adresses (noms d'hôte ou IP) des serveurs NTP principaux. ntp.example.com, 0.pool.ntp.org Définir les sources de temps préférées.
FallbackNTP= Liste des adresses des serveurs NTP de secours (utilisés si aucun serveur n'est accessible via NTP= ou via la configuration réseau). time.nist.gov, 1.pool.ntp.org Assurer la synchronisation même en cas de panne des serveurs principaux.
RootDistanceMaxSec= Distance maximale par rapport à la racine (en secondes) autorisée pour la synchronisation. Nombre réel, ex. 5 ou 1.8 Empêcher la synchronisation avec des sources trop éloignées ou peu fiables.
PollIntervalMinSec= Intervalle minimum (en secondes) entre deux requêtes NTP. Nombre entier, ex. 32 (valeur par défaut) Contrôler la fréquence minimale des requêtes.
PollIntervalMaxSec= Intervalle maximum (en secondes) entre deux requêtes NTP. Nombre entier, ex. 2048 (valeur par défaut) Contrôler la fréquence maximale des requêtes.

Nettoyage

Désinstallation de ifupdown (networking classique)

Une fois la migration vers systemd terminée :

Bash
sudo apt purge ifupdown