systemd-networkd (Français)
Systemd offre maintenant la possibilité de gérer le réseau par lui-même sans outils supplémentaires tels que Netctl ou NetworkManager.
Configuration
La configuration se fait dans /etc/systemd/network dans des fichiers en .network.
Ethernet
Pour une connexion simple en DHCP sur l'interface eth0 :
/etc/systemd/network/eth0.network
[Match] Name=eth0 [Network] DHCP=yes
Pour l'utiliser, il suffit d'activer les services :
systemctl enable systemd-networkd.service systemctl start systemd-networkd.service
Et puis c'est tout.
WiFi
Interfaces
Bon, bah c'est pas franchement plus dur (étrangement) ! Pour une interface IF0 :
/etc/systemd/network/IF0.network
[Match] Name=IF0 [Network] DHCP=yes
Et ensuite il vous faut wpa_supplicant et le fichier /etc/wpa_supplicant/wpa_supplicant-IF0.conf (que vous pouvez compléter à partir de /etc/wpa_supplicant/wpa_supplicant.conf). Cf. Network configuration (Français)/Wireless (Français).
/etc/wpa_supplicant/wpa_supplicant-IF0.conf
# Minimum vital, lisez le man et les commentaires de /etc/wpa_supplicant/wpa_supplicant.conf ctrl_interface=/var/run/wpa_supplicant eapol_version=1 ap_scan=1 fast_reauth=1
Puis pour ajouter un réseau, devient facile:
wpa_passphrase ESSID >> /etc/wpa_supplicant/wpa_supplicant-IF0.conf
Non, vous ne révez pas, il n'y a bien qu'une unique ligne.
wpa_passphrase ESSID PASSPHRASE >> /etc/wpa_supplicant/wpa_supplicant-IF0.conf
Et pour finir, on démarre les bons services :
systemctl enable systemd-networkd.service systemctl enable wpa_supplicant@IF0.service systemctl start systemd-networkd.service systemctl start wpa_supplicant@IF0.service
Et... c'est tout. Voilà. Fini. Je vous laisse lire le manuel de wpa_supplicant pour gérer la priorité des réseaux et les réseaux plus compliqués, genre eduroam.
IF0 est à remplacer (partout) par le nom de votre interface wifi, listée dans ip a : ce peut être wlan0, wlp2s0 ou encore wls1. Par conséquent, les fichiers seront par exemple /etc/wpa_supplicant/wpa_supplicant-wlan0.conf et /etc/systemd/network/wlan0.network et le service, wpa_supplicant@wlan0.service.Scanner les réseaux
Comme nous n'avons pas Netctl, point de wifi-menu ! On utilise donc au choix iw ou iwlist qui est dans wireless_tools.
iw dev IF0 scan # | grep SSID
iwlist IF0 scanning # | grep ESSID
wifi-radar - par gksu ou kdesu - permet un scan en interface graphique resolv.conf
Maintenant, on a systemd-networkd qui s'occupe de nous attribuer une adresse IP, mais quid du /etc/resolv.conf ? Il faut utiliser celui généré par systemd-resolved et créer un lien symbolique :
systemctl enable systemd-resolved.service systemctl start systemd-resolved.service rm /etc/resolv.conf ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
Ethernet et Wifi en même temps
Si vous utilisez à la fois une connexion filaire et une connexion wifi, il est possible de donner la priorité à l'une ou l'autre en utilisant l'option RouteMetric.
L’intérêt est que si l'une des deux connections s'arrête, l'autre prendra automatiquement le relais. Pour chaque connexion, il faut ajouter dans le fichier .network correspondant (et décrit ci-dessus) les instructions suivantes:
[DHCP] RouteMetric=10
et mettre la valeur de RouteMetric la plus faible pour la connexion prioritaire. Par exemple, 10 pour le filaire ; 20 pour le wifi.
(voir sur le wiki anglais.)