====== systemd-networkd ======
C'est un gestionnaire de connexion réseau : il configure la connexion une fois notifié par udev qu'un câble est branché.
C'est l'outil livré avec systemd qui permet la configuration de ses interfaces réseaux. C'est l'option par défaut sur le live-cd d'Archlinux.
systemd-networkd n'a pas d'interface graphique, il est préféré sur des machines type serveur.
Ne fonctionne pas avec [[networkmanager|NetworkManager]] ni [[dhcpcd]], c'est soit l'un, soit l'autre. NetworkManager offre une intégration GUI avec Gnome, permettant l'activation à la volée de VPN.
===== Le nom des interfaces =====
[[https://www.linuxtricks.fr/wiki/nomenclature-des-interfaces-reseau-sous-linux-enp0s3-wlo1|source]]
Avant, les interfaces réseaux s'appelaient ''eth0'', ''eth1'', ou ''wlan0''.\\
C'était pratique, court, facile à retenir.
Mais ce n'était pas fixe. Il pouvait arriver (débranchement/rebranchement, ré-installation de driver...) que le nom change et toute la config était foirée.
Maintenant, ''udev'' attribue des noms prédictibles, mais moins lisibles et plus long, comme ''enp2s0''. L'avantage est qu'ils sont immuables.
Comprendre les noms [[https://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-net_id.c|doc udev]]:
/* Two character prefixes based on the type of interface:
 *   en -- ethernet
 *   sl -- serial line IP (slip)
 *   wl -- wlan
 *   ww -- wwan
 *
 * Type of names:
 *   b                             -- BCMA bus core number
 *   ccw                             -- CCW bus group name
 *   o[d]                 -- on-board device index number
 *   s[f][d]     -- hotplug slot index number
 *   x                                -- MAC address
 *   [P]ps[f][d]
 *                                         -- PCI geographical location
 *   [P]ps[f][u][..][c][i]
 *                                         -- USB port number chain
*/
===== Configurer le DHCP =====
Dans le cas d'une fresh install d'un archlinux, la config est vierge et il n'y a pas de connexion réseau.\\
Voyons comment configurer une liaison ethernet en mode DHCP.
**Etape 1**: Trouver le nom de son interface avec ''ip link''
**Etape 2**: ensuite on crée le fichier contenant la configuration qui nous intéresse : ''/etc/systemd/network/filename.network''
# fichier ''/etc/systemd/network/filename.network''
[Match]
Name=enp2s0  # exemple, remplacer par le nom de son interface réseau
Name=en*     # Les wildcard fonctionnent aussi
[Network]
DHCP=ipv4
Ne pas oublier d'activer le service au démarrage ''systemctl enable systemd-networkd'' et de le redémarrer si nécessaire ''systemctl restart systemd-networkd''
=== conf override ===
networkd a ses fichiers de conf dans /etc/systemd/network. c'est un dossier qui override la config par défaut/générique, que l'on trouve dans /usr/lib/systemd, pour les besoins particuliers de l'admin pour cette machine.
==== IP fallback ====
Il semblerait qu'il n'y ait pas d'option pour avoir une IP fixe dans le cas où il n'y aurait pas de serveur DHCP (par exemple une connexion directe entre 2 PC).
On peut regarder du côté de [[dhcpcd]], ou si on est sur une base debian dans les [[interfaces]].
===== DNS avec systemd-resolved =====
Ne pas oublier de démarrer le service ''systemctl enable systemd-resolved'' et ''systemctl restart systemd-resolved''