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.)